• Home
  • Raw
  • Download

Lines Matching refs:rc

156 static void mark_block_processed(struct reloc_control *rc,  in mark_block_processed()  argument
162 in_range(node->bytenr, rc->block_group->start, in mark_block_processed()
163 rc->block_group->length)) { in mark_block_processed()
164 blocksize = rc->extent_root->fs_info->nodesize; in mark_block_processed()
165 set_extent_bits(&rc->processed_blocks, node->bytenr, in mark_block_processed()
352 struct reloc_control *rc = fs_info->reloc_ctl; in find_reloc_root() local
357 ASSERT(rc); in find_reloc_root()
358 spin_lock(&rc->reloc_root_tree.lock); in find_reloc_root()
359 rb_node = rb_simple_search(&rc->reloc_root_tree.rb_root, bytenr); in find_reloc_root()
364 spin_unlock(&rc->reloc_root_tree.lock); in find_reloc_root()
381 static bool handle_useless_nodes(struct reloc_control *rc, in handle_useless_nodes() argument
384 struct btrfs_backref_cache *cache = &rc->backref_cache; in handle_useless_nodes()
424 mark_block_processed(rc, cur); in handle_useless_nodes()
457 struct reloc_control *rc, struct btrfs_key *node_key, in build_backref_tree() argument
461 struct btrfs_backref_cache *cache = &rc->backref_cache; in build_backref_tree()
470 iter = btrfs_backref_iter_alloc(rc->extent_root->fs_info, GFP_NOFS); in build_backref_tree()
515 if (handle_useless_nodes(rc, node)) in build_backref_tree()
536 struct reloc_control *rc, in clone_backref_node() argument
541 struct btrfs_backref_cache *cache = &rc->backref_cache; in clone_backref_node()
627 struct reloc_control *rc = fs_info->reloc_ctl; in __add_reloc_root() local
636 spin_lock(&rc->reloc_root_tree.lock); in __add_reloc_root()
637 rb_node = rb_simple_insert(&rc->reloc_root_tree.rb_root, in __add_reloc_root()
639 spin_unlock(&rc->reloc_root_tree.lock); in __add_reloc_root()
646 list_add_tail(&root->root_list, &rc->reloc_roots); in __add_reloc_root()
659 struct reloc_control *rc = fs_info->reloc_ctl; in __del_reloc_root() local
662 if (rc && root->node) { in __del_reloc_root()
663 spin_lock(&rc->reloc_root_tree.lock); in __del_reloc_root()
664 rb_node = rb_simple_search(&rc->reloc_root_tree.rb_root, in __del_reloc_root()
668 rb_erase(&node->rb_node, &rc->reloc_root_tree.rb_root); in __del_reloc_root()
671 spin_unlock(&rc->reloc_root_tree.lock); in __del_reloc_root()
703 struct reloc_control *rc = fs_info->reloc_ctl; in __update_reloc_root() local
705 spin_lock(&rc->reloc_root_tree.lock); in __update_reloc_root()
706 rb_node = rb_simple_search(&rc->reloc_root_tree.rb_root, in __update_reloc_root()
710 rb_erase(&node->rb_node, &rc->reloc_root_tree.rb_root); in __update_reloc_root()
712 spin_unlock(&rc->reloc_root_tree.lock); in __update_reloc_root()
718 spin_lock(&rc->reloc_root_tree.lock); in __update_reloc_root()
720 rb_node = rb_simple_insert(&rc->reloc_root_tree.rb_root, in __update_reloc_root()
722 spin_unlock(&rc->reloc_root_tree.lock); in __update_reloc_root()
836 struct reloc_control *rc = fs_info->reloc_ctl; in btrfs_init_reloc_root() local
841 if (!rc) in btrfs_init_reloc_root()
869 if (!rc->create_reloc_tree || in btrfs_init_reloc_root()
875 trans->block_rsv = rc->block_rsv; in btrfs_init_reloc_root()
1044 struct reloc_control *rc, in replace_file_extents() argument
1063 if (rc->stage != UPDATE_DATA_PTRS) in replace_file_extents()
1088 if (!in_range(bytenr, rc->block_group->start, in replace_file_extents()
1089 rc->block_group->length)) in replace_file_extents()
1123 ret = get_new_location(rc->data_inode, &new_bytenr, in replace_file_extents()
1187 int replace_path(struct btrfs_trans_handle *trans, struct reloc_control *rc, in replace_path() argument
1340 rc->block_group, parent, slot, in replace_path()
1583 struct reloc_control *rc, in insert_dirty_subvol() argument
1602 list_add_tail(&root->reloc_dirty_list, &rc->dirty_subvol_roots); in insert_dirty_subvol()
1606 static int clean_dirty_subvols(struct reloc_control *rc) in clean_dirty_subvols() argument
1613 list_for_each_entry_safe(root, next, &rc->dirty_subvol_roots, in clean_dirty_subvols()
1658 static noinline_for_stack int merge_reloc_root(struct reloc_control *rc, in merge_reloc_root() argument
1661 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in merge_reloc_root()
1723 ret = btrfs_block_rsv_refill(root, rc->block_rsv, min_reserved, in merge_reloc_root()
1747 trans->block_rsv = rc->block_rsv; in merge_reloc_root()
1764 ret = replace_path(trans, rc, root, reloc_root, path, in merge_reloc_root()
1797 if (replaced && rc->stage == UPDATE_DATA_PTRS) in merge_reloc_root()
1816 insert_dirty_subvol(trans, rc, root); in merge_reloc_root()
1823 if (replaced && rc->stage == UPDATE_DATA_PTRS) in merge_reloc_root()
1830 int prepare_to_merge(struct reloc_control *rc, int err) in prepare_to_merge() argument
1832 struct btrfs_root *root = rc->extent_root; in prepare_to_merge()
1841 rc->merging_rsv_size += fs_info->nodesize * (BTRFS_MAX_LEVEL - 1) * 2; in prepare_to_merge()
1842 rc->merging_rsv_size += rc->nodes_relocated * 2; in prepare_to_merge()
1847 num_bytes = rc->merging_rsv_size; in prepare_to_merge()
1848 ret = btrfs_block_rsv_add(root, rc->block_rsv, num_bytes, in prepare_to_merge()
1854 trans = btrfs_join_transaction(rc->extent_root); in prepare_to_merge()
1857 btrfs_block_rsv_release(fs_info, rc->block_rsv, in prepare_to_merge()
1863 if (num_bytes != rc->merging_rsv_size) { in prepare_to_merge()
1865 btrfs_block_rsv_release(fs_info, rc->block_rsv, in prepare_to_merge()
1871 rc->merge_reloc_tree = 1; in prepare_to_merge()
1873 while (!list_empty(&rc->reloc_roots)) { in prepare_to_merge()
1874 reloc_root = list_entry(rc->reloc_roots.next, in prepare_to_merge()
1895 list_splice(&reloc_roots, &rc->reloc_roots); in prepare_to_merge()
1914 void merge_reloc_roots(struct reloc_control *rc) in merge_reloc_roots() argument
1916 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in merge_reloc_roots()
1923 root = rc->extent_root; in merge_reloc_roots()
1932 list_splice_init(&rc->reloc_roots, &reloc_roots); in merge_reloc_roots()
1945 ret = merge_reloc_root(rc, root); in merge_reloc_roots()
1967 &rc->dirty_subvol_roots); in merge_reloc_roots()
1982 list_splice_init(&rc->reloc_roots, &reloc_roots); in merge_reloc_roots()
2036 struct reloc_control *rc, in select_reloc_root() argument
2068 &rc->backref_cache.changed); in select_reloc_root()
2069 mark_block_processed(rc, next); in select_reloc_root()
2085 rc->backref_cache.path[next->level] = next; in select_reloc_root()
2139 u64 calcu_metadata_size(struct reloc_control *rc, in calcu_metadata_size() argument
2142 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in calcu_metadata_size()
2173 struct reloc_control *rc, in reserve_metadata_space() argument
2176 struct btrfs_root *root = rc->extent_root; in reserve_metadata_space()
2182 num_bytes = calcu_metadata_size(rc, node, 1) * 2; in reserve_metadata_space()
2184 trans->block_rsv = rc->block_rsv; in reserve_metadata_space()
2185 rc->reserved_bytes += num_bytes; in reserve_metadata_space()
2192 ret = btrfs_block_rsv_refill(root, rc->block_rsv, num_bytes, in reserve_metadata_space()
2196 while (tmp <= rc->reserved_bytes) in reserve_metadata_space()
2205 rc->block_rsv->size = tmp + fs_info->nodesize * in reserve_metadata_space()
2221 struct reloc_control *rc, in do_relocation() argument
2226 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in do_relocation()
2242 rc->backref_cache.path[node->level] = node; in do_relocation()
2250 root = select_reloc_root(trans, rc, upper, edges); in do_relocation()
2372 list_move_tail(&node->list, &rc->backref_cache.changed); in do_relocation()
2382 struct reloc_control *rc, in link_to_upper() argument
2389 return do_relocation(trans, rc, node, &key, path, 0); in link_to_upper()
2393 struct reloc_control *rc, in finish_pending_nodes() argument
2397 struct btrfs_backref_cache *cache = &rc->backref_cache; in finish_pending_nodes()
2410 ret = link_to_upper(trans, rc, node, path); in finish_pending_nodes()
2424 static void update_processed_blocks(struct reloc_control *rc, in update_processed_blocks() argument
2438 mark_block_processed(rc, next); in update_processed_blocks()
2452 static int tree_block_processed(u64 bytenr, struct reloc_control *rc) in tree_block_processed() argument
2454 u32 blocksize = rc->extent_root->fs_info->nodesize; in tree_block_processed()
2456 if (test_range_bit(&rc->processed_blocks, bytenr, in tree_block_processed()
2488 struct reloc_control *rc, in relocate_tree_block() argument
2503 ret = reserve_metadata_space(trans, rc, node); in relocate_tree_block()
2510 update_processed_blocks(rc, node); in relocate_tree_block()
2524 list_add_tail(&node->list, &rc->backref_cache.changed); in relocate_tree_block()
2533 update_processed_blocks(rc, node); in relocate_tree_block()
2535 ret = do_relocation(trans, rc, node, key, path, 1); in relocate_tree_block()
2539 btrfs_backref_cleanup_node(&rc->backref_cache, node); in relocate_tree_block()
2548 struct reloc_control *rc, struct rb_root *blocks) in relocate_tree_blocks() argument
2550 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in relocate_tree_blocks()
2581 node = build_backref_tree(rc, &block->key, in relocate_tree_blocks()
2588 ret = relocate_tree_block(trans, rc, node, &block->key, in relocate_tree_blocks()
2596 err = finish_pending_nodes(trans, rc, path, err); in relocate_tree_blocks()
2861 static int add_tree_block(struct reloc_control *rc, in add_tree_block() argument
2906 block->key.objectid = rc->extent_root->fs_info->nodesize; in add_tree_block()
2913 btrfs_backref_panic(rc->extent_root->fs_info, block->bytenr, in add_tree_block()
2922 static int __add_tree_block(struct reloc_control *rc, in __add_tree_block() argument
2926 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in __add_tree_block()
2932 if (tree_block_processed(bytenr, rc)) in __add_tree_block()
2953 ret = btrfs_search_slot(NULL, rc->extent_root, &key, path, 0, 0); in __add_tree_block()
2986 ret = add_tree_block(rc, &key, path, blocks); in __add_tree_block()
3075 int add_data_references(struct reloc_control *rc, in add_data_references() argument
3080 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in add_data_references()
3102 ret = delete_v1_space_cache(eb, rc->block_group, in add_data_references()
3107 ret = __add_tree_block(rc, ref_node->val, blocksize, blocks); in add_data_references()
3121 int find_next_extent(struct reloc_control *rc, struct btrfs_path *path, in find_next_extent() argument
3124 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in find_next_extent()
3130 last = rc->block_group->start + rc->block_group->length; in find_next_extent()
3133 if (rc->search_start >= last) { in find_next_extent()
3138 key.objectid = rc->search_start; in find_next_extent()
3144 ret = btrfs_search_slot(NULL, rc->extent_root, &key, path, in find_next_extent()
3151 ret = btrfs_next_leaf(rc->extent_root, path); in find_next_extent()
3170 key.objectid + key.offset <= rc->search_start) { in find_next_extent()
3177 rc->search_start) { in find_next_extent()
3182 ret = find_first_extent_bit(&rc->processed_blocks, in find_next_extent()
3188 rc->search_start = end + 1; in find_next_extent()
3191 rc->search_start = key.objectid + key.offset; in find_next_extent()
3193 rc->search_start = key.objectid + in find_next_extent()
3203 static void set_reloc_control(struct reloc_control *rc) in set_reloc_control() argument
3205 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in set_reloc_control()
3208 fs_info->reloc_ctl = rc; in set_reloc_control()
3212 static void unset_reloc_control(struct reloc_control *rc) in unset_reloc_control() argument
3214 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in unset_reloc_control()
3236 int prepare_to_relocate(struct reloc_control *rc) in prepare_to_relocate() argument
3241 rc->block_rsv = btrfs_alloc_block_rsv(rc->extent_root->fs_info, in prepare_to_relocate()
3243 if (!rc->block_rsv) in prepare_to_relocate()
3246 memset(&rc->cluster, 0, sizeof(rc->cluster)); in prepare_to_relocate()
3247 rc->search_start = rc->block_group->start; in prepare_to_relocate()
3248 rc->extents_found = 0; in prepare_to_relocate()
3249 rc->nodes_relocated = 0; in prepare_to_relocate()
3250 rc->merging_rsv_size = 0; in prepare_to_relocate()
3251 rc->reserved_bytes = 0; in prepare_to_relocate()
3252 rc->block_rsv->size = rc->extent_root->fs_info->nodesize * in prepare_to_relocate()
3254 ret = btrfs_block_rsv_refill(rc->extent_root, in prepare_to_relocate()
3255 rc->block_rsv, rc->block_rsv->size, in prepare_to_relocate()
3260 rc->create_reloc_tree = 1; in prepare_to_relocate()
3261 set_reloc_control(rc); in prepare_to_relocate()
3263 trans = btrfs_join_transaction(rc->extent_root); in prepare_to_relocate()
3265 unset_reloc_control(rc); in prepare_to_relocate()
3276 unset_reloc_control(rc); in prepare_to_relocate()
3281 static noinline_for_stack int relocate_block_group(struct reloc_control *rc) in relocate_block_group() argument
3283 struct btrfs_fs_info *fs_info = rc->extent_root->fs_info; in relocate_block_group()
3300 ret = prepare_to_relocate(rc); in relocate_block_group()
3307 rc->reserved_bytes = 0; in relocate_block_group()
3308 ret = btrfs_block_rsv_refill(rc->extent_root, in relocate_block_group()
3309 rc->block_rsv, rc->block_rsv->size, in relocate_block_group()
3316 trans = btrfs_start_transaction(rc->extent_root, 0); in relocate_block_group()
3323 if (update_backref_cache(trans, &rc->backref_cache)) { in relocate_block_group()
3329 ret = find_next_extent(rc, path, &key); in relocate_block_group()
3335 rc->extents_found++; in relocate_block_group()
3354 ret = add_tree_block(rc, &key, path, &blocks); in relocate_block_group()
3355 } else if (rc->stage == UPDATE_DATA_PTRS && in relocate_block_group()
3357 ret = add_data_references(rc, &key, path, &blocks); in relocate_block_group()
3368 ret = relocate_tree_blocks(trans, rc, &blocks); in relocate_block_group()
3374 rc->extents_found--; in relocate_block_group()
3375 rc->search_start = key.objectid; in relocate_block_group()
3383 if (rc->stage == MOVE_DATA_EXTENTS && in relocate_block_group()
3385 rc->found_file_extent = 1; in relocate_block_group()
3386 ret = relocate_data_extent(rc->data_inode, in relocate_block_group()
3387 &key, &rc->cluster); in relocate_block_group()
3399 ret = btrfs_force_chunk_alloc(trans, rc->block_group->flags); in relocate_block_group()
3408 clear_extent_bits(&rc->processed_blocks, 0, (u64)-1, EXTENT_DIRTY); in relocate_block_group()
3416 ret = relocate_file_extent_cluster(rc->data_inode, in relocate_block_group()
3417 &rc->cluster); in relocate_block_group()
3422 rc->create_reloc_tree = 0; in relocate_block_group()
3423 set_reloc_control(rc); in relocate_block_group()
3425 btrfs_backref_release_cache(&rc->backref_cache); in relocate_block_group()
3426 btrfs_block_rsv_release(fs_info, rc->block_rsv, (u64)-1, NULL); in relocate_block_group()
3436 err = prepare_to_merge(rc, err); in relocate_block_group()
3438 merge_reloc_roots(rc); in relocate_block_group()
3440 rc->merge_reloc_tree = 0; in relocate_block_group()
3441 unset_reloc_control(rc); in relocate_block_group()
3442 btrfs_block_rsv_release(fs_info, rc->block_rsv, (u64)-1, NULL); in relocate_block_group()
3445 trans = btrfs_join_transaction(rc->extent_root); in relocate_block_group()
3454 ret = clean_dirty_subvols(rc); in relocate_block_group()
3457 btrfs_free_block_rsv(fs_info, rc->block_rsv); in relocate_block_group()
3539 struct reloc_control *rc; in alloc_reloc_control() local
3541 rc = kzalloc(sizeof(*rc), GFP_NOFS); in alloc_reloc_control()
3542 if (!rc) in alloc_reloc_control()
3545 INIT_LIST_HEAD(&rc->reloc_roots); in alloc_reloc_control()
3546 INIT_LIST_HEAD(&rc->dirty_subvol_roots); in alloc_reloc_control()
3547 btrfs_backref_init_cache(fs_info, &rc->backref_cache, 1); in alloc_reloc_control()
3548 mapping_tree_init(&rc->reloc_root_tree); in alloc_reloc_control()
3549 extent_io_tree_init(fs_info, &rc->processed_blocks, in alloc_reloc_control()
3551 return rc; in alloc_reloc_control()
3554 static void free_reloc_control(struct reloc_control *rc) in free_reloc_control() argument
3558 free_reloc_roots(&rc->reloc_roots); in free_reloc_control()
3560 &rc->reloc_root_tree.rb_root, rb_node) in free_reloc_control()
3563 kfree(rc); in free_reloc_control()
3597 struct reloc_control *rc; in btrfs_relocate_block_group() local
3613 rc = alloc_reloc_control(fs_info); in btrfs_relocate_block_group()
3614 if (!rc) { in btrfs_relocate_block_group()
3619 rc->extent_root = extent_root; in btrfs_relocate_block_group()
3620 rc->block_group = bg; in btrfs_relocate_block_group()
3622 ret = btrfs_inc_block_group_ro(rc->block_group, true); in btrfs_relocate_block_group()
3635 inode = lookup_free_space_inode(rc->block_group, path); in btrfs_relocate_block_group()
3639 ret = delete_block_group_cache(fs_info, rc->block_group, inode, 0); in btrfs_relocate_block_group()
3648 rc->data_inode = create_reloc_inode(fs_info, rc->block_group); in btrfs_relocate_block_group()
3649 if (IS_ERR(rc->data_inode)) { in btrfs_relocate_block_group()
3650 err = PTR_ERR(rc->data_inode); in btrfs_relocate_block_group()
3651 rc->data_inode = NULL; in btrfs_relocate_block_group()
3655 describe_relocation(fs_info, rc->block_group); in btrfs_relocate_block_group()
3657 btrfs_wait_block_group_reservations(rc->block_group); in btrfs_relocate_block_group()
3658 btrfs_wait_nocow_writers(rc->block_group); in btrfs_relocate_block_group()
3660 rc->block_group->start, in btrfs_relocate_block_group()
3661 rc->block_group->length); in btrfs_relocate_block_group()
3667 ret = relocate_block_group(rc); in btrfs_relocate_block_group()
3672 finishes_stage = rc->stage; in btrfs_relocate_block_group()
3682 if (rc->stage == MOVE_DATA_EXTENTS && rc->found_file_extent) { in btrfs_relocate_block_group()
3683 ret = btrfs_wait_ordered_range(rc->data_inode, 0, in btrfs_relocate_block_group()
3687 invalidate_mapping_pages(rc->data_inode->i_mapping, in btrfs_relocate_block_group()
3689 rc->stage = UPDATE_DATA_PTRS; in btrfs_relocate_block_group()
3695 if (rc->extents_found == 0) in btrfs_relocate_block_group()
3699 rc->extents_found, stage_to_string(finishes_stage)); in btrfs_relocate_block_group()
3702 WARN_ON(rc->block_group->pinned > 0); in btrfs_relocate_block_group()
3703 WARN_ON(rc->block_group->reserved > 0); in btrfs_relocate_block_group()
3704 WARN_ON(rc->block_group->used > 0); in btrfs_relocate_block_group()
3707 btrfs_dec_block_group_ro(rc->block_group); in btrfs_relocate_block_group()
3708 iput(rc->data_inode); in btrfs_relocate_block_group()
3709 btrfs_put_block_group(rc->block_group); in btrfs_relocate_block_group()
3710 free_reloc_control(rc); in btrfs_relocate_block_group()
3752 struct reloc_control *rc = NULL; in btrfs_recover_relocation() local
3824 rc = alloc_reloc_control(fs_info); in btrfs_recover_relocation()
3825 if (!rc) { in btrfs_recover_relocation()
3830 rc->extent_root = fs_info->extent_root; in btrfs_recover_relocation()
3832 set_reloc_control(rc); in btrfs_recover_relocation()
3834 trans = btrfs_join_transaction(rc->extent_root); in btrfs_recover_relocation()
3840 rc->merge_reloc_tree = 1; in btrfs_recover_relocation()
3849 &rc->reloc_roots); in btrfs_recover_relocation()
3872 merge_reloc_roots(rc); in btrfs_recover_relocation()
3874 unset_reloc_control(rc); in btrfs_recover_relocation()
3876 trans = btrfs_join_transaction(rc->extent_root); in btrfs_recover_relocation()
3883 ret = clean_dirty_subvols(rc); in btrfs_recover_relocation()
3887 unset_reloc_control(rc); in btrfs_recover_relocation()
3888 free_reloc_control(rc); in btrfs_recover_relocation()
3960 struct reloc_control *rc; in btrfs_reloc_cow_block() local
3966 rc = fs_info->reloc_ctl; in btrfs_reloc_cow_block()
3967 if (!rc) in btrfs_reloc_cow_block()
3970 BUG_ON(rc->stage == UPDATE_DATA_PTRS && in btrfs_reloc_cow_block()
3979 rc->create_reloc_tree) { in btrfs_reloc_cow_block()
3982 node = rc->backref_cache.path[level]; in btrfs_reloc_cow_block()
3993 &rc->backref_cache.pending[level]); in btrfs_reloc_cow_block()
3998 mark_block_processed(rc, node); in btrfs_reloc_cow_block()
4001 rc->nodes_relocated += buf->len; in btrfs_reloc_cow_block()
4004 if (level == 0 && first_cow && rc->stage == UPDATE_DATA_PTRS) in btrfs_reloc_cow_block()
4005 ret = replace_file_extents(trans, rc, root, cow); in btrfs_reloc_cow_block()
4017 struct reloc_control *rc = root->fs_info->reloc_ctl; in btrfs_reloc_pre_snapshot() local
4019 if (!rc || !have_reloc_root(root)) in btrfs_reloc_pre_snapshot()
4022 if (!rc->merge_reloc_tree) in btrfs_reloc_pre_snapshot()
4037 *bytes_to_reserve += rc->nodes_relocated; in btrfs_reloc_pre_snapshot()
4054 struct reloc_control *rc = root->fs_info->reloc_ctl; in btrfs_reloc_post_snapshot() local
4057 if (!rc || !have_reloc_root(root)) in btrfs_reloc_post_snapshot()
4060 rc = root->fs_info->reloc_ctl; in btrfs_reloc_post_snapshot()
4061 rc->merging_rsv_size += rc->nodes_relocated; in btrfs_reloc_post_snapshot()
4063 if (rc->merge_reloc_tree) { in btrfs_reloc_post_snapshot()
4065 rc->block_rsv, in btrfs_reloc_post_snapshot()
4066 rc->nodes_relocated, true); in btrfs_reloc_post_snapshot()
4081 if (rc->create_reloc_tree) in btrfs_reloc_post_snapshot()
4082 ret = clone_backref_node(trans, rc, root, reloc_root); in btrfs_reloc_post_snapshot()