diff --git a/0001-Fix-DM_MULTIPATH_DEVICE_PATH-in-udev-rules.patch b/0001-Fix-DM_MULTIPATH_DEVICE_PATH-in-udev-rules.patch new file mode 100644 index 0000000..432da9f --- /dev/null +++ b/0001-Fix-DM_MULTIPATH_DEVICE_PATH-in-udev-rules.patch @@ -0,0 +1,56 @@ +From b3d9f04f354d2ac21964a637ef42815476b6ff78 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Thu, 13 Sep 2018 16:40:44 -0700 +Subject: [PATCH] Fix DM_MULTIPATH_DEVICE_PATH in udev rules + +As we worked out in +https://bugzilla.redhat.com/show_bug.cgi?id=1628774 , with +multipath-tools 0.7.7 or higher, DM_MULTIPATH_DEVICE_PATH gets +set to the value 0 for non-multipath devices in some cases. +Before 0.7.7, it was always either set to 1 or not set at all. +Now it can be set to 0, checks like this: + +ENV{DM_MULTIPATH_DEVICE_PATH}=="?*" + +don't work right any more, because that check will actually +match if the value is 0 (it will only not match if the var is +not set at all, or is set to an empty string). Instead we should +just check if it is set to exactly 1, otherwise assume the device +isn't multipath. + +The impact of this is I think quite limited: we only skip two +rules if this check matches, and they only affect mdraid devices. +On installed systems without any multipath devices, the bug +should not happen, because there should be no /etc/multipath.conf +and when that file doesn't exist, the multipath rules skip out +early and don't wind up setting the value to 0 ever. I think the +only cases affected by this are 'generic' environments like live +images and installers, and installed systems with multipath +devices. In both these cases there will be a /etc/multipath.conf +file, so for some devices, the multipath rules will get far +enough to set the value to 0. The consequence will be that the +UDISKS_MD_* values that these two rules try to set will not get +set for devices they *should* get set for. I'm not sure what the +further consequences of that are, if any. + +Signed-off-by: Adam Williamson +--- + data/80-udisks2.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/80-udisks2.rules b/data/80-udisks2.rules +index e8f7c5ee..a64f1cb3 100644 +--- a/data/80-udisks2.rules ++++ b/data/80-udisks2.rules +@@ -10,7 +10,7 @@ + # Skip probing if not a block device or if requested by other rules + # + SUBSYSTEM!="block", GOTO="udisks_probe_end" +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="udisks_probe_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="udisks_probe_end" + ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="?*", GOTO="udisks_probe_end" + + # MD-RAID (aka Linux Software RAID) members +-- +2.19.0 + diff --git a/udisks2.spec b/udisks2.spec index 23c403a..3a434c1 100644 --- a/udisks2.spec +++ b/udisks2.spec @@ -56,11 +56,15 @@ Name: udisks2 Summary: Disk Manager Version: 2.8.0 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: https://github.com/storaged-project/udisks Source0: https://github.com/storaged-project/udisks/releases/download/udisks-%{version}/udisks-%{version}.tar.bz2 +# https://github.com/storaged-project/udisks/pull/576 +# Fix udev multipath device check for device-mapper-multipath 0.7.7+ +# https://bugzilla.redhat.com/show_bug.cgi?id=1628192 +Patch0: 0001-Fix-DM_MULTIPATH_DEVICE_PATH-in-udev-rules.patch BuildRequires: glib2-devel >= %{glib2_version} BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version} @@ -264,6 +268,7 @@ This package contains module for VDO management. %prep %setup -q -n udisks-%{version} +%patch0 -p1 sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/" %build @@ -437,6 +442,9 @@ udevadm trigger %endif %changelog +* Fri Sep 14 2018 Adam Williamson - 2.8.0-2 +- Backport PR #576 to fix udev multipath device check (see RHBZ#1628192) + * Mon Aug 13 2018 Tomas Bzatek - 2.8.0-1 - Version 2.8.0