io_ur: make sure that sync errors are noticed upfront
[fio.git] / io_u.c
diff --git a/io_u.c b/io_u.c
index 30265cfb4a2da5c19a1c60069d49e2d122a8a620..6f5fc94d9a3e87bf68e3a5cdd2149579ac855720 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -2027,6 +2027,8 @@ static void io_completed(struct thread_data *td, struct io_u **io_u_ptr,
        }
 
        if (ddir_sync(ddir)) {
+               if (io_u->error)
+                       goto error;
                td->last_was_sync = true;
                if (f) {
                        f->first_write = -1ULL;
@@ -2082,6 +2084,7 @@ static void io_completed(struct thread_data *td, struct io_u **io_u_ptr,
                                icd->error = ret;
                }
        } else if (io_u->error) {
+error:
                icd->error = io_u->error;
                io_u_log_error(td, io_u);
        }