mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
btrfs: zoned: zone finish data relocation BG with last IO
commitf84353c7c2upstream. For data block groups, we zone finish a zone (or, just deactivate it) when seeing the last IO in btrfs_finish_ordered_io(). That is only called for IOs using ZONE_APPEND, but we use a regular WRITE command for data relocation IOs. Detect it and call btrfs_zone_finish_endio() properly. Fixes:be1a1d7a5d("btrfs: zoned: finish fully written block group") CC: stable@vger.kernel.org # 6.1+ 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
846d77fa29
commit
a37fc1ee63
@@ -3264,6 +3264,9 @@ int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent)
|
|||||||
btrfs_rewrite_logical_zoned(ordered_extent);
|
btrfs_rewrite_logical_zoned(ordered_extent);
|
||||||
btrfs_zone_finish_endio(fs_info, ordered_extent->disk_bytenr,
|
btrfs_zone_finish_endio(fs_info, ordered_extent->disk_bytenr,
|
||||||
ordered_extent->disk_num_bytes);
|
ordered_extent->disk_num_bytes);
|
||||||
|
} else if (btrfs_is_data_reloc_root(inode->root)) {
|
||||||
|
btrfs_zone_finish_endio(fs_info, ordered_extent->disk_bytenr,
|
||||||
|
ordered_extent->disk_num_bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
btrfs_free_io_failure_record(inode, start, end);
|
btrfs_free_io_failure_record(inode, start, end);
|
||||||
|
|||||||
Reference in New Issue
Block a user