Lines Matching full:merge

185 /* Check to see if two extent_map structs are adjacent and safe to merge. */
192 * don't merge compressed extents, we need to know their in mergable_maps()
203 * We don't want to merge stuff that hasn't been written to the log yet in mergable_maps()
233 struct extent_map *merge = NULL; in try_merge_map() local
250 merge = rb_entry(rb, struct extent_map, rb_node); in try_merge_map()
251 if (rb && mergable_maps(merge, em)) { in try_merge_map()
252 em->start = merge->start; in try_merge_map()
253 em->orig_start = merge->orig_start; in try_merge_map()
254 em->len += merge->len; in try_merge_map()
255 em->block_len += merge->block_len; in try_merge_map()
256 em->block_start = merge->block_start; in try_merge_map()
257 em->mod_len = (em->mod_len + em->mod_start) - merge->mod_start; in try_merge_map()
258 em->mod_start = merge->mod_start; in try_merge_map()
259 em->generation = max(em->generation, merge->generation); in try_merge_map()
262 rb_erase_cached(&merge->rb_node, &tree->map); in try_merge_map()
263 RB_CLEAR_NODE(&merge->rb_node); in try_merge_map()
264 free_extent_map(merge); in try_merge_map()
270 merge = rb_entry(rb, struct extent_map, rb_node); in try_merge_map()
271 if (rb && mergable_maps(em, merge)) { in try_merge_map()
272 em->len += merge->len; in try_merge_map()
273 em->block_len += merge->block_len; in try_merge_map()
274 rb_erase_cached(&merge->rb_node, &tree->map); in try_merge_map()
275 RB_CLEAR_NODE(&merge->rb_node); in try_merge_map()
276 em->mod_len = (merge->mod_start + merge->mod_len) - em->mod_start; in try_merge_map()
277 em->generation = max(em->generation, merge->generation); in try_merge_map()
279 free_extent_map(merge); in try_merge_map()
398 * Insert @em into @tree or perform a simple forward/backward merge with
401 * reference dropped if the merge attempt was successful.
602 * b) Merge the existing extent with @em_in passed in.
658 "unexpected error %d: merge existing(start %llu len %llu) with em(start %llu len %llu)\n", in btrfs_add_extent_mapping()