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@xxxxxxxxxx> --- Hi Greg, This patch is a rework of "staging: lustre: fix sparse warning on LPROC_SEQ_FOPS macros" v3. It applies on top of your latest staging-testing branch. Regards --- drivers/staging/lustre/lustre/fld/lproc_fld.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/staging/lustre/lustre/fld/lproc_fld.c b/drivers/staging/lustre/lustre/fld/lproc_fld.c index 74b4db9..9b26bb5 100644 --- a/drivers/staging/lustre/lustre/fld/lproc_fld.c +++ b/drivers/staging/lustre/lustre/fld/lproc_fld.c @@ -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; } -- 2.1.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel