Don't re-create/unlink write file for append workload
[fio.git] / filesetup.c
index 9c03a626986722491c5ef18694e6f66ba7d841e2..5ce0f6803ae7d952c262d25728b1a60ec7bff86f 100644 (file)
@@ -50,10 +50,11 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
         * does that for operations involving reads, or for writes
         * where overwrite is set
         */
         * does that for operations involving reads, or for writes
         * where overwrite is set
         */
-       if (td_read(td) || (td_write(td) && td->o.overwrite) ||
+       if (td_read(td) ||
+          (td_write(td) && td->o.overwrite && !td->o.file_append) ||
            (td_write(td) && td->io_ops->flags & FIO_NOEXTEND))
                new_layout = 1;
            (td_write(td) && td->io_ops->flags & FIO_NOEXTEND))
                new_layout = 1;
-       if (td_write(td) && !td->o.overwrite)
+       if (td_write(td) && !td->o.overwrite && !td->o.file_append)
                unlink_file = 1;
 
        if (unlink_file || new_layout) {
                unlink_file = 1;
 
        if (unlink_file || new_layout) {