Loading fs/btrfs/ctree.c +3 −0 Original line number Diff line number Diff line Loading @@ -682,6 +682,8 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans, if (!cur) { cur = read_tree_block(root, blocknr, blocksize, gen); if (!cur) return -EIO; } else if (!uptodate) { btrfs_read_buffer(cur, gen); } Loading Loading @@ -4087,6 +4089,7 @@ int btrfs_search_forward(struct btrfs_root *root, struct btrfs_key *min_key, } btrfs_set_path_blocking(path); cur = read_node_slot(root, cur, slot); BUG_ON(!cur); btrfs_tree_lock(cur); Loading fs/btrfs/extent-tree.c +6 −0 Original line number Diff line number Diff line Loading @@ -6067,6 +6067,8 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, if (reada && level == 1) reada_walk_down(trans, root, wc, path); next = read_tree_block(root, bytenr, blocksize, generation); if (!next) return -EIO; btrfs_tree_lock(next); btrfs_set_lock_blocking(next); } Loading Loading @@ -7937,6 +7939,10 @@ static noinline int relocate_one_extent(struct btrfs_root *extent_root, eb = read_tree_block(found_root, block_start, block_size, 0); if (!eb) { ret = -EIO; goto out; } btrfs_tree_lock(eb); BUG_ON(level != btrfs_header_level(eb)); Loading fs/btrfs/relocation.c +6 −0 Original line number Diff line number Diff line Loading @@ -1724,6 +1724,7 @@ int replace_path(struct btrfs_trans_handle *trans, eb = read_tree_block(dest, old_bytenr, blocksize, old_ptr_gen); BUG_ON(!eb); btrfs_tree_lock(eb); if (cow) { ret = btrfs_cow_block(trans, dest, eb, parent, Loading Loading @@ -2513,6 +2514,10 @@ static int do_relocation(struct btrfs_trans_handle *trans, blocksize = btrfs_level_size(root, node->level); generation = btrfs_node_ptr_generation(upper->eb, slot); eb = read_tree_block(root, bytenr, blocksize, generation); if (!eb) { err = -EIO; goto next; } btrfs_tree_lock(eb); btrfs_set_lock_blocking(eb); Loading Loading @@ -2670,6 +2675,7 @@ static int get_tree_block_key(struct reloc_control *rc, BUG_ON(block->key_ready); eb = read_tree_block(rc->extent_root, block->bytenr, block->key.objectid, block->key.offset); BUG_ON(!eb); WARN_ON(btrfs_header_level(eb) != block->level); if (block->level == 0) btrfs_item_key_to_cpu(eb, &block->key, 0); Loading Loading
fs/btrfs/ctree.c +3 −0 Original line number Diff line number Diff line Loading @@ -682,6 +682,8 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans, if (!cur) { cur = read_tree_block(root, blocknr, blocksize, gen); if (!cur) return -EIO; } else if (!uptodate) { btrfs_read_buffer(cur, gen); } Loading Loading @@ -4087,6 +4089,7 @@ int btrfs_search_forward(struct btrfs_root *root, struct btrfs_key *min_key, } btrfs_set_path_blocking(path); cur = read_node_slot(root, cur, slot); BUG_ON(!cur); btrfs_tree_lock(cur); Loading
fs/btrfs/extent-tree.c +6 −0 Original line number Diff line number Diff line Loading @@ -6067,6 +6067,8 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, if (reada && level == 1) reada_walk_down(trans, root, wc, path); next = read_tree_block(root, bytenr, blocksize, generation); if (!next) return -EIO; btrfs_tree_lock(next); btrfs_set_lock_blocking(next); } Loading Loading @@ -7937,6 +7939,10 @@ static noinline int relocate_one_extent(struct btrfs_root *extent_root, eb = read_tree_block(found_root, block_start, block_size, 0); if (!eb) { ret = -EIO; goto out; } btrfs_tree_lock(eb); BUG_ON(level != btrfs_header_level(eb)); Loading
fs/btrfs/relocation.c +6 −0 Original line number Diff line number Diff line Loading @@ -1724,6 +1724,7 @@ int replace_path(struct btrfs_trans_handle *trans, eb = read_tree_block(dest, old_bytenr, blocksize, old_ptr_gen); BUG_ON(!eb); btrfs_tree_lock(eb); if (cow) { ret = btrfs_cow_block(trans, dest, eb, parent, Loading Loading @@ -2513,6 +2514,10 @@ static int do_relocation(struct btrfs_trans_handle *trans, blocksize = btrfs_level_size(root, node->level); generation = btrfs_node_ptr_generation(upper->eb, slot); eb = read_tree_block(root, bytenr, blocksize, generation); if (!eb) { err = -EIO; goto next; } btrfs_tree_lock(eb); btrfs_set_lock_blocking(eb); Loading Loading @@ -2670,6 +2675,7 @@ static int get_tree_block_key(struct reloc_control *rc, BUG_ON(block->key_ready); eb = read_tree_block(rc->extent_root, block->bytenr, block->key.objectid, block->key.offset); BUG_ON(!eb); WARN_ON(btrfs_header_level(eb) != block->level); if (block->level == 0) btrfs_item_key_to_cpu(eb, &block->key, 0); Loading