xfs: cleanup dquot locking helpers
Mark the trivial lock wrappers as inline, and make the naming consistent for all of them. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
a7ef9bd79f
commit
800b484ec0
|
@ -1257,40 +1257,17 @@ xfs_qm_dqflush(
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
xfs_qm_dqlock_nowait(
|
|
||||||
xfs_dquot_t *dqp)
|
|
||||||
{
|
|
||||||
return mutex_trylock(&dqp->q_qlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
xfs_dqlock(
|
|
||||||
xfs_dquot_t *dqp)
|
|
||||||
{
|
|
||||||
mutex_lock(&dqp->q_qlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
xfs_dqunlock(
|
xfs_dqunlock(
|
||||||
xfs_dquot_t *dqp)
|
xfs_dquot_t *dqp)
|
||||||
{
|
{
|
||||||
mutex_unlock(&(dqp->q_qlock));
|
xfs_dqunlock_nonotify(dqp);
|
||||||
if (dqp->q_logitem.qli_dquot == dqp) {
|
if (dqp->q_logitem.qli_dquot == dqp) {
|
||||||
/* Once was dqp->q_mount, but might just have been cleared */
|
|
||||||
xfs_trans_unlocked_item(dqp->q_logitem.qli_item.li_ailp,
|
xfs_trans_unlocked_item(dqp->q_logitem.qli_item.li_ailp,
|
||||||
(xfs_log_item_t*)&(dqp->q_logitem));
|
&dqp->q_logitem.qli_item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
xfs_dqunlock_nonotify(
|
|
||||||
xfs_dquot_t *dqp)
|
|
||||||
{
|
|
||||||
mutex_unlock(&(dqp->q_qlock));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lock two xfs_dquot structures.
|
* Lock two xfs_dquot structures.
|
||||||
*
|
*
|
||||||
|
@ -1370,7 +1347,7 @@ xfs_qm_dqpurge(
|
||||||
* Block on the flush lock after nudging dquot buffer,
|
* Block on the flush lock after nudging dquot buffer,
|
||||||
* if it is incore.
|
* if it is incore.
|
||||||
*/
|
*/
|
||||||
xfs_qm_dqflock_pushbuf_wait(dqp);
|
xfs_dqflock_pushbuf_wait(dqp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1427,7 +1404,7 @@ xfs_qm_dqpurge(
|
||||||
* wait on the flush lock.
|
* wait on the flush lock.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
xfs_qm_dqflock_pushbuf_wait(
|
xfs_dqflock_pushbuf_wait(
|
||||||
xfs_dquot_t *dqp)
|
xfs_dquot_t *dqp)
|
||||||
{
|
{
|
||||||
xfs_mount_t *mp = dqp->q_mount;
|
xfs_mount_t *mp = dqp->q_mount;
|
||||||
|
|
|
@ -102,6 +102,21 @@ static inline void xfs_dqfunlock(xfs_dquot_t *dqp)
|
||||||
complete(&dqp->q_flush);
|
complete(&dqp->q_flush);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int xfs_dqlock_nowait(struct xfs_dquot *dqp)
|
||||||
|
{
|
||||||
|
return mutex_trylock(&dqp->q_qlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void xfs_dqlock(struct xfs_dquot *dqp)
|
||||||
|
{
|
||||||
|
mutex_lock(&dqp->q_qlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void xfs_dqunlock_nonotify(struct xfs_dquot *dqp)
|
||||||
|
{
|
||||||
|
mutex_unlock(&dqp->q_qlock);
|
||||||
|
}
|
||||||
|
|
||||||
#define XFS_DQ_IS_LOCKED(dqp) (mutex_is_locked(&((dqp)->q_qlock)))
|
#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_DQ_IS_DIRTY(dqp) ((dqp)->dq_flags & XFS_DQ_DIRTY)
|
||||||
#define XFS_QM_ISUDQ(dqp) ((dqp)->dq_flags & XFS_DQ_USER)
|
#define XFS_QM_ISUDQ(dqp) ((dqp)->dq_flags & XFS_DQ_USER)
|
||||||
|
@ -120,8 +135,6 @@ extern void xfs_qm_dqdestroy(xfs_dquot_t *);
|
||||||
extern int xfs_qm_dqflush(xfs_dquot_t *, uint);
|
extern int xfs_qm_dqflush(xfs_dquot_t *, uint);
|
||||||
extern int xfs_qm_dqpurge(xfs_dquot_t *);
|
extern int xfs_qm_dqpurge(xfs_dquot_t *);
|
||||||
extern void xfs_qm_dqunpin_wait(xfs_dquot_t *);
|
extern void xfs_qm_dqunpin_wait(xfs_dquot_t *);
|
||||||
extern int xfs_qm_dqlock_nowait(xfs_dquot_t *);
|
|
||||||
extern void xfs_qm_dqflock_pushbuf_wait(xfs_dquot_t *dqp);
|
|
||||||
extern void xfs_qm_adjust_dqtimers(xfs_mount_t *,
|
extern void xfs_qm_adjust_dqtimers(xfs_mount_t *,
|
||||||
xfs_disk_dquot_t *);
|
xfs_disk_dquot_t *);
|
||||||
extern void xfs_qm_adjust_dqlimits(xfs_mount_t *,
|
extern void xfs_qm_adjust_dqlimits(xfs_mount_t *,
|
||||||
|
@ -129,9 +142,9 @@ extern void xfs_qm_adjust_dqlimits(xfs_mount_t *,
|
||||||
extern int xfs_qm_dqget(xfs_mount_t *, xfs_inode_t *,
|
extern int xfs_qm_dqget(xfs_mount_t *, xfs_inode_t *,
|
||||||
xfs_dqid_t, uint, uint, xfs_dquot_t **);
|
xfs_dqid_t, uint, uint, xfs_dquot_t **);
|
||||||
extern void xfs_qm_dqput(xfs_dquot_t *);
|
extern void xfs_qm_dqput(xfs_dquot_t *);
|
||||||
extern void xfs_dqlock(xfs_dquot_t *);
|
|
||||||
extern void xfs_dqlock2(xfs_dquot_t *, xfs_dquot_t *);
|
extern void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
|
||||||
extern void xfs_dqunlock(xfs_dquot_t *);
|
extern void xfs_dqunlock(struct xfs_dquot *);
|
||||||
extern void xfs_dqunlock_nonotify(xfs_dquot_t *);
|
extern void xfs_dqflock_pushbuf_wait(struct xfs_dquot *dqp);
|
||||||
|
|
||||||
#endif /* __XFS_DQUOT_H__ */
|
#endif /* __XFS_DQUOT_H__ */
|
||||||
|
|
|
@ -236,7 +236,7 @@ xfs_qm_dquot_logitem_trylock(
|
||||||
if (atomic_read(&dqp->q_pincount) > 0)
|
if (atomic_read(&dqp->q_pincount) > 0)
|
||||||
return XFS_ITEM_PINNED;
|
return XFS_ITEM_PINNED;
|
||||||
|
|
||||||
if (!xfs_qm_dqlock_nowait(dqp))
|
if (!xfs_dqlock_nowait(dqp))
|
||||||
return XFS_ITEM_LOCKED;
|
return XFS_ITEM_LOCKED;
|
||||||
|
|
||||||
if (!xfs_dqflock_nowait(dqp)) {
|
if (!xfs_dqflock_nowait(dqp)) {
|
||||||
|
|
|
@ -443,7 +443,7 @@ again:
|
||||||
* out immediately. We'll be able to acquire
|
* out immediately. We'll be able to acquire
|
||||||
* the flush lock when the I/O completes.
|
* the flush lock when the I/O completes.
|
||||||
*/
|
*/
|
||||||
xfs_qm_dqflock_pushbuf_wait(dqp);
|
xfs_dqflock_pushbuf_wait(dqp);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Let go of the mplist lock. We don't want to hold it
|
* Let go of the mplist lock. We don't want to hold it
|
||||||
|
|
Loading…
Reference in New Issue