aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-03-02 10:06:43 -0500
committerDavid Woodhouse <dwmw2@hera.kernel.org>2007-03-02 10:06:43 -0500
commit77ce6846c40e83193df01295e5af437f8b6c7a2d (patch)
tree53aa4e00bb209bc283deb9d7d1d350e60481b5de
parentf0930a37f1c096c3a8f6a17b1e251c7fdf4d4457 (diff)
Btrfs: period commit during initial fill in the random tester
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/disk-io.c3
-rw-r--r--fs/btrfs/random-test.c14
2 files changed, 12 insertions, 5 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index f7ca5362291..b1a8149bbc8 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 @@ static int free_some_buffers(struct ctree_root *root)
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 22955753c3a..53245c5039d 100644
--- a/fs/btrfs/random-test.c
+++ b/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 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;
}