[PATCH] Fixup io size on block devices

Still leftover bugs from the > 1 file per job changes.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/filesetup.c b/filesetup.c
index d0e3ed2..3f9bdb8 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -98,23 +98,24 @@
 		return 0;
 	}
 
+	need_create = 0;
+	for_each_file(td, f, i) {
+		if (td->filetype == FIO_TYPE_FILE) {
+			f->file_size = td->total_file_size / td->nr_files;
+			need_create += file_ok(td, f);
+		} else
+			td->total_file_size += f->file_size;
+	}
+
+	if (!need_create)
+		return 0;
+
 	if (!td->total_file_size) {
 		log_err("Need size for create\n");
 		td_verror(td, EINVAL);
 		return 1;
 	}
 
-	need_create = 0;
-	for_each_file(td, f, i) {
-		f->file_size = td->total_file_size / td->nr_files;
-		need_create += file_ok(td, f);
-	}
-
-	td->io_size = td->total_file_size;
-
-	if (!need_create)
-		return 0;
-
 	temp_stall_ts = 1;
 	fprintf(f_out, "%s: Laying out IO file(s) (%d x %LuMiB == %LuMiB)\n",
 				td->name, td->nr_files,
@@ -347,6 +348,7 @@
 	if (get_file_size(td, f))
 		return 1;
 
+	td->total_file_size += f->file_size;
 	return 0;
 }
 
@@ -365,12 +367,17 @@
 	if (create_files(td))
 		return 1;
 
+	err = 0;
 	for_each_file(td, f, i) {
 		err = setup_file(td, f);
 		if (err)
 			break;
 	}
 
+	if (err)
+		return err;
+
+	td->io_size = td->total_file_size;
 	if (td->io_size == 0) {
 		log_err("%s: no io blocks\n", td->name);
 		td_verror(td, EINVAL);