fs: dlm: start midcomms before scand
authorAlexander Aring <aahringo@redhat.com>
Thu, 12 Jan 2023 22:10:31 +0000 (17:10 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 07:48:50 +0000 (08:48 +0100)
[ Upstream commit aad633dc0cf90093998b1ae0ba9f19b5f1dab644 ]

The scand kthread can send dlm messages out, especially dlm remove
messages to free memory for unused rsb on other nodes. To send out dlm
messages, midcomms must be initialized. This patch moves the midcomms
start before scand is started.

Cc: stable@vger.kernel.org
Fixes: e7fd41792fc0 ("[DLM] The core of the DLM for GFS2/CLVM")
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/dlm/lockspace.c

index 1b49f375829d0a5d4aad438b002e4a8ffb26352c..fa086a81a847682621f4dbc475ddfb50f028e89f 100644 (file)
@@ -383,23 +383,23 @@ static int threads_start(void)
 {
        int error;
 
-       error = dlm_scand_start();
+       /* Thread for sending/receiving messages for all lockspace's */
+       error = dlm_midcomms_start();
        if (error) {
-               log_print("cannot start dlm_scand thread %d", error);
+               log_print("cannot start dlm midcomms %d", error);
                goto fail;
        }
 
-       /* Thread for sending/receiving messages for all lockspace's */
-       error = dlm_midcomms_start();
+       error = dlm_scand_start();
        if (error) {
-               log_print("cannot start dlm midcomms %d", error);
-               goto scand_fail;
+               log_print("cannot start dlm_scand thread %d", error);
+               goto midcomms_fail;
        }
 
        return 0;
 
scand_fail:
-       dlm_scand_stop();
midcomms_fail:
+       dlm_midcomms_stop();
  fail:
        return error;
 }