diff --git a/0008-apply-multipath_component_detection-0-to-duplicate-P.patch b/0008-apply-multipath_component_detection-0-to-duplicate-P.patch new file mode 100644 index 0000000..6070b2c --- /dev/null +++ b/0008-apply-multipath_component_detection-0-to-duplicate-P.patch @@ -0,0 +1,55 @@ +From 2a31250c445911eb07057f077a17e3a281ac0049 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Mon, 25 Jul 2022 13:50:43 -0500 +Subject: [PATCH] apply multipath_component_detection=0 to duplicate PV + handling + +multipath_component_detection=0 has always applied to the filter-based +component detection. Also apply this setting to the duplicate-PV +handling which also eliminates multipath components (based on duplicate +PVs having the same wwid.) + +(cherry picked from commit 99ce09ae778c2cc4aa2611e425bba5287b8b9513) +--- + lib/cache/lvmcache.c | 3 +++ + test/shell/duplicate-pvs-multipath.sh | 10 +++++++--- + 2 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c +index a1c4a61c8..00916885c 100644 +--- a/lib/cache/lvmcache.c ++++ b/lib/cache/lvmcache.c +@@ -652,6 +652,9 @@ static int _all_multipath_components(struct cmd_context *cmd, struct lvmcache_in + + *dev_mpath = NULL; + ++ if (!find_config_tree_bool(cmd, devices_multipath_component_detection_CFG, NULL)) ++ return 0; ++ + /* This function only makes sense with more than one dev. */ + if ((info && dm_list_empty(altdevs)) || (!info && (dm_list_size(altdevs) == 1))) { + log_debug("Skip multipath component checks with single device for PVID %s", pvid); +diff --git a/test/shell/duplicate-pvs-multipath.sh b/test/shell/duplicate-pvs-multipath.sh +index 59c15b0d4..bc98d2d5a 100644 +--- a/test/shell/duplicate-pvs-multipath.sh ++++ b/test/shell/duplicate-pvs-multipath.sh +@@ -24,9 +24,13 @@ modprobe --dry-run scsi_debug || skip + multipath -l || skip + multipath -l | grep scsi_debug && skip + +-# Turn off multipath_component_detection so that the duplicate +-# resolution of mpath components is used. +-aux lvmconf 'devices/multipath_component_detection = 0' ++# FIXME: setting multipath_component_detection=0 now also disables ++# the wwid-based mpath component detection, so this test will need ++# to find another way to disable only the filter-mpath code (using ++# sysfs and multipath/wwids) while keeping the code enabled that ++# eliminates duplicates based on their matching wwids which this ++# tries to test. ++ + # Prevent wwids from being used for filtering. + aux lvmconf 'devices/multipath_wwids_file = "/dev/null"' + # Need to use /dev/mapper/mpath +-- +2.37.1 + diff --git a/lvm2.spec b/lvm2.spec index d5f16ae..392c43d 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -63,7 +63,7 @@ Version: 2.03.16 #Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix} Release: 4%{?dist} %else -Release: 2%{?dist} +Release: 3%{?dist} %endif License: GPLv2 URL: http://sourceware.org/lvm2 @@ -79,6 +79,8 @@ Patch4: 0004-filter-mpath-get-wwids-from-sysfs-vpd_pg83.patch Patch5: 0005-pvdisplay-restore-reportformat-option.patch Patch6: 0006-exit-with-error-when-devicesfile-name-doesn-t-exist.patch Patch7: 0007-make-generate.patch +# BZ 2109351: +Patch8: 0008-apply-multipath_component_detection-0-to-duplicate-P.patch BuildRequires: make BuildRequires: gcc @@ -146,6 +148,7 @@ or more physical volumes and creating one or more logical volumes %patch5 -p1 -b .backup5 %patch6 -p1 -b .backup6 %patch7 -p1 -b .backup7 +%patch8 -p1 -b .backup8 %build %global _default_pid_dir /run @@ -716,6 +719,9 @@ An extensive functional testsuite for LVM2. %endif %changelog +* Fri Jul 29 2022 Marian Csontos - 2.03.16-3 +- Fix effect of setting multipath_component_detection to 0. + * Thu Jul 14 2022 Marian Csontos - 2.03.16-2 - Exit with error when --devicesfile used does not exist. - Restore --reportformat option in pvdisplay.