MD_FOO values are not consistent enough to be used to differentiate
md devices from md member devices, so just check for
the /sys/class/block/<name>/md/ subdirectory as only md devices have
one.
diff --git a/pyanaconda/storage/devicetree.py b/pyanaconda/storage/devicetree.py
index c4b31c2..39a4245 100644
--- a/pyanaconda/storage/devicetree.py
+++ b/pyanaconda/storage/devicetree.py
@@ -955,7 +955,7 @@ class DeviceTree(object):
elif udev_device_is_dm(info):
log.debug("%s is a device-mapper device" % name)
device = self.addUdevDMDevice(info)
- elif udev_device_is_md(info):
+ elif udev_device_is_md(info) and not udev_device_get_md_container(info):
log.debug("%s is an md device" % name)
if uuid:
# try to find the device by uuid
diff --git a/pyanaconda/storage/udev.py b/pyanaconda/storage/udev.py
index df6d99e..96faf48 100644
--- a/pyanaconda/storage/udev.py
+++ b/pyanaconda/storage/udev.py
@@ -166,13 +166,10 @@ def udev_device_is_md(info):
if udev_device_is_partition(info):
return False
- # imsm member disks have MD_METADATA set, but are not arrays
+ # The udev information keeps shifting around. Only md arrays have a
+ # /sys/class/block/<name>/md/ subdirectory.
md_dir = "/sys" + udev_device_get_sysfs_path(info) + "/md"
-
- # isw raid set *members* have MD_METADATA set, but are not arrays!
- return (info.has_key("MD_METADATA") and
- info.get("ID_FS_TYPE") != "isw_raid_member" and
- os.path.exists(md_dir))
+ return os.path.exists(md_dir)
def udev_device_is_cciss(info):
""" Return True if the device is a CCISS device. """
--
1.7.3.5
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list