forked from pool/libdlm
Compare commits
41 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| f768979d12 | |||
| 094d3af855 | |||
| edd4ef863a | |||
| d144d82777 | |||
| f629d101a5 | |||
| 2c0abd5e74 | |||
| ee7b898383 | |||
| 8411731214 | |||
| 55d9dde91c | |||
| 76ebbbf618 | |||
| 753c59a072 | |||
| 8233cbce0d | |||
| 4bef15f6b3 | |||
| c2bc4618e5 | |||
| 71b6bf64c8 | |||
| db71ff661b | |||
| 9433dc49b9 | |||
| a779975bba | |||
| bbc39e711b | |||
| d52714274e | |||
| 5c4c6b70d7 | |||
| b504c4538e | |||
|
|
487f7b46db | ||
|
|
a5306cf15f | ||
|
|
e2f09d1880 | ||
|
|
d4a6d95a8d | ||
|
|
577644fe54 | ||
|
|
d5d3182ec0 | ||
|
|
730c0fceff | ||
|
|
2998777063 | ||
|
|
bfd42de75d | ||
|
|
c1b71beed9 | ||
|
|
9679283956 | ||
|
|
abe54e0569 | ||
|
|
8eb386a5ee | ||
|
|
f05567f6b2 | ||
|
|
cc7b102163 | ||
|
|
5b3e91d664 | ||
|
|
8a55320b8a | ||
|
|
d3400aa5bf | ||
|
|
256f761ed3 |
43
dlm_controld-Support-for-extended-value-of-kernel-DL.patch
Normal file
43
dlm_controld-Support-for-extended-value-of-kernel-DL.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
From 1768dd91c309f1bf8b062c28c2edee8e5c7aaab4 Mon Sep 17 00:00:00 2001
|
||||
From: Heming Zhao <heming.zhao@suse.com>
|
||||
Date: Fri, 21 Feb 2025 23:09:35 +0800
|
||||
Subject: [PATCH 1/2] dlm_controld: Support for extended value of kernel
|
||||
DLM_MAX_ADDR_COUNT
|
||||
|
||||
This patch should work with the updated kernel dlm module, because
|
||||
the code changes need to be aligned with the DLM_MAX_ADDR_COUNT value.
|
||||
|
||||
Another notice is that with the current dlm_controld code, users
|
||||
should explicitly add 'protocol=sctp' to the dlm.conf in a corosync
|
||||
3.x env.
|
||||
|
||||
---
|
||||
2025.3.26 by heming zhao
|
||||
I modified this patch by removing the dlm_sand part of the patch.
|
||||
|
||||
Signed-off-by: Heming Zhao <heming.zhao@suse.com>
|
||||
---
|
||||
dlm_controld/dlm_daemon.h | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h
|
||||
index 4a533e3451e2..c902228f890f 100644
|
||||
--- a/dlm_controld/dlm_daemon.h
|
||||
+++ b/dlm_controld/dlm_daemon.h
|
||||
@@ -175,10 +175,10 @@ EXTERN struct dlm_option dlm_options[dlm_options_max];
|
||||
|
||||
#define MAX_NODES 128
|
||||
|
||||
-/* Maximum number of IP addresses per node, when using SCTP and multi-ring in
|
||||
- corosync In dlm-kernel this is DLM_MAX_ADDR_COUNT, currently 3. */
|
||||
+/* Maximum number of IP addresses per node, when using SCTP and multi-[ring|link]
|
||||
+ in corosync [2|3]. In dlm-kernel this is DLM_MAX_ADDR_COUNT, currently 8. */
|
||||
|
||||
-#define MAX_NODE_ADDRESSES 4
|
||||
+#define MAX_NODE_ADDRESSES 8
|
||||
|
||||
#define PROTO_TCP 0
|
||||
#define PROTO_SCTP 1
|
||||
--
|
||||
2.43.0
|
||||
|
||||
148
dlm_controld-remove-detect-mode-from-config-item-pro.patch
Normal file
148
dlm_controld-remove-detect-mode-from-config-item-pro.patch
Normal file
@@ -0,0 +1,148 @@
|
||||
From 9d294573d4512ab3c7f3e7ad087df035959e53ec Mon Sep 17 00:00:00 2001
|
||||
From: Heming Zhao <heming.zhao@suse.com>
|
||||
Date: Mon, 10 Mar 2025 15:36:20 +0800
|
||||
Subject: [PATCH 2/2] dlm_controld: remove 'detect' mode from config item
|
||||
'protocol'
|
||||
|
||||
This patch removes the 'detect' mode for the configuration
|
||||
item 'protocol'.
|
||||
|
||||
After this patch, dlm 'protocol' behaviors:
|
||||
- TCP is now the default protocol.
|
||||
- Stop trying to detect:
|
||||
- use dlm.conf or dlm_controld command line to switch from TCP
|
||||
to SCTP.
|
||||
- corosync.conf 'rrp_mode' is not supported in corosync 2.x env.
|
||||
- TCP can work with multi-link, but uses only the first ip address
|
||||
from corosync.
|
||||
- SCTP can support up to 8 ip addresses.
|
||||
|
||||
Note: This change requires a corresponding update to the dlm kernel
|
||||
function dlm_tcp_listen_validate().
|
||||
|
||||
Signed-off-by: Heming Zhao <heming.zhao@suse.com>
|
||||
---
|
||||
dlm_controld/action.c | 39 ++++++-------------------------------
|
||||
dlm_controld/dlm.conf.5 | 11 ++++++++++-
|
||||
dlm_controld/dlm_controld.8 | 2 +-
|
||||
dlm_controld/main.c | 4 ++--
|
||||
4 files changed, 19 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/dlm_controld/action.c b/dlm_controld/action.c
|
||||
index 60eb22a78c56..10f0f67387b1 100644
|
||||
--- a/dlm_controld/action.c
|
||||
+++ b/dlm_controld/action.c
|
||||
@@ -21,35 +21,6 @@ static int comms_nodes_count;
|
||||
#define SPACES_DIR "/sys/kernel/config/dlm/cluster/spaces"
|
||||
#define COMMS_DIR "/sys/kernel/config/dlm/cluster/comms"
|
||||
|
||||
-static int detect_protocol(void)
|
||||
-{
|
||||
- cmap_handle_t handle;
|
||||
- char *str = NULL;
|
||||
- int rv, proto = -1;
|
||||
-
|
||||
- rv = cmap_initialize(&handle);
|
||||
- if (rv != CS_OK) {
|
||||
- log_error("cmap_initialize error %d", rv);
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- rv = cmap_get_string(handle, "totem.rrp_mode", &str);
|
||||
- if (rv != CS_OK)
|
||||
- goto out;
|
||||
-
|
||||
- log_debug("cmap totem.rrp_mode = '%s'", str);
|
||||
-
|
||||
- if (!strcmp(str, "none"))
|
||||
- proto = PROTO_TCP;
|
||||
- else
|
||||
- proto = PROTO_SCTP;
|
||||
- out:
|
||||
- if (str)
|
||||
- free(str);
|
||||
- cmap_finalize(handle);
|
||||
- return proto;
|
||||
-}
|
||||
-
|
||||
static int detect_cluster_name(void)
|
||||
{
|
||||
cmap_handle_t handle;
|
||||
@@ -870,12 +841,14 @@ int setup_configfs_options(void)
|
||||
set_configfs_cluster("mark", NULL, optu(mark_ind));
|
||||
|
||||
proto_name = opts(protocol_ind);
|
||||
- proto_num = -1;
|
||||
+ proto_num = 0; /* default is tcp */
|
||||
|
||||
- if (!strcasecmp(proto_name, "detect") || !strcmp(proto_name, "2"))
|
||||
- proto_num = detect_protocol(); /* may be -1 */
|
||||
+ if (!strcasecmp(proto_name, "detect") || !strcmp(proto_name, "2")) {
|
||||
+ log_error("'detect' mode is not supported anymore, will use default mode (TCP).");
|
||||
+ log_error("see dlm_conf(5) for details.");
|
||||
+ }
|
||||
|
||||
- else if (!strcasecmp(proto_name, "tcp") || !strcmp(proto_name, "0"))
|
||||
+ if (!strcasecmp(proto_name, "tcp") || !strcmp(proto_name, "0"))
|
||||
proto_num = PROTO_TCP;
|
||||
|
||||
else if (!strcasecmp(proto_name, "sctp") || !strcmp(proto_name, "1"))
|
||||
diff --git a/dlm_controld/dlm.conf.5 b/dlm_controld/dlm.conf.5
|
||||
index cb13eaf0db28..073baf883b38 100644
|
||||
--- a/dlm_controld/dlm.conf.5
|
||||
+++ b/dlm_controld/dlm.conf.5
|
||||
@@ -77,13 +77,22 @@ enable_helper
|
||||
|
||||
Options with (*) can be reloaded, see Reload config.
|
||||
|
||||
-.SH Reload config
|
||||
+.SH Reload configuration
|
||||
|
||||
Some dlm.conf settings can be changed while dlm_controld is running using
|
||||
dlm_tool reload_config. Edit dlm.conf, adding, removing, commenting or
|
||||
changing values, then run dlm_tool reload_config to apply the changes in
|
||||
dlm_controld. dlm_tool dump_config will show the new settings.
|
||||
|
||||
+.SH Protocol configuration
|
||||
+
|
||||
+Since the totem.rrp_mode configuration item was deprecated in Corosync 3,
|
||||
+the DLM adjusts the protocol configuration item's style to ensure DLM
|
||||
+functionality on both Corosync 2 and 3. The change is that the protocol
|
||||
+configuration item no longer supports 'detect|2'. The default protocol is
|
||||
+TCP if the user does not specify a protocol on the dlm_daemon command line
|
||||
+or in dlm.conf.
|
||||
+
|
||||
.SH Fencing
|
||||
|
||||
A fence device definition begins with a
|
||||
diff --git a/dlm_controld/dlm_controld.8 b/dlm_controld/dlm_controld.8
|
||||
index 3aab388531df..d72ebb299f7d 100644
|
||||
--- a/dlm_controld/dlm_controld.8
|
||||
+++ b/dlm_controld/dlm_controld.8
|
||||
@@ -31,7 +31,7 @@ For default settings, see dlm_controld -h.
|
||||
|
||||
.B --protocol | -r
|
||||
.I str
|
||||
- dlm kernel lowcomms protocol: tcp, sctp, detect
|
||||
+ dlm kernel lowcomms protocol: tcp, sctp
|
||||
|
||||
.B --debug_logfile | -L
|
||||
write debugging to log file
|
||||
diff --git a/dlm_controld/main.c b/dlm_controld/main.c
|
||||
index 1c4333373617..6fb6dffeadaf 100644
|
||||
--- a/dlm_controld/main.c
|
||||
+++ b/dlm_controld/main.c
|
||||
@@ -1817,8 +1817,8 @@ static void set_opt_defaults(void)
|
||||
|
||||
set_opt_default(protocol_ind,
|
||||
"protocol", 'r', req_arg_str,
|
||||
- -1, "detect", 0, 0,
|
||||
- "dlm kernel lowcomms protocol: tcp, sctp, detect");
|
||||
+ 0, "tcp", 0, 0,
|
||||
+ "dlm kernel lowcomms protocol: tcp, sctp");
|
||||
|
||||
set_opt_default(port_ind,
|
||||
"port", 'R', req_arg_uint,
|
||||
--
|
||||
2.43.0
|
||||
|
||||
26
dlm_controld-terminate-uevent-buffer.patch
Normal file
26
dlm_controld-terminate-uevent-buffer.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
From 536a527329f3b559c40154461c84e279bcb36cf4 Mon Sep 17 00:00:00 2001
|
||||
From: David Teigland <teigland@redhat.com>
|
||||
Date: Thu, 15 Aug 2024 11:05:54 -0500
|
||||
Subject: [PATCH] dlm_controld: terminate uevent buffer
|
||||
|
||||
for checker
|
||||
---
|
||||
dlm_controld/main.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/dlm_controld/main.c b/dlm_controld/main.c
|
||||
index 24f0b3f8e044..1c4333373617 100644
|
||||
--- a/dlm_controld/main.c
|
||||
+++ b/dlm_controld/main.c
|
||||
@@ -714,6 +714,8 @@ static void process_uevent(int ci)
|
||||
return;
|
||||
}
|
||||
|
||||
+ buf[MAX_LINE_UEVENT-1] = '\0';
|
||||
+
|
||||
decode_uevent(buf, rv, uevent_vars, Env_Last, uevent_vals);
|
||||
|
||||
if (!uevent_vals[Env_ACTION] ||
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 26 00:59:00 UTC 2025 - heming.zhao@suse.com
|
||||
|
||||
- libdlm supports corosync 3.x multi-link (jsc#PED-11932)
|
||||
* add upstream patch
|
||||
+ dlm_controld-terminate-uevent-buffer.patch
|
||||
+ dlm_controld-Support-for-extended-value-of-kernel-DL.patch
|
||||
+ dlm_controld-remove-detect-mode-from-config-item-pro.patch
|
||||
* remove useless folder
|
||||
- %{_datadir}/doc/packages/libdlm-%{version}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 8 06:24:00 UTC 2024 - heming.zhao@suse.com - 4.3.0
|
||||
|
||||
|
||||
11
libdlm.spec
11
libdlm.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package libdlm
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -41,7 +41,9 @@ Source: https://pagure.io/dlm/archive/dlm-%{version}/dlm-dlm-%{version}.
|
||||
|
||||
##################
|
||||
#upstream patch
|
||||
# n/a
|
||||
Patch0001: dlm_controld-terminate-uevent-buffer.patch
|
||||
Patch0002: dlm_controld-Support-for-extended-value-of-kernel-DL.patch
|
||||
Patch0003: dlm_controld-remove-detect-mode-from-config-item-pro.patch
|
||||
|
||||
# suse special patch
|
||||
Patch1001: 0001-makefile-for-diff-arch.patch
|
||||
@@ -53,9 +55,9 @@ Patch1004: 0004-man-dlm.conf-add-note-that-the-file-is-not-creat.patch
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: pkgconfig(corosync) >= 3.1.0
|
||||
BuildRequires: libtool
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: pkgconfig(corosync) >= 3.1.0
|
||||
BuildRequires: pkgconfig(pacemaker)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(udev)
|
||||
@@ -100,7 +102,6 @@ make all UDEVDIR="%{_udevrulesdir}"
|
||||
%install
|
||||
###########################################################
|
||||
%make_install UDEVDIR="%{_udevrulesdir}"
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/packages/libdlm-%{version}
|
||||
|
||||
install -Dm 0644 init/dlm.service $RPM_BUILD_ROOT%{_unitdir}/dlm.service
|
||||
install -Dm 0644 init/dlm.sysconfig $RPM_BUILD_ROOT%{_fillupdir}/sysconfig.dlm
|
||||
@@ -126,7 +127,6 @@ install -Dm 0644 init/dlm.sysconfig $RPM_BUILD_ROOT%{_fillupdir}/sysconfig.dlm
|
||||
%postun -n libdlm3 -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%dir %{_datadir}/doc/packages/libdlm-%{version}
|
||||
%{_udevrulesdir}/51-dlm.rules
|
||||
%{_sbindir}/dlm_controld
|
||||
%{_sbindir}/dlm_stonith
|
||||
@@ -134,7 +134,6 @@ install -Dm 0644 init/dlm.sysconfig $RPM_BUILD_ROOT%{_fillupdir}/sysconfig.dlm
|
||||
%{_datadir}/man/man8/*.gz
|
||||
%{_datadir}/man/man3/*.gz
|
||||
%{_datadir}/man/man5/*.gz
|
||||
%{_datadir}/doc/packages/libdlm-%{version}
|
||||
%{_unitdir}/dlm.service
|
||||
%{_fillupdir}/sysconfig.dlm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user