case 'b':
block_only = arg_strtou64(optarg);
break;
- case 't':
- if (string_is_numerical(optarg)) {
- tree_id = arg_strtou64(optarg);
- } else {
- const char *end = NULL;
+ case 't': {
+ const char *end = NULL;
+ if (string_is_numerical(optarg))
+ tree_id = arg_strtou64(optarg);
+ else
tree_id = treeid_from_string(optarg, &end);
- if (*end) {
- error("unexpected tree id suffix of '%s': %s\n",
- optarg, end);
- exit(1);
- }
- }
if (!tree_id) {
error("unrecognized tree id: %s\n",
optarg);
exit(1);
}
+
+ if (end && *end) {
+ error("unexpected tree id suffix of '%s': %s",
+ optarg, end);
+ exit(1);
+ }
break;
+ }
default:
usage(cmd_inspect_dump_tree_usage);
}
key.offset = 0;
key.objectid = 0;
- btrfs_set_key_type(&key, BTRFS_ROOT_ITEM_KEY);
+ key.type = BTRFS_ROOT_ITEM_KEY;
ret = btrfs_search_slot(NULL, tree_root_scan, &key, &path, 0, 0);
- BUG_ON(ret < 0);
+ if (ret < 0) {
+ error("cannot read ROOT_ITEM from tree %llu: %s",
+ (unsigned long long)tree_root_scan->root_key.objectid,
+ strerror(-ret));
+ goto close_root;
+ }
while (1) {
leaf = path.nodes[0];
slot = path.slots[0];
}
btrfs_item_key(leaf, &disk_key, path.slots[0]);
btrfs_disk_key_to_cpu(&found_key, &disk_key);
- if (btrfs_key_type(&found_key) == BTRFS_ROOT_ITEM_KEY) {
+ if (found_key.type == BTRFS_ROOT_ITEM_KEY) {
unsigned long offset;
struct extent_buffer *buf;
int skip = extent_only | device_only | uuid_tree_only;
no_node:
btrfs_release_path(&path);
- if (tree_root_scan == info->tree_root &&
- info->log_root_tree) {
+ if (tree_root_scan == info->tree_root && info->log_root_tree) {
tree_root_scan = info->log_root_tree;
goto again;
}