diff options
Diffstat (limited to 'fs/xfs/xfs_sync.c')
-rw-r--r-- | fs/xfs/xfs_sync.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/xfs/xfs_sync.c b/fs/xfs/xfs_sync.c index 1e9ee064dbb2..97304f10e78a 100644 --- a/fs/xfs/xfs_sync.c +++ b/fs/xfs/xfs_sync.c | |||
@@ -359,6 +359,15 @@ xfs_quiesce_attr( | |||
359 | * added an item to the AIL, thus flush it again. | 359 | * added an item to the AIL, thus flush it again. |
360 | */ | 360 | */ |
361 | xfs_ail_push_all_sync(mp->m_ail); | 361 | xfs_ail_push_all_sync(mp->m_ail); |
362 | |||
363 | /* | ||
364 | * The superblock buffer is uncached and xfsaild_push() will lock and | ||
365 | * set the XBF_ASYNC flag on the buffer. We cannot do xfs_buf_iowait() | ||
366 | * here but a lock on the superblock buffer will block until iodone() | ||
367 | * has completed. | ||
368 | */ | ||
369 | xfs_buf_lock(mp->m_sb_bp); | ||
370 | xfs_buf_unlock(mp->m_sb_bp); | ||
362 | } | 371 | } |
363 | 372 | ||
364 | static void | 373 | static void |
@@ -712,8 +721,8 @@ restart: | |||
712 | * Note that xfs_iflush will never block on the inode buffer lock, as | 721 | * Note that xfs_iflush will never block on the inode buffer lock, as |
713 | * xfs_ifree_cluster() can lock the inode buffer before it locks the | 722 | * xfs_ifree_cluster() can lock the inode buffer before it locks the |
714 | * ip->i_lock, and we are doing the exact opposite here. As a result, | 723 | * ip->i_lock, and we are doing the exact opposite here. As a result, |
715 | * doing a blocking xfs_itobp() to get the cluster buffer would result | 724 | * doing a blocking xfs_imap_to_bp() to get the cluster buffer would |
716 | * in an ABBA deadlock with xfs_ifree_cluster(). | 725 | * result in an ABBA deadlock with xfs_ifree_cluster(). |
717 | * | 726 | * |
718 | * As xfs_ifree_cluser() must gather all inodes that are active in the | 727 | * As xfs_ifree_cluser() must gather all inodes that are active in the |
719 | * cache to mark them stale, if we hit this case we don't actually want | 728 | * cache to mark them stale, if we hit this case we don't actually want |