aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/quota/xfs_dquot_item.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/quota/xfs_dquot_item.c')
-rw-r--r--fs/xfs/quota/xfs_dquot_item.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c
index ddb61fe22a5c..a00b71b05a37 100644
--- a/fs/xfs/quota/xfs_dquot_item.c
+++ b/fs/xfs/quota/xfs_dquot_item.c
@@ -216,8 +216,8 @@ xfs_qm_dqunpin_wait(
216 * If so, we want to push it out to help us take this item off the AIL as soon 216 * If so, we want to push it out to help us take this item off the AIL as soon
217 * as possible. 217 * as possible.
218 * 218 *
219 * We must not be holding the AIL_LOCK at this point. Calling incore() to 219 * We must not be holding the AIL lock at this point. Calling incore() to
220 * search the buffer cache can be a time consuming thing, and AIL_LOCK is a 220 * search the buffer cache can be a time consuming thing, and AIL lock is a
221 * spinlock. 221 * spinlock.
222 */ 222 */
223STATIC void 223STATIC void
@@ -322,7 +322,7 @@ xfs_qm_dquot_logitem_trylock(
322 * want to do that now since we might sleep in the device 322 * want to do that now since we might sleep in the device
323 * strategy routine. We also don't want to grab the buffer lock 323 * strategy routine. We also don't want to grab the buffer lock
324 * here because we'd like not to call into the buffer cache 324 * here because we'd like not to call into the buffer cache
325 * while holding the AIL_LOCK. 325 * while holding the AIL lock.
326 * Make sure to only return PUSHBUF if we set pushbuf_flag 326 * Make sure to only return PUSHBUF if we set pushbuf_flag
327 * ourselves. If someone else is doing it then we don't 327 * ourselves. If someone else is doing it then we don't
328 * want to go to the push routine and duplicate their efforts. 328 * want to go to the push routine and duplicate their efforts.
@@ -562,15 +562,14 @@ xfs_qm_qoffend_logitem_committed(
562 xfs_lsn_t lsn) 562 xfs_lsn_t lsn)
563{ 563{
564 xfs_qoff_logitem_t *qfs; 564 xfs_qoff_logitem_t *qfs;
565 SPLDECL(s);
566 565
567 qfs = qfe->qql_start_lip; 566 qfs = qfe->qql_start_lip;
568 AIL_LOCK(qfs->qql_item.li_mountp,s); 567 spin_lock(&qfs->qql_item.li_mountp->m_ail_lock);
569 /* 568 /*
570 * Delete the qoff-start logitem from the AIL. 569 * Delete the qoff-start logitem from the AIL.
571 * xfs_trans_delete_ail() drops the AIL lock. 570 * xfs_trans_delete_ail() drops the AIL lock.
572 */ 571 */
573 xfs_trans_delete_ail(qfs->qql_item.li_mountp, (xfs_log_item_t *)qfs, s); 572 xfs_trans_delete_ail(qfs->qql_item.li_mountp, (xfs_log_item_t *)qfs);
574 kmem_free(qfs, sizeof(xfs_qoff_logitem_t)); 573 kmem_free(qfs, sizeof(xfs_qoff_logitem_t));
575 kmem_free(qfe, sizeof(xfs_qoff_logitem_t)); 574 kmem_free(qfe, sizeof(xfs_qoff_logitem_t));
576 return (xfs_lsn_t)-1; 575 return (xfs_lsn_t)-1;