1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-12-27 20:44:56 +00:00

Fix diskio total computation for kernel > 2.6.31 (sf: #2942117)

(cherry picked from commit 44e3708cdb)
This commit is contained in:
Cesare Tirabassi 2010-01-30 14:19:38 +01:00
parent 8cb56def23
commit 3db07e589f

View File

@ -2256,6 +2256,7 @@ void update_diskio(void)
struct diskio_stat *cur;
unsigned int reads, writes;
unsigned int total_reads = 0, total_writes = 0;
size_t len_devbuf;
stats.current = 0;
stats.current_read = 0;
@ -2276,8 +2277,15 @@ void update_diskio(void)
* XXX: ignore devices which are part of a SW RAID (MD_MAJOR) */
if (col_count == 5 && major != LVM_BLK_MAJOR && major != NBD_MAJOR
&& major != RAMDISK_MAJOR && major != LOOP_MAJOR) {
total_reads += reads;
total_writes += writes;
/* If the last character of the device is a digit we assume
* it is a subdevice (needed for kernel > 2.6.31) */
if (devbuf) {
len_devbuf = strlen(devbuf);
if ((len_devbuf > 0) && !isdigit(devbuf[len_devbuf-1])) {
total_reads += reads;
total_writes += writes;
}
}
} else {
col_count = sscanf(buf, "%u %u %s %*u %u %*u %u",
&major, &minor, devbuf, &reads, &writes);