char buffer[1024];
char *fields[32];
- int numfields;
-
- int minor = 0;
derive_t read_sectors = 0;
derive_t write_sectors = 0;
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];
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]);
}
{