This series aims to cleanup the code necessary to exclude io stripes within a chunk that can contain a superblock. To achieve this following actions are taken (in order of appearance) : 1. Make btrfs_rmap_block private to block-group.c since it's only used by exclude_super_stripes. 2. Extend btrfs selftest framework to accommodate testing of btrfs_rmap_block's functionality 3. Add tests for btrfs_rmap_block 4. With tests in place perform surgery on btrfs_rmap_block to make it more readable, this is achieved by renamring variables, making code more linear, getting rid of a BUG_ON. 5. After btrfs_rmap_block is sane it's easier to reason about some of its invariants, allowing me to simplify exclude_super_stripes. This series survived full xfstest with no visible regressions. Nikolay Borisov (6): btrfs: Move and unexport btrfs_rmap_block btrfs: selftests: Add support for dummy devices btrfs: Add self-tests for btrfs_rmap_block btrfs: Refactor btrfs_rmap_block to improve readability btrfs: Read stripe len directly in btrfs_rmap_block btrfs: Remove dead code exclude_super_stripes fs/btrfs/block-group.c | 107 +++++++++++++++++++++---- fs/btrfs/tests/btrfs-tests.c | 28 +++++++ fs/btrfs/tests/btrfs-tests.h | 1 + fs/btrfs/tests/extent-map-tests.c | 128 +++++++++++++++++++++++++++++- fs/btrfs/volumes.c | 69 ---------------- fs/btrfs/volumes.h | 2 - 6 files changed, 246 insertions(+), 89 deletions(-) -- 2.17.1
