Add ddir_rw_sum()

We sum up the three data direction primitives a lot, this is
more readable.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/backend.c b/backend.c
index f6d1983..9b0d791 100644
--- a/backend.c
+++ b/backend.c
@@ -717,8 +717,7 @@
 
 		if (ret < 0)
 			break;
-		if (!(bytes_done[DDIR_READ] + bytes_done[DDIR_WRITE]
-				+ bytes_done[DDIR_TRIM]))
+		if (!ddir_rw_sum(bytes_done))
 			continue;
 
 		if (!in_ramp_time(td) && should_check_rate(td, bytes_done)) {
@@ -733,8 +732,7 @@
 		if (td->o.thinktime) {
 			unsigned long long b;
 
-			b = td->io_blocks[DDIR_READ] + td->io_blocks[DDIR_WRITE] +
-				td->io_blocks[DDIR_TRIM];
+			b = ddir_rw_sum(td->io_blocks);
 			if (!(b % td->o.thinktime_blocks)) {
 				int left;
 
@@ -780,8 +778,7 @@
 	/*
 	 * stop job if we failed doing any IO
 	 */
-	if ((td->this_io_bytes[DDIR_READ] + td->this_io_bytes[DDIR_WRITE] +
-			td->this_io_bytes[DDIR_TRIM]) == 0)
+	if (!ddir_rw_sum(td->this_io_bytes))
 		td->done = 1;
 }
 
@@ -936,8 +933,6 @@
 
 static int keep_running(struct thread_data *td)
 {
-	unsigned long long io_done;
-
 	if (td->done)
 		return 0;
 	if (td->o.time_based)
@@ -947,9 +942,7 @@
 		return 1;
 	}
 
-	io_done = td->io_bytes[DDIR_READ] + td->io_bytes[DDIR_WRITE] +
-			td->io_bytes[DDIR_TRIM] + td->io_skip_bytes;
-	if (io_done < td->o.size)
+	if (ddir_rw_sum(td->io_bytes) < td->o.size)
 		return 1;
 
 	return 0;
@@ -1356,10 +1349,8 @@
 		continue;
 reaped:
 		(*nr_running)--;
-		(*m_rate) -= (td->o.ratemin[DDIR_READ] + td->o.ratemin[DDIR_WRITE] +
-			td->o.ratemin[DDIR_TRIM]);
-		(*t_rate) -= (td->o.rate[DDIR_READ] + td->o.rate[DDIR_WRITE] +
-			td->o.rate[DDIR_TRIM]);
+		(*m_rate) -= ddir_rw_sum(td->o.ratemin);
+		(*t_rate) -= ddir_rw_sum(td->o.rate);
 		if (!td->pid)
 			pending--;
 
@@ -1581,10 +1572,8 @@
 				td_set_runstate(td, TD_RUNNING);
 			nr_running++;
 			nr_started--;
-			m_rate += td->o.ratemin[DDIR_READ] +
-				td->o.ratemin[DDIR_WRITE] + td->o.ratemin[DDIR_TRIM];
-			t_rate += td->o.rate[DDIR_READ] +
-				td->o.rate[DDIR_WRITE] + td->o.rate[DDIR_TRIM];
+			m_rate += ddir_rw_sum(td->o.ratemin);
+			t_rate += ddir_rw_sum(td->o.rate);
 			todo--;
 			fio_mutex_up(td->mutex);
 		}