• Home
  • Raw
  • Download

Lines Matching refs:eb

128 	struct extent_buffer *eb;  in btrfs_root_node()  local
132 eb = rcu_dereference(root->node); in btrfs_root_node()
140 if (atomic_inc_not_zero(&eb->refs)) { in btrfs_root_node()
147 return eb; in btrfs_root_node()
156 struct extent_buffer *eb; in btrfs_lock_root_node() local
159 eb = btrfs_root_node(root); in btrfs_lock_root_node()
160 btrfs_tree_lock(eb); in btrfs_lock_root_node()
161 if (eb == root->node) in btrfs_lock_root_node()
163 btrfs_tree_unlock(eb); in btrfs_lock_root_node()
164 free_extent_buffer(eb); in btrfs_lock_root_node()
166 return eb; in btrfs_lock_root_node()
175 struct extent_buffer *eb; in btrfs_read_lock_root_node() local
178 eb = btrfs_root_node(root); in btrfs_read_lock_root_node()
179 btrfs_tree_read_lock(eb); in btrfs_read_lock_root_node()
180 if (eb == root->node) in btrfs_read_lock_root_node()
182 btrfs_tree_read_unlock(eb); in btrfs_read_lock_root_node()
183 free_extent_buffer(eb); in btrfs_read_lock_root_node()
185 return eb; in btrfs_read_lock_root_node()
442 struct extent_buffer *eb) { in tree_mod_dont_log() argument
446 if (eb && btrfs_header_level(eb) == 0) in tree_mod_dont_log()
460 struct extent_buffer *eb) in tree_mod_need_log() argument
465 if (eb && btrfs_header_level(eb) == 0) in tree_mod_need_log()
472 alloc_tree_mod_elem(struct extent_buffer *eb, int slot, in alloc_tree_mod_elem() argument
481 tm->logical = eb->start; in alloc_tree_mod_elem()
483 btrfs_node_key(eb, &tm->key, slot); in alloc_tree_mod_elem()
484 tm->blockptr = btrfs_node_blockptr(eb, slot); in alloc_tree_mod_elem()
488 tm->generation = btrfs_node_ptr_generation(eb, slot); in alloc_tree_mod_elem()
494 static noinline int tree_mod_log_insert_key(struct extent_buffer *eb, int slot, in tree_mod_log_insert_key() argument
500 if (!tree_mod_need_log(eb->fs_info, eb)) in tree_mod_log_insert_key()
503 tm = alloc_tree_mod_elem(eb, slot, op, flags); in tree_mod_log_insert_key()
507 if (tree_mod_dont_log(eb->fs_info, eb)) { in tree_mod_log_insert_key()
512 ret = __tree_mod_log_insert(eb->fs_info, tm); in tree_mod_log_insert_key()
513 write_unlock(&eb->fs_info->tree_mod_log_lock); in tree_mod_log_insert_key()
520 static noinline int tree_mod_log_insert_move(struct extent_buffer *eb, in tree_mod_log_insert_move() argument
529 if (!tree_mod_need_log(eb->fs_info, eb)) in tree_mod_log_insert_move()
542 tm->logical = eb->start; in tree_mod_log_insert_move()
549 tm_list[i] = alloc_tree_mod_elem(eb, i + dst_slot, in tree_mod_log_insert_move()
557 if (tree_mod_dont_log(eb->fs_info, eb)) in tree_mod_log_insert_move()
567 ret = __tree_mod_log_insert(eb->fs_info, tm_list[i]); in tree_mod_log_insert_move()
572 ret = __tree_mod_log_insert(eb->fs_info, tm); in tree_mod_log_insert_move()
575 write_unlock(&eb->fs_info->tree_mod_log_lock); in tree_mod_log_insert_move()
582 rb_erase(&tm_list[i]->node, &eb->fs_info->tree_mod_log); in tree_mod_log_insert_move()
586 write_unlock(&eb->fs_info->tree_mod_log_lock); in tree_mod_log_insert_move()
819 static noinline int tree_mod_log_free_eb(struct extent_buffer *eb) in tree_mod_log_free_eb() argument
826 if (btrfs_header_level(eb) == 0) in tree_mod_log_free_eb()
829 if (!tree_mod_need_log(eb->fs_info, NULL)) in tree_mod_log_free_eb()
832 nritems = btrfs_header_nritems(eb); in tree_mod_log_free_eb()
838 tm_list[i] = alloc_tree_mod_elem(eb, i, in tree_mod_log_free_eb()
846 if (tree_mod_dont_log(eb->fs_info, eb)) in tree_mod_log_free_eb()
849 ret = __tree_mod_log_free_eb(eb->fs_info, tm_list, nritems); in tree_mod_log_free_eb()
850 write_unlock(&eb->fs_info->tree_mod_log_lock); in tree_mod_log_free_eb()
1229 __tree_mod_log_rewind(struct btrfs_fs_info *fs_info, struct extent_buffer *eb, in __tree_mod_log_rewind() argument
1239 n = btrfs_header_nritems(eb); in __tree_mod_log_rewind()
1253 btrfs_set_node_key(eb, &tm->key, tm->slot); in __tree_mod_log_rewind()
1254 btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); in __tree_mod_log_rewind()
1255 btrfs_set_node_ptr_generation(eb, tm->slot, in __tree_mod_log_rewind()
1261 btrfs_set_node_key(eb, &tm->key, tm->slot); in __tree_mod_log_rewind()
1262 btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); in __tree_mod_log_rewind()
1263 btrfs_set_node_ptr_generation(eb, tm->slot, in __tree_mod_log_rewind()
1273 memmove_extent_buffer(eb, o_dst, o_src, in __tree_mod_log_rewind()
1296 btrfs_set_header_nritems(eb, n); in __tree_mod_log_rewind()
1308 struct extent_buffer *eb, u64 time_seq) in tree_mod_log_rewind() argument
1314 return eb; in tree_mod_log_rewind()
1316 if (btrfs_header_level(eb) == 0) in tree_mod_log_rewind()
1317 return eb; in tree_mod_log_rewind()
1319 tm = tree_mod_log_search(fs_info, eb->start, time_seq); in tree_mod_log_rewind()
1321 return eb; in tree_mod_log_rewind()
1324 btrfs_set_lock_blocking_read(eb); in tree_mod_log_rewind()
1328 eb_rewin = alloc_dummy_extent_buffer(fs_info, eb->start); in tree_mod_log_rewind()
1330 btrfs_tree_read_unlock_blocking(eb); in tree_mod_log_rewind()
1331 free_extent_buffer(eb); in tree_mod_log_rewind()
1334 btrfs_set_header_bytenr(eb_rewin, eb->start); in tree_mod_log_rewind()
1336 btrfs_header_backref_rev(eb)); in tree_mod_log_rewind()
1337 btrfs_set_header_owner(eb_rewin, btrfs_header_owner(eb)); in tree_mod_log_rewind()
1338 btrfs_set_header_level(eb_rewin, btrfs_header_level(eb)); in tree_mod_log_rewind()
1340 eb_rewin = btrfs_clone_extent_buffer(eb); in tree_mod_log_rewind()
1342 btrfs_tree_read_unlock_blocking(eb); in tree_mod_log_rewind()
1343 free_extent_buffer(eb); in tree_mod_log_rewind()
1348 btrfs_tree_read_unlock_blocking(eb); in tree_mod_log_rewind()
1349 free_extent_buffer(eb); in tree_mod_log_rewind()
1373 struct extent_buffer *eb = NULL; in get_old_root() local
1412 eb = btrfs_clone_extent_buffer(old); in get_old_root()
1429 free_extent_buffer(eb); in get_old_root()
1438 eb = alloc_dummy_extent_buffer(fs_info, logical); in get_old_root()
1441 eb = btrfs_clone_extent_buffer(eb_root); in get_old_root()
1446 if (!eb) in get_old_root()
1449 btrfs_set_header_bytenr(eb, eb->start); in get_old_root()
1450 btrfs_set_header_backref_rev(eb, BTRFS_MIXED_BACKREF_REV); in get_old_root()
1451 btrfs_set_header_owner(eb, eb_root_owner); in get_old_root()
1452 btrfs_set_header_level(eb, old_root->level); in get_old_root()
1453 btrfs_set_header_generation(eb, old_generation); in get_old_root()
1455 btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), eb, in get_old_root()
1456 btrfs_header_level(eb)); in get_old_root()
1457 btrfs_tree_read_lock(eb); in get_old_root()
1459 __tree_mod_log_rewind(fs_info, eb, time_seq, tm); in get_old_root()
1461 WARN_ON(btrfs_header_level(eb) != 0); in get_old_root()
1462 WARN_ON(btrfs_header_nritems(eb) > BTRFS_NODEPTRS_PER_BLOCK(fs_info)); in get_old_root()
1464 return eb; in get_old_root()
1741 static noinline int generic_bin_search(struct extent_buffer *eb, in generic_bin_search() argument
1759 btrfs_err(eb->fs_info, in generic_bin_search()
1761 __func__, low, high, eb->start, in generic_bin_search()
1762 btrfs_header_owner(eb), btrfs_header_level(eb)); in generic_bin_search()
1774 err = map_private_extent_buffer(eb, offset, in generic_bin_search()
1782 read_extent_buffer(eb, &unaligned, in generic_bin_search()
1812 int btrfs_bin_search(struct extent_buffer *eb, const struct btrfs_key *key, in btrfs_bin_search() argument
1816 return generic_bin_search(eb, in btrfs_bin_search()
1819 key, btrfs_header_nritems(eb), in btrfs_bin_search()
1822 return generic_bin_search(eb, in btrfs_bin_search()
1825 key, btrfs_header_nritems(eb), in btrfs_bin_search()
1852 struct extent_buffer *eb; in btrfs_read_node_slot() local
1861 eb = read_tree_block(parent->fs_info, btrfs_node_blockptr(parent, slot), in btrfs_read_node_slot()
1864 if (!IS_ERR(eb) && !extent_buffer_uptodate(eb)) { in btrfs_read_node_slot()
1865 free_extent_buffer(eb); in btrfs_read_node_slot()
1866 eb = ERR_PTR(-EIO); in btrfs_read_node_slot()
1869 return eb; in btrfs_read_node_slot()
2256 struct extent_buffer *eb; in reada_for_search() local
2271 eb = find_extent_buffer(fs_info, search); in reada_for_search()
2272 if (eb) { in reada_for_search()
2273 free_extent_buffer(eb); in reada_for_search()
2315 struct extent_buffer *eb; in reada_for_balance() local
2330 eb = find_extent_buffer(fs_info, block1); in reada_for_balance()
2336 if (eb && btrfs_buffer_uptodate(eb, gen, 1) != 0) in reada_for_balance()
2338 free_extent_buffer(eb); in reada_for_balance()
2343 eb = find_extent_buffer(fs_info, block2); in reada_for_balance()
2344 if (eb && btrfs_buffer_uptodate(eb, gen, 1) != 0) in reada_for_balance()
2346 free_extent_buffer(eb); in reada_for_balance()
2626 struct extent_buffer *eb; in btrfs_find_item() local
2639 eb = path->nodes[0]; in btrfs_find_item()
2640 if (ret && path->slots[0] >= btrfs_header_nritems(eb)) { in btrfs_find_item()
2644 eb = path->nodes[0]; in btrfs_find_item()
2647 btrfs_item_key_to_cpu(eb, found_key, path->slots[0]); in btrfs_find_item()
3244 struct extent_buffer *eb; in btrfs_set_item_key_safe() local
3247 eb = path->nodes[0]; in btrfs_set_item_key_safe()
3250 btrfs_item_key(eb, &disk_key, slot - 1); in btrfs_set_item_key_safe()
3259 btrfs_print_leaf(eb); in btrfs_set_item_key_safe()
3263 if (slot < btrfs_header_nritems(eb) - 1) { in btrfs_set_item_key_safe()
3264 btrfs_item_key(eb, &disk_key, slot + 1); in btrfs_set_item_key_safe()
3273 btrfs_print_leaf(eb); in btrfs_set_item_key_safe()
3279 btrfs_set_item_key(eb, &disk_key, slot); in btrfs_set_item_key_safe()
3280 btrfs_mark_buffer_dirty(eb); in btrfs_set_item_key_safe()