Re: possible deadlock in fs_reclaim_acquire (2)

From: Dan Carpenter
Date: Thu Feb 11 2021 - 07:05:27 EST


On Thu, Feb 11, 2021 at 11:50:38AM +0100, 'Michal Hocko' via syzkaller-bugs wrote:
> On Thu 11-02-21 11:22:25, Jan Kara wrote:
> > On Thu 11-02-21 12:07:29, Hillf Danton wrote:
>
> I haven't received Hillf's email.
>
> [...]
> > > Fix 71b565ceff37 ("ext4: drop ext4_kvmalloc()") by restoring the
> > > GFP_NOFS introduced in dec214d00e0d ("ext4: xattr inode deduplication").
> > >
> > > Note this may be the fix also to possible deadlock
> > > Reported-by: syzbot+bfdded10ab7dcd7507ae@xxxxxxxxxxxxxxxxxxxxxxxxx
> > > https://lore.kernel.org/linux-ext4/000000000000563a0205bafb7970@xxxxxxxxxx/
> >
> > Please no. Ext4 is using scoping API to limit allocations to GFP_NOFS
> > inside transactions. In this case something didn't work which seems like a
> > lockdep bug at the first sight but I'll talk to mm guys about it.
> > Definitely to problem doesn't seem to be in ext4.
>
> Agreed. kvmalloc(NOFS) is not even supported because vmalloc doesn't
> support GFP_KERNEL incompatible requests.

Okay. I have created a new Smatch warning when people pass GFP_NOFS
to kvmalloc() and friends. We'll see if it finds anything tomorrow.

(We could probably find the same information with grep, but I run
Smatch every day so it prevents future bugs).

regards,
dan carpenter