[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e5c2c285-0b10-0d23-2c02-7582c026dbfd@huawei.com>
Date: Fri, 15 Mar 2024 20:58:27 +0800
From: Zhihao Cheng <chengzhihao1@...wei.com>
To: Qingfang Deng <dqfext@...il.com>
CC: David Woodhouse <dwmw2@...radead.org>, Richard Weinberger
<richard@....at>, <linux-mtd@...ts.infradead.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH] jffs2: fix recursive fs_reclaim deadlock
在 2024/3/15 20:19, Qingfang Deng 写道:
> Hi Zhihao,
>
> On Fri, Mar 15, 2024 at 7:19 PM Zhihao Cheng <chengzhihao1@...wei.com> wrote:
>> I think it's a false positive warning. Jffs2 is trying to get root inode
>> in process '#1', which means that the filesystem is not mounted
>> yet(Because d_make_root is after jffs2_iget(sb,1), there is no way to
>> access other inodes.), so it is impossible that jffs2 inode is being
>> evicted in '#0'.
>>
>
> You're right that process '#1' is getting the root inode. However,
> lockdep only records the stack of the first unique lock ordering (see
> https://docs.kernel.org/locking/lockdep-design.html#performance ), and
> there are many occasions where GFP_KERNEL is used inside a
> jffs2_inode_info::sem 's critical section.
> .
>
Allocating memory without GFP_NOFS flags under sleeping lock is a normal
thing. The vfs_write is an example(eg. ext4), page is allocated with
FGP_WRITEBEGIN flag(no FGP_NOFS) when holding inode lock.
Powered by blists - more mailing lists