diff --git a/src/proc_fuse.c b/src/proc_fuse.c index 4ceea4c..519cda4 100644 --- a/src/proc_fuse.c +++ b/src/proc_fuse.c @@ -686,11 +686,16 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset, tot_ticks = tot_ticks/1000000; memset(lbuf, 0, 256); - if (read || write || read_merged || write_merged || read_sectors || write_sectors || read_ticks || write_ticks) + if (read || write || read_merged || write_merged || read_sectors || write_sectors || read_ticks || write_ticks) { + if (need_record_diskstats(major, minor)) { + sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n", + &major, &minor, tmp_dev_name, &read, &read_merged, &read_sectors, &read_ticks, + &write, &write_merged, &write_sectors, &write_ticks, &ios_pgr, &tot_ticks, &rq_ticks); + } snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n", major, minor, dev_name, read, read_merged, read_sectors, read_ticks, write, write_merged, write_sectors, write_ticks, ios_pgr, tot_ticks, rq_ticks); - else if (need_record_diskstats(major, minor)) { + } else if (need_record_diskstats(major, minor)) { sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n", &major, &minor, tmp_dev_name, &read, &read_merged, &read_sectors, &read_ticks, &write, &write_merged, &write_sectors, &write_ticks, &ios_pgr, &tot_ticks, &rq_ticks);