summaryrefslogtreecommitdiff
tag nameremove-quota-qcore_2020-07-29 (101da24178eac497f600bb8aa1f2c11b7f97bc9a)
tag date2020-07-29 20:30:35 -0700
tagged byDarrick J. Wong <darrick.wong@oracle.com>
tagged objectcommit 9d5c7b38f5...
xfs: remove xfs_disk_quot from incore dquot
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. In v2 we do some more work cleaning up the d_flags/dq_flags mess, finally add the dquot cluster size to the ondisk format declarations (because the cluster size actually /does/ affect that), shorten some of the long names from v1, and fix quota warning count having been broken for years. In v3 we separate the incore dquot's dq_flags fields into separate q_type and q_flags fields, and introduce a new xfs_dqtype_t to make it obvious when a function operates on a *single* quota type. This also makes it easier to validate that outside functions aren't going to screw up the incore dquot state. v4: merge the dquot type flags when possible. I still plan to keep the incore type/state flag namespace separate from the ondisk flags so that I can add more flags to the ondisk dquot in the next series.