summaryrefslogtreecommitdiffstats
path: root/source/l/hal/patches/ignore_internal_dm_devices.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/hal/patches/ignore_internal_dm_devices.diff')
-rw-r--r--source/l/hal/patches/ignore_internal_dm_devices.diff47
1 files changed, 47 insertions, 0 deletions
diff --git a/source/l/hal/patches/ignore_internal_dm_devices.diff b/source/l/hal/patches/ignore_internal_dm_devices.diff
new file mode 100644
index 000000000..735a45f3d
--- /dev/null
+++ b/source/l/hal/patches/ignore_internal_dm_devices.diff
@@ -0,0 +1,47 @@
+From 6f16321da13f6a7cbd9c424ddba2e727e434fa25 Mon Sep 17 00:00:00 2001
+From: Milan Broz <mbroz@redhat.com>
+Date: Tue, 13 Jul 2010 16:07:32 +0200
+Subject: [PATCH] HAL: Ignore internal DM devices with new DM udev rules
+
+With new device-mapper udev rules are /dev/mapper/* symlinks
+to basic device name /dev/dm-X.
+(Change requested by udev upstream.)
+
+This change breaks temporary-cryptsetup workaround inside hal.
+
+With new dm-udev rules (uncluded since device-mapper 1.02.39)
+there is DM_UDEV_DISABLE_OTHER_RULES_FLAG variable
+which controls that scan should be ignored for this device
+(it is set for all internal devices, including temporary cryptsetup,
+internal parts of lvm devices etc.)
+
+Ignore device if this flag is set.
+
+See bugs
+https://bugzilla.redhat.com/show_bug.cgi?id=613909
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586286
+
+Signed-off-by: Milan Broz <mbroz@redhat.com>
+---
+ hald/linux/osspec.c | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/hald/linux/osspec.c b/hald/linux/osspec.c
+index a8233fd..6d616bc 100644
+--- a/hald/linux/osspec.c
++++ b/hald/linux/osspec.c
+@@ -215,6 +215,11 @@ hald_udev_data (GIOChannel *source, GIOCondition condition, gpointer user_data)
+ g_free (str);
+ }
+ g_free (dstr);
++ } else if (strncmp(key, "DM_UDEV_DISABLE_OTHER_RULES_FLAG=", 33) == 0) {
++ if (strtoul(&key[33], NULL, 10) == 1) {
++ HAL_INFO (("ignoring device requested by DM udev rules"));
++ goto invalid;
++ }
+ }
+ }
+
+--
+1.7.3.2
+