oslib: fix asprintf build failure
[fio.git] / ioengines.c
index 78262bc1a3c70484701345e524f17fb06e60870e..1c5970a4b5a188e5f4aa5f924b483c976a04142f 100644 (file)
@@ -79,10 +79,16 @@ static struct ioengine_ops *find_ioengine(const char *name)
 static void *dlopen_external(struct thread_data *td, const char *engine)
 {
        char engine_path[PATH_MAX];
+       void *dlhandle;
 
        sprintf(engine_path, "%s/lib%s.so", FIO_EXT_ENG_DIR, engine);
 
-       return dlopen(engine_path, RTLD_LAZY);
+       dlhandle = dlopen(engine_path, RTLD_LAZY);
+       if (!dlhandle)
+               log_info("Engine %s not found; Either name is invalid, was not built, or fio-engine-%s package is missing.\n",
+                        engine, engine);
+
+       return dlhandle;
 }
 #else
 #define dlopen_external(td, engine) (NULL)
@@ -307,8 +313,10 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u)
         * started the overlap check because the IO_U_F_FLIGHT
         * flag is now set
         */
-       if (td_offload_overlap(td))
-               pthread_mutex_unlock(&overlap_check);
+       if (td_offload_overlap(td)) {
+               int res = pthread_mutex_unlock(&overlap_check);
+               assert(res == 0);
+       }
 
        assert(fio_file_open(io_u->file));