Subject: [PATCH] HAL: Ignore internal DM devices with new DM udev rules
From: Milan Broz <mbroz@redhat.com>
Date: Tue, 13 Jul 2010 14:08:14 +0200

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;
+			}
 		}
 	}
 
