chiark / gitweb /
libudev: update documentation
[elogind.git] / libudev / libudev-enumerate.c
index 186abb927e3dd189373269eaed4d36215a5cc397..9a61a61f0d4a44d32ca78717b0c2d0c2d5766f54 100644 (file)
@@ -251,6 +251,7 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
                unsigned int i;
                unsigned int max;
                struct syspath *prev = NULL, *move_later = NULL;
+               size_t move_later_prefix = 0;
 
                udev_list_cleanup_entries(udev_enumerate->udev, &udev_enumerate->devices_list);
                qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp);
@@ -258,7 +259,6 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
                max = udev_enumerate->devices_cur;
                for (i = 0; i < max; i++) {
                        struct syspath *entry = &udev_enumerate->devices[i];
-                       size_t move_later_prefix = 0;
 
                        /* skip duplicated entries */
                        if (prev != NULL &&
@@ -574,6 +574,8 @@ static int scan_dir_and_add_devices(struct udev_enumerate *udev_enumerate,
                        continue;
 
                util_strscpyl(syspath, sizeof(syspath), path, "/", dent->d_name, NULL);
+               if (!match_property(udev_enumerate, syspath))
+                       continue;
                if (lstat(syspath, &statbuf) != 0)
                        continue;
                if (S_ISREG(statbuf.st_mode))
@@ -586,8 +588,6 @@ static int scan_dir_and_add_devices(struct udev_enumerate *udev_enumerate,
                        continue;
                if (!match_sysattr(udev_enumerate, syspath))
                        continue;
-               if (!match_property(udev_enumerate, syspath))
-                       continue;
                syspath_add(udev_enumerate, syspath);
        }
        closedir(dir);
@@ -685,18 +685,6 @@ int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate)
                scan_dir(udev_enumerate, "bus", "devices", NULL);
                dbg(udev, "searching '/class/*' dir\n");
                scan_dir(udev_enumerate, "class", NULL, NULL);
-               /* if block isn't a class, scan /block/ */
-               util_strscpyl(base, sizeof(base), udev_get_sys_path(udev), "/class/block", NULL);
-               if (stat(base, &statbuf) != 0) {
-                       if (match_subsystem(udev_enumerate, "block")) {
-                               dbg(udev, "searching '/block/*' dir\n");
-                               /* scan disks */
-                               scan_dir_and_add_devices(udev_enumerate, "block", NULL, NULL);
-                               /* scan partitions */
-                               dbg(udev, "searching '/block/*/*' dir\n");
-                               scan_dir(udev_enumerate, "block", NULL, "block");
-                       }
-               }
        }
        return 0;
 }