* Unlike the included modules, external engines should have a
* non-static ioengine structure that we can reference.
*/
- ops = dlsym(dlhandle, "ioengine");
+ ops = dlsym(dlhandle, engine_lib);
+ if (!ops)
+ ops = dlsym(dlhandle, "ioengine");
if (!ops) {
td_vmsg(td, -1, dlerror(), "dlsym");
dlclose(dlhandle);
"support direct IO, or iomem_align= is bad.\n");
}
- if (!td->io_ops->commit) {
+ if (!td->io_ops->commit || ddir_trim(io_u->ddir)) {
io_u_mark_submit(td, 1);
io_u_mark_complete(td, 1);
}
if (ddir_rw(io_u->ddir)) {
io_u_mark_depth(td, 1);
td->ts.total_io_u[io_u->ddir]++;
- } else if (io_u->ddir == DDIR_TRIM)
- td->ts.total_io_u[2]++;
+ }
} else if (ret == FIO_Q_QUEUED) {
int r;