Re: [PATCH] fuse: don't check for file->private_data on open().

From: Martin Kepplinger
Date: Thu Nov 13 2014 - 05:05:52 EST


Am 13. November 2014 10:40:38 MEZ, schrieb Miklos Szeredi <miklos@xxxxxxxxxx>:
>On Wed, Nov 12, 2014 at 5:31 PM, Martin Kepplinger <martink@xxxxxxxxx>
>wrote:
>> The miscdevice core now sets file->private_data to the struct
>miscdevice
>> so don't fail when this is not NULL.
>
>Does it? Look:
>
>static int misc_open(struct inode * inode, struct file * file)
>{
> ...
> if (file->f_op->open) {
> file->private_data = c;
> err = file->f_op->open(inode,file);
> }
>
>It only sets ->private_data if the device provides an open method.
>Fuse doesn't, so it's not clear what this patch is trying to fix.
>
>Thanks,
>Miklos
>
>
>>
>> Reported-by: Thierry Reding <thierry.reding@xxxxxxxxx>
>> Signed-off-by: Martin Kepplinger <martink@xxxxxxxxx>
>> ---
>> This is a question: what does this check provide and does overwriting
>> file->private_data make any difference?
>>
>> Is open() by the user not allowed here, if file->private_data is set?
>>
>> thanks!!
>>
>> fs/fuse/inode.c | 3 ---
>> 1 file changed, 3 deletions(-)
>>
>> diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
>> index 03246cd..562407e 100644
>> --- a/fs/fuse/inode.c
>> +++ b/fs/fuse/inode.c
>> @@ -1092,9 +1092,6 @@ static int fuse_fill_super(struct super_block
>*sb, void *data, int silent)
>> }
>>
>> mutex_lock(&fuse_mutex);
>> - err = -EINVAL;
>> - if (file->private_data)
>> - goto err_unlock;
>>
>> err = fuse_ctl_add_conn(fc);
>> if (err)
>> --
>> 1.7.10.4
>>

In this week's -next this should have changed. My SSD broke down so i have to delay further work for a few days, i'm sorry.
--
Martin Kepplinger
http://martinkepplinger.com
sent from mobile
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/