xfs
[Top] [All Lists]

[Patch] fix lock inversion in forced unmount

To: xfs-dev <xfs-dev@xxxxxxx>
Subject: [Patch] fix lock inversion in forced unmount
From: David Chinner <dgc@xxxxxxx>
Date: Wed, 2 Apr 2008 10:17:58 +1000
Cc: xfs-oss <xfs@xxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
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().

Signed-off-by: Dave Chinner <dgc@xxxxxxx>
---
 fs/xfs/xfs_log.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: 2.6.x-xfs-new/fs/xfs/xfs_log.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/xfs_log.c 2008-04-01 21:00:13.000000000 +1000
+++ 2.6.x-xfs-new/fs/xfs/xfs_log.c      2008-04-02 08:35:20.282633878 +1000
@@ -3502,8 +3502,8 @@ xfs_log_force_umount(
         * before we mark the filesystem SHUTDOWN and wake
         * everybody up to tell the bad news.
         */
-       spin_lock(&log->l_grant_lock);
        spin_lock(&log->l_icloglock);
+       spin_lock(&log->l_grant_lock);
        mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN;
        XFS_BUF_DONE(mp->m_sb_bp);
        /*


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