dprint_io_u(io_u, "prep");
fio_ro_check(td, io_u);
- lock_file(td, io_u->file);
+ lock_file(td, io_u->file, io_u->ddir);
if (td->io_ops->prep) {
int ret = td->io_ops->prep(td, io_u);
dprint(FD_IO, "->prep(%p)=%d\n", io_u, ret);
if (ret)
- unlock_file(io_u->file);
+ unlock_file(td, io_u->file);
return ret;
}
ret = td->io_ops->queue(td, io_u);
- unlock_file(io_u->file);
+ unlock_file(td, io_u->file);
if (ret != FIO_Q_BUSY)
io_u_mark_depth(td, io_u);
*/
f->flags |= FIO_FILE_CLOSING;
+ unlock_file_all(td, f);
+
return put_file(td, f);
}