.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)
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:
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))
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 {
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;