This patch cleanups the lock order to hold at first the close_lock and
then held the nodes_srcu read lock. Probably it will never be a problem
as nodes_srcu is only a read lock preventing the node pointer getting
freed.

Signed-off-by: Alexander Aring <aahri...@redhat.com>
---
 fs/dlm/midcomms.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
index e1a0df67b566..8ebffbfdc00a 100644
--- a/fs/dlm/midcomms.c
+++ b/fs/dlm/midcomms.c
@@ -1489,12 +1489,12 @@ int dlm_midcomms_close(int nodeid)
 
        synchronize_srcu(&nodes_srcu);
 
-       idx = srcu_read_lock(&nodes_srcu);
        mutex_lock(&close_lock);
+       idx = srcu_read_lock(&nodes_srcu);
        node = nodeid2node(nodeid, 0);
        if (!node) {
-               mutex_unlock(&close_lock);
                srcu_read_unlock(&nodes_srcu, idx);
+               mutex_unlock(&close_lock);
                return dlm_lowcomms_close(nodeid);
        }
 
-- 
2.31.1

Reply via email to