Hi all, Replace all the open-coded locking of realtime metadata inodes with a single rtlock function that can lock all the pieces that the caller wants in a single call. This will be important for maintaining correct locking order later when we start adding more realtime metadata inodes. 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=refactor-rt-locking xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=refactor-rt-locking --- fs/xfs/libxfs/xfs_bmap.c | 7 ++----- fs/xfs/scrub/bmap.c | 4 ++++ fs/xfs/scrub/common.c | 32 ++++++++++++++++++++++++++++++ fs/xfs/scrub/common.h | 2 ++ fs/xfs/scrub/rtbitmap.c | 9 ++------ fs/xfs/scrub/rtsummary.c | 26 +++++------------------- fs/xfs/scrub/scrub.c | 3 ++- fs/xfs/scrub/scrub.h | 8 ++++++++ fs/xfs/xfs_bmap_util.c | 5 +---- fs/xfs/xfs_fsmap.c | 4 ++-- fs/xfs/xfs_rtalloc.c | 49 ++++++++++++++++++++++++++++++++++++++-------- fs/xfs/xfs_rtalloc.h | 9 ++++++++ 12 files changed, 110 insertions(+), 48 deletions(-)