Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 280312
b: refs/heads/master
c: 800b484
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Ben Myers committed Dec 12, 2011
1 parent d219eb0 commit 29bb956
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a7ef9bd79f488c643edfda7dedcbdb0a1b8e7552
refs/heads/master: 800b484ec0262946262ad20561a8081fd31f4a6f
31 changes: 4 additions & 27 deletions trunk/fs/xfs/xfs_dquot.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
xfs_dqunlock(
xfs_dquot_t *dqp)
{
mutex_unlock(&(dqp->q_qlock));
xfs_dqunlock_nonotify(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_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.
*
Expand Down Expand Up @@ -1370,7 +1347,7 @@ xfs_qm_dqpurge(
* Block on the flush lock after nudging dquot buffer,
* if it is incore.
*/
xfs_qm_dqflock_pushbuf_wait(dqp);
xfs_dqflock_pushbuf_wait(dqp);
}

/*
Expand Down Expand Up @@ -1427,7 +1404,7 @@ xfs_qm_dqpurge(
* wait on the flush lock.
*/
void
xfs_qm_dqflock_pushbuf_wait(
xfs_dqflock_pushbuf_wait(
xfs_dquot_t *dqp)
{
xfs_mount_t *mp = dqp->q_mount;
Expand Down
25 changes: 19 additions & 6 deletions trunk/fs/xfs/xfs_dquot.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,21 @@ static inline void xfs_dqfunlock(xfs_dquot_t *dqp)
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_DIRTY(dqp) ((dqp)->dq_flags & XFS_DQ_DIRTY)
#define XFS_QM_ISUDQ(dqp) ((dqp)->dq_flags & XFS_DQ_USER)
Expand All @@ -120,18 +135,16 @@ extern void xfs_qm_dqdestroy(xfs_dquot_t *);
extern int xfs_qm_dqflush(xfs_dquot_t *, uint);
extern int xfs_qm_dqpurge(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 *,
xfs_disk_dquot_t *);
extern void xfs_qm_adjust_dqlimits(xfs_mount_t *,
xfs_disk_dquot_t *);
extern int xfs_qm_dqget(xfs_mount_t *, xfs_inode_t *,
xfs_dqid_t, uint, uint, 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_dqunlock(xfs_dquot_t *);
extern void xfs_dqunlock_nonotify(xfs_dquot_t *);

extern void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
extern void xfs_dqunlock(struct xfs_dquot *);
extern void xfs_dqflock_pushbuf_wait(struct xfs_dquot *dqp);

#endif /* __XFS_DQUOT_H__ */
2 changes: 1 addition & 1 deletion trunk/fs/xfs/xfs_dquot_item.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ xfs_qm_dquot_logitem_trylock(
if (atomic_read(&dqp->q_pincount) > 0)
return XFS_ITEM_PINNED;

if (!xfs_qm_dqlock_nowait(dqp))
if (!xfs_dqlock_nowait(dqp))
return XFS_ITEM_LOCKED;

if (!xfs_dqflock_nowait(dqp)) {
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/xfs/xfs_qm.c
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ xfs_qm_dqflush_all(
* out immediately. We'll be able to acquire
* 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
Expand Down

0 comments on commit 29bb956

Please sign in to comment.