From bff2198e3d7213b3bb0c8452d5b878c38ec57d1e Mon Sep 17 00:00:00 2001 From: David Lehman Date: Tue, 3 Feb 2015 12:47:48 -0600 Subject: [PATCH] Use a safer method to get a dm partition's disk name. 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 dd9b2d9a9..d84d88ebf 100644 --- a/blivet/udev.py +++ b/blivet/udev.py @@ -526,7 +526,19 @@ def device_is_biosraid_member(info): return False def device_get_dm_partition_disk(info): - return re.sub(r'p?\d*$', '', device_get_name(info)) + if not device_is_dm_partition(info): + return None + + disk = None + majorminor = info.get("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