Re: [syzbot] kernel BUG in btrfs_subpage_assert

From: syzbot

Date: Fri Oct 02 2026 - 15:50:11 EST


> #syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master

This crash does not have a reproducer. I cannot test it.

>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 558b4a3f9633..98ea6a9a67f3 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -10813,10 +10813,17 @@ static bool btrfs_data_dirty_folio(struct address_space *mapping,
> const u64 range_end = min_t(u64, folio_next_pos(folio),
> round_up(i_size_read(&inode->vfs_inode),
> fs_info->sectorsize));
> + int ret;
>
> - if (range_end > page_start)
> + if (range_end > page_start) {
> + if (btrfs_is_subpage(fs_info, folio)) {
> + ret = set_folio_extent_mapped(folio);
> + if (ret < 0)
> + return false;
> + }
> btrfs_folio_set_fixup_dirty(fs_info, folio, page_start,
> range_end - page_start);
> + }
> return filemap_dirty_folio(mapping, folio);
> }