Lines Matching full:start
86 static u64 range_end(u64 start, u64 len) in range_end() argument
88 if (start + len < start) in range_end()
90 return start + len; in range_end()
99 u64 end = range_end(em->start, em->len); in tree_insert()
105 if (em->start < entry->start) in tree_insert()
107 else if (em->start >= extent_map_end(entry)) in tree_insert()
114 while (parent && em->start >= extent_map_end(entry)) { in tree_insert()
119 if (end > entry->start && em->start < extent_map_end(entry)) in tree_insert()
124 while (parent && em->start < entry->start) { in tree_insert()
129 if (end > entry->start && em->start < extent_map_end(entry)) in tree_insert()
156 if (offset < entry->start) in __tree_search()
176 while (prev && offset < prev_entry->start) { in __tree_search()
210 if (extent_map_end(prev) == next->start && in mergable_maps()
242 if (em->start != 0) { in try_merge_map()
247 em->start = merge->start; in try_merge_map()
279 * @start: logical offset in the file
287 int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len, in unpin_extent_cache() argument
295 em = lookup_extent_mapping(tree, start, len); in unpin_extent_cache()
297 WARN_ON(!em || em->start != start); in unpin_extent_cache()
304 em->mod_start = em->start; in unpin_extent_cache()
315 em->mod_start = em->start; in unpin_extent_cache()
338 em->mod_start = em->start; in setup_extent_mapping()
373 u64 start, u64 len, int strict) in __lookup_extent_mapping() argument
379 u64 end = range_end(start, len); in __lookup_extent_mapping()
381 rb_node = __tree_search(&tree->map, start, &prev, &next); in __lookup_extent_mapping()
393 if (strict && !(end > em->start && start < extent_map_end(em))) in __lookup_extent_mapping()
403 * @start: byte offset to start the search
407 * [start, len] range. There may be additional objects in the tree that
412 u64 start, u64 len) in lookup_extent_mapping() argument
414 return __lookup_extent_mapping(tree, start, len, 1); in lookup_extent_mapping()
420 * @start: byte offset to start the search
424 * [start, len] range.
429 u64 start, u64 len) in search_extent_mapping() argument
431 return __lookup_extent_mapping(tree, start, len, 0); in search_extent_mapping()
501 u64 start; in merge_extent_mapping() local
505 BUG_ON(map_start < em->start || map_start >= extent_map_end(em)); in merge_extent_mapping()
507 if (existing->start > map_start) { in merge_extent_mapping()
515 start = prev ? extent_map_end(prev) : em->start; in merge_extent_mapping()
516 start = max_t(u64, start, em->start); in merge_extent_mapping()
517 end = next ? next->start : extent_map_end(em); in merge_extent_mapping()
519 start_diff = start - em->start; in merge_extent_mapping()
520 em->start = start; in merge_extent_mapping()
521 em->len = end - start; in merge_extent_mapping()
535 * @start - start of the logical range btrfs_get_extent() is requesting
538 * Note that @em_in's range may be different from [start, start+len),
543 * a) Returning the existing extent in @em_in if @start is within the
552 struct extent_map **em_in, u64 start, u64 len) in btrfs_add_extent_mapping() argument
567 existing = search_extent_mapping(em_tree, start, len); in btrfs_add_extent_mapping()
569 trace_btrfs_handle_em_exist(fs_info, existing, em, start, len); in btrfs_add_extent_mapping()
575 if (start >= existing->start && in btrfs_add_extent_mapping()
576 start < extent_map_end(existing)) { in btrfs_add_extent_mapping()
581 u64 orig_start = em->start; in btrfs_add_extent_mapping()
586 * the [start, start + len) range which overlaps in btrfs_add_extent_mapping()
589 em, start); in btrfs_add_extent_mapping()
594 "unexpected error %d: merge existing(start %llu len %llu) with em(start %llu len %llu)\n", in btrfs_add_extent_mapping()
595 ret, existing->start, existing->len, in btrfs_add_extent_mapping()