chiark / gitweb /
[PATCH] fix bug where NUMBER and TOPOLOGY would not work for partitions.
[elogind.git] / namedev.c
index 2176e8ba71700940f0f03271d21b26adba600d27..140d50079f0f0f5920c0447c5c9cd5a198a1e8de 100644 (file)
--- a/namedev.c
+++ b/namedev.c
@@ -608,6 +608,7 @@ static int get_attr(struct sysfs_class_device *class_dev, struct udevice *udev)
        udev->mode = 0;
 
        /* find the sysfs_device for this class device */
+       /* Wouldn't it really be nice if libsysfs could do this for us? */
        if (class_dev->sysdevice) {
                sysfs_device = class_dev->sysdevice;
        } else {
@@ -691,12 +692,11 @@ label_found:
                case NUMBER:
                        {
                        char path[SYSFS_PATH_MAX];
-                       char *temp;
 
                        found = 0;
-                       if (!class_dev->sysdevice)
+                       if (!sysfs_device)
                                continue;
-                       strcpy(path, class_dev->sysdevice->path);
+                       strcpy(path, sysfs_device->path);
                        temp = strrchr(path, '/');
                        dbg_parse("NUMBER path = '%s'", path);
                        dbg_parse("NUMBER temp = '%s' id = '%s'", temp, dev->id);
@@ -727,12 +727,11 @@ label_found:
                case TOPOLOGY:
                        {
                        char path[SYSFS_PATH_MAX];
-                       char *temp;
 
-                       if (!class_dev->sysdevice)
+                       if (!sysfs_device)
                                continue;
                        found = 0;      
-                       strcpy(path, class_dev->sysdevice->path);
+                       strcpy(path, sysfs_device->path);
                        temp = strrchr(path, '/');
                        dbg_parse("TOPOLOGY path = '%s'", path);
                        dbg_parse("TOPOLOGY temp = '%s' place = '%s'", temp, dev->place);