#include <dirent.h>
#include <libgen.h>
#include <math.h>
+#include <assert.h>
#include "fio.h"
#include "smalloc.h"
while (!flist_empty(&du->slaves)) {
struct disk_util *slave;
- slave = flist_entry(du->slaves.next, struct disk_util, slavelist);
+ slave = flist_first_entry(&du->slaves, struct disk_util, slavelist);
flist_del(&slave->slavelist);
slave->users--;
}
sfree(du);
return NULL;
}
- strncpy((char *) du->dus.name, basename(path) - 1, FIO_DU_NAME_SZ);
+ strncpy((char *) du->dus.name, basename(path), FIO_DU_NAME_SZ - 1);
du->sysfs_root = path;
du->major = majdev;
du->minor = mindev;
while (!flist_empty(&disk_list)) {
struct disk_util *du;
- du = flist_entry(disk_list.next, struct disk_util, list);
+ du = flist_first_entry(&disk_list, struct disk_util, list);
flist_del(&du->list);
disk_util_free(du);
}
return;
}
- if (!terse && !parent)
+ if (output_format == FIO_OUTPUT_JSON)
+ assert(parent);
+
+ if (!terse && output_format != FIO_OUTPUT_JSON)
log_info("\nDisk stats (read/write):\n");
- if (output_format == FIO_OUTPUT_JSON) {
+ if (output_format == FIO_OUTPUT_JSON)
json_object_add_disk_utils(parent, &disk_list);
- } else
+ else
flist_for_each(entry, &disk_list) {
du = flist_entry(entry, struct disk_util, list);