On Thu 11-02-21 14:49:43, Dan Carpenter wrote: > 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. Thanks! Let me just clarify a bit. The kvmalloc doesn't support GFP_KERNEL incompatible requests and it simply skips vmalloc fallback. So this is not a correctness issue. It is the API abuse though. -- Michal Hocko SUSE Labs