Bladeren bron

Btrfs: period commit during initial fill in the random tester

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 18 jaren geleden
bovenliggende
commit
77ce6846c4
2 gewijzigde bestanden met toevoegingen van 12 en 5 verwijderingen
  1. 1 2
      fs/btrfs/disk-io.c
  2. 11 3
      fs/btrfs/random-test.c

+ 1 - 2
fs/btrfs/disk-io.c

@@ -11,7 +11,6 @@
 #include "disk-io.h"
 #include "disk-io.h"
 
 
 static int allocated_blocks = 0;
 static int allocated_blocks = 0;
-int cache_size = 0;
 int cache_max = 10000;
 int cache_max = 10000;
 
 
 static int check_tree_block(struct ctree_root *root, struct tree_buffer *buf)
 static int check_tree_block(struct ctree_root *root, struct tree_buffer *buf)
@@ -36,7 +35,7 @@ static int free_some_buffers(struct ctree_root *root)
 			list_del_init(&b->cache);
 			list_del_init(&b->cache);
 			tree_block_release(root, b);
 			tree_block_release(root, b);
 			if (root->cache_size < cache_max)
 			if (root->cache_size < cache_max)
-				return 0;
+				break;
 		}
 		}
 	}
 	}
 	return 0;
 	return 0;

+ 11 - 3
fs/btrfs/random-test.c

@@ -202,15 +202,23 @@ static int fill_tree(struct ctree_root *root, struct radix_tree_root *radix,
 		     int count)
 		     int count)
 {
 {
 	int i;
 	int i;
-	int err;
 	int ret = 0;
 	int ret = 0;
 	for (i = 0; i < count; i++) {
 	for (i = 0; i < count; i++) {
 		ret = ins_one(root, radix);
 		ret = ins_one(root, radix);
 		if (ret) {
 		if (ret) {
-			printf("fill failed\n");
-			err = ret;
+			fprintf(stderr, "fill failed\n");
 			goto out;
 			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)
 		if (!keep_running)
 			break;
 			break;
 	}
 	}