Re: [syzbot] [jffs2?] possible deadlock in jffs2_do_clear_inode (2)

From: Edward Adam Davis

Date: Fri Sep 11 2026 - 04:34:47 EST


From: Edward Aadm Davis <eadavis@xxxxxxxx>

#syz test: upstream 50d05c7c76c9

diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c
index 6ada8369a762..59972e03685d 100644
--- a/fs/jffs2/fs.c
+++ b/fs/jffs2/fs.c
@@ -256,6 +256,7 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino)
struct jffs2_sb_info *c;
struct jffs2_raw_inode latest_node;
union jffs2_device_node jdev;
+ unsigned int nofs_flag;
struct inode *inode;
dev_t rdev = 0;
int ret;
@@ -274,7 +275,9 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino)
jffs2_init_inode_info(f);
mutex_lock(&f->sem);

+ nofs_flag = memalloc_nofs_save();
ret = jffs2_do_read_inode(c, f, inode->i_ino, &latest_node);
+ memalloc_nofs_restore(nofs_flag);
if (ret)
goto error;