Forwarded: Re: [syzbot] WARNING in can_finish_ordered_extent
From: syzbot
Date: Fri Oct 02 2026 - 10:50:56 EST
For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.
***
Subject: Re: [syzbot] WARNING in can_finish_ordered_extent
Author: adarshdas950@xxxxxxxxx
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index d7600e5fa3d9..2117b2a80edd 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1895,9 +1895,14 @@ static int submit_one_sector(struct btrfs_inode *inode,
queued = submit_extent_folio(bio_ctrl, disk_bytenr, folio,
sectorsize, filepos - folio_pos(folio), 0);
if (unlikely(queued < sectorsize)) {
+ u32 unqueued = sectorsize - queued;
+
btrfs_folio_clear_writeback(fs_info, folio, filepos, sectorsize);
- btrfs_mark_ordered_io_finished(inode, filepos, fs_info->sectorsize,
- false);
+ if (unqueued)
+ btrfs_mark_ordered_io_finished(inode, filepos + queued,
+ unqueued, false);
+ if (bio_ctrl->bbio && bio_ctrl->bbio->bio.bi_iter.bi_size)
+ submit_one_bio(bio_ctrl);
return -EUCLEAN;
}
return 0;