Re: [syzbot] Re: [syzbot] [jfs?] INFO: task hung in txBegin

From: syzbot
Date: Wed Jun 26 2024 - 22:53:08 EST


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

***

Subject: Re: [syzbot] [jfs?] INFO: task hung in txBegin
Author: lizhi.xu@xxxxxxxxxxxxx

#syz test: upstream 50736169ecc8

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 92a5b8283528..04ccc85c80b4 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -2076,8 +2076,11 @@ static long wb_writeback(struct bdi_writeback *wb,
long progress;
struct blk_plug plug;
bool queued = false;
+ struct super_block *sb = work->sb;

blk_start_plug(&plug);
+ if (sb)
+ down_write(&sb->s_umount);
for (;;) {
/*
* Stop writeback when nr_pages has been consumed
@@ -2162,6 +2165,8 @@ static long wb_writeback(struct bdi_writeback *wb,
/* This function drops i_lock... */
inode_sleep_on_writeback(inode);
}
+ if (sb)
+ up_write(&sb->s_umount);
blk_finish_plug(&plug);

return nr_pages - work->nr_pages;