Hi all, In this series, we make some changes to the incore bitmap code: First, we shorten the prefix to 'xbitmap'. Then, we rework some utility functions for later use by online repair and clarify how the walk functions are supposed to be used. Finally, we use all these new pieces to convert the incore bitmap to use an interval tree instead of linked lists. This lifts the limitation that callers had to be careful not to set a range that was already set; and gets us ready for the btree rebuilder functions needing to be able to set bits in a bitmap and generate maximal contiguous extents for the set ranges. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=repair-bitmap-rework --- fs/xfs/scrub/agheader_repair.c | 77 +++++---- fs/xfs/scrub/bitmap.c | 348 +++++++++++++++++++++++----------------- fs/xfs/scrub/bitmap.h | 35 ++-- fs/xfs/scrub/repair.c | 60 ++++--- 4 files changed, 297 insertions(+), 223 deletions(-)