[PATCHSET v4.0 10/10] xfs: store quota files in the metadir

Darrick J. Wong
2024-08-22T23:58:46Z

Hi all,

Store the quota files in the metadata directory tree instead of the superblock.
Since we're introducing a new incompat feature flag, let's also make the mount
process bring up quotas in whatever state they were when the filesystem was
last unmounted, instead of requiring sysadmins to remember that themselves.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems. 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=metadir-quotas

xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=metadir-quotas

fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=metadir-quotas
---
Commits in this patchset:
* xfs: refactor xfs_qm_destroy_quotainos
* xfs: use metadir for quota inodes
* xfs: scrub quota file metapaths
* xfs: persist quota flags with metadir
* xfs: update sb field checks when metadir is turned on
* xfs: enable metadata directory feature
---
fs/xfs/libxfs/xfs_dquot_buf.c | 190 ++++++++++++++++++++++++++++++
fs/xfs/libxfs/xfs_format.h | 3
fs/xfs/libxfs/xfs_fs.h | 6 +
fs/xfs/libxfs/xfs_quota_defs.h | 43 +++++++
fs/xfs/libxfs/xfs_sb.c | 1
fs/xfs/scrub/agheader.c | 36 ++++--
fs/xfs/scrub/metapath.c | 76 ++++++++++++
fs/xfs/xfs_mount.c | 15 ++
fs/xfs/xfs_mount.h | 6 +
fs/xfs/xfs_qm.c | 250 +++++++++++++++++++++++++++++++---------
fs/xfs/xfs_qm_bhv.c | 18 +++
fs/xfs/xfs_quota.h | 2
fs/xfs/xfs_super.c | 22 ++++
13 files changed, 597 insertions(+), 71 deletions(-)