disk plugin: Fix regression after #2955 (Drop support for Linux 2.4)
[collectd.git] / src / disk.c
index c0408ce..b2285c1 100644 (file)
@@ -662,9 +662,6 @@ static int disk_read(void) {
   char buffer[1024];
 
   char *fields[32];
-  int numfields;
-
-  int minor = 0;
 
   derive_t read_sectors = 0;
   derive_t write_sectors = 0;
@@ -691,11 +688,11 @@ static int disk_read(void) {
     char *disk_name;
     char *output_name;
 
-    numfields = strsplit(buffer, fields, 32);
-    if ((numfields != 14) && (numfields != 7))
-      continue;
+    int numfields = strsplit(buffer, fields, 32);
 
-    minor = atoll(fields[1]);
+    /* need either 7 fields (partition) or at least 14 fields */
+    if ((numfields != 7) && (numfields < 14))
+      continue;
 
     disk_name = fields[2];
 
@@ -726,28 +723,24 @@ static int disk_read(void) {
       read_sectors = atoll(fields[4]);
       write_ops = atoll(fields[5]);
       write_sectors = atoll(fields[6]);
-    } else if (numfields == 14) {
+    } else {
+      assert(numfields >= 14);
       read_ops = atoll(fields[3]);
       write_ops = atoll(fields[7]);
 
       read_sectors = atoll(fields[5]);
       write_sectors = atoll(fields[9]);
 
-      if (minor == 0) {
-        is_disk = 1;
-        read_merged = atoll(fields[4]);
-        read_time = atoll(fields[6]);
-        write_merged = atoll(fields[8]);
-        write_time = atoll(fields[10]);
+      is_disk = 1;
+      read_merged = atoll(fields[4]);
+      read_time = atoll(fields[6]);
+      write_merged = atoll(fields[8]);
+      write_time = atoll(fields[10]);
 
-        in_progress = atof(fields[11]);
+      in_progress = atof(fields[11]);
 
-        io_time = atof(fields[12]);
-        weighted_time = atof(fields[13]);
-      }
-    } else {
-      DEBUG("numfields = %i; => unknown file format.", numfields);
-      continue;
+      io_time = atof(fields[12]);
+      weighted_time = atof(fields[13]);
     }
 
     {