char line[256];
FILE *f;
char *p;
+ int ret;
f = fopen(du->path, "r");
if (!f)
return 1;
}
- if (sscanf(p, "%u %u %llu %u %u %u %llu %u %u %u %u\n", &dus->ios[0], &dus->merges[0], &dus->sectors[0], &dus->ticks[0], &dus->ios[1], &dus->merges[1], &dus->sectors[1], &dus->ticks[1], &in_flight, &dus->io_ticks, &dus->time_in_queue) != 11) {
+ ret = scanf(p, "%u %u %llu %u %u %u %llu %u %u %u %u\n", &dus->ios[0],
+ &dus->merges[0], &dus->sectors[0],
+ &dus->ticks[0], &dus->ios[1],
+ &dus->merges[1], &dus->sectors[1],
+ &dus->ticks[1], &in_flight,
+ &dus->io_ticks, &dus->time_in_queue);
+ if (ret != 11) {
fclose(f);
return 1;
}
int mindev, majdev;
char *p;
- if (!stat(f->file_name, &st)) {
+ if (!lstat(f->file_name, &st)) {
if (S_ISBLK(st.st_mode)) {
majdev = major(st.st_rdev);
mindev = minor(st.st_rdev);
} else if (S_ISCHR(st.st_mode)) {
majdev = major(st.st_rdev);
mindev = minor(st.st_rdev);
- fio_lookup_raw(st.st_rdev, &majdev, &mindev);
- } else {
+ if (fio_lookup_raw(st.st_rdev, &majdev, &mindev))
+ return;
+ } else if (S_ISFIFO(st.st_mode))
+ return;
+ else {
majdev = major(st.st_dev);
mindev = minor(st.st_dev);
}
last_mindev = mindev;
last_majdev = majdev;
-
+
sprintf(foo, "/sys/block");
if (!find_block_dir(majdev, mindev, foo))
return;
struct disk_util *du;
double util;
+ if (list_empty(&disk_list))
+ return;
+
log_info("\nDisk stats (read/write):\n");
list_for_each(entry, &disk_list) {
if (util > 100.0)
util = 100.0;
- log_info(" %s: ios=%u/%u, merge=%u/%u, ticks=%u/%u, in_queue=%u, util=%3.2f%%\n", du->name, dus->ios[0], dus->ios[1], dus->merges[0], dus->merges[1], dus->ticks[0], dus->ticks[1], dus->time_in_queue, util);
+ log_info(" %s: ios=%u/%u, merge=%u/%u, ticks=%u/%u, "
+ "in_queue=%u, util=%3.2f%%\n", du->name,
+ dus->ios[0], dus->ios[1],
+ dus->merges[0], dus->merges[1],
+ dus->ticks[0], dus->ticks[1],
+ dus->time_in_queue, util);
}
/*