Make 'loops' honor full write+verify loops

Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/backend.c b/backend.c
index 3430e66..fdb7413 100644
--- a/backend.c
+++ b/backend.c
@@ -658,10 +658,10 @@
 	if (!td->o.number_ios)
 		return 0;
 
-	number_ios = ddir_rw_sum(td->this_io_blocks);
+	number_ios = ddir_rw_sum(td->io_blocks);
 	number_ios += td->io_u_queued + td->io_u_in_flight;
 
-	return number_ios >= td->o.number_ios;
+	return number_ios >= (td->o.number_ios * td->loops);
 }
 
 static int io_issue_bytes_exceeded(struct thread_data *td)
@@ -682,6 +682,7 @@
 	else
 		limit = td->o.size;
 
+	limit *= td->loops;
 	return bytes >= limit || exceeds_number_ios(td);
 }
 
@@ -703,6 +704,7 @@
 	else
 		limit = td->o.size;
 
+	limit *= td->loops;
 	return bytes >= limit || exceeds_number_ios(td);
 }
 
diff --git a/fio.h b/fio.h
index d28f8ce..f688084 100644
--- a/fio.h
+++ b/fio.h
@@ -240,6 +240,7 @@
 	 */
 	uint64_t io_issues[DDIR_RWDIR_CNT];
 	uint64_t io_issue_bytes[DDIR_RWDIR_CNT];
+	uint64_t loops;
 
 	/*
 	 * Completions
diff --git a/init.c b/init.c
index c210ad2..7aedf2b 100644
--- a/init.c
+++ b/init.c
@@ -763,6 +763,10 @@
 		fio_gtod_offload = 1;
 	}
 
+	td->loops = o->loops;
+	if (!td->loops)
+		td->loops = 1;
+
 	return ret;
 }