]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/ocfs2-1.4-git-b4c30de39a2596503e888a7b47d19792f25913d6
Imported linux-2.6.27.39 suse/xen patches.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / ocfs2-1.4-git-b4c30de39a2596503e888a7b47d19792f25913d6
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/ocfs2-1.4-git-b4c30de39a2596503e888a7b47d19792f25913d6 b/src/patches/suse-2.6.27.31/patches.fixes/ocfs2-1.4-git-b4c30de39a2596503e888a7b47d19792f25913d6
deleted file mode 100644 (file)
index b58feed..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Jan Kara <jack@suse.cz>
-Subject: ocfs2: Fix lock inversion in ocfs2_local_read_info()
-Patch-mainline: 2.6.31
-
-This function is called with dqio_mutex held but it has to acquire lock
-from global quota file which ranks above this lock. This is not deadlockable
-lock inversion since this code path is take only during mount when noone
-else can race with us but let's clean this up to silence lockdep.
-
-We just drop the dqio_mutex in the beginning of the function and reacquire
-it in the end since we don't need it - noone can race with us at this moment.
-
-Signed-off-by: Jan Kara <jack@suse.cz>
----
- fs/ocfs2/quota_local.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/fs/ocfs2/quota_local.c
-+++ b/fs/ocfs2/quota_local.c
-@@ -647,6 +647,9 @@ static int ocfs2_local_read_info(struct
-       struct ocfs2_quota_recovery *rec;
-       int locked = 0;
-+      /* We don't need the lock and we have to acquire quota file locks
-+       * which will later depend on this lock */
-+      mutex_unlock(&sb_dqopt(sb)->dqio_mutex);
-       info->dqi_maxblimit = 0x7fffffffffffffffLL;
-       info->dqi_maxilimit = 0x7fffffffffffffffLL;
-       oinfo = kmalloc(sizeof(struct ocfs2_mem_dqinfo), GFP_NOFS);
-@@ -725,6 +728,7 @@ static int ocfs2_local_read_info(struct
-               goto out_err;
-       }
-+      mutex_lock(&sb_dqopt(sb)->dqio_mutex);
-       return 0;
- out_err:
-       if (oinfo) {
-@@ -738,6 +742,7 @@ out_err:
-               kfree(oinfo);
-       }
-       brelse(bh);
-+      mutex_lock(&sb_dqopt(sb)->dqio_mutex);
-       return -1;
- }