Lines Matching refs:tree

83 void cache_tree_init(struct cache_tree *tree)
85 tree->root = RB_ROOT;
101 int add_cache_extent(struct cache_tree *tree, u64 start, u64 size)
109 ret = insert_cache_extent(tree, pe);
116 int insert_cache_extent(struct cache_tree *tree, struct cache_extent *pe)
118 return rb_insert(&tree->root, &pe->rb_node, cache_tree_comp_nodes);
121 int insert_cache_extent2(struct cache_tree *tree, struct cache_extent *pe)
123 return rb_insert(&tree->root, &pe->rb_node, cache_tree_comp_nodes2);
126 struct cache_extent *lookup_cache_extent(struct cache_tree *tree,
135 node = rb_search(&tree->root, &range, cache_tree_comp_range, NULL);
143 struct cache_extent *lookup_cache_extent2(struct cache_tree *tree,
153 node = rb_search(&tree->root, &range, cache_tree_comp_range2, NULL);
161 struct cache_extent *search_cache_extent(struct cache_tree *tree, u64 start)
170 node = rb_search(&tree->root, &range, cache_tree_comp_range, &next);
180 struct cache_extent *search_cache_extent2(struct cache_tree *tree,
191 node = rb_search(&tree->root, &range, cache_tree_comp_range2, &next);
201 struct cache_extent *first_cache_extent(struct cache_tree *tree)
203 struct rb_node *node = rb_first(&tree->root);
210 struct cache_extent *last_cache_extent(struct cache_tree *tree)
212 struct rb_node *node = rb_last(&tree->root);
237 void remove_cache_extent(struct cache_tree *tree, struct cache_extent *pe)
239 rb_erase(&pe->rb_node, &tree->root);
242 void cache_tree_free_extents(struct cache_tree *tree,
247 while ((ce = first_cache_extent(tree))) {
248 remove_cache_extent(tree, ce);
258 void free_extent_cache_tree(struct cache_tree *tree)
260 cache_tree_free_extents(tree, free_extent_cache);
263 int add_merge_cache_extent(struct cache_tree *tree, u64 start, u64 size)
272 if (cache_tree_empty(tree))
275 cache = search_cache_extent(tree, start);
278 * Either the tree is completely empty, or the no range after
282 prev = last_cache_extent(tree);
308 remove_cache_extent(tree, prev);
316 ret = add_cache_extent(tree, start, size);