init: do not create lat logs when not needed
[fio.git] / filesetup.c
index 661d4c2fa083e2c4b948b628a344c6f294b28ebe..fb556d8444e4a1a29b027a6e53ffecab3708898d 100644 (file)
@@ -226,11 +226,16 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
                        if (r < 0) {
                                int __e = errno;
 
-                               if (__e == ENOSPC) {
+                               if (__e == ENOSPC || __e == EDQUOT) {
+                                       const char *__e_name;
                                        if (td->o.fill_device)
                                                break;
-                                       log_info("fio: ENOSPC on laying out "
-                                                "file, stopping\n");
+                                       if (__e == ENOSPC)
+                                               __e_name = "ENOSPC";
+                                       else
+                                               __e_name = "EDQUOT";
+                                       log_info("fio: %s on laying out "
+                                                "file, stopping\n", __e_name);
                                }
                                td_verror(td, errno, "write");
                        } else
@@ -1019,7 +1024,6 @@ int longest_existing_path(char *path) {
        while (!done) {
                buf_pos = strrchr(buf, FIO_OS_PATH_SEPARATOR);
                if (!buf_pos) {
-                       done = true;
                        offset = 0;
                        break;
                }
@@ -1115,6 +1119,13 @@ int setup_files(struct thread_data *td)
        if (err)
                goto err_out;
 
+       if (td->o.zone_mode == ZONE_MODE_ZBD) {
+               err = zbd_init_files(td);
+               if (err)
+                       goto err_out;
+       }
+       zbd_recalc_options_with_zone_granularity(td);
+
        if (o->read_iolog_file)
                goto done;
 
@@ -1395,16 +1406,17 @@ int setup_files(struct thread_data *td)
        }
 
 done:
-       if (o->create_only)
-               td->done = 1;
-
-       td_restore_runstate(td, old_state);
-
        if (td->o.zone_mode == ZONE_MODE_ZBD) {
                err = zbd_setup_files(td);
                if (err)
                        goto err_out;
        }
+
+       if (o->create_only)
+               td->done = 1;
+
+       td_restore_runstate(td, old_state);
+
        return 0;
 
 err_offset: