[PATCH v2 0/4] btrfs: zoned: btree inode writeback fixes
Johannes Thumshirn <[email protected]> Thu, 23 Jul 2026 17:54:24 +0200
| Newsgroups | org.kernel.vger.linux-btrfs |
|---|---|
| Message-ID | <[email protected]> |
Here's another attempt in fixing the problems with writeback of the btree inode on zoned filesystems. The symptoms we're seeing with it are: - Hang on unmount because btree inode folios can't get written back on the final iput() because the block-groups are already gone. - The recently added WARN() in invalidate_and_check_btree_folios() firing - The ASSERT(btrfs_header_bytenr()) in btrfs_free_tree_block() firing. Changes to v1: - Reword changelog in 1/4 - Move per-eb write into helper function - Call brtfs_schedule_zone_finish_bg() from flush - Skip flush on -EBUSY - Only drop ebs tagged as EXTENT_BUFFER_ZONED_ZEROOUT in btrfs_zoned_release_dirty_metadata() so invalidate_and_check_btree_folios() still catches legitimate unwritten folios Link to v1: https://lore.kernel.org/linux-btrfs/[email protected]/ Johannes Thumshirn (4): btrfs: zoned: flush active metadata block group at btree_writepages() start btrfs: zoned: drop stranded dirty metadata on transaction abort btrfs: zoned: drop stranded dirty metadata buffers at unmount btrfs: zoned: don't clobber the extent buffer when zeroing it out fs/btrfs/disk-io.c | 21 +++-- fs/btrfs/extent_io.c | 218 ++++++++++++++++++++++++++++++++++--------- fs/btrfs/extent_io.h | 1 + 3 files changed, 190 insertions(+), 50 deletions(-) -- 2.55.0