Hi all, This series hoists inode creation, renaming, and deletion operations to libxfs in anticipation of the metadata inode directory feature, which maintains a directory tree of metadata inodes. This will be necessary for further enhancements to the realtime feature, subvolume support. There aren't supposed to be any functional changes in this intense refactoring -- we just split the functions into pieces that are generic and pieces that are specific to libxfs clients. As a bonus, we can remove various open-coded pieces of mkfs.xfs and xfs_repair when this series gets to xfsprogs. 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=inode-refactor xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=inode-refactor --- fs/xfs/Makefile | 1 fs/xfs/libxfs/xfs_bmap.c | 42 + fs/xfs/libxfs/xfs_bmap.h | 3 fs/xfs/libxfs/xfs_dir2.c | 479 +++++++++++++++ fs/xfs/libxfs/xfs_dir2.h | 19 + fs/xfs/libxfs/xfs_ialloc.c | 20 + fs/xfs/libxfs/xfs_inode_util.c | 698 ++++++++++++++++++++++ fs/xfs/libxfs/xfs_inode_util.h | 79 +++ fs/xfs/libxfs/xfs_shared.h | 7 fs/xfs/libxfs/xfs_trans_inode.c | 2 fs/xfs/scrub/tempfile.c | 20 - fs/xfs/xfs_inode.c | 1231 +++++---------------------------------- fs/xfs/xfs_inode.h | 46 + fs/xfs/xfs_ioctl.c | 60 -- fs/xfs/xfs_iops.c | 51 +- fs/xfs/xfs_linux.h | 2 fs/xfs/xfs_qm.c | 8 fs/xfs/xfs_reflink.h | 10 fs/xfs/xfs_symlink.c | 22 - fs/xfs/xfs_trans.h | 1 20 files changed, 1564 insertions(+), 1237 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_inode_util.c create mode 100644 fs/xfs/libxfs/xfs_inode_util.h