- /* I know that this makes `minor' redundant, but I want
- * to be able to change this beavior in the future..
- * And 4 or 8 bytes won't hurt anybody.. -octo */
- if (major == 0)
- continue;
- if (minor != 0)
- continue;
+ /* We try to keep only entries, which may correspond to
+ * physical disks and that may have a corresponding
+ * entry in the hddtemp daemon. Basically, this means
+ * IDE and SCSI. */
+ switch (major)
+ {
+ /* SCSI. */
+ case SCSI_DISK0_MAJOR:
+ case SCSI_DISK1_MAJOR:
+ case SCSI_DISK2_MAJOR:
+ case SCSI_DISK3_MAJOR:
+ case SCSI_DISK4_MAJOR:
+ case SCSI_DISK5_MAJOR:
+ case SCSI_DISK6_MAJOR:
+ case SCSI_DISK7_MAJOR:
+#ifdef SCSI_DISK8_MAJOR
+ case SCSI_DISK8_MAJOR:
+ case SCSI_DISK9_MAJOR:
+ case SCSI_DISK10_MAJOR:
+ case SCSI_DISK11_MAJOR:
+ case SCSI_DISK12_MAJOR:
+ case SCSI_DISK13_MAJOR:
+ case SCSI_DISK14_MAJOR:
+ case SCSI_DISK15_MAJOR:
+#endif /* SCSI_DISK8_MAJOR */
+ /* SCSI disks minors are multiples of 16.
+ * Keep only those. */
+ if (minor % 16)
+ continue;
+ break;
+
+ /* IDE. */
+ case IDE0_MAJOR:
+ case IDE1_MAJOR:
+ case IDE2_MAJOR:
+ case IDE3_MAJOR:
+ case IDE4_MAJOR:
+ case IDE5_MAJOR:
+ case IDE6_MAJOR:
+ case IDE7_MAJOR:
+ case IDE8_MAJOR:
+ case IDE9_MAJOR:
+ /* IDE disks minors can only be 0 or 64.
+ * Keep only those. */
+ if(minor != 0 && minor != 64)
+ continue;
+ break;
+
+ /* Skip all other majors. */
+ default:
+ DEBUG ("hddtemp plugin: Skipping unknown major %i", major);
+ continue;
+ } /* switch (major) */