summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2013-09-24 16:01:13 +1000
committerBen Myers <bpm@sgi.com>2013-09-24 12:31:41 -0500
commit4885235806bb95c3fad5a5238e323cb746c3a49b (patch)
tree2952172d9a17ca87227a50766f3d69bf8f290982 /fs
parent272b98c6455f00884f0350f775c5342358ebb73f (diff)
downloadlinux-stable-4885235806bb95c3fad5a5238e323cb746c3a49b.tar.gz
linux-stable-4885235806bb95c3fad5a5238e323cb746c3a49b.tar.bz2
linux-stable-4885235806bb95c3fad5a5238e323cb746c3a49b.zip
xfs: lock the AIL before removing the buffer item
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@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_buf_item.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index 88c5ea75ebf6..f1d85cfc0a54 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);
}