diff options
| author | Johannes Thumshirn <johannes.thumshirn@wdc.com> | 2026-07-23 17:54:26 +0200 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-08-07 19:17:18 +0200 |
| commit | 3cbcc099b4d42667ea8c6b10d28f6060c104048c (patch) | |
| tree | 1e0d01d82cfa6c632a2ce2f4eb876173d2d1a70c /tools/perf/scripts/python/bin | |
| parent | ecc05eda9a346848ae01a6c8bfa3f0bec133bd8b (diff) | |
btrfs: zoned: drop stranded dirty metadata on transaction abort
On a zoned filesystem a freed tree block is not cleared but kept dirty
and flagged EXTENT_BUFFER_ZONED_ZEROOUT, so a later writeback zeroes it
out and advances the zone write pointer. A transaction abort turns the
filesystem read-only before that writeback runs, so these buffers stay
dirty and stranded ahead of the write pointer where btree_writepages()
can no longer write them. They survive to the final iput() of the btree
inode at unmount, which submits the write after the endio workqueues are
gone, hanging unmount in folio_wait_writeback().
Clear the dirty state of such buffers when cleaning up the aborted
transaction, where the buffer tree still references all of them.
Assisted-by: LLM (debugging, commit message)
Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
