diff options
-rw-r--r-- | storage/udev.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/storage/udev.py b/storage/udev.py index e97d5d528..b6f664381 100644 --- a/storage/udev.py +++ b/storage/udev.py @@ -114,7 +114,7 @@ def udev_get_block_device(sysfs_path): entry = open(db_path).read() dev = udev_parse_block_entry(entry) - if dev: + if dev.has_key("name"): # XXX why do we do this? is /sys going to move during installation? dev['sysfs_path'] = sysfs_path[4:] # strip off the leading '/sys' dev = udev_parse_uevent_file(dev) @@ -138,8 +138,7 @@ def udev_parse_uevent_file(dev): return dev def udev_parse_block_entry(buf): - dev = {'name': None, - 'symlinks': []} + dev = {} for line in buf.splitlines(): line.strip() @@ -150,7 +149,10 @@ def udev_parse_block_entry(buf): if tag == "N": dev['name'] = val elif tag == "S": - dev['symlinks'].append(val) + if dev.has_key('symlinks'): + dev['symlinks'].append(val) + else: + dev['symlinks'] = [val] elif tag == "E": if val.count("=") > 1 and val.count(" ") > 0: # eg: LVM2_LV_NAME when querying the VG for its LVs @@ -174,8 +176,7 @@ def udev_parse_block_entry(buf): dev[var_name] = var_val - if dev.get("name"): - return dev + return dev def udev_settle(timeout=None): argv = ["settle"] |