From: Gabor Juhos Date: Tue, 10 Sep 2013 10:59:22 +0000 (+0200) Subject: udevtrigger: check presence of dev attribute X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fprocd.git;a=commitdiff_plain;h=e6021a8a34e39328ffc867141da03c19da9b2aec udevtrigger: check presence of dev attribute The presence of the 'uevent' attribute file does not always mean that a corresponding device node can be created under '/dev'. For valid device nodes, a 'dev' attribute file must be present which cntains the major and minor numbers of the device. Modify the code to check the presence of the dev attribute as well. This allows to avoid superfluous trigger_uevent calls. On a test system, the patch reduced the number of the triegger_uevent calls from 144 to 70. Signed-off-by: Gabor Juhos --- diff --git a/udevtrigger.c b/udevtrigger.c index c5628bd..af620c2 100644 --- a/udevtrigger.c +++ b/udevtrigger.c @@ -161,8 +161,9 @@ static int device_list_insert(const char *path) dbg("add '%s'" , path); - /* we only have a device, if we have an uevent file */ - if (!device_has_attribute(path, "/uevent", S_IWUSR)) + /* we only have a device, if we have a dev and an uevent file */ + if (!device_has_attribute(path, "/dev", S_IRUSR) || + !device_has_attribute(path, "/uevent", S_IWUSR)) return -1; strlcpy(devpath, &path[4], sizeof(devpath));