lkml.org 
[lkml]   [2010]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 3/3] fs/jffs2/dir.c: Use kmemdup
    Convert a sequence of kmalloc and memcpy to use kmemdup.

    The semantic patch that performs this transformation is:
    (http://coccinelle.lip6.fr/)

    // <smpl>
    @@
    expression a,flag,len;
    expression arg,e1,e2;
    statement S;
    @@

    a =
    - \(kmalloc\|kzalloc\)(len,flag)
    + kmemdup(arg,len,flag)
    <... when != a
    if (a == NULL || ...) S
    ...>
    - memcpy(a,arg,len+1);
    // </smpl>

    Signed-off-by: Julia Lawall <julia@diku.dk>

    ---
    fs/jffs2/dir.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff -u -p a/fs/jffs2/dir.c b/fs/jffs2/dir.c
    --- a/fs/jffs2/dir.c
    +++ b/fs/jffs2/dir.c
    @@ -367,7 +367,7 @@ static int jffs2_symlink (struct inode *
    }

    /* We use f->target field to store the target path. */
    - f->target = kmalloc(targetlen + 1, GFP_KERNEL);
    + f->target = kmemdup(target, targetlen + 1, GFP_KERNEL);
    if (!f->target) {
    printk(KERN_WARNING "Can't allocate %d bytes of memory\n", targetlen + 1);
    mutex_unlock(&f->sem);
    @@ -376,7 +376,6 @@ static int jffs2_symlink (struct inode *
    goto fail;
    }

    - memcpy(f->target, target, targetlen + 1);
    D1(printk(KERN_DEBUG "jffs2_symlink: symlink's target '%s' cached\n", (char *)f->target));

    /* No data here. Only a metadata node, which will be

    \
     
     \ /
      Last update: 2010-10-17 21:59    [W:0.023 / U:31.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site