55 lines
1.6 KiB
Diff
55 lines
1.6 KiB
Diff
From e74cc7ee33481dd31d4149b8d8af1b5e364f6294 Mon Sep 17 00:00:00 2001
|
|
From: Alexander Aring <aahringo@redhat.com>
|
|
Date: Thu, 23 Feb 2023 10:36:12 -0500
|
|
Subject: [PATCH] dlm_controld: be sure we stop lockspaces before shutdown
|
|
|
|
The dlm_controld shutdown process will drop all dlm configfs entries of
|
|
dlm communication settings regarding corosync address configuration.
|
|
This will end in an socket close in the dlm subsystem of the connection
|
|
which belongs to it. Newly introduced kernel warnings will check if the
|
|
lockspace is stopped before we close the socket connection. This is
|
|
necessary because no new dlm messages should be triggered afterwards. To
|
|
be sure dlm_controld does stop the lockspaces we will make sure that it
|
|
does it always in close_cpg_daemon. Currently there is a missing handle
|
|
to stop all lockspaces when there is no cpg_handle_daemon anymore.
|
|
---
|
|
dlm_controld/daemon_cpg.c | 14 +++++++++++++-
|
|
1 file changed, 13 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dlm_controld/daemon_cpg.c b/dlm_controld/daemon_cpg.c
|
|
index 2e0634d4..10c80ddc 100644
|
|
--- a/dlm_controld/daemon_cpg.c
|
|
+++ b/dlm_controld/daemon_cpg.c
|
|
@@ -2527,6 +2527,15 @@ int setup_cpg_daemon(void)
|
|
return -1;
|
|
}
|
|
|
|
+static void stop_lockspaces(void)
|
|
+{
|
|
+ struct lockspace *ls;
|
|
+
|
|
+ list_for_each_entry(ls, &lockspaces, list) {
|
|
+ cpg_stop_kernel(ls);
|
|
+ }
|
|
+}
|
|
+
|
|
void close_cpg_daemon(void)
|
|
{
|
|
struct lockspace *ls;
|
|
@@ -2534,8 +2543,11 @@ void close_cpg_daemon(void)
|
|
struct cpg_name name;
|
|
int i = 0;
|
|
|
|
- if (!cpg_handle_daemon)
|
|
+ if (!cpg_handle_daemon) {
|
|
+ stop_lockspaces();
|
|
return;
|
|
+ }
|
|
+
|
|
if (cluster_down)
|
|
goto fin;
|
|
|
|
--
|
|
2.25.1
|
|
|