From 8c109e7d29197feec40263db4be5b82fc3f8a9fe Mon Sep 17 00:00:00 2001 From: Marian Csontos Date: Mon, 2 Jun 2025 15:41:26 +0200 Subject: [PATCH] Additional patch for 8.10.0.z lvm2 Resolves: RHEL-66486 --- ...nge-systemid-doen-t-need-global-lock.patch | 42 +++++++++++++++++++ lvm2.spec | 7 +++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 0141-lvmlockd-vgchange-systemid-doen-t-need-global-lock.patch diff --git a/0141-lvmlockd-vgchange-systemid-doen-t-need-global-lock.patch b/0141-lvmlockd-vgchange-systemid-doen-t-need-global-lock.patch new file mode 100644 index 0000000..f77c290 --- /dev/null +++ b/0141-lvmlockd-vgchange-systemid-doen-t-need-global-lock.patch @@ -0,0 +1,42 @@ +From 97aa5f67547f150b5f8f511249b200a41561a3c9 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Thu, 27 Jun 2024 12:46:15 -0500 +Subject: [PATCH 1/2] lvmlockd: vgchange systemid doen't need global lock + +The comment explained that the ex global lock was just +used to trigger global cache invalidation, which is no +longer needed. This extra locking can cause problems +with LVM-activate when local and shared VGs are mixed +(and the incorrect exit code for errors was causing +problems.) + +(cherry picked from commit 680f7bd676526771b7a26e35105af3bccb95e4a1) +--- + tools/vgchange.c | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/tools/vgchange.c b/tools/vgchange.c +index e4b57dbd2..b0e2b2d2a 100644 +--- a/tools/vgchange.c ++++ b/tools/vgchange.c +@@ -1231,17 +1231,6 @@ int vgchange_systemid_cmd(struct cmd_context *cmd, int argc, char **argv) + struct processing_handle *handle; + int ret; + +- /* +- * This is a special case where taking the global lock is +- * not needed to protect global state, because the change is +- * only to an existing VG. But, taking the global lock ex is +- * helpful in this case to trigger a global cache validation +- * on other hosts, to cause them to see the new system_id or +- * lock_type. +- */ +- if (!lockd_global(cmd, "ex")) +- return 0; +- + if (!(handle = init_processing_handle(cmd, NULL))) { + log_error("Failed to initialize processing handle."); + return ECMD_FAILED; +-- +2.49.0 + diff --git a/lvm2.spec b/lvm2.spec index 1c6c1f0..61a35e2 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -55,7 +55,7 @@ %global commit 4dc5d4ac7e7a9457ccc46ff04796b347e58bf4da %global shortcommit %(c=%{commit}; echo ${c:0:7}) %endif -%global rel_suffix .1 +%global rel_suffix .2 # Do not reset Release to 1 unless both lvm2 and device-mapper # versions are increased together. @@ -239,6 +239,8 @@ Patch139: 0138-debug-correct-level.patch Patch140: 0139-tests-check-exit_on-works.patch # RHEL-62764: Patch141: 0140-mirror-enhance-error-path-for-pvmove-finish.patch +# RHEL-66486: +Patch142: 0141-lvmlockd-vgchange-systemid-doen-t-need-global-lock.patch BuildRequires: gcc %if %{enable_testsuite} @@ -917,6 +919,9 @@ An extensive functional testsuite for LVM2. %endif %changelog +* Mon Jun 02 2025 Marian Csontos - 2.03.14-15.el8_10.2 +- Fix vgchange exit code when lvmlockd is not running and no change is done. + * Wed Apr 30 2025 Marian Csontos - 2.03.14-15.el8_10.1 - Fix incomplete pvmove write bad metadata requiring manual intervention.