From 846861051028b3e5f09c51eed7eb729cc01b6387 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sun, 25 Mar 2012 09:19:04 +0000 Subject: [PATCH] diagnostic sk_disk_open failure --- src/lib/hdd_atasmart.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/lib/hdd_atasmart.c b/src/lib/hdd_atasmart.c index d7b2351..c15f06e 100644 --- a/src/lib/hdd_atasmart.c +++ b/src/lib/hdd_atasmart.c @@ -20,8 +20,12 @@ #include #define _(str) gettext(str) +#include +#include #include #include +#include + #include @@ -48,6 +52,21 @@ create_sensor(char *id, char *name, SkDisk *disk, int values_max_length) return s; } +static void analyze_disk(const char *dname) +{ + int f; + + log_debug("Analyze error for disk: %s", dname); + + f = open(dname, O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC); + + if (f != -1) + close(f); + else + log_debug("Could not open file %s: %s", dname, strerror(errno)); +} + + struct psensor **hdd_psensor_list_add(struct psensor **sensors, int values_max_length) { @@ -81,7 +100,8 @@ struct psensor **hdd_psensor_list_add(struct psensor **sensors, result = tmp_sensors; } else { - log_err("Failed to open %s", *tmp); + log_err("sk_disk_open %s failure", *tmp); + analyze_disk(*tmp); } tmp++; -- 2.7.4