diff --git a/device-mapper.changes b/device-mapper.changes index 927d1e4..55bc768 100644 --- a/device-mapper.changes +++ b/device-mapper.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jan 20 09:46:27 UTC 2017 - tchvatal@suse.com + +- Remove special case for md (bsc#1012973) + * remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch + ------------------------------------------------------------------- Tue Jan 10 09:25:17 UTC 2017 - zlliu@suse.com diff --git a/device-mapper.spec b/device-mapper.spec index 00b0d44..6448e10 100644 --- a/device-mapper.spec +++ b/device-mapper.spec @@ -78,6 +78,8 @@ Patch2009: pvcreate-enhance-the-error-message.patch Patch2010: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #PATCH-FIX-SUSE, bnc#950089 Patch2011: lvm2-testsuite.patch +# Remove special case for the md rules +Patch2012: remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch ### COMMON-PATCH-END ### BuildRequires: gcc-c++ BuildRequires: pkgconfig @@ -154,6 +156,7 @@ Files needed for software development using the device mapper %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 ### COMMON-PREP-END ### %build diff --git a/lvm2-clvm.changes b/lvm2-clvm.changes index 927d1e4..55bc768 100644 --- a/lvm2-clvm.changes +++ b/lvm2-clvm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jan 20 09:46:27 UTC 2017 - tchvatal@suse.com + +- Remove special case for md (bsc#1012973) + * remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch + ------------------------------------------------------------------- Tue Jan 10 09:25:17 UTC 2017 - zlliu@suse.com diff --git a/lvm2-clvm.spec b/lvm2-clvm.spec index f4da61a..74a1cdb 100644 --- a/lvm2-clvm.spec +++ b/lvm2-clvm.spec @@ -77,6 +77,8 @@ Patch2009: pvcreate-enhance-the-error-message.patch Patch2010: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #PATCH-FIX-SUSE, bnc#950089 Patch2011: lvm2-testsuite.patch +# Remove special case for the md rules +Patch2012: remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch ### COMMON-PATCH-END ### BuildRequires: libcorosync-devel BuildRequires: libdlm-devel @@ -138,6 +140,7 @@ A daemon for using LVM2 Logival Volumes in a clustered environment. %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 ### COMMON-PREP-END ### %build diff --git a/lvm2.changes b/lvm2.changes index 927d1e4..55bc768 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jan 20 09:46:27 UTC 2017 - tchvatal@suse.com + +- Remove special case for md (bsc#1012973) + * remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch + ------------------------------------------------------------------- Tue Jan 10 09:25:17 UTC 2017 - zlliu@suse.com diff --git a/lvm2.spec b/lvm2.spec index 44ff5d5..dca73e7 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -79,6 +79,8 @@ Patch2009: pvcreate-enhance-the-error-message.patch Patch2010: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #PATCH-FIX-SUSE, bnc#950089 Patch2011: lvm2-testsuite.patch +# Remove special case for the md rules +Patch2012: remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch ### COMMON-PATCH-END ### BuildRequires: gcc-c++ BuildRequires: libaio-devel @@ -173,6 +175,7 @@ An extensive functional testsuite for the LVM2 Logical Volume Manager. %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 ### COMMON-PREP-END ### %build diff --git a/remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch b/remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch new file mode 100644 index 0000000..6eb625c --- /dev/null +++ b/remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch @@ -0,0 +1,59 @@ +From 2759c9fa04af726d2777db142806287256bd9cc5 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Wed, 4 Jan 2017 14:30:52 +1100 +Subject: [PATCH] Remove special-case for md in 69-dm-lvm-metadata.rules + +This special casing brings no value. It appears to attempt to +determine if the array is active yet or not, and to skip +processing if the array has not yet been started. +However, if the array hasn't been started, then "blkid" will +not have been able to read a signature, so: + ENV{ID_FS_TYPE}!="LVM2_member|LVM1_member", GOTO="lvm_end" +will have caused all this code to be skipped. + +Further, this code causes incorrect behaviour in at least one case. +It assumes that the first "add" event should be ignored, as it will be +followed by a "change" event which indicates the array coming on line. +This is consistent with how the kernel sends events, but not always +consistent with how this script sees event. +Specifically: if the initrd has "mdadm" support installed, but not +"lvm2" support, then the initial "add" and "change" events will +happen while the initrd is in charge and this file is not available. +Once the root filesystem is mountd, this file will be available +and "udevadm trigger --action=add" will be run. +So the first and only event seen by this script for an md device will be +"add", and it will incorrectly ignore it. + +It is probable that the special handling for "loop" should be removed as +well, but I have not actually seen that cause a problem, so I'm +leaving it unchanged. + +Signed-off-by: NeilBrown +--- + udev/69-dm-lvm-metad.rules.in | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in +index bd75fc8..db213ed 100644 +--- a/udev/69-dm-lvm-metad.rules.in ++++ b/udev/69-dm-lvm-metad.rules.in +@@ -50,16 +50,6 @@ KERNEL!="dm-[0-9]*", GOTO="next" + ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", ENV{DM_ACTIVATION}=="1", GOTO="lvm_scan" + GOTO="lvm_end" + +-# MD device: +-LABEL="next" +-KERNEL!="md[0-9]*", GOTO="next" +-IMPORT{db}="LVM_MD_PV_ACTIVATED" +-ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}=="1", GOTO="lvm_scan" +-ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan" +-ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan" +-ENV{LVM_MD_PV_ACTIVATED}!="1", ENV{SYSTEMD_READY}="0" +-GOTO="lvm_end" +- + # Loop device: + LABEL="next" + KERNEL!="loop[0-9]*", GOTO="next" +-- +2.10.2 +