xfs: refactor quota type testing
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 16 Jul 2020 00:50:57 +0000 (17:50 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Wed, 29 Jul 2020 03:24:14 +0000 (20:24 -0700)
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>
fs/xfs/xfs_dquot.c
fs/xfs/xfs_trans_dquot.c

index 4053e7e390f1906310e98be99a03b84bfc707ed7..ce946d53bb613c654569eb507d3cad78a14f8eec 100644 (file)
@@ -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;
 
        /*
@@ -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);
 
        /*
index 19d3e283aafaaf437730e0baacd4244f42350681..518cf0347891c97b0ff3622a45f60823bdd17c8e 100644 (file)
@@ -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);