From a0c2a70de006c7b1ca6f8b014eb3d0f51e5d2888 Mon Sep 17 00:00:00 2001 From: Vojtech Trefny Date: Thu, 20 Aug 2020 09:08:49 +0200 Subject: [PATCH] dm: Fix comparing DM RAID member devices UUID (#1583351) --- ...omparing-DM-RAID-member-devices-UUID.patch | 27 +++++++++++++++++++ libblockdev.spec | 7 ++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-comparing-DM-RAID-member-devices-UUID.patch diff --git a/0001-Fix-comparing-DM-RAID-member-devices-UUID.patch b/0001-Fix-comparing-DM-RAID-member-devices-UUID.patch new file mode 100644 index 0000000..0c3eedc --- /dev/null +++ b/0001-Fix-comparing-DM-RAID-member-devices-UUID.patch @@ -0,0 +1,27 @@ +From 2da13152619ee7233650339797657b45088b2219 Mon Sep 17 00:00:00 2001 +From: Vojtech Trefny +Date: Tue, 18 Aug 2020 09:44:29 +0200 +Subject: [PATCH] dm: Fix comparing DM RAID member devices UUID + +There is no "UUID" property in UDev we must use the "ID_FS_UUID" +one. +This comparison works only because most DM RAID members don't have +UUID so the check is skipped, but it fails for DDF RAID members +which have a special GUID/UUID in UDev database. +--- + src/plugins/dm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/plugins/dm.c b/src/plugins/dm.c +index a6412028..4ab0d2a4 100644 +--- a/src/plugins/dm.c ++++ b/src/plugins/dm.c +@@ -482,7 +482,7 @@ static gboolean raid_dev_matches_spec (struct raid_dev *raid_dev, const gchar *n + + context = udev_new (); + device = udev_device_new_from_subsystem_sysname (context, "block", dev_name); +- dev_uuid = udev_device_get_property_value (device, "UUID"); ++ dev_uuid = udev_device_get_property_value (device, "ID_FS_UUID"); + major_str = udev_device_get_property_value (device, "MAJOR"); + minor_str = udev_device_get_property_value (device, "MINOR"); + diff --git a/libblockdev.spec b/libblockdev.spec index 372868b..a92a2ce 100644 --- a/libblockdev.spec +++ b/libblockdev.spec @@ -125,12 +125,13 @@ Name: libblockdev Version: 2.24 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A library for low-level manipulation with block devices License: LGPLv2+ URL: https://github.com/storaged-project/libblockdev Source0: https://github.com/storaged-project/libblockdev/releases/download/%{version}-%{release}/%{name}-%{version}.tar.gz Patch0: libblockdev-gcc11.patch +Patch1: 0001-Fix-comparing-DM-RAID-member-devices-UUID.patch BuildRequires: glib2-devel %if %{with_gi} @@ -682,6 +683,7 @@ A meta-package that pulls all the libblockdev plugins as dependencies. %prep %setup -q -n %{name}-%{version} %patch0 -p1 +%patch1 -p1 %build autoreconf -ivf @@ -985,6 +987,9 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm} %files plugins-all %changelog +* Thu Aug 20 2020 Vojtech Trefny - 2.24-5 +- dm: Fix comparing DM RAID member devices UUID + * Wed Aug 19 2020 Jeff Law - 2.24-4 - Work around gcc-11 false positive warning