]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/dlm-fix-shutdown-cleanup.patch
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / dlm-fix-shutdown-cleanup.patch
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/dlm-fix-shutdown-cleanup.patch b/src/patches/suse-2.6.27.31/patches.fixes/dlm-fix-shutdown-cleanup.patch
new file mode 100644 (file)
index 0000000..7b15930
--- /dev/null
@@ -0,0 +1,34 @@
+From: Coly Li <coly.li@suse.de>
+Author: David Teigland <teigland@redhat.com>
+References: bnc#457213
+Subject: dlm: fix shutdown cleanup
+    
+    Fixes a regression from commit 0f8e0d9a317406612700426fad3efab0b7bbc467,
+    "dlm: allow multiple lockspace creates".
+    
+    An extraneous 'else' slipped into a code fragment being moved from
+    release_lockspace() to dlm_release_lockspace().  The result of the
+    unwanted 'else' is that dlm threads and structures are not stopped
+    and cleaned up when the final dlm lockspace is removed.  Trying to
+    create a new lockspace again afterward will fail with
+    "kmem_cache_create: duplicate cache dlm_conn" because the cache
+    was not previously destroyed.
+    
+Signed-off-by: David Teigland <teigland@redhat.com>
+Signed-off-by: Coly Li <coly.li@suse.de>
+---
+---
+ fs/dlm/lockspace.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/dlm/lockspace.c
++++ b/fs/dlm/lockspace.c
+@@ -784,7 +784,7 @@ int dlm_release_lockspace(void *lockspac
+       error = release_lockspace(ls, force);
+       if (!error)
+               ls_count--;
+-      else if (!ls_count)
++      if (!ls_count)
+               threads_stop();
+       mutex_unlock(&ls_lock);