diff options
author | Dave Chinner <dchinner@redhat.com> | 2013-09-24 16:01:13 +1000 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2013-09-24 12:31:41 -0500 |
commit | 4885235806bb95c3fad5a5238e323cb746c3a49b (patch) | |
tree | 2952172d9a17ca87227a50766f3d69bf8f290982 /fs/xfs/xfs_buf_item.c | |
parent | 272b98c6455f00884f0350f775c5342358ebb73f (diff) | |
download | linux-4885235806bb95c3fad5a5238e323cb746c3a49b.tar.gz linux-4885235806bb95c3fad5a5238e323cb746c3a49b.tar.bz2 linux-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/xfs/xfs_buf_item.c')
-rw-r--r-- | fs/xfs/xfs_buf_item.c | 1 |
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); } |