IO verification improvements

- Add a FIO_UNIDIR io ops flag. This like networked IO can't be read/write,
  so verify only makes sense for data summed by another writer.
- Allow a read workload to verify previously written data.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/fio.c b/fio.c
index 792d442..b8cba54 100644
--- a/fio.c
+++ b/fio.c
@@ -446,6 +446,13 @@
 			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 @@
 		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))