Hi all, This series cleans up the inode walk that quotaoff does to detach dquots from the current set of incore inodes. Once we've cleared away all the baggage that was implemented for "no tag" walks (since this is the only caller that doesn't use tags), we can speed up quotaoff by making it detach more aggressively. This gets us into shape for further inode walk cleanups in the next series. Christoph suggested last cycle that we 'simply' change quotaoff not to allow deactivating quota entirely, but as these cleanups are to enable one major change in behavior (deferred inode inactivation) I do not want to add a second behavior change (quotaoff) as a dependency. To be blunt: Additional cleanups are not in scope for this series. v2: rebase to 5.13-rc4 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=quotaoff-cleanups-5.14 --- fs/xfs/xfs_icache.c | 119 ++++++++++++++++++++++++++++++++++++++++++++-- fs/xfs/xfs_icache.h | 17 +++++-- fs/xfs/xfs_inode.c | 22 ++++----- fs/xfs/xfs_qm.h | 1 fs/xfs/xfs_qm_syscalls.c | 54 +-------------------- fs/xfs/xfs_super.c | 32 +++++++++++- 6 files changed, 167 insertions(+), 78 deletions(-)