Re: [syzbot] [fuse?] WARNING in fuse_iomap_writeback_range
From: Joanne Koong
Date: Thu Oct 01 2026 - 04:39:45 EST
On Wed, Sep 30, 2026 at 2:01 PM Joanne Koong <joannelkoong@xxxxxxxxx> wrote:
>
> On Sun, Sep 27, 2026 at 9:15 AM syzbot
> <syzbot+e8200299b0556976e13c@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > syzbot has found a reproducer for the following issue on:
> >
> > HEAD commit: fd179f8a05be Merge tag 'ata-7.3-rc5' of git://git.kernel.o..
> > git tree: upstream
> > console+strace: https://syzkaller.appspot.com/x/log.txt?x=13490605580000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=9d4242cb1c54cdf7
> > dashboard link: https://syzkaller.appspot.com/bug?extid=e8200299b0556976e13c
> > compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1523f2c9580000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14385315580000
> >
> > Downloadable assets:
> > disk image: https://storage.googleapis.com/syzbot-assets/c4cebd01ff3c/disk-fd179f8a.raw.xz
> > vmlinux: https://storage.googleapis.com/syzbot-assets/9fd8641fa35c/vmlinux-fd179f8a.xz
> > kernel image: https://storage.googleapis.com/syzbot-assets/c6e8e6332600/bzImage-fd179f8a.xz
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+e8200299b0556976e13c@xxxxxxxxxxxxxxxxxxxxxxxxx
> >
> > ------------[ cut here ]------------
> > !ff
> > WARNING: fs/fuse/file.c:2043 at fuse_write_file_get fs/fuse/file.c:2043 [inline], CPU#0: syz-executor122/5774
> > WARNING: fs/fuse/file.c:2043 at fuse_iomap_writeback_range+0x7c8/0x18f0 fs/fuse/file.c:2227, CPU#0: syz-executor122/5774
> > Modules linked in:
> > CPU: 0 UID: 0 PID: 5774 Comm: syz-executor122 Not tainted syzkaller #0 PREEMPT(full)
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
> > RIP: 0010:fuse_write_file_get fs/fuse/file.c:2043 [inline]
> > RIP: 0010:fuse_iomap_writeback_range+0x7c8/0x18f0 fs/fuse/file.c:2227
> > Code: fe 48 83 3b 00 74 5b e8 e6 f0 6c fe 4c 8b 3c 24 e9 08 0b 00 00 e8 d8 f0 6c fe eb 5c e8 d1 f0 6c fe 4c 89 f7 e8 39 63 8e 08 90 <0f> 0b 90 48 b8 00 00 00 00 00 fc ff df 48 8b 4c 24 58 80 3c 01 00
> > RSP: 0018:ffffc90003e172b8 EFLAGS: 00010286
> > RAX: 8000000000000000 RBX: ffff88806e4ea880 RCX: ffffffff9a9ec501
> > RDX: 0000000000000001 RSI: 0000000000000004 RDI: 00000000ffffffff
> > RBP: 0000000000001000 R08: ffff88806e4eae63 R09: 1ffff1100dc9d5cc
> > R10: dffffc0000000000 R11: ffffed100dc9d5cd R12: ffff88806e4ead08
> > R13: 0000000000001000 R14: ffff88806e4eae60 R15: ffff88806e4ead08
> > FS: 00007f6a3f53e6c0(0000) GS:ffff888124cc8000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 000020000000b000 CR3: 0000000078090000 CR4: 00000000003526f0
> > Call Trace:
> > <TASK>
> > iomap_writeback_range fs/iomap/buffered-io.c:1896 [inline]
> > iomap_writeback_folio+0x1526/0x2490 fs/iomap/buffered-io.c:2022
> > fuse_launder_folio+0x17b/0x240 fs/fuse/file.c:2331
> > folio_launder mm/truncate.c:612 [inline]
> > folio_unmap_invalidate+0x4cd/0x830 mm/truncate.c:634
> > invalidate_inode_pages2_range+0x629/0xb30 mm/truncate.c:726
> > fuse_open+0x5a6/0x770 fs/fuse/file.c:297
> > do_dentry_open+0x816/0x1380 fs/open.c:996
> > vfs_open+0x3b/0x340 fs/open.c:1101
> > do_open fs/namei.c:4837 [inline]
> > path_openat+0x1443/0x1d60 fs/namei.c:5000
> > do_file_open+0x23e/0x4a0 fs/namei.c:5029
> > do_sys_openat2+0x115/0x200 fs/open.c:1417
> > do_sys_open fs/open.c:1423 [inline]
> > __do_sys_openat fs/open.c:1439 [inline]
> > __se_sys_openat fs/open.c:1434 [inline]
> > __x64_sys_openat+0x138/0x170 fs/open.c:1434
> > do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
> > do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > RIP: 0033:0x7f6a3f58fae9
> > Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d0 ff ff ff f7 d8 64 89 01 48
> > RSP: 002b:00007f6a3f53e1d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
> > RAX: ffffffffffffffda RBX: 00007f6a3f644b98 RCX: 00007f6a3f58fae9
> > RDX: 0000000000000040 RSI: 000020000000c380 RDI: 00000000ffffff9c
> > RBP: 00007f6a3f644b90 R08: 31203a6b63617473 R09: 31203a6b63617473
> > R10: 0000000000000000 R11: 0000000000000246 R12: 00007f6a3f6117f4
> > R13: 000020000000e3c0 R14: 00002000000062c0 R15: 00007ffe0b2d2af8
> > </TASK>
> >
> >
> > ---
> > If you want syzbot to run the reproducer, reply with:
> > #syz test: git://repo/address.git branch-or-commit-hash
> > If you attach or paste a git patch, syzbot will apply it before testing.
> >
>
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index 6d707f2b3bff..0ef46f6e0267 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -2351,6 +2351,9 @@ static int fuse_launder_folio(struct folio *folio)
> .wb_ctx = &data,
> };
>
> + if (fuse_is_bad(wpc.inode))
> + return -EIO;
> +
> if (folio_clear_dirty_for_io(folio)) {
> err = iomap_writeback_folio(&wpc, folio);
> err = fuse_iomap_writeback_submit(&wpc, err);
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
for-next
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 6d707f2b3bff..0ef46f6e0267 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2351,6 +2351,9 @@ static int fuse_launder_folio(struct folio *folio)
.wb_ctx = &data,
};
+ if (fuse_is_bad(wpc.inode))
+ return -EIO;
+
if (folio_clear_dirty_for_io(folio)) {
err = iomap_writeback_folio(&wpc, folio);
err = fuse_iomap_writeback_submit(&wpc, err);