Define a new function xfs_this_quota_on()
Create a new function xfs_this_quota_on() that takes a xfs_mount data structure and a disk quota type and returns true if the specified type of quota is ON in the xfs_mount data structure. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
b995730845
commit
6967b964c1
|
@ -358,7 +358,7 @@ xfs_qm_dqalloc(
|
|||
* Return if this type of quotas is turned off while we didn't
|
||||
* have an inode lock
|
||||
*/
|
||||
if (XFS_IS_THIS_QUOTA_OFF(dqp)) {
|
||||
if (!xfs_this_quota_on(dqp->q_mount, dqp->dq_flags)) {
|
||||
xfs_iunlock(quotip, XFS_ILOCK_EXCL);
|
||||
return (ESRCH);
|
||||
}
|
||||
|
@ -460,7 +460,7 @@ xfs_qm_dqtobp(
|
|||
dqp->q_fileoffset = (xfs_fileoff_t)id / mp->m_quotainfo->qi_dqperchunk;
|
||||
|
||||
xfs_ilock(quotip, XFS_ILOCK_SHARED);
|
||||
if (XFS_IS_THIS_QUOTA_OFF(dqp)) {
|
||||
if (!xfs_this_quota_on(dqp->q_mount, dqp->dq_flags)) {
|
||||
/*
|
||||
* Return if this type of quotas is turned off while we
|
||||
* didn't have the quota inode lock.
|
||||
|
|
|
@ -115,6 +115,19 @@ static inline void xfs_dqunlock_nonotify(struct xfs_dquot *dqp)
|
|||
mutex_unlock(&dqp->q_qlock);
|
||||
}
|
||||
|
||||
static inline int xfs_this_quota_on(struct xfs_mount *mp, int type)
|
||||
{
|
||||
switch (type & XFS_DQ_ALLTYPES) {
|
||||
case XFS_DQ_USER:
|
||||
return XFS_IS_UQUOTA_ON(mp);
|
||||
case XFS_DQ_GROUP:
|
||||
case XFS_DQ_PROJ:
|
||||
return XFS_IS_OQUOTA_ON(mp);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#define XFS_DQ_IS_LOCKED(dqp) (mutex_is_locked(&((dqp)->q_qlock)))
|
||||
#define XFS_DQ_IS_DIRTY(dqp) ((dqp)->dq_flags & XFS_DQ_DIRTY)
|
||||
#define XFS_QM_ISUDQ(dqp) ((dqp)->dq_flags & XFS_DQ_USER)
|
||||
|
@ -125,10 +138,6 @@ static inline void xfs_dqunlock_nonotify(struct xfs_dquot *dqp)
|
|||
XFS_DQ_TO_QINF(dqp)->qi_uquotaip : \
|
||||
XFS_DQ_TO_QINF(dqp)->qi_gquotaip)
|
||||
|
||||
#define XFS_IS_THIS_QUOTA_OFF(d) (! (XFS_QM_ISUDQ(d) ? \
|
||||
(XFS_IS_UQUOTA_ON((d)->q_mount)) : \
|
||||
(XFS_IS_OQUOTA_ON((d)->q_mount))))
|
||||
|
||||
extern int xfs_qm_dqread(struct xfs_mount *, xfs_dqid_t, uint,
|
||||
uint, struct xfs_dquot **);
|
||||
extern void xfs_qm_dqdestroy(xfs_dquot_t *);
|
||||
|
|
Loading…
Reference in New Issue