--- khdapsmonitor-0.1/src/sysfs.cpp.old 2006-06-29 20:16:10.000000000 +0100 +++ khdapsmonitor-0.1/src/sysfs.cpp 2009-01-09 14:58:26.133559012 +0000 @@ -63,6 +63,9 @@ { if(QFile("/sys/block/" + deviceList[i] + "/queue/protect").exists()) i++; + // newer kernels provide a different interface + else if (QFile("/sys/block/" + deviceList[i] + "/device/unload_heads").exists()) + i++; else deviceList.remove(deviceList.at(i)); } @@ -71,5 +74,9 @@ bool SysFS::queueProtected(QString device) { + // newer kernels provide a different interface + if (QFile("/sys/block/" + device + "/device/unload_heads").exists()) + return fileBool("/sys/block/" + device + "/device/unload_heads"); + else return fileBool("/sys/block/" + device + "/queue/protect"); }