IO verification needs to open and grab a reference to a file
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 75b448d5e56ad684dd561a54b8b0fc033cb1d4c5..6483e64c9462eeae4075fa6f449dae7970bb1eeb 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -782,17 +782,21 @@ static void *thread_main(void *data)
         */
        fio_sem_remove(td->mutex);
 
+       /*
+        * May alter parameters that init_io_u() will use, so we need to
+        * do this first.
+        */
+       if (init_iolog(td))
+               goto err;
+
        if (init_io_u(td))
                goto err;
 
-       if (fio_setaffinity(td) == -1) {
+       if (td->o.cpumask_set && fio_setaffinity(td) == -1) {
                td_verror(td, errno, "cpu_set_affinity");
                goto err;
        }
 
-       if (init_iolog(td))
-               goto err;
-
        if (td->ioprio) {
                if (ioprio_set(IOPRIO_WHO_PROCESS, 0, td->ioprio) == -1) {
                        td_verror(td, errno, "ioprio_set");