Lines Matching refs:level
125 u8 level; member
187 if (node->level == 0 || in mark_block_processed()
380 if (cur->level > 0) { in handle_useless_nodes()
407 int level, u64 bytenr) in build_backref_tree() argument
427 node = btrfs_backref_alloc_node(cache, bytenr, level); in build_backref_tree()
1003 int level) in memcmp_node_keys() argument
1008 btrfs_node_key(path->nodes[level], &key2, path->slots[level]); in memcmp_node_keys()
1039 int level; in replace_path() local
1052 level = btrfs_header_level(eb); in replace_path()
1054 if (level < lowest_level) { in replace_path()
1078 level = btrfs_header_level(parent); in replace_path()
1079 ASSERT(level >= lowest_level); in replace_path()
1094 if (level <= max_level) { in replace_path()
1095 eb = path->nodes[level]; in replace_path()
1097 path->slots[level]); in replace_path()
1099 path->slots[level]); in replace_path()
1106 ret = level; in replace_path()
1111 memcmp_node_keys(parent, slot, path, level)) { in replace_path()
1112 if (level <= lowest_level) { in replace_path()
1148 btrfs_node_key_to_cpu(path->nodes[level], &key, in replace_path()
1149 path->slots[level]); in replace_path()
1152 path->lowest_level = level; in replace_path()
1179 path->nodes[level], path->slots[level], in replace_path()
1189 btrfs_set_node_blockptr(path->nodes[level], in replace_path()
1190 path->slots[level], old_bytenr); in replace_path()
1191 btrfs_set_node_ptr_generation(path->nodes[level], in replace_path()
1192 path->slots[level], old_ptr_gen); in replace_path()
1197 ref.parent = path->nodes[level]->start; in replace_path()
1200 btrfs_init_tree_ref(&ref, level - 1, 0, true); in replace_path()
1213 btrfs_init_tree_ref(&ref, level - 1, 0, true); in replace_path()
1224 ref.parent = path->nodes[level]->start; in replace_path()
1227 btrfs_init_tree_ref(&ref, level - 1, 0, true); in replace_path()
1241 btrfs_init_tree_ref(&ref, level - 1, 0, true); in replace_path()
1250 ret = level; in replace_path()
1263 int *level) in walk_up_reloc_tree() argument
1272 for (i = 0; i < *level; i++) { in walk_up_reloc_tree()
1277 for (i = *level; i < BTRFS_MAX_LEVEL && path->nodes[i]; i++) { in walk_up_reloc_tree()
1286 *level = i; in walk_up_reloc_tree()
1300 int *level) in walk_down_reloc_tree() argument
1310 for (i = *level; i > 0; i--) { in walk_down_reloc_tree()
1320 if (i == *level) in walk_down_reloc_tree()
1322 *level = i + 1; in walk_down_reloc_tree()
1326 *level = i; in walk_down_reloc_tree()
1416 static int find_next_key(struct btrfs_path *path, int level, in find_next_key() argument
1420 while (level < BTRFS_MAX_LEVEL) { in find_next_key()
1421 if (!path->nodes[level]) in find_next_key()
1423 if (path->slots[level] + 1 < in find_next_key()
1424 btrfs_header_nritems(path->nodes[level])) { in find_next_key()
1425 btrfs_node_key_to_cpu(path->nodes[level], key, in find_next_key()
1426 path->slots[level] + 1); in find_next_key()
1429 level++; in find_next_key()
1530 int level; in merge_reloc_root() local
1545 level = btrfs_root_level(root_item); in merge_reloc_root()
1547 path->nodes[level] = reloc_root->node; in merge_reloc_root()
1548 path->slots[level] = 0; in merge_reloc_root()
1552 level = btrfs_root_drop_level(root_item); in merge_reloc_root()
1553 BUG_ON(level == 0); in merge_reloc_root()
1554 path->lowest_level = level; in merge_reloc_root()
1562 btrfs_node_key_to_cpu(path->nodes[level], &next_key, in merge_reloc_root()
1563 path->slots[level]); in merge_reloc_root()
1608 max_level = level; in merge_reloc_root()
1610 ret = walk_down_reloc_tree(reloc_root, path, &level); in merge_reloc_root()
1616 if (!find_next_key(path, level, &key) && in merge_reloc_root()
1621 &next_key, level, max_level); in merge_reloc_root()
1626 level = ret; in merge_reloc_root()
1627 btrfs_node_key_to_cpu(path->nodes[level], &key, in merge_reloc_root()
1628 path->slots[level]); in merge_reloc_root()
1632 ret = walk_up_reloc_tree(reloc_root, path, &level); in merge_reloc_root()
1636 BUG_ON(level == 0); in merge_reloc_root()
1641 btrfs_node_key(path->nodes[level], &root_item->drop_progress, in merge_reloc_root()
1642 path->slots[level]); in merge_reloc_root()
1643 btrfs_set_root_drop_level(root_item, level); in merge_reloc_root()
2057 rc->backref_cache.path[next->level] = next; in select_reloc_root()
2107 if (!next || next->level <= node->level) in select_one_root()
2224 path->lowest_level = node->level + 1; in do_relocation()
2225 rc->backref_cache.path[node->level] = node; in do_relocation()
2260 upper->eb = path->nodes[upper->level]; in do_relocation()
2261 path->nodes[upper->level] = NULL; in do_relocation()
2263 BUG_ON(upper->eb != path->nodes[upper->level]); in do_relocation()
2267 path->locks[upper->level] = 0; in do_relocation()
2269 slot = path->slots[upper->level]; in do_relocation()
2329 btrfs_init_tree_ref(&ref, node->level, in do_relocation()
2381 int level; in finish_pending_nodes() local
2384 for (level = 0; level < BTRFS_MAX_LEVEL; level++) { in finish_pending_nodes()
2385 while (!list_empty(&cache->pending[level])) { in finish_pending_nodes()
2386 node = list_first_entry(&cache->pending[level], in finish_pending_nodes()
2397 list_splice_init(&list, &cache->pending[level]); in finish_pending_nodes()
2448 .level = block->level, in get_tree_block_key()
2461 if (block->level == 0) in get_tree_block_key()
2558 if (ret || node->level == 0) in relocate_tree_block()
2577 nr_levels = max(btrfs_header_level(root->node) - block->level, 0) + 1; in relocate_cowonly_block()
2585 path->lowest_level = block->level; in relocate_cowonly_block()
2627 block->level); in relocate_tree_blocks()
2656 block->level, block->bytenr); in relocate_tree_blocks()
3067 int level = -1; in add_tree_block() local
3083 level = btrfs_tree_block_level(eb, bi); in add_tree_block()
3086 level = (int)extent_key->offset; in add_tree_block()
3132 BUG_ON(level == -1); in add_tree_block()
3141 block->level = level; in add_tree_block()
4301 int level; in btrfs_reloc_cow_block() local
4310 level = btrfs_header_level(buf); in btrfs_reloc_cow_block()
4316 WARN_ON(!first_cow && level == 0); in btrfs_reloc_cow_block()
4318 node = rc->backref_cache.path[level]; in btrfs_reloc_cow_block()
4339 &rc->backref_cache.pending[level]); in btrfs_reloc_cow_block()
4346 if (first_cow && level > 0) in btrfs_reloc_cow_block()
4350 if (level == 0 && first_cow && rc->stage == UPDATE_DATA_PTRS) in btrfs_reloc_cow_block()