Fixed: Disk IO stats for individual partitions instead of whole disk

This commit is contained in:
aristocratos 2022-04-26 20:43:35 +02:00
parent f5758e4861
commit 0f117a0273

View file

@ -911,12 +911,17 @@ namespace Mem {
#endif
if (disks.at(mountpoint).name.empty()) disks.at(mountpoint).name = (mountpoint == "/" ? "root" : mountpoint);
string devname = disks.at(mountpoint).dev.filename();
int c = 0;
while (devname.size() >= 2) {
if (fs::exists("/sys/block/" + devname + "/stat", ec) and access(string("/sys/block/" + devname + "/stat").c_str(), R_OK) == 0) {
disks.at(mountpoint).stat = "/sys/block/" + devname + "/stat";
if (c > 0 and fs::exists("/sys/block/" + devname + '/' + disks.at(mountpoint).dev.filename().string() + "/stat", ec))
disks.at(mountpoint).stat = "/sys/block/" + devname + '/' + disks.at(mountpoint).dev.filename().string() + "/stat";
else
disks.at(mountpoint).stat = "/sys/block/" + devname + "/stat";
break;
}
devname.resize(devname.size() - 1);
c++;
}
}