staging: lustre: remove kmalloc from fld_proc_hash_seq_write
authorTristan Lelong <tristan@lelong.xyz>
Sun, 18 Jan 2015 07:44:49 +0000 (23:44 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Jan 2015 11:59:14 +0000 (19:59 +0800)
This patch simplifies the fld_proc_hash_seq_write function
by removing the dynamic memory allocation.
The longest fh_name used so far in lustre is 4 characters.
We use a 8 bytes variable to be on the safe side.

Signed-off-by: Tristan Lelong <tristan@lelong.xyz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/fld/lproc_fld.c

index 74b4db9..9b26bb5 100644 (file)
@@ -93,17 +93,13 @@ fld_proc_hash_seq_write(struct file *file,
 {
        struct lu_client_fld *fld;
        struct lu_fld_hash *hash = NULL;
-       char *name;
+       char fh_name[8];
        int i;
 
-       if (count > 80)
+       if (count > sizeof(fh_name))
                return -ENAMETOOLONG;
 
-       name = kmalloc(count, GFP_KERNEL);
-       if (!name)
-               return -ENOMEM;
-
-       if (copy_from_user(name, buffer, count) != 0)
+       if (copy_from_user(fh_name, buffer, count) != 0)
                return -EFAULT;
 
        fld = ((struct seq_file *)file->private_data)->private;
@@ -113,7 +109,7 @@ fld_proc_hash_seq_write(struct file *file,
                if (count != strlen(fld_hash[i].fh_name))
                        continue;
 
-               if (!strncmp(fld_hash[i].fh_name, name, count)) {
+               if (!strncmp(fld_hash[i].fh_name, fh_name, count)) {
                        hash = &fld_hash[i];
                        break;
                }
@@ -128,7 +124,6 @@ fld_proc_hash_seq_write(struct file *file,
                       fld->lcf_name, hash->fh_name);
        }
 
-       kfree(name);
        return count;
 }