[PATCH] Use a safer method to get a dm partition's disk name.

David Lehman dlehman at redhat.com
Tue Feb 17 14:59:20 UTC 2015


Resolves: rhbz#1190886
Related: rhbz#1181336
---
 blivet/udev.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/blivet/udev.py b/blivet/udev.py
index 7ae42b1..aefa631 100644
--- a/blivet/udev.py
+++ b/blivet/udev.py
@@ -580,7 +580,19 @@ def device_is_biosraid_member(info):
     return False
 
 def device_get_dm_partition_disk(info):
-    return os.path.basename(os.path.dirname(device_get_sysfs_path(info)))
+    if not device_is_dm_partition(info):
+        return None
+
+    disk = None
+    majorminor = info["ID_PART_ENTRY_DISK"]
+    if majorminor:
+        major, minor = majorminor.split(":")
+        for device in get_devices():
+            if device.get("MAJOR") == major and device.get("MINOR") == minor:
+                disk = device_get_name(device)
+                break
+
+    return disk
 
 def device_is_dm_partition(info):
     return (device_is_dm(info) and
-- 
1.9.3



More information about the anaconda-patches mailing list