btrfs-progs: dump-tree: add option to print children nodes of a given block
[platform/upstream/btrfs-progs.git] / quick-test.c
index aaedd19..5da47c3 100644 (file)
@@ -27,7 +27,7 @@
 #include "transaction.h"
 
 /* for testing only */
-int next_key(int i, int max_key) {
+static int next_key(int i, int max_key) {
        return rand() % max_key;
        // return i;
 }
@@ -46,19 +46,19 @@ int main(int ac, char **av) {
        struct btrfs_root *root;
        struct btrfs_trans_handle *trans;
 
-       buf = malloc(512);
-       memset(buf, 0, 512);
+       buf = calloc(1, 512);
 
        radix_tree_init();
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
        if (!root) {
                fprintf(stderr, "Open ctree failed\n");
                exit(1);
        }
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        srand(55);
-       btrfs_set_key_type(&ins, BTRFS_STRING_ITEM_KEY);
+       ins.type = BTRFS_STRING_ITEM_KEY;
        for (i = 0; i < run_size; i++) {
                num = next_key(i, max_key);
                // num = i;
@@ -73,12 +73,13 @@ int main(int ac, char **av) {
                if (i == run_size - 5) {
                        btrfs_commit_transaction(trans, root);
                        trans = btrfs_start_transaction(root, 1);
+                       BUG_ON(IS_ERR(trans));
                }
        }
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
        exit(1);
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
        if (!root) {
                fprintf(stderr, "Open ctree failed\n");
                exit(1);
@@ -101,7 +102,7 @@ int main(int ac, char **av) {
        }
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
        if (!root) {
                fprintf(stderr, "Open ctree failed\n");
                exit(1);
@@ -109,12 +110,13 @@ int main(int ac, char **av) {
        printf("node %p level %d total ptrs %d free spc %lu\n", root->node,
                btrfs_header_level(root->node),
                btrfs_header_nritems(root->node),
-               (unsigned long)BTRFS_NODEPTRS_PER_BLOCK(root) -
+               (unsigned long)BTRFS_NODEPTRS_PER_BLOCK(root->fs_info) -
                btrfs_header_nritems(root->node));
        printf("all searches good, deleting some items\n");
        i = 0;
        srand(55);
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        for (i = 0 ; i < run_size/4; i++) {
                num = next_key(i, max_key);
                ins.objectid = num;
@@ -133,12 +135,13 @@ int main(int ac, char **av) {
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
        if (!root) {
                fprintf(stderr, "Open ctree failed\n");
                exit(1);
        }
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        srand(128);
        for (i = 0; i < run_size; i++) {
                num = next_key(i, max_key);
@@ -153,7 +156,7 @@ int main(int ac, char **av) {
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
        if (!root) {
                fprintf(stderr, "Open ctree failed\n");
                exit(1);
@@ -176,6 +179,7 @@ int main(int ac, char **av) {
        }
        printf("starting big long delete run\n");
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        while(root->node && btrfs_header_nritems(root->node) > 0) {
                struct extent_buffer *leaf;
                int slot;