From 09abbcb686b2afbb0e70b99d9c700ba935d6b19d Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Fri, 6 Feb 2009 13:14:36 +0000 Subject: [PATCH] When looking for hwmon device attributes, skip non-file sysfs entries. This speeds things up a little. Patch from Andre Prendel. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5636 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 1 + lib/sysfs.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 9fc76d2f..bfc7e96f 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ SVN-HEAD Fix error propagation during expression evaluation Detect excessive recursion depth during expression eval (#2365) Return a string rather than NULL for unknown errors + Skip non-file sysfs entries for speed lm_sensors.init: Support new format of /etc/sysconfig/lm_sensors (#2246) Drop support for kernels 2.4 and earlier lm_sensors.init.suse: Delete (actual SuSE script is much different) diff --git a/lib/sysfs.c b/lib/sysfs.c index 7f805a80..4c383eb5 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -357,12 +357,15 @@ static int sensors_read_dynamic_chip(sensors_chip_features *chip, sensors_fatal_error(__func__, "Out of memory"); while ((ent = readdir(dir))) { - char *name = ent->d_name; + char *name; int nr; - if (ent->d_name[0] == '.') + /* Skip directories and symlinks */ + if (ent->d_type != DT_REG) continue; + name = ent->d_name; + sftype = sensors_subfeature_get_type(name, &nr); if (sftype == SENSORS_SUBFEATURE_UNKNOWN) continue;