]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
btrfs: zoned: fixup last alloc pointer after extent removal for RAID0/10
authorNaohiro Aota <naohiro.aota@wdc.com>
Fri, 23 Jan 2026 12:41:36 +0000 (21:41 +0900)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:56:23 +0000 (07:56 +0100)
commit52ee9965d09b2c56a027613db30d1fb20d623861
tree1ea1efc9783e645fdc98886f736aef3092d37e52
parente2d848649e64de39fc1b9c64002629b4daa1105d
btrfs: zoned: fixup last alloc pointer after extent removal for RAID0/10

When a block group is composed of a sequential write zone and a
conventional zone, we recover the (pseudo) write pointer of the
conventional zone using the end of the last allocated position.

However, if the last extent in a block group is removed, the last extent
position will be smaller than the other real write pointer position.
Then, that will cause an error due to mismatch of the write pointers.

We can fixup this case by moving the alloc_offset to the corresponding
write pointer position.

Fixes: 568220fa9657 ("btrfs: zoned: support RAID0/1/10 on top of raid stripe tree")
CC: stable@vger.kernel.org # 6.12+
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/zoned.c