Lines Matching refs:extent_map

9 #include "extent_map.h"
19 sizeof(struct extent_map), 0,
33 * other user of the extent_map interface.
43 * Allocate a new extent_map structure. The new structure is returned with a
46 struct extent_map *alloc_extent_map(void)
48 struct extent_map *em;
63 void free_extent_map(struct extent_map *em)
84 static int tree_insert(struct rb_root_cached *root, struct extent_map *em)
88 struct extent_map *entry = NULL;
95 entry = rb_entry(parent, struct extent_map, rb_node);
110 entry = rb_entry(parent, struct extent_map, rb_node);
117 entry = rb_entry(parent, struct extent_map, rb_node);
120 entry = rb_entry(parent, struct extent_map, rb_node);
132 * Search through the tree for an extent_map with a given offset. If it can't
141 struct extent_map *entry;
142 struct extent_map *prev_entry = NULL;
147 entry = rb_entry(n, struct extent_map, rb_node);
162 prev_entry = rb_entry(prev, struct extent_map, rb_node);
175 prev_entry = rb_entry(prev, struct extent_map, rb_node);
178 prev_entry = rb_entry(prev, struct extent_map, rb_node);
185 /* Check to see if two extent_map structs are adjacent and safe to merge. */
186 static int mergable_maps(struct extent_map *prev, struct extent_map *next)
231 static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
233 struct extent_map *merge = NULL;
250 merge = rb_entry(rb, struct extent_map, rb_node);
270 merge = rb_entry(rb, struct extent_map, rb_node);
299 struct extent_map *em;
334 void clear_em_logging(struct extent_map_tree *tree, struct extent_map *em)
344 struct extent_map *em,
357 static void extent_map_device_set_bits(struct extent_map *em, unsigned bits)
373 static void extent_map_device_clear_bits(struct extent_map *em, unsigned bits)
399 * existing mappings. The extent_map struct passed in will be inserted
404 struct extent_map *em, int modified)
423 static struct extent_map *
427 struct extent_map *em;
440 em = rb_entry(rb_node, struct extent_map, rb_node);
450 * Lookup extent_map that intersects @start + @len range.
456 * Find and return the first extent_map struct in @tree that intersects the
461 struct extent_map *lookup_extent_mapping(struct extent_map_tree *tree,
474 * Find and return the first extent_map struct in @tree that intersects the
479 struct extent_map *search_extent_mapping(struct extent_map_tree *tree,
486 * Remove an extent_map from the extent tree.
494 void remove_extent_mapping(struct extent_map_tree *tree, struct extent_map *em)
508 struct extent_map *cur,
509 struct extent_map *new,
524 static struct extent_map *next_extent_map(const struct extent_map *em)
531 return container_of(next, struct extent_map, rb_node);
534 static struct extent_map *prev_extent_map(struct extent_map *em)
541 return container_of(prev, struct extent_map, rb_node);
551 struct extent_map *existing,
552 struct extent_map *em,
555 struct extent_map *prev;
556 struct extent_map *next;
609 struct extent_map **em_in, u64 start, u64 len)
612 struct extent_map *em = *em_in;
627 struct extent_map *existing;
679 struct extent_map *em;
683 em = rb_entry(node, struct extent_map, rb_node);
710 struct extent_map *split;
711 struct extent_map *split2;
712 struct extent_map *em;
745 struct extent_map *next_em = NULL;
936 struct extent_map *new_em,
964 * Split off the first pre bytes from the extent_map at [start, start + len],
973 struct extent_map *em;
974 struct extent_map *split_pre = NULL;
975 struct extent_map *split_mid = NULL;
1009 /* First, replace the em with a new extent_map starting from * em->start */
1024 * Now we only have an extent_map at:
1028 /* Insert the middle extent_map. */