projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gettime: calibration rounding error
[fio.git]
/
backend.c
diff --git
a/backend.c
b/backend.c
index faa861cf64d303e993d3fe2c3044dcda2b3367a4..a71d768d22d89437e4a6cde828c24c36bb28ecbf 100644
(file)
--- a/
backend.c
+++ b/
backend.c
@@
-803,6
+803,10
@@
static void cleanup_io_u(struct thread_data *td)
io_u = flist_entry(entry, struct io_u, list);
flist_del(&io_u->list);
io_u = flist_entry(entry, struct io_u, list);
flist_del(&io_u->list);
+
+ if (td->io_ops->io_u_free)
+ td->io_ops->io_u_free(td, io_u);
+
fio_memfree(io_u, sizeof(*io_u));
}
fio_memfree(io_u, sizeof(*io_u));
}
@@
-885,6
+889,16
@@
static int init_io_u(struct thread_data *td)
io_u->index = i;
io_u->flags = IO_U_F_FREE;
flist_add(&io_u->list, &td->io_u_freelist);
io_u->index = i;
io_u->flags = IO_U_F_FREE;
flist_add(&io_u->list, &td->io_u_freelist);
+
+ if (td->io_ops->io_u_init) {
+ int ret = td->io_ops->io_u_init(td, io_u);
+
+ if (ret) {
+ log_err("fio: failed to init engine data: %d\n", ret);
+ return 1;
+ }
+ }
+
p += max_bs;
}
p += max_bs;
}
@@
-1273,8
+1287,8
@@
err:
verify_async_exit(td);
close_and_free_files(td);
verify_async_exit(td);
close_and_free_files(td);
- close_ioengine(td);
cleanup_io_u(td);
cleanup_io_u(td);
+ close_ioengine(td);
cgroup_shutdown(td, &cgroup_mnt);
if (td->o.cpumask_set) {
cgroup_shutdown(td, &cgroup_mnt);
if (td->o.cpumask_set) {