file extent fix
[fio.git] / filesetup.c
index 210cd2ff7ed437a1f19414a82e20600486cdfbc5..c407d0ef1d28cb182f9c09869cd55d5ba6410d7a 100644 (file)
@@ -50,14 +50,14 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
                return 1;
        }
 
+       if (!new_layout)
+               goto done;
+
        if (ftruncate(f->fd, f->real_file_size) == -1) {
                td_verror(td, errno, "ftruncate");
                goto err;
        }
 
-       if (!new_layout)
-               goto done;
-
        if (posix_fallocate(f->fd, 0, f->real_file_size) < 0) {
                td_verror(td, errno, "posix_fallocate");
                goto err;
@@ -407,7 +407,8 @@ int setup_files(struct thread_data *td)
                             f->real_file_size) {
                                if (f->file_offset > f->real_file_size)
                                        goto err_offset;
-                               f->io_size = f->real_file_size - f->file_offset;
+                               if (f->file_offset)
+                                       f->io_size = f->real_file_size - f->file_offset;
                        }
                } else if (f->real_file_size < td->o.file_size_low ||
                           f->real_file_size > td->o.file_size_high) {