[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <DD605171-E52E-47E1-B916-61B42C36ABC2@ddn.com>
Date: Mon, 17 Sep 2018 05:18:13 +0000
From: Wang Shilong <wshilong@....com>
To: Theodore Ts'o <tytso@....edu>
CC: Wang Shilong <wangshilong1991@...il.com>,
"linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>,
"linux-f2fs-devel@...ts.sourceforge.net"
<linux-f2fs-devel@...ts.sourceforge.net>,
"dchinner@...hat.com" <dchinner@...hat.com>,
"adilger@...ger.ca" <adilger@...ger.ca>
Subject: Re: [PATCH v3 1/3] ext4: fix setattr project check upon fssetxattr
ioctl
> 在 2018年9月16日,下午8:25,Wang Shilong <wshilong@....com> 写道:
>
>
>
>> 在 2018年9月16日,下午8:20,Theodore Y. Ts'o <tytso@....edu> 写道:
>>
>> On Sun, Sep 16, 2018 at 04:02:52AM +0000, Wang Shilong wrote:
>>>
>>>
>>>> 在 2018年9月16日,上午11:55,Theodore Y. Ts'o <tytso@....edu> 写道:
>>>>
>>>> On Wed, Sep 12, 2018 at 08:57:16AM +0900, Wang Shilong wrote:
>>>>> diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
>>>>> index a7074115d6f6..f81102bd3203 100644
>>>>> --- a/fs/ext4/ioctl.c
>>>>> +++ b/fs/ext4/ioctl.c
>>>>> @@ -339,19 +339,14 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid)
>>>>> if (projid_eq(kprojid, EXT4_I(inode)->i_projid))
>>>>> return 0;
>>>>>
>>>>> - err = mnt_want_write_file(filp);
>>>>> - if (err)
>>>>> - return err;
>>>>> -
>>>>
>>>> A huge part of this patch is dropping the calls to
>>>> mnt_want_write_file() and mnt_drop_write_file(). What's the
>>>> justification for doing this? The use of mnt_want_write_file() looks
>>>> necessary to me…
>>>
>>> Hi Ted,
>>>
>>> mnt_want_write_file() and inode_lock is held before this function called now.
>>> Since both ioctl_set_flags and ext4_set_project() need call them.
>>
>> I don't see any place in this patch where mnt_want_write_file() is
>> being called. What am I missing? And if there is a dependent patch
>> to this first patch in the patch series, please include it in this
>> patch series.... or least point it out after the --- list.
>
> Sorry, I might not explain it clearly, here is current codes after applying patch:
>
> 039 err = mnt_want_write_file(filp); ———————>called here, this is originally there for ext4_ioctl_setflags()
> 1040 if (err)
> 1041 return err;
> 1042
> 1043 inode_lock(inode);
> 1044 err = ext4_ioctl_setattr_check_projid(inode, &fa);
> 1045 if (err)
> 1046 goto out;
> 1047 flags = (ei->i_flags & ~EXT4_FL_XFLAG_VISIBLE) |
> 1048 (flags & EXT4_FL_XFLAG_VISIBLE);
> 1049 err = ext4_ioctl_setflags(inode, flags);
> 1050 if (err)
> 1051 goto out;
> 1052 err = ext4_ioctl_setproject(filp, fa.fsx_projid);
> 1053 out:
> 1054 inode_unlock(inode);
> 1055 mnt_drop_write_file(filp); ————————>dropped here.
> 1056 return err;
> 1057 }
>
> Thanks,
> Shilong
Just a general ping for this, make sure you did not miss reply.
Since I saw you sent new pull request.
Is there anything more I could do?
>
>>
>> Thanks,
>>
>> - Ted
>
Powered by blists - more mailing lists