+static int keep_running(struct thread_data *td)
+{
+ unsigned long long io_done;
+
+ if (td->o.time_based)
+ return 1;
+ if (td->o.loops) {
+ td->o.loops--;
+ return 1;
+ }
+
+ io_done = td->io_bytes[DDIR_READ] + td->io_bytes[DDIR_WRITE];
+ if (io_done < td->o.size)
+ return 1;
+
+ return 0;
+}
+