X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=libudev%2Flibudev-enumerate.c;h=9a61a61f0d4a44d32ca78717b0c2d0c2d5766f54;hp=186abb927e3dd189373269eaed4d36215a5cc397;hb=dbba7e4029e2eb8157232e6b5ddd9ee0f68b51b5;hpb=78715f65c92a8892960e2a5fce945496939f8599 diff --git a/libudev/libudev-enumerate.c b/libudev/libudev-enumerate.c index 186abb927..9a61a61f0 100644 --- a/libudev/libudev-enumerate.c +++ b/libudev/libudev-enumerate.c @@ -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; }