[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <000000000000dbfb39061f364783@google.com>
Date: Thu, 08 Aug 2024 18:44:14 -0700
From: syzbot <syzbot+0b74d367d6e80661d6df@...kaller.appspotmail.com>
To: linux-kernel@...r.kernel.org
Subject: Re: [syzbot] Re: [syzbot] [v9fs?] WARNING in v9fs_begin_writeback
For archival purposes, forwarding an incoming command email to
linux-kernel@...r.kernel.org.
***
Subject: Re: [syzbot] [v9fs?] WARNING in v9fs_begin_writeback
Author: lizhi.xu@...driver.com
wait for writeback done before release inode
#syz test: upstream c0ecd6388360
diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index e0d34e4e9076..cddbd7cc39e5 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -218,7 +218,13 @@ 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("del, ind: %p, ino: %lx, ino is dirty: %d, %s\n", inode, inode->i_ino, inode->i_state & I_DIRTY, __func__);
spin_lock(&inode->i_lock);
+ if (inode->i_state & I_DIRTY) {
+ spin_unlock(&inode->i_lock);
+ wait_on_bit_timeout(&inode->i_state, ~I_DIRTY, TASK_UNINTERRUPTIBLE, HZ*100);
+ spin_lock(&inode->i_lock);
+ }
hlist_del(&fid->ilist);
spin_unlock(&inode->i_lock);
put_err = p9_fid_put(fid);
Powered by blists - more mailing lists