From: Phil Sutter Date: Sun, 14 Dec 2008 01:51:50 +0000 (+0100) Subject: fix disk_protect for linux-2.6.27 X-Git-Url: http://git.maemo.org/git/?a=commitdiff_plain;h=5445c8890aaa7168040ab7fa27c6535c43cd523d;p=monky fix disk_protect for linux-2.6.27 The path for the sysfs attribute has changed. Also negative values show disabled disk protect, so catch this when interpreting the file's content. --- diff --git a/ChangeLog b/ChangeLog index bf2f66c..0c32368 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2008-12-14 + * Fix disk_protect for linux-2.6.27 (and hopefully above) + 2008-12-09 * Add an option to timed_thread_test() to not wait for the interval period (so that IMAP IDLE works better) diff --git a/src/linux.c b/src/linux.c index a5feb59..ab4d709 100644 --- a/src/linux.c +++ b/src/linux.c @@ -2337,7 +2337,10 @@ const char *get_disk_protect_queue(const char *disk) char path[128]; int state; - snprintf(path, 127, "/sys/block/%s/queue/protect", disk); + snprintf(path, 127, "/sys/block/%s/device/unload_heads", disk); + if (access(path, F_OK)) { + snprintf(path, 127, "/sys/block/%s/queue/protect", disk); + } if ((fp = fopen(path, "r")) == NULL) return "n/a "; if (fscanf(fp, "%d\n", &state) != 1) { @@ -2345,6 +2348,6 @@ const char *get_disk_protect_queue(const char *disk) return "failed"; } fclose(fp); - return state ? "frozen" : "free "; + return (state > 0) ? "frozen" : "free "; }