Messages in this thread | | | Date | Sun, 5 Oct 2014 15:56:55 -0400 | From | Tejun Heo <> | Subject | Re: [PATCH 1/2] sysfs - allow attributes to request write buffer be pre-allocated. |
| |
Hello,
Generally looks good to me. Some nitpicks follow.
On Tue, Sep 30, 2014 at 12:33:34PM +1000, NeilBrown wrote: ... > diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c > index 4429d6d9217f..73bd5ed143cd 100644 > --- a/fs/kernfs/file.c > +++ b/fs/kernfs/file.c > @@ -278,16 +278,12 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf, > len = min_t(size_t, count, PAGE_SIZE); > } > > - buf = kmalloc(len + 1, GFP_KERNEL); > + buf = of->buf; > + if (!buf) > + buf = kmalloc(len + 1, GFP_KERNEL); > if (!buf) > return -ENOMEM; > > - if (copy_from_user(buf, user_buf, len)) { > - len = -EFAULT; > - goto out_free; > - } > - buf[len] = '\0'; /* guarantee string termination */ > - > /* > * @of->mutex nests outside active ref and is just to ensure that > * the ops aren't called concurrently for the same open file.
We probably should update the above comment.
> diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h > index 30faf797c2c3..07c326761671 100644 > --- a/include/linux/kernfs.h > +++ b/include/linux/kernfs.h > @@ -179,6 +179,7 @@ struct kernfs_open_file { > struct mutex mutex; > int event; > struct list_head list; > + char *buf;
Maybe something like ->prealloc_buf is better?
Thanks.
-- tejun
| |