Lines Matching refs:tree
124 struct btrfs_leaf_ref_tree *tree = root->ref_tree;
127 tree = &root->fs_info->shared_ref_tree;
128 if (!tree)
131 spin_lock(&tree->lock);
132 while (!list_empty(&tree->list)) {
133 ref = list_entry(tree->list.next, struct btrfs_leaf_ref, list);
134 BUG_ON(ref->tree != tree);
138 cond_resched_lock(&tree->lock);
142 rb_erase(&ref->rb_node, &tree->root);
145 spin_unlock(&tree->lock);
148 spin_lock(&tree->lock);
150 spin_unlock(&tree->lock);
163 struct btrfs_leaf_ref_tree *tree = root->ref_tree;
165 if (tree) {
166 spin_lock(&tree->lock);
167 rb = tree_search(&tree->root, bytenr);
172 spin_unlock(&tree->lock);
176 if (tree != &root->fs_info->shared_ref_tree) {
177 tree = &root->fs_info->shared_ref_tree;
192 struct btrfs_leaf_ref_tree *tree = root->ref_tree;
195 tree = &root->fs_info->shared_ref_tree;
197 spin_lock(&tree->lock);
198 rb = tree_insert(&tree->root, ref->bytenr, &ref->rb_node);
203 ref->tree = tree;
205 list_add_tail(&ref->list, &tree->list);
207 spin_unlock(&tree->lock);
212 * remove a single leaf ref from the tree. This drops the ref held by the tree
217 struct btrfs_leaf_ref_tree *tree;
222 tree = ref->tree;
223 spin_lock(&tree->lock);
225 rb_erase(&ref->rb_node, &tree->root);
228 spin_unlock(&tree->lock);