configure: add gettid() test
[fio.git] / ioengines.c
index 47f606a75409c9a2679443ad02ba7f818e6f6ed4..7e5a50cc81ba328875b605a55f1fde8c16122cec 100644 (file)
@@ -131,7 +131,7 @@ static struct ioengine_ops *__load_ioengine(const char *name)
        /*
         * linux libaio has alias names, so convert to what we want
         */
-       if (!strncmp(engine, "linuxaio", 8) || !strncmp(engine, "aio", 3)) {
+       if (!strncmp(engine, "linuxaio", 8)) {
                dprint(FD_IO, "converting ioengine name: %s -> libaio\n", name);
                strcpy(engine, "libaio");
        }
@@ -288,7 +288,14 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u)
 
        assert((io_u->flags & IO_U_F_FLIGHT) == 0);
        io_u_set(td, io_u, IO_U_F_FLIGHT);
-       if (td->o.serialize_overlap && td->o.io_submit_mode == IO_MODE_OFFLOAD)
+
+       /*
+        * If overlap checking was enabled in offload mode we
+        * can release this lock that was acquired when we
+        * started the overlap check because the IO_U_F_FLIGHT
+        * flag is now set
+        */
+       if (td_offload_overlap(td))
                pthread_mutex_unlock(&overlap_check);
 
        assert(fio_file_open(io_u->file));
@@ -322,10 +329,7 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u)
        }
 
        ret = td->io_ops->queue(td, io_u);
-       if (ret != FIO_Q_BUSY && io_u->post_submit) {
-               io_u->post_submit(io_u, io_u->error == 0);
-               io_u->post_submit = NULL;
-       }
+       zbd_queue_io_u(io_u, ret);
 
        unlock_file(td, io_u->file);
 
@@ -367,6 +371,7 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u)
        if (!td->io_ops->commit) {
                io_u_mark_submit(td, 1);
                io_u_mark_complete(td, 1);
+               zbd_put_io_u(io_u);
        }
 
        if (ret == FIO_Q_COMPLETED) {