Make experimental_verify=1 handle all cases properly

- Don't track written bytes, just replay the workload by resetting
  all the random generators. This should work for any mixture of IO.

- Handle trims for verify.

- Ensure that rwmix is replayed properly for verify.

- Fixup logging for replay.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/ioengine.h b/ioengine.h
index 6809501..d5a0dc9 100644
--- a/ioengine.h
+++ b/ioengine.h
@@ -8,7 +8,7 @@
 #include <guasi.h>
 #endif
 
-#define FIO_IOOPS_VERSION	14
+#define FIO_IOOPS_VERSION	15
 
 enum {
 	IO_U_F_FREE		= 1 << 0,
@@ -57,6 +57,12 @@
 	enum fio_ddir ddir;
 
 	/*
+	 * For replay workloads, we may want to account as a different
+	 * IO type than what is being submitted.
+	 */
+	enum fio_ddir acct_ddir;
+
+	/*
 	 * Allocated/set buffer and length
 	 */
 	unsigned long buflen;
@@ -210,4 +216,12 @@
 #define dprint_io_u(io_u, p)
 #endif
 
+static inline enum fio_ddir acct_ddir(struct io_u *io_u)
+{
+	if (io_u->acct_ddir != -1)
+		return io_u->acct_ddir;
+
+	return io_u->ddir;
+}
+
 #endif