summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/net.c2
-rw-r--r--fio.c10
-rw-r--r--fio.h1
-rw-r--r--init.c3
4 files changed, 11 insertions, 5 deletions
diff --git a/engines/net.c b/engines/net.c
index 52e3b049..0cda953c 100644
--- a/engines/net.c
+++ b/engines/net.c
@@ -474,7 +474,7 @@ static struct ioengine_ops ioengine_splice = {
.cleanup = fio_netio_cleanup,
.open_file = fio_netio_open_file,
.close_file = generic_close_file,
- .flags = FIO_SYNCIO | FIO_DISKLESSIO,
+ .flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR,
};
static void fio_init fio_netio_register(void)
diff --git a/fio.c b/fio.c
index 792d4422..b8cba547 100644
--- a/fio.c
+++ b/fio.c
@@ -446,6 +446,13 @@ static void do_io(struct thread_data *td)
break;
}
+ /*
+ * Add verification end_io handler, if asked to verify
+ * a previously written file.
+ */
+ if (td->o.verify != VERIFY_NONE)
+ io_u->end_io = verify_io_u;
+
ret = td_io_queue(td, io_u);
switch (ret) {
case FIO_Q_COMPLETED:
@@ -894,7 +901,8 @@ static void *thread_main(void *data)
if (td->error || td->terminate)
break;
- if (td->o.verify == VERIFY_NONE)
+ if (td->o.verify == VERIFY_NONE ||
+ (td->io_ops->flags & FIO_UNIDIR))
continue;
if (clear_io_state(td))
diff --git a/fio.h b/fio.h
index ace4b164..8319a7a1 100644
--- a/fio.h
+++ b/fio.h
@@ -243,6 +243,7 @@ enum fio_ioengine_flags {
FIO_DISKLESSIO = 1 << 2, /* no disk involved */
FIO_NOEXTEND = 1 << 3, /* engine can't extend file */
FIO_NODISKUTIL = 1 << 4, /* diskutil can't handle filename */
+ FIO_UNIDIR = 1 << 5, /* engine is uni-directional */
};
enum fio_file_flags {
diff --git a/init.c b/init.c
index 8be2a10a..2514d90c 100644
--- a/init.c
+++ b/init.c
@@ -222,9 +222,6 @@ static int fixup_options(struct thread_data *td)
if (!o->file_size_high)
o->file_size_high = o->file_size_low;
- if (td_read(td) && !td_rw(td))
- o->verify = 0;
-
if (o->norandommap && o->verify != VERIFY_NONE) {
log_err("fio: norandommap given, verify disabled\n");
o->verify = VERIFY_NONE;