xfs: use a per-resource struct for incore dquot data
Introduce a new struct xfs_dquot_res that we'll use to track all the incore data for a particular resource type (block, inode, rt block). This will help us (once we've eliminated q_core) to declutter quota functions that currently open-code field access or pass around fields around explicitly. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Allison Collins <allison.henderson@oracle.com>
This commit is contained in:
@@ -307,7 +307,7 @@ xfs_quota_need_throttle(
|
||||
return false;
|
||||
|
||||
/* under the lo watermark, no throttle */
|
||||
if (dq->q_res_bcount + alloc_blocks < dq->q_prealloc_lo_wmark)
|
||||
if (dq->q_blk.reserved + alloc_blocks < dq->q_prealloc_lo_wmark)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -326,13 +326,13 @@ xfs_quota_calc_throttle(
|
||||
struct xfs_dquot *dq = xfs_inode_dquot(ip, type);
|
||||
|
||||
/* no dq, or over hi wmark, squash the prealloc completely */
|
||||
if (!dq || dq->q_res_bcount >= dq->q_prealloc_hi_wmark) {
|
||||
if (!dq || dq->q_blk.reserved >= dq->q_prealloc_hi_wmark) {
|
||||
*qblocks = 0;
|
||||
*qfreesp = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
freesp = dq->q_prealloc_hi_wmark - dq->q_res_bcount;
|
||||
freesp = dq->q_prealloc_hi_wmark - dq->q_blk.reserved;
|
||||
if (freesp < dq->q_low_space[XFS_QLOWSP_5_PCNT]) {
|
||||
shift = 2;
|
||||
if (freesp < dq->q_low_space[XFS_QLOWSP_3_PCNT])
|
||||
|
Reference in New Issue
Block a user