btrfs-progs: Remove unused parameter
[platform/upstream/btrfs-progs.git] / btrfs-find-root.c
index fc3812c..e2d2e70 100644 (file)
@@ -35,8 +35,9 @@
 #include "crc32c.h"
 #include "extent-cache.h"
 #include "find-root.h"
+#include "help.h"
 
-static void usage(void)
+static void find_root_usage(void)
 {
        fprintf(stderr, "Usage: find-roots [-a] [-o search_objectid] "
                "[ -g search_generation ] [ -l search_level ] <device>\n");
@@ -69,7 +70,6 @@ static void get_root_gen_and_level(u64 objectid, struct btrfs_fs_info *fs_info,
        case BTRFS_CHUNK_TREE_OBJECTID:
                level = btrfs_super_chunk_root_level(super);
                gen = btrfs_super_chunk_root_generation(super);
-               printf("Search for chunk root is not supported yet\n");
                break;
        case BTRFS_TREE_LOG_OBJECTID:
                level = btrfs_super_log_root_level(super);
@@ -145,7 +145,7 @@ static void print_find_root_result(struct cache_tree *result,
 
 int main(int argc, char **argv)
 {
-       struct btrfs_root *root;
+       struct btrfs_fs_info *fs_info;
        struct btrfs_find_root_filter filter = {0};
        struct cache_tree result;
        struct cache_extent *found;
@@ -180,28 +180,29 @@ int main(int argc, char **argv)
                        break;
                case GETOPT_VAL_HELP:
                default:
-                       usage();
+                       find_root_usage();
                        exit(c != GETOPT_VAL_HELP);
                }
        }
 
        set_argv0(argv);
-       argc = argc - optind;
-       if (check_argc_min(argc, 1)) {
-               usage();
+       if (check_argc_min(argc - optind, 1)) {
+               find_root_usage();
                exit(1);
        }
 
-       root = open_ctree(argv[optind], 0, OPEN_CTREE_CHUNK_ROOT_ONLY);
-       if (!root) {
-               fprintf(stderr, "Open ctree failed\n");
+       fs_info = open_ctree_fs_info(argv[optind], 0, 0, 0,
+                       OPEN_CTREE_CHUNK_ROOT_ONLY |
+                       OPEN_CTREE_IGNORE_CHUNK_TREE_ERROR);
+       if (!fs_info) {
+               error("open ctree failed");
                exit(1);
        }
        cache_tree_init(&result);
 
-       get_root_gen_and_level(filter.objectid, root->fs_info,
+       get_root_gen_and_level(filter.objectid, fs_info,
                               &filter.match_gen, &filter.match_level);
-       ret = btrfs_find_root_search(root, &filter, &result, &found);
+       ret = btrfs_find_root_search(fs_info, &filter, &result, &found);
        if (ret < 0) {
                fprintf(stderr, "Fail to search the tree root: %s\n",
                        strerror(-ret));
@@ -215,7 +216,7 @@ int main(int argc, char **argv)
        print_find_root_result(&result, &filter);
 out:
        btrfs_find_root_free(&result);
-       close_ctree(root);
+       close_ctree_fs_info(fs_info);
        btrfs_close_all_devices();
        return ret;
 }