X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdisk.c;h=b2285c1836d41d51c131432513cb555b1bcc1bf2;hb=0ac4011bb728f8716082a3ddea4f112acc2c86e5;hp=c0408cecce76a6891e394bf96a00e308942ebe13;hpb=1c6fdbaea6ad42c41cd63006a3c8abbdefa391db;p=collectd.git diff --git a/src/disk.c b/src/disk.c index c0408cec..b2285c18 100644 --- a/src/disk.c +++ b/src/disk.c @@ -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]); } {