Skip to content

Commit

Permalink
xfs: refactor quota type testing
Browse files Browse the repository at this point in the history
Certain functions can only act upon one quota type, so refactor those
functions to use switch statements, in keeping with all the other high
level xfs quota api calls.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
  • Loading branch information
Darrick J. Wong committed Jul 29, 2020
1 parent 00a342e commit e6eb603
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 15 deletions.
29 changes: 18 additions & 11 deletions fs/xfs/xfs_dquot.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,24 @@ xfs_qm_init_dquot_blk(
ASSERT(tp);
ASSERT(xfs_buf_islocked(bp));

switch (type) {
case XFS_DQTYPE_USER:
qflag = XFS_UQUOTA_CHKD;
blftype = XFS_BLF_UDQUOT_BUF;
break;
case XFS_DQTYPE_PROJ:
qflag = XFS_PQUOTA_CHKD;
blftype = XFS_BLF_PDQUOT_BUF;
break;
case XFS_DQTYPE_GROUP:
qflag = XFS_GQUOTA_CHKD;
blftype = XFS_BLF_GDQUOT_BUF;
break;
default:
ASSERT(0);
return;
}

d = bp->b_addr;

/*
Expand All @@ -190,17 +208,6 @@ xfs_qm_init_dquot_blk(
}
}

if (type & XFS_DQTYPE_USER) {
qflag = XFS_UQUOTA_CHKD;
blftype = XFS_BLF_UDQUOT_BUF;
} else if (type & XFS_DQTYPE_PROJ) {
qflag = XFS_PQUOTA_CHKD;
blftype = XFS_BLF_PDQUOT_BUF;
} else {
qflag = XFS_GQUOTA_CHKD;
blftype = XFS_BLF_GDQUOT_BUF;
}

xfs_trans_dquot_buf(tp, bp, blftype);

/*
Expand Down
15 changes: 11 additions & 4 deletions fs/xfs/xfs_trans_dquot.c
Original file line number Diff line number Diff line change
Expand Up @@ -556,14 +556,21 @@ xfs_quota_warn(
struct xfs_dquot *dqp,
int type)
{
enum quota_type qtype;
enum quota_type qtype;

if (dqp->dq_flags & XFS_DQTYPE_PROJ)
switch (xfs_dquot_type(dqp)) {
case XFS_DQTYPE_PROJ:
qtype = PRJQUOTA;
else if (dqp->dq_flags & XFS_DQTYPE_USER)
break;
case XFS_DQTYPE_USER:
qtype = USRQUOTA;
else
break;
case XFS_DQTYPE_GROUP:
qtype = GRPQUOTA;
break;
default:
return;
}

quota_send_warning(make_kqid(&init_user_ns, qtype, dqp->q_id),
mp->m_super->s_dev, type);
Expand Down

0 comments on commit e6eb603

Please sign in to comment.