提交 6b1d1a73 编写于 作者: D David Chinner 提交者: Lachlan McIlroy

[XFS] Fix lock inversion in forced shutdown.

Recent changes to xlog_state_release_iclog() placed the grant_lock inside
the icloglock. forced unmount of the log does this the opposite way
around, but does not depend on the order for correct working. Fix the
inversion by changing the order locks are gained in
xfs_log_force_umount().

SGI-PV: 979661
SGI-Modid: xfs-linux-melb:xfs-kern:30773a
Signed-off-by: NDavid Chinner <dgc@sgi.com>
Signed-off-by: NChristoph Hellwig <hch@infradead.org>
Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
上级 4679b2d3
...@@ -3499,8 +3499,8 @@ xfs_log_force_umount( ...@@ -3499,8 +3499,8 @@ xfs_log_force_umount(
* before we mark the filesystem SHUTDOWN and wake * before we mark the filesystem SHUTDOWN and wake
* everybody up to tell the bad news. * everybody up to tell the bad news.
*/ */
spin_lock(&log->l_grant_lock);
spin_lock(&log->l_icloglock); spin_lock(&log->l_icloglock);
spin_lock(&log->l_grant_lock);
mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN; mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN;
XFS_BUF_DONE(mp->m_sb_bp); XFS_BUF_DONE(mp->m_sb_bp);
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册