Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[inputs/diskio] Fix how major and minor identifiers of block devices …
…are read. (#5566) * Fix how major and minor identifiers of block devices are read. The current implementation assure that the major and the minor are coded on one byte. But they are not: ``` brw-rw---- 1 root disk 252, 290 Feb 25 11:36 dm-290 ``` 290 as minor in this example is over 1 byte. So after wondering why all my devices iops weren't correctly stored, I found out that several points were added for some disks. For `dm-290` it was overriding `252:34`, instead of getting udev stats for `252:290`. The solution is here: https://sites.uclouvain.be/SystInfo/usr/include/sys/sysmacros.h.html The implementation is directly taken from this, fixing my bug. * Use unix.Major/unix.Minor instead of custom implementation * [diskio] Force type of stat.Rdev uint64 for mipsle compatibility For most platforms, stat.Rdev is already a uint64 so this is without any effect for linux,mipsle, unix.Stat_t.Rdev is a uint32, but the way to compute major and minor doesn't change, casting the uint32 has no impact either
- Loading branch information