Lines Matching refs:start
87 static u64 range_end(u64 start, u64 len)
89 if (start + len < start)
91 return start + len;
100 u64 end = range_end(em->start, em->len);
107 if (em->start < entry->start) {
109 } else if (em->start >= extent_map_end(entry)) {
118 while (parent && em->start >= extent_map_end(entry)) {
123 if (end > entry->start && em->start < extent_map_end(entry))
128 while (parent && em->start < entry->start) {
133 if (end > entry->start && em->start < extent_map_end(entry))
160 if (offset < entry->start)
180 while (prev && offset < prev_entry->start) {
221 if (extent_map_end(prev) == next->start &&
251 if (em->start != 0) {
256 em->start = merge->start;
288 * @start: logical offset in the file
296 int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len,
304 em = lookup_extent_mapping(tree, start, len);
306 WARN_ON(!em || em->start != start);
313 em->mod_start = em->start;
324 em->mod_start = em->start;
347 em->mod_start = em->start;
419 u64 start, u64 len, int strict)
425 u64 end = range_end(start, len);
427 rb_node = __tree_search(&tree->map.rb_root, start, &prev, &next);
439 if (strict && !(end > em->start && start < extent_map_end(em)))
449 * @start: byte offset to start the search
453 * [start, len] range. There may be additional objects in the tree that
458 u64 start, u64 len)
460 return __lookup_extent_mapping(tree, start, len, 1);
466 * @start: byte offset to start the search
470 * [start, len] range.
475 u64 start, u64 len)
477 return __lookup_extent_mapping(tree, start, len, 0);
547 u64 start;
551 BUG_ON(map_start < em->start || map_start >= extent_map_end(em));
553 if (existing->start > map_start) {
561 start = prev ? extent_map_end(prev) : em->start;
562 start = max_t(u64, start, em->start);
563 end = next ? next->start : extent_map_end(em);
565 start_diff = start - em->start;
566 em->start = start;
567 em->len = end - start;
581 * @start - start of the logical range btrfs_get_extent() is requesting
584 * Note that @em_in's range may be different from [start, start+len),
589 * a) Returning the existing extent in @em_in if @start is within the
598 struct extent_map **em_in, u64 start, u64 len)
613 existing = search_extent_mapping(em_tree, start, len);
615 trace_btrfs_handle_em_exist(fs_info, existing, em, start, len);
621 if (start >= existing->start &&
622 start < extent_map_end(existing)) {
627 u64 orig_start = em->start;
632 * the [start, start + len) range which overlaps
635 em, start);
640 "unexpected error %d: merge existing(start %llu len %llu) with em(start %llu len %llu)\n",
641 ret, existing->start, existing->len,