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

From: Edward Adam Davis
Date: Tue Aug 06 2024 - 07:40:42 EST


Is request writable ?

#syz test: upstream c0ecd6388360

diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
index a97ceb105cd8..ac69716aad07 100644
--- a/fs/9p/vfs_addr.c
+++ b/fs/9p/vfs_addr.c
@@ -33,8 +33,12 @@
static void v9fs_begin_writeback(struct netfs_io_request *wreq)
{
struct p9_fid *fid;
+ bool writing = (wreq->origin == NETFS_READ_FOR_WRITE ||
+ wreq->origin == NETFS_WRITETHROUGH ||
+ wreq->origin == NETFS_UNBUFFERED_WRITE ||
+ wreq->origin == NETFS_DIO_WRITE);

- fid = v9fs_fid_find_inode(wreq->inode, true, INVALID_UID, true);
+ fid = v9fs_fid_find_inode(wreq->inode, writing, INVALID_UID, true);
if (!fid) {
WARN_ONCE(1, "folio expected an open fid inode->i_ino=%lx\n",
wreq->inode->i_ino);