On Tue, Apr 20, 2021 at 09:22:54AM +0200, Christoph Hellwig wrote: > Hi all, > > disabling quota accounting (vs just enforcement) on a running file system > is a fundamentally race and hard to get right operation. It also has > very little practical use. > > This causes xfs/007 xfs/106 xfs/220 xfs/304 xfs/305 to fail, as they > specifically test this functionality. What kind of failures do you get now? Are they all a result of the _ACCT flags never going away? Which I guess means that tests expecting to get ENOSYS after you turn off _ACCT will now no longer error out? I've been wondering recently why we can't just apply "xfs: skip dquot reservations if quota is inactive" and change dqpurge_all to relog the quotaoff item if !xfs_log_item_in_current_chkpt to prevent tail pinning. AFAICT we can log a qoffend and a new qoff (just like we do with regular intents) and it won't have any bad effect on recovery. --D > > Note that the quotaitem log recovery code is left for to make sure we > don't increase inconsistent recovery states. > > Diffstat: > libxfs/xfs_quota_defs.h | 30 ---- > libxfs/xfs_trans_resv.c | 30 ---- > libxfs/xfs_trans_resv.h | 2 > scrub/quota.c | 2 > xfs_dquot.c | 3 > xfs_dquot_item.c | 134 --------------------- > xfs_dquot_item.h | 17 -- > xfs_ioctl.c | 2 > xfs_iops.c | 4 > xfs_mount.c | 4 > xfs_qm.c | 28 ++-- > xfs_qm.h | 4 > xfs_qm_syscalls.c | 300 ------------------------------------------------ > xfs_quotaops.c | 57 +++++---- > xfs_super.c | 51 +++----- > xfs_trans_dquot.c | 49 ------- > 16 files changed, 84 insertions(+), 633 deletions(-)