Btrfs: period commit during initial fill in the random tester

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index f7ca536..b1a8149 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -11,7 +11,6 @@
 #include "disk-io.h"
 
 static int allocated_blocks = 0;
-int cache_size = 0;
 int cache_max = 10000;
 
 static int check_tree_block(struct ctree_root *root, struct tree_buffer *buf)
@@ -36,7 +35,7 @@
 			list_del_init(&b->cache);
 			tree_block_release(root, b);
 			if (root->cache_size < cache_max)
-				return 0;
+				break;
 		}
 	}
 	return 0;
diff --git a/fs/btrfs/random-test.c b/fs/btrfs/random-test.c
index 2295575..53245c50 100644
--- a/fs/btrfs/random-test.c
+++ b/fs/btrfs/random-test.c
@@ -202,15 +202,23 @@
 		     int count)
 {
 	int i;
-	int err;
 	int ret = 0;
 	for (i = 0; i < count; i++) {
 		ret = ins_one(root, radix);
 		if (ret) {
-			printf("fill failed\n");
-			err = ret;
+			fprintf(stderr, "fill failed\n");
 			goto out;
 		}
+		if (i % 1000 == 0) {
+			ret = commit_transaction(root);
+			if (ret) {
+				fprintf(stderr, "fill commit failed\n");
+				return ret;
+			}
+		}
+		if (i % 10000 == 0) {
+			printf("bigfill %d\n", i);
+		}
 		if (!keep_running)
 			break;
 	}