Btrfs: period commit during initial fill in the random tester

Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Chris Mason 2007-03-02 10:06:43 -05:00 committed by David Woodhouse
parent f0930a37f1
commit 77ce6846c4
2 changed files with 12 additions and 5 deletions

View File

@ -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;

View File

@ -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"); fprintf(stderr, "fill failed\n");
err = ret;
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;
} }