mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 12:14:36 +03:00
Fix integer sizing issues in the DiskIO Meter
On Linux kernels the size of the values exported for block device bytes has used a 64 bit integer for quite some time (2.6+ IIRC). Make the procfs value extraction use correct types and change internal types used to rate convert these counters (within the DiskIO Meter) 64 bit integers, where appropriate.
This commit is contained in:
@ -494,12 +494,12 @@ bool Platform_getDiskIO(DiskIOData* data) {
|
||||
if (!fd)
|
||||
return false;
|
||||
|
||||
unsigned long int read_sum = 0, write_sum = 0, timeSpend_sum = 0;
|
||||
unsigned long long int read_sum = 0, write_sum = 0, timeSpend_sum = 0;
|
||||
char lineBuffer[256];
|
||||
while (fgets(lineBuffer, sizeof(lineBuffer), fd)) {
|
||||
char diskname[32];
|
||||
unsigned long int read_tmp, write_tmp, timeSpend_tmp;
|
||||
if (sscanf(lineBuffer, "%*d %*d %31s %*u %*u %lu %*u %*u %*u %lu %*u %*u %lu", diskname, &read_tmp, &write_tmp, &timeSpend_tmp) == 4) {
|
||||
unsigned long long int read_tmp, write_tmp, timeSpend_tmp;
|
||||
if (sscanf(lineBuffer, "%*d %*d %31s %*u %*u %llu %*u %*u %*u %llu %*u %*u %llu", diskname, &read_tmp, &write_tmp, &timeSpend_tmp) == 4) {
|
||||
if (String_startsWith(diskname, "dm-"))
|
||||
continue;
|
||||
|
||||
|
Reference in New Issue
Block a user