From b73bf332c2da4f539d029d5e9a09af76df12181f Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Mon, 21 Dec 2009 15:41:25 +0100 Subject: [PATCH 1/1] Speed up udev_enumerate_scan_* Check property match earlier, to avoid lots of readlink() and stat() calls when we check property matches. --- libudev/libudev-enumerate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libudev/libudev-enumerate.c b/libudev/libudev-enumerate.c index 2fcd34829..53cd53b69 100644 --- a/libudev/libudev-enumerate.c +++ b/libudev/libudev-enumerate.c @@ -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); -- 2.30.2