summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-10 23:58:06 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-10 23:58:06 +0300
commit6763afe4b9f39142bda2a92d69e62fe85f67251c (patch)
tree05e5a6c4bc570ca2aff5b9e4bc518bc106ae7a75
parent8dfb790b15e779232d5d4e3f0102af2bea21ca55 (diff)
parent3a8db79889ce16930aff19b818f5b09651bb7644 (diff)
downloadlinux-6763afe4b9f39142bda2a92d69e62fe85f67251c.tar.xz
Merge tag 'dlm-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
Pull dlm fix from David Teigland: "This includes a bug fix for a bad memory access during workqueue cleanup, which can happen while shutting down the dlm networking layer" * tag 'dlm-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: dlm: free workqueues after the connections
-rw-r--r--fs/dlm/lowcomms.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 963016c8f3d1..609998de533e 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -1656,16 +1656,12 @@ void dlm_lowcomms_stop(void)
mutex_lock(&connections_lock);
dlm_allow_conn = 0;
foreach_conn(stop_conn);
+ clean_writequeues();
+ foreach_conn(free_conn);
mutex_unlock(&connections_lock);
work_stop();
- mutex_lock(&connections_lock);
- clean_writequeues();
-
- foreach_conn(free_conn);
-
- mutex_unlock(&connections_lock);
kmem_cache_destroy(con_cache);
}