Messages in this thread | | | From | Johannes Thumshirn <> | Subject | [PATCH 00/13] btrfs: clean up RAID I/O geometry calculation | Date | Tue, 12 Dec 2023 04:37:58 -0800 |
| |
The calculation of the RAID I/O geometry in btrfs_map_block has been a maze of if-else statements for a very long time and the advent of the raid-stripe-tree made the situation even worse.
This patchset refactors btrfs_map_block() to untagle the maze and make I/O geometry setting easier to follow, but does not introduce any functional changes.
I've also run it through Josef's CI and there have been test failures, but none of them introduced by these patches.
--- Johannes Thumshirn (13): btrfs: factor out helper for single device IO check btrfs: re-introduce struct btrfs_io_geometry btrfs: factor out block-mapping for RAID0 btrfs: factor out RAID1 block mapping btrfs: factor out block mapping for DUP profiles btrfs: factor out block mapping for RAID10 btrfs: reduce scope of data_stripes in btrfs_map_block btrfs: factor out block mapping for RAID5/6 btrfs: factor out block mapping for single profiles btrfs: untagle if else maze in btrfs_map_block btrfs: open code set_io_stripe for RAID56 btrfs: pass struct btrfs_io_geometry to set_io_stripe btrfs: pass btrfs_io_geometry into btrfs_max_io_len
fs/btrfs/volumes.c | 388 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 245 insertions(+), 143 deletions(-) --- base-commit: 14d1d39586246ca9d4ce97049c98be849e3bbcd9 change-id: 20231207-btrfs_map_block-cleanup-346f53aff90d
Best regards, -- Johannes Thumshirn <johannes.thumshirn@wdc.com>
| |