steadystate: add line for output-format=normal
[fio.git] / filesetup.c
index f721c36abbb045ca7b4e4a618c64b0199d5148e3..5db44c294d2de3fccb2ac669a7abf4cc3f3d09fe 100644 (file)
@@ -52,14 +52,18 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
         */
        if (td_read(td) ||
           (td_write(td) && td->o.overwrite && !td->o.file_append) ||
-           (td_write(td) && td->io_ops->flags & FIO_NOEXTEND))
+           (td_write(td) && td_ioengine_flagged(td, FIO_NOEXTEND)))
                new_layout = 1;
        if (td_write(td) && !td->o.overwrite && !td->o.file_append)
                unlink_file = 1;
 
        if (unlink_file || new_layout) {
+               int ret;
+
                dprint(FD_FILE, "layout unlink %s\n", f->file_name);
-               if ((td_io_unlink_file(td, f) < 0) && (errno != ENOENT)) {
+
+               ret = td_io_unlink_file(td, f);
+               if (ret != 0 && ret != ENOENT) {
                        td_verror(td, errno, "unlink");
                        return 1;
                }
@@ -213,7 +217,7 @@ static int pre_read_file(struct thread_data *td, struct fio_file *f)
        unsigned int bs;
        char *b;
 
-       if (td->io_ops->flags & FIO_PIPEIO)
+       if (td_ioengine_flagged(td, FIO_PIPEIO))
                return 0;
 
        if (!fio_file_open(f)) {
@@ -329,7 +333,7 @@ static int char_size(struct thread_data *td, struct fio_file *f)
        int r;
 
        if (td->io_ops->open_file(td, f)) {
-               log_err("fio: failed opening blockdev %s for size check\n",
+               log_err("fio: failed opening chardev %s for size check\n",
                        f->file_name);
                return 1;
        }
@@ -761,16 +765,12 @@ static unsigned long long get_fs_free_counts(struct thread_data *td)
 uint64_t get_start_offset(struct thread_data *td, struct fio_file *f)
 {
        struct thread_options *o = &td->o;
-       uint64_t offset;
 
        if (o->file_append && f->filetype == FIO_TYPE_FILE)
                return f->real_file_size;
 
-       offset = td->o.start_offset + td->subjob_number * td->o.offset_increment;
-       if (offset % td_max_bs(td))
-               offset -= (offset % td_max_bs(td));
-
-       return offset;
+       return td->o.start_offset +
+               td->subjob_number * td->o.offset_increment;
 }
 
 /*
@@ -827,7 +827,7 @@ int setup_files(struct thread_data *td)
         * device/file sizes are zero and no size given, punt
         */
        if ((!total_size || total_size == -1ULL) && !o->size &&
-           !(td->io_ops->flags & FIO_NOIO) && !o->fill_device &&
+           !td_ioengine_flagged(td, FIO_NOIO) && !o->fill_device &&
            !(o->nr_files && (o->file_size_low || o->file_size_high))) {
                log_err("%s: you need to specify size=\n", o->name);
                td_verror(td, EINVAL, "total_file_size");
@@ -903,7 +903,7 @@ int setup_files(struct thread_data *td)
 
                if (f->filetype == FIO_TYPE_FILE &&
                    (f->io_size + f->file_offset) > f->real_file_size &&
-                   !(td->io_ops->flags & FIO_DISKLESSIO)) {
+                   !td_ioengine_flagged(td, FIO_DISKLESSIO)) {
                        if (!o->create_on_open) {
                                need_extend++;
                                extend_size += (f->io_size + f->file_offset);
@@ -1225,10 +1225,12 @@ static void get_file_type(struct fio_file *f)
        else
                f->filetype = FIO_TYPE_FILE;
 
+#ifdef WIN32
        /* \\.\ is the device namespace in Windows, where every file is
         * a block device */
        if (strncmp(f->file_name, "\\\\.\\", 4) == 0)
                f->filetype = FIO_TYPE_BD;
+#endif
 
        if (!stat(f->file_name, &sb)) {
                if (S_ISBLK(sb.st_mode))
@@ -1335,7 +1337,8 @@ int add_file(struct thread_data *td, const char *fname, int numjob, int inc)
        dprint(FD_FILE, "add file %s\n", fname);
 
        if (td->o.directory)
-               len = set_name_idx(file_name, PATH_MAX, td->o.directory, numjob);
+               len = set_name_idx(file_name, PATH_MAX, td->o.directory, numjob,
+                                       td->o.unique_filename);
 
        sprintf(file_name + len, "%s", fname);
 
@@ -1371,7 +1374,7 @@ int add_file(struct thread_data *td, const char *fname, int numjob, int inc)
        /*
         * init function, io engine may not be loaded yet
         */
-       if (td->io_ops && (td->io_ops->flags & FIO_DISKLESSIO))
+       if (td->io_ops && td_ioengine_flagged(td, FIO_DISKLESSIO))
                f->real_file_size = -1ULL;
 
        f->file_name = smalloc_strdup(file_name);