Hi all, The realtime code uses xfs_rtblock_t and xfs_fsblock_t in a lot of places, and it's very confusing. Clean up all the type usage so that an xfs_rtblock_t is always a block within the realtime volume, an xfs_fileoff_t is always a file offset within a realtime metadata file, and an xfs_rtxnumber_t is always a rt extent within the realtime volume. 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=clean-up-realtime-units xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=clean-up-realtime-units --- fs/xfs/libxfs/xfs_bmap.c | 4 - fs/xfs/libxfs/xfs_format.h | 2 fs/xfs/libxfs/xfs_rtbitmap.c | 121 ++++++++++----------- fs/xfs/libxfs/xfs_rtbitmap.h | 79 ++++++++++++++ fs/xfs/libxfs/xfs_sb.h | 2 fs/xfs/libxfs/xfs_types.c | 4 - fs/xfs/libxfs/xfs_types.h | 8 + fs/xfs/scrub/bmap.c | 4 + fs/xfs/scrub/common.c | 58 ++++++++++ fs/xfs/scrub/common.h | 17 +++ fs/xfs/scrub/fscounters.c | 2 fs/xfs/scrub/rtbitmap.c | 23 ++-- fs/xfs/scrub/rtsummary.c | 30 ++--- fs/xfs/scrub/scrub.c | 1 fs/xfs/scrub/scrub.h | 9 ++ fs/xfs/scrub/trace.h | 7 + fs/xfs/xfs_bmap_item.c | 2 fs/xfs/xfs_bmap_util.c | 18 +-- fs/xfs/xfs_fsmap.c | 2 fs/xfs/xfs_rtalloc.c | 245 ++++++++++++++++++++++-------------------- fs/xfs/xfs_rtalloc.h | 99 ++--------------- 21 files changed, 417 insertions(+), 320 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_rtbitmap.h