summaryrefslogtreecommitdiffstats
path: root/source/l/hal/patches/ignore_internal_dm_devices.diff
blob: 735a45f3daea812f46d0dfe9b8641a1514fd869f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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