xfs
[Top] [All Lists]

[PATCH 2/3] xfs: lock the AIL before removing the buffer item

To: xfs@xxxxxxxxxxx
Subject: [PATCH 2/3] xfs: lock the AIL before removing the buffer item
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 17 Sep 2013 11:44:30 +1000
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1379382271-29907-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1379382271-29907-1-git-send-email-david@xxxxxxxxxxxxx>
From: Dave Chinner <dchinner@xxxxxxxxxx>

Regression introduced by commit 46f9d2e ("xfs: aborted buf items can
be in the AIL") which fails to lock the AIL before removing the
item. Spinlock debugging throws a warning about this.

Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
---
 fs/xfs/xfs_buf_item.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index 88c5ea7..f1d85cf 100644
--- a/fs/xfs/xfs_buf_item.c
+++ b/fs/xfs/xfs_buf_item.c
@@ -628,6 +628,7 @@ xfs_buf_item_unlock(
                else if (aborted) {
                        ASSERT(XFS_FORCED_SHUTDOWN(lip->li_mountp));
                        if (lip->li_flags & XFS_LI_IN_AIL) {
+                               spin_lock(&lip->li_ailp->xa_lock);
                                xfs_trans_ail_delete(lip->li_ailp, lip,
                                                     SHUTDOWN_LOG_IO_ERROR);
                        }
-- 
1.8.3.2

<Prev in Thread] Current Thread [Next in Thread>