Re: [syzbot] [xfs?] possible deadlock in xfs_can_free_eofblocks (2)

From: Lizhi Xu
Date: Sat Sep 14 2024 - 05:01:37 EST


we use GFP_NOFS for sbp

#syz test

diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c
index 7db386304875..0dc4600010b8 100644
--- a/fs/xfs/xfs_attr_list.c
+++ b/fs/xfs/xfs_attr_list.c
@@ -114,7 +114,7 @@ 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_NOFS | __GFP_NOFAIL);

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