Hi folks, v6: https://lore.kernel.org/linux-xfs/20210126125621.3846735-1-hsiangkao@xxxxxxxxxx/ This patchset attempts to support shrinking free space in the last AG. This version mainly addresses previous review of v6. hope I don't miss any previous comments. Details in the changelog. gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/linux.git/ tags/xfs/shrink_lastag_v7 changes since v6: - rebase on the latest for-next; - [1/5] refine the comment (Brian); - [2/5] keep `delta' constant as nb - mp->m_sb.sb_dblocks, avoid `extent' boolean but introduce `lastag_resetagres' for growfs per-AG reservation judgement (Brian, Darrick); - [3/5] pass in agno directly for xfs_ag_shrink_space() (Brian); - [4/5] fix growfs 1 agcount case (Brian); - [4/5] refine xfs_fs_reserve_ag_blocks() in the end only for growfs due to mp->m_finobt_nores == false (Brian); - [5/5] broadened error tag (Brian, although I think xfs_mod_fdblocks shouldn't be triggered then.) Thanks for the time! Thanks, Gao Xiang xfsprogs: https://lore.kernel.org/r/20201028114010.545331-1-hsiangkao@xxxxxxxxxx xfstests: https://lore.kernel.org/r/20201028230909.639698-1-hsiangkao@xxxxxxxxxx Gao Xiang (5): xfs: update lazy sb counters immediately for resizefs xfs: hoist out xfs_resizefs_init_new_ags() xfs: introduce xfs_ag_shrink_space() xfs: support shrinking unused space in the last AG xfs: add error injection for per-AG resv failure fs/xfs/libxfs/xfs_ag.c | 108 +++++++++++++++++++ fs/xfs/libxfs/xfs_ag.h | 2 + fs/xfs/libxfs/xfs_ag_resv.c | 6 +- fs/xfs/libxfs/xfs_errortag.h | 4 +- fs/xfs/xfs_error.c | 2 + fs/xfs/xfs_fsops.c | 195 ++++++++++++++++++++++------------- fs/xfs/xfs_trans.c | 1 - 7 files changed, 242 insertions(+), 76 deletions(-) -- 2.27.0