[00/18] xfs: remove xfs_disk_quot from incore dquot
mbox series

Message ID 159353170983.2864738.16885438169173786208.stgit@magnolia
Headers show
  • xfs: remove xfs_disk_quot from incore dquot
Related show


Darrick J. Wong June 30, 2020, 3:41 p.m. UTC
Hi all,

This series replaces q_core (the ondisk quota structure) in the incore
dquot structure with a quota resource control structure containing the
count, reservation, limits, timers, and warnings.  Each dquot gets three
of these resource control structures (blocks, inodes, rt blocks).

Doing this enables us to remove a whole lot of noisy endian conversions
in the quota code, and enables us to refactor a bunch of open-coded
logic to pass around pointers to quota resource control structs.

Note that these cleanups are a prerequisite for the bigtime patchset, as
it depends on incore quota timers being time64_t to take advantage of
the 64-bit time functions in the kernel with fewer places to trip over
the ondisk format.

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.


kernel git tree:

xfsprogs git tree:
 fs/xfs/libxfs/xfs_quota_defs.h |    2 
 fs/xfs/scrub/quota.c           |   69 +++-----
 fs/xfs/xfs_dquot.c             |  283 +++++++++++++++++++---------------
 fs/xfs/xfs_dquot.h             |   54 +++++--
 fs/xfs/xfs_dquot_item.c        |    8 +
 fs/xfs/xfs_iomap.c             |    6 -
 fs/xfs/xfs_qm.c                |   92 +++++------
 fs/xfs/xfs_qm.h                |   42 ++---
 fs/xfs/xfs_qm_bhv.c            |   20 +-
 fs/xfs/xfs_qm_syscalls.c       |  231 +++++++++++++++-------------
 fs/xfs/xfs_quotaops.c          |   12 +
 fs/xfs/xfs_trace.h             |  160 ++++++++++++++++++-
 fs/xfs/xfs_trans_dquot.c       |  329 ++++++++++++++++++++--------------------
 13 files changed, 744 insertions(+), 564 deletions(-)