chiark / gitweb /
Fix virtio-ports rule to use $attr instead of $ATTR
[elogind.git] / libudev / libudev-enumerate.c
index 2fcd34829644f9c5defab0cc1b48ce55daf3c498..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);