OSDN Git Service

xfs: Replace macro XFS_DQ_TO_QIP with a function
authorChandra Seetharaman <sekharan@us.ibm.com>
Thu, 27 Jun 2013 22:25:06 +0000 (17:25 -0500)
committerBen Myers <bpm@sgi.com>
Fri, 28 Jun 2013 18:12:42 +0000 (13:12 -0500)
In preparation for combined pquota/gquota support, for the sake
of readability, change the macro to an inline function.

Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_dquot.c
fs/xfs/xfs_dquot.h
fs/xfs/xfs_qm.h

index 09af322..7d184de 100644 (file)
@@ -573,7 +573,7 @@ xfs_qm_dqtobp(
        xfs_bmbt_irec_t map;
        int             nmaps = 1, error;
        xfs_buf_t       *bp;
-       xfs_inode_t     *quotip = XFS_DQ_TO_QIP(dqp);
+       struct xfs_inode        *quotip = xfs_dq_to_quota_inode(dqp);
        xfs_mount_t     *mp = dqp->q_mount;
        xfs_dqid_t      id = be32_to_cpu(dqp->q_core.d_id);
        xfs_trans_t     *tp = (tpp ? *tpp : NULL);
index 4f0ebfc..b596626 100644 (file)
@@ -143,10 +143,6 @@ static inline xfs_dquot_t *xfs_inode_dquot(struct xfs_inode *ip, int type)
 #define XFS_QM_ISUDQ(dqp)      ((dqp)->dq_flags & XFS_DQ_USER)
 #define XFS_QM_ISPDQ(dqp)      ((dqp)->dq_flags & XFS_DQ_PROJ)
 #define XFS_QM_ISGDQ(dqp)      ((dqp)->dq_flags & XFS_DQ_GROUP)
-#define XFS_DQ_TO_QINF(dqp)    ((dqp)->q_mount->m_quotainfo)
-#define XFS_DQ_TO_QIP(dqp)     (XFS_QM_ISUDQ(dqp) ? \
-                                XFS_DQ_TO_QINF(dqp)->qi_uquotaip : \
-                                XFS_DQ_TO_QINF(dqp)->qi_gquotaip)
 
 extern int             xfs_qm_dqread(struct xfs_mount *, xfs_dqid_t, uint,
                                        uint, struct xfs_dquot  **);
index 96568c2..051e43a 100644 (file)
@@ -85,6 +85,22 @@ xfs_dquot_tree(
        }
        return NULL;
 }
+
+static inline struct xfs_inode *
+xfs_dq_to_quota_inode(struct xfs_dquot *dqp)
+{
+       switch (dqp->dq_flags & XFS_DQ_ALLTYPES) {
+       case XFS_DQ_USER:
+               return dqp->q_mount->m_quotainfo->qi_uquotaip;
+       case XFS_DQ_GROUP:
+       case XFS_DQ_PROJ:
+               return dqp->q_mount->m_quotainfo->qi_gquotaip;
+       default:
+               ASSERT(0);
+       }
+       return NULL;
+}
+
 extern int     xfs_qm_calc_dquots_per_chunk(struct xfs_mount *mp,
                                             unsigned int nbblks);
 extern void    xfs_trans_mod_dquot(xfs_trans_t *, xfs_dquot_t *, uint, long);