Speed up udev_enumerate_scan_*

Check property match earlier, to avoid lots of readlink() and stat()
calls when we check property matches.
This commit is contained in:
Martin Pitt
2009-12-21 15:41:25 +01:00
parent c71d6a45aa
commit b73bf332c2

View File

@@ -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);