[PATCH] Simple support for networked IO
[fio.git] / filesetup.c
index cc89b7e626903480316052339eed9e7566a594ae..610981b437594d32c90587178b323c2ce6dcc348 100644 (file)
@@ -103,9 +103,19 @@ static int create_files(struct thread_data *td)
                return 0;
 
        need_create = 0;
-       if (td->filetype == FIO_TYPE_FILE)
-               for_each_file(td, f, i)
-                       need_create += file_ok(td, f);
+       if (td->filetype == FIO_TYPE_FILE) {
+               for_each_file(td, f, i) {
+                       int file_there = !file_ok(td, f);
+
+                       if (file_there && td->ddir == DDIR_WRITE &&
+                           !td->overwrite) {
+                               unlink(f->file_name);
+                               file_there = 0;
+                       }
+
+                       need_create += !file_there;
+               }
+       }
 
        if (!need_create)
                return 0;
@@ -154,9 +164,9 @@ static int file_size(struct thread_data *td, struct fio_file *f)
 
                if (!f->file_size || f->file_size > f->real_file_size)
                        f->file_size = f->real_file_size;
-       }
+       } else
+               f->real_file_size = f->file_size;
 
-       f->file_size -= f->file_offset;
        return 0;
 }
 
@@ -320,6 +330,8 @@ static int setup_file(struct thread_data *td, struct fio_file *f)
 {
        int flags = 0;
 
+       if (td->io_ops->flags & FIO_NETIO)
+               return 0;
        if (td->odirect)
                flags |= OS_O_DIRECT;
        if (td->sync_io)