Lines Matching refs:tree
35 void extent_map_tree_init(struct extent_map_tree *tree) in extent_map_tree_init() argument
37 tree->map = RB_ROOT; in extent_map_tree_init()
38 INIT_LIST_HEAD(&tree->modified_extents); in extent_map_tree_init()
39 rwlock_init(&tree->lock); in extent_map_tree_init()
226 static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em) in try_merge_map() argument
245 rb_erase(&merge->rb_node, &tree->map); in try_merge_map()
257 rb_erase(&merge->rb_node, &tree->map); in try_merge_map()
276 int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len, in unpin_extent_cache() argument
283 write_lock(&tree->lock); in unpin_extent_cache()
284 em = lookup_extent_mapping(tree, start, len); in unpin_extent_cache()
301 try_merge_map(tree, em); in unpin_extent_cache()
310 write_unlock(&tree->lock); in unpin_extent_cache()
315 void clear_em_logging(struct extent_map_tree *tree, struct extent_map *em) in clear_em_logging() argument
319 try_merge_map(tree, em); in clear_em_logging()
322 static inline void setup_extent_mapping(struct extent_map_tree *tree, in setup_extent_mapping() argument
331 list_move(&em->list, &tree->modified_extents); in setup_extent_mapping()
333 try_merge_map(tree, em); in setup_extent_mapping()
346 int add_extent_mapping(struct extent_map_tree *tree, in add_extent_mapping() argument
351 ret = tree_insert(&tree->map, em); in add_extent_mapping()
355 setup_extent_mapping(tree, em, modified); in add_extent_mapping()
361 __lookup_extent_mapping(struct extent_map_tree *tree, in __lookup_extent_mapping() argument
370 rb_node = __tree_search(&tree->map, start, &prev, &next); in __lookup_extent_mapping()
400 struct extent_map *lookup_extent_mapping(struct extent_map_tree *tree, in lookup_extent_mapping() argument
403 return __lookup_extent_mapping(tree, start, len, 1); in lookup_extent_mapping()
417 struct extent_map *search_extent_mapping(struct extent_map_tree *tree, in search_extent_mapping() argument
420 return __lookup_extent_mapping(tree, start, len, 0); in search_extent_mapping()
431 int remove_extent_mapping(struct extent_map_tree *tree, struct extent_map *em) in remove_extent_mapping() argument
436 rb_erase(&em->rb_node, &tree->map); in remove_extent_mapping()
443 void replace_extent_mapping(struct extent_map_tree *tree, in replace_extent_mapping() argument
452 rb_replace_node(&cur->rb_node, &new->rb_node, &tree->map); in replace_extent_mapping()
455 setup_extent_mapping(tree, new, modified); in replace_extent_mapping()