Lines Matching refs:start

85 static u64 range_end(u64 start, u64 len)  in range_end()  argument
87 if (start + len < start) in range_end()
89 return start + len; in range_end()
98 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()
116 while (parent && em->start >= extent_map_end(entry)) { in tree_insert()
121 if (end > entry->start && em->start < extent_map_end(entry)) in tree_insert()
126 while (parent && em->start < entry->start) { in tree_insert()
131 if (end > entry->start && em->start < extent_map_end(entry)) in tree_insert()
159 if (offset < entry->start) in __tree_search()
184 while (prev && offset < prev_entry->start) { in __tree_search()
225 if (extent_map_end(prev) == next->start && in mergable_maps()
255 if (em->start != 0) { in try_merge_map()
260 em->start = merge->start; in try_merge_map()
302 int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len, in unpin_extent_cache() argument
310 em = lookup_extent_mapping(tree, start, len); in unpin_extent_cache()
312 WARN_ON(!em || em->start != start); in unpin_extent_cache()
319 em->mod_start = em->start; in unpin_extent_cache()
330 em->mod_start = em->start; in unpin_extent_cache()
355 em->mod_start = em->start; in setup_extent_mapping()
430 u64 start, u64 len, int strict) in __lookup_extent_mapping() argument
435 u64 end = range_end(start, len); in __lookup_extent_mapping()
437 rb_node = __tree_search(&tree->map.rb_root, start, &prev_or_next); in __lookup_extent_mapping()
447 if (strict && !(end > em->start && start < extent_map_end(em))) in __lookup_extent_mapping()
466 u64 start, u64 len) in lookup_extent_mapping() argument
468 return __lookup_extent_mapping(tree, start, len, 1); in lookup_extent_mapping()
483 u64 start, u64 len) in search_extent_mapping() argument
485 return __lookup_extent_mapping(tree, start, len, 0); in search_extent_mapping()
559 u64 start; in merge_extent_mapping() local
563 BUG_ON(map_start < em->start || map_start >= extent_map_end(em)); in merge_extent_mapping()
565 if (existing->start > map_start) { in merge_extent_mapping()
573 start = prev ? extent_map_end(prev) : em->start; in merge_extent_mapping()
574 start = max_t(u64, start, em->start); in merge_extent_mapping()
575 end = next ? next->start : extent_map_end(em); in merge_extent_mapping()
577 start_diff = start - em->start; in merge_extent_mapping()
578 em->start = start; in merge_extent_mapping()
579 em->len = end - start; in merge_extent_mapping()
611 struct extent_map **em_in, u64 start, u64 len) in btrfs_add_extent_mapping() argument
626 existing = search_extent_mapping(em_tree, start, len); in btrfs_add_extent_mapping()
628 trace_btrfs_handle_em_exist(fs_info, existing, em, start, len); in btrfs_add_extent_mapping()
634 if (start >= existing->start && in btrfs_add_extent_mapping()
635 start < extent_map_end(existing)) { in btrfs_add_extent_mapping()
640 u64 orig_start = em->start; in btrfs_add_extent_mapping()
648 em, start); in btrfs_add_extent_mapping()
654 ret, existing->start, existing->len, in btrfs_add_extent_mapping()
702 void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end, in btrfs_drop_extent_map_range() argument
709 u64 len = end - start + 1; in btrfs_drop_extent_map_range()
711 WARN_ON(end < start); in btrfs_drop_extent_map_range()
713 if (start == 0 && !skip_pinned) { in btrfs_drop_extent_map_range()
735 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_map_range()
749 if (next_em->start < end) in btrfs_drop_extent_map_range()
757 start = em_end; in btrfs_drop_extent_map_range()
759 len = start + len - em_end; in btrfs_drop_extent_map_range()
771 if (em->start >= start && em_end <= end) in btrfs_drop_extent_map_range()
778 if (em->start < start) { in btrfs_drop_extent_map_range()
785 split->start = em->start; in btrfs_drop_extent_map_range()
786 split->len = start - em->start; in btrfs_drop_extent_map_range()
800 split->orig_start = split->start; in btrfs_drop_extent_map_range()
822 split->start = start + len; in btrfs_drop_extent_map_range()
823 split->len = em_end - (start + len); in btrfs_drop_extent_map_range()
838 const u64 diff = start + len - em->start; in btrfs_drop_extent_map_range()
846 split->orig_start = split->start; in btrfs_drop_extent_map_range()
889 if ((em->start < start || em_end > end) && modified) { in btrfs_drop_extent_map_range()
931 const u64 end = new_em->start + new_em->len - 1; in btrfs_replace_extent_map_range()
946 btrfs_drop_extent_map_range(inode, new_em->start, end, false); in btrfs_replace_extent_map_range()