Hi all, This series creates a new NOALLOC flag for allocation groups that causes the block and inode allocators to look elsewhere when trying to allocate resources. This is either the first part of a patchset to implement online shrinking (set noalloc on the last AGs, run fsr to move the files and directories) or freeze-free rmapbt rebuilding (set noalloc to prevent creation of new mappings, then hook deletion of old mappings). This is still totally a research project. 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=noalloc-ags xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=noalloc-ags --- fs/xfs/libxfs/xfs_ag.c | 120 +++++++++++++++++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_ag.h | 4 + fs/xfs/libxfs/xfs_ag_resv.c | 26 ++++++++- fs/xfs/libxfs/xfs_fs.h | 5 ++ fs/xfs/libxfs/xfs_ialloc.c | 5 +- fs/xfs/scrub/fscounters.c | 3 + fs/xfs/xfs_fsops.c | 14 +++++ fs/xfs/xfs_ioctl.c | 4 + fs/xfs/xfs_mount.h | 11 ++-- fs/xfs/xfs_super.c | 1 fs/xfs/xfs_trace.h | 46 ++++++++++++++++ 11 files changed, 227 insertions(+), 12 deletions(-)