[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <025cd000-48c7-7cd2-5b89-f76d1b44079a@cn.fujitsu.com>
Date: Fri, 4 Sep 2020 15:07:28 +0800
From: "Li, Hao" <lihao2018.fnst@...fujitsu.com>
To: Dave Chinner <david@...morbit.com>
CC: <viro@...iv.linux.org.uk>, <ira.weiny@...el.com>,
<linux-fsdevel@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-xfs@...r.kernel.org>, <y-goto@...itsu.com>
Subject: Re: [PATCH] fs: Handle I_DONTCACHE in iput_final() instead of
generic_drop_inode()
On 2020/9/4 5:58, Dave Chinner wrote:
> On Mon, Aug 31, 2020 at 06:13:13PM +0800, Hao Li wrote:
>> If generic_drop_inode() returns true, it means iput_final() can evict
>> this inode regardless of whether it is dirty or not. If we check
>> I_DONTCACHE in generic_drop_inode(), any inode with this bit set will be
>> evicted unconditionally. This is not the desired behavior because
>> I_DONTCACHE only means the inode shouldn't be cached on the LRU list.
>> As for whether we need to evict this inode, this is what
>> generic_drop_inode() should do. This patch corrects the usage of
>> I_DONTCACHE.
>>
>> This patch was proposed in [1].
>>
>> [1]: https://lore.kernel.org/linux-fsdevel/20200831003407.GE12096@dread.disaster.area/
>>
>> Signed-off-by: Hao Li <lihao2018.fnst@...fujitsu.com>
>> ---
>> fs/inode.c | 3 ++-
>> include/linux/fs.h | 3 +--
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/fs/inode.c b/fs/inode.c
>> index 72c4c347afb7..4e45d5ea3d0f 100644
>> --- a/fs/inode.c
>> +++ b/fs/inode.c
>> @@ -1625,7 +1625,8 @@ static void iput_final(struct inode *inode)
>> else
>> drop = generic_drop_inode(inode);
>>
>> - if (!drop && (sb->s_flags & SB_ACTIVE)) {
>> + if (!drop && !(inode->i_state & I_DONTCACHE) &&
>> + (sb->s_flags & SB_ACTIVE)) {
>
> FWIW, the format used in fs/inode.c is to align the logic
> statements, not tab indent the additional lines in the statement.
> i.e.
>
> if (!drop &&
> !(inode->i_state & I_DONTCACHE) &&
> (sb->s_flags & SB_ACTIVE)) {
>
> Which gives a clear indication that there are all at the same
> precedence and separate logic statements...
>
> Otherwise the change looks good.
>
> Probably best to resend with the fixes tag :)
Got it! Thanks.
>
>
> Cheers,
>
> Dave.
Powered by blists - more mailing lists