Re: [syzbot] Re: [syzbot] [v9fs?] WARNING in v9fs_begin_writeback

From: syzbot
Date: Wed Aug 14 2024 - 23:00:42 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx.

***

Subject: Re: [syzbot] [v9fs?] WARNING in v9fs_begin_writeback
Author: lizhi.xu@xxxxxxxxxxxxx

clean dirty for the release inode, stop to worker wb it again.

#syz test: upstream c0ecd6388360

diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index e0d34e4e9076..85161f0bb749 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -218,7 +218,12 @@ int v9fs_dir_release(struct inode *inode, struct file *filp)
if ((S_ISREG(inode->i_mode)) && (filp->f_mode & FMODE_WRITE))
retval = filemap_fdatawrite(inode->i_mapping);

+ printk("fid: %p, fidnum: %d, ino: %lx, ino is freeing:%d, will free: %d, dirty: %d, %s\n", fid, fid->fid, inode->i_ino,
+ inode->i_state & I_FREEING,
+ inode->i_state & I_WILL_FREE,
+ inode->i_state & I_DIRTY, __func__);
spin_lock(&inode->i_lock);
+ inode->i_state |= I_FREEING;
hlist_del(&fid->ilist);
spin_unlock(&inode->i_lock);
put_err = p9_fid_put(fid);