diff --git a/blktrace.c b/blktrace.c
index 5793773..afa699c 100644
--- a/blktrace.c
+++ b/blktrace.c
@@ -83,7 +83,8 @@
  * due to internal workings of the block layer.
  */
 static void handle_trace(struct thread_data *td, struct blk_io_trace *t,
-			 unsigned long long ttime, unsigned long *ios)
+			 unsigned long long ttime, unsigned long *ios,
+			 unsigned int *bs)
 {
 	int rw;
 
@@ -99,6 +100,10 @@
 		return;
 
 	rw = (t->action & BLK_TC_ACT(BLK_TC_WRITE)) != 0;
+
+	if (t->bytes > bs[rw])
+		bs[rw] = t->bytes;
+
 	ios[rw]++;
 	td->o.size += t->bytes;
 	store_ipo(td, t->sector, t->bytes, rw, ttime);
@@ -114,6 +119,7 @@
 	struct blk_io_trace t;
 	unsigned long ios[2];
 	unsigned int cpu;
+	unsigned int rw_bs[2];
 	int fd;
 
 	fd = open(filename, O_RDONLY);
@@ -124,9 +130,10 @@
 
 	td->o.size = 0;
 
-	ios[0] = ios[1] = 0;
-	ttime = 0;
 	cpu = 0;
+	ttime = 0;
+	ios[0] = ios[1] = 0;
+	rw_bs[0] = rw_bs[1] = 0;
 	do {
 		/*
 		 * Once this is working fully, I'll add a layer between
@@ -166,7 +173,7 @@
 		delay = 0;
 		if (cpu == t.cpu)
 			delay = t.time - ttime;
-		handle_trace(td, &t, delay, ios);
+		handle_trace(td, &t, delay, ios, rw_bs);
 		ttime = t.time;
 		cpu = t.cpu;
 	} while (1);
@@ -176,12 +183,17 @@
 	if (!ios[DDIR_READ] && !ios[DDIR_WRITE]) {
 		log_err("fio: found no ios in blktrace data\n");
 		return 1;
-	} else if (ios[DDIR_READ] && !ios[DDIR_READ])
+	} else if (ios[DDIR_READ] && !ios[DDIR_READ]) {
 		td->o.td_ddir = TD_DDIR_READ;
-	else if (!ios[DDIR_READ] && ios[DDIR_WRITE])
+		td->o.max_bs[DDIR_READ] = rw_bs[DDIR_READ];
+	} else if (!ios[DDIR_READ] && ios[DDIR_WRITE]) {
 		td->o.td_ddir = TD_DDIR_WRITE;
-	else
+		td->o.max_bs[DDIR_WRITE] = rw_bs[DDIR_WRITE];
+	} else {
 		td->o.td_ddir = TD_DDIR_RW;
+		td->o.max_bs[DDIR_READ] = rw_bs[DDIR_READ];
+		td->o.max_bs[DDIR_WRITE] = rw_bs[DDIR_WRITE];
+	}
 
 	/*
 	 * We need to do direct/raw ios to the device, to avoid getting
