Commit 45f69d09 authored by Long Li's avatar Long Li Committed by Carlos Maiolino
Browse files

xfs: eliminate lockdep false positives in xfs_attr_shortform_list

xfs_attr_shortform_list() only called from a non-transactional context, it
hold ilock before alloc memory and maybe trapped in memory reclaim. Since
commit 204fae32("xfs: clean up remaining GFP_NOFS users") removed
GFP_NOFS flag, lockdep warning will be report as [1]. Eliminate lockdep
false positives by use __GFP_NOLOCKDEP to alloc memory
in xfs_attr_shortform_list().

[1] https://lore.kernel.org/linux-xfs/000000000000e33add0616358204@google.com/



Reported-by: default avatar <syzbot+4248e91deb3db78358a2@syzkaller.appspotmail.com>
Signed-off-by: default avatarLong Li <leo.lilong@huawei.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarCarlos Maiolino <cem@kernel.org>
parent 28eb75e1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -114,7 +114,8 @@ xfs_attr_shortform_list(
	 * It didn't all fit, so we have to sort everything on hashval.
	 */
	sbsize = sf->count * sizeof(*sbuf);
	sbp = sbuf = kmalloc(sbsize, GFP_KERNEL | __GFP_NOFAIL);
	sbp = sbuf = kmalloc(sbsize,
			GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);

	/*
	 * Scan the attribute list for the rest of the entries, storing