kmemdup has implemented the function that kmalloc() + memcpy().
We prefer to kmemdup rather than code opened implementation.

This issue was detected with the help of coccinelle.

Signed-off-by: Wen Yang <wen.yan...@zte.com.cn>
CC: Bob Copeland <m...@bobcopeland.com>
CC: linux-karma-de...@lists.sourceforge.net
CC: linux-kernel@vger.kernel.org
---
 fs/omfs/inode.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index e5258fefcd2b..195c6baa3c8e 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -363,12 +363,11 @@ static int omfs_get_imap(struct super_block *sb)
                bh = sb_bread(sb, block++);
                if (!bh)
                        goto nomem_free;
-               *ptr = kmalloc(sb->s_blocksize, GFP_KERNEL);
+               *ptr = kmemdup(bh->b_data, sb->s_blocksize, GFP_KERNEL);
                if (!*ptr) {
                        brelse(bh);
                        goto nomem_free;
                }
-               memcpy(*ptr, bh->b_data, sb->s_blocksize);
                if (count < sb->s_blocksize)
                        memset((void *)*ptr + count, 0xff,
                                sb->s_blocksize - count);
-- 
2.19.1

Reply via email to