splice: update to new vmsplice-to-user interface
[fio.git] / diskutil.c
index a87435afc7481ad2eb8652b8a268e2ab53ae7df7..bbaa22d56b2a7cab19960c94349e02e385e5af0c 100644 (file)
@@ -209,15 +209,18 @@ static void __init_disk_util(struct thread_data *td, struct fio_file *f)
        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);
                }
@@ -310,6 +313,9 @@ void show_disk_util(void)
        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) {