From 0102d121d25c723b33c4a51215113116ba37fa34 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 15 Mar 2022 05:13:59 -0400 Subject: [PATCH] import lvm2-2.03.12-11.el8_5 --- ...hange-refresh-failed-for-dm-suspend-.patch | 35 +++++++++++++++++++ SPECS/lvm2.spec | 8 ++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 SOURCES/lvm2-2_03_14-lvchange-fix-lvchange-refresh-failed-for-dm-suspend-.patch diff --git a/SOURCES/lvm2-2_03_14-lvchange-fix-lvchange-refresh-failed-for-dm-suspend-.patch b/SOURCES/lvm2-2_03_14-lvchange-fix-lvchange-refresh-failed-for-dm-suspend-.patch new file mode 100644 index 0000000..945b369 --- /dev/null +++ b/SOURCES/lvm2-2_03_14-lvchange-fix-lvchange-refresh-failed-for-dm-suspend-.patch @@ -0,0 +1,35 @@ +From 317bc732073134159bc74e126339f8e498bdb376 Mon Sep 17 00:00:00 2001 +From: Yi Wang +Date: Fri, 13 Aug 2021 13:49:13 +0800 +Subject: [PATCH] lvchange: fix lvchange refresh failed for dm suspend or + resume failed + +When multiple lvchange refresh processes executed at the same time, +suspend/resume ioctl on the same dm, some of these commands will be failed +for dm aready change status, and ioctl will return EINVAL in _do_dm_ioctl function. +to avoid this problem, add READ_FOR_ACTIVATE flags in lvchange refresh process, +it will hold LCK_WRITE lock and avoid suspend/resume dm at the same time. + +Signed-off-by: Long YunJian +Signed-off-by: Yi Wang +(cherry picked from commit 47bcb446b83f9aa4fca74301fda109a8bf670fbb) +--- + tools/lvchange.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/lvchange.c b/tools/lvchange.c +index 8293f5035..fb9ac895f 100644 +--- a/tools/lvchange.c ++++ b/tools/lvchange.c +@@ -1620,7 +1620,7 @@ int lvchange_refresh_cmd(struct cmd_context *cmd, int argc, char **argv) + cmd->handles_missing_pvs = 1; + cmd->lockd_vg_default_sh = 1; + +- return process_each_lv(cmd, argc, argv, NULL, NULL, 0, ++ return process_each_lv(cmd, argc, argv, NULL, NULL, READ_FOR_ACTIVATE, + NULL, &_lvchange_refresh_check, &_lvchange_refresh_single); + } + +-- +2.34.1 + diff --git a/SPECS/lvm2.spec b/SPECS/lvm2.spec index 7da9aa8..ff07df2 100644 --- a/SPECS/lvm2.spec +++ b/SPECS/lvm2.spec @@ -59,7 +59,7 @@ Version: 2.03.12 %if 0%{?from_snapshot} Release: 0.1.20210426git%{shortcommit}%{?dist}%{?rel_suffix} %else -Release: 10%{?dist}%{?rel_suffix} +Release: 11%{?dist}%{?rel_suffix} %endif License: GPLv2 URL: http://sourceware.org/lvm2 @@ -116,6 +116,8 @@ Patch32: lvm2-2_03_14-tests-check-lvm2-parses-vdo-statistics.patch Patch33: lvm2-2_03_14-vdo-lvm_import_vdo-script-needs-to-continue-when-vgn.patch Patch34: lvm2-2_03_14-vdo-man-page-updates.patch Patch35: lvm2-2_03_14-vdo-prompt-with-no-return-failure.patch +# BZ 2040514: +Patch36: lvm2-2_03_14-lvchange-fix-lvchange-refresh-failed-for-dm-suspend-.patch BuildRequires: gcc %if %{enable_testsuite} @@ -211,6 +213,7 @@ or more physical volumes and creating one or more logical volumes %patch33 -p1 -b .backup33 %patch34 -p1 -b .backup34 %patch35 -p1 -b .backup35 +%patch36 -p1 -b .backup36 %build %global _default_pid_dir /run @@ -839,6 +842,9 @@ An extensive functional testsuite for LVM2. %endif %changelog +* Wed Feb 16 2022 Marian Csontos - 2.03.12-11 +- Fix multiple concurrent LV refreshes failures. + * Mon Sep 20 2021 Marian Csontos - 2.03.12-10 - Fix incorrect memory free.