Lines Matching full:end
46 pr_err("BTRFS: state leak: start %llu end %llu state %u in tree %d refs %d\n", in btrfs_extent_state_leak_debug_check()
47 state->start, state->end, state->state, in btrfs_extent_state_leak_debug_check()
56 #define btrfs_debug_check_extent_io_range(tree, start, end) \ argument
57 __btrfs_debug_check_extent_io_range(__func__, (tree), (start), (end))
60 u64 start, u64 end) in __btrfs_debug_check_extent_io_range() argument
70 if (end >= PAGE_SIZE && (end % 2) == 0 && end != isize - 1) { in __btrfs_debug_check_extent_io_range()
73 caller, btrfs_ino(inode), isize, start, end); in __btrfs_debug_check_extent_io_range()
215 changeset->bytes_changed += state->end - state->start + 1; in add_extent_changeset()
216 ret = ulist_add(&changeset->range_changed, state->start, state->end, in add_extent_changeset()
243 * entry->start <= offset && entry->end >= offset.
274 else if (offset > entry->end) in tree_search_for_insert()
285 /* Search neighbors until we find the first one past the end */ in tree_search_for_insert()
286 while (entry && offset > entry->end) in tree_search_for_insert()
322 else if (offset > entry->end) in tree_search_prev_next()
329 while (entry && offset > entry->end) in tree_search_prev_next()
355 "extent io tree error on %s state start %llu end %llu", in extent_io_tree_panic()
356 opname, state->start, state->end); in extent_io_tree_panic()
364 if (prev && prev->end == state->start - 1 && prev->state == state->state) { in merge_prev_state()
380 if (next && next->start == state->end + 1 && next->state == state->state) { in merge_next_state()
384 state->end = next->end; in merge_next_state()
447 const u64 end = state->end + 1; in insert_state() local
459 if (state->end < entry->start) { in insert_state()
460 if (try_merge && end == entry->start && in insert_state()
472 } else if (state->end > entry->end) { in insert_state()
473 if (try_merge && entry->end == start && in insert_state()
479 entry->end = state->end; in insert_state()
516 * the tree has 'orig' at [orig->start, orig->end]. After calling, there
519 * orig: [ split, orig->end ]
535 prealloc->end = split - 1; in split_state()
547 if (prealloc->end < entry->start) { in split_state()
549 } else if (prealloc->end > entry->end) { in split_state()
619 * The range [start, end] is inclusive.
623 int __clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, in __clear_extent_bit() argument
638 btrfs_debug_check_extent_io_range(tree, start, end); in __clear_extent_bit()
639 trace_btrfs_clear_extent_bit(tree, start, end - start + 1, bits); in __clear_extent_bit()
653 * Don't care for allocation failure here because we might end in __clear_extent_bit()
657 * If we end up needing a new extent state we allocate it later. in __clear_extent_bit()
672 cached->start <= start && cached->end > start) { in __clear_extent_bit()
682 /* This search will find the extents that end after our range starts. */ in __clear_extent_bit()
687 if (state->start > end) in __clear_extent_bit()
689 WARN_ON(state->end < start); in __clear_extent_bit()
690 last_end = state->end; in __clear_extent_bit()
724 if (state->end <= end) { in __clear_extent_bit()
735 if (state->start <= end && state->end > end) { in __clear_extent_bit()
739 err = split_state(tree, state, prealloc, end + 1); in __clear_extent_bit()
757 if (start <= end && state && !need_resched()) in __clear_extent_bit()
761 if (start > end) in __clear_extent_bit()
779 * The range [start, end] is inclusive.
782 static void wait_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, in wait_extent_bit() argument
787 btrfs_debug_check_extent_io_range(tree, start, end); in wait_extent_bit()
798 state->start <= start && start < state->end) in wait_extent_bit()
803 * This search will find all the extents that end after our in wait_extent_bit()
810 if (state->start > end) in wait_extent_bit()
826 start = state->end + 1; in wait_extent_bit()
828 if (start > end) in wait_extent_bit()
875 * This search will find all the extents that end after our range in find_first_extent_bit_state()
880 if (state->end >= start && (state->state & bits)) in find_first_extent_bit_state()
905 if (state->end == start - 1 && extent_state_in_tree(state)) { in find_first_extent_bit()
932 *end_ret = state->end; in find_first_extent_bit()
968 *end_ret = state->end; in find_contiguous_extent_bit()
972 *end_ret = state->end; in find_contiguous_extent_bit()
982 * than 'max_bytes'. start and end are used to return the range,
987 u64 *end, u64 max_bytes, in btrfs_find_delalloc_range() argument
998 * This search will find all the extents that end after our range in btrfs_find_delalloc_range()
1003 *end = (u64)-1; in btrfs_find_delalloc_range()
1014 *end = state->end; in btrfs_find_delalloc_range()
1023 *end = state->end; in btrfs_find_delalloc_range()
1024 cur_start = state->end + 1; in btrfs_find_delalloc_range()
1025 total_bytes += state->end - state->start + 1; in btrfs_find_delalloc_range()
1047 * [start, end] is inclusive This takes the tree lock.
1049 static int __set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, in __set_extent_bit() argument
1066 btrfs_debug_check_extent_io_range(tree, start, end); in __set_extent_bit()
1067 trace_btrfs_set_extent_bit(tree, start, end - start + 1, bits); in __set_extent_bit()
1076 * Don't care for allocation failure here because we might end in __set_extent_bit()
1080 * If we end up needing a new extent state we allocate it later. in __set_extent_bit()
1091 if (state->start <= start && state->end > start && in __set_extent_bit()
1096 * This search will find all the extents that end after our range in __set_extent_bit()
1105 prealloc->end = end; in __set_extent_bit()
1113 last_end = state->end; in __set_extent_bit()
1121 if (state->start == start && state->end <= end) { in __set_extent_bit()
1136 if (start < end && state && state->start == start && in __set_extent_bit()
1170 start = state->end + 1; in __set_extent_bit()
1185 if (state->end <= end) { in __set_extent_bit()
1193 if (start < end && state && state->start == start && in __set_extent_bit()
1210 if (end < last_start) in __set_extent_bit()
1211 this_end = end; in __set_extent_bit()
1224 prealloc->end = this_end; in __set_extent_bit()
1243 if (state->start <= end && state->end > end) { in __set_extent_bit()
1254 ret = split_state(tree, state, prealloc, end + 1); in __set_extent_bit()
1266 if (start > end) in __set_extent_bit()
1282 int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, in set_extent_bit() argument
1285 return __set_extent_bit(tree, start, end, bits, NULL, NULL, in set_extent_bit()
1294 * @end: the end offset in bytes (inclusive)
1307 int convert_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, in convert_extent_bit() argument
1320 btrfs_debug_check_extent_io_range(tree, start, end); in convert_extent_bit()
1321 trace_btrfs_convert_extent_bit(tree, start, end - start + 1, bits, in convert_extent_bit()
1341 if (state->start <= start && state->end > start && in convert_extent_bit()
1347 * This search will find all the extents that end after our range in convert_extent_bit()
1358 prealloc->end = end; in convert_extent_bit()
1366 last_end = state->end; in convert_extent_bit()
1374 if (state->start == start && state->end <= end) { in convert_extent_bit()
1381 if (start < end && state && state->start == start && in convert_extent_bit()
1414 if (state->end <= end) { in convert_extent_bit()
1421 if (start < end && state && state->start == start && in convert_extent_bit()
1438 if (end < last_start) in convert_extent_bit()
1439 this_end = end; in convert_extent_bit()
1454 prealloc->end = this_end; in convert_extent_bit()
1472 if (state->start <= end && state->end > end) { in convert_extent_bit()
1479 ret = split_state(tree, state, prealloc, end + 1); in convert_extent_bit()
1491 if (start > end) in convert_extent_bit()
1513 * @end_ret: records the end of the range (inclusive)
1518 * spans (last_range_end, end of device]. In this case it's up to the caller to
1543 * the end of the last extent. in find_first_clear_extent_bit()
1545 *start_ret = prev->end + 1; in find_first_clear_extent_bit()
1556 if (in_range(start, state->start, state->end - state->start + 1)) { in find_first_clear_extent_bit()
1563 start = state->end + 1; in find_first_clear_extent_bit()
1590 *start_ret = prev->end + 1; in find_first_clear_extent_bit()
1602 if (state->end >= start && !(state->state & bits)) { in find_first_clear_extent_bit()
1603 *end_ret = state->end; in find_first_clear_extent_bit()
1621 * can end up being bigger than the initial value.
1622 * @search_end: The end offset (inclusive value) of the search range.
1664 if (cached->start <= cur_start && cur_start <= cached->end) { in count_range_bits()
1679 else if (prev->start <= cur_start && cur_start <= prev->end) in count_range_bits()
1684 * This search will find all the extents that end after our range in count_range_bits()
1696 if (state->end >= cur_start && (state->state & bits) == bits) { in count_range_bits()
1697 total_bytes += min(search_end, state->end) + 1 - in count_range_bits()
1705 last = state->end; in count_range_bits()
1727 bool test_range_bit_exists(struct extent_io_tree *tree, u64 start, u64 end, u32 bit) in test_range_bit_exists() argument
1736 while (state && start <= end) { in test_range_bit_exists()
1737 if (state->start > end) in test_range_bit_exists()
1745 /* If state->end is (u64)-1, start will overflow to 0 */ in test_range_bit_exists()
1746 start = state->end + 1; in test_range_bit_exists()
1747 if (start > end || start == 0) in test_range_bit_exists()
1756 * Check if the whole range [@start,@end) contains the single @bit set.
1758 bool test_range_bit(struct extent_io_tree *tree, u64 start, u64 end, u32 bit, in test_range_bit() argument
1768 cached->end > start) in test_range_bit()
1772 while (state && start <= end) { in test_range_bit()
1778 if (state->start > end) in test_range_bit()
1786 if (state->end == (u64)-1) in test_range_bit()
1790 * Last entry (if state->end is (u64)-1 and overflow happens), in test_range_bit()
1793 start = state->end + 1; in test_range_bit()
1794 if (start > end || start == 0) in test_range_bit()
1807 int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end, in set_record_extent_bits() argument
1817 return __set_extent_bit(tree, start, end, bits, NULL, NULL, NULL, changeset); in set_record_extent_bits()
1820 int clear_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end, in clear_record_extent_bits() argument
1829 return __clear_extent_bit(tree, start, end, bits, NULL, changeset); in clear_record_extent_bits()
1832 bool __try_lock_extent(struct extent_io_tree *tree, u64 start, u64 end, u32 bits, in __try_lock_extent() argument
1838 err = __set_extent_bit(tree, start, end, bits, &failed_start, in __try_lock_extent()
1849 * Either insert or lock state struct between start and end use mask to tell
1852 int __lock_extent(struct extent_io_tree *tree, u64 start, u64 end, u32 bits, in __lock_extent() argument
1859 err = __set_extent_bit(tree, start, end, bits, &failed_start, in __lock_extent()
1866 wait_extent_bit(tree, failed_start, end, bits, &failed_state); in __lock_extent()
1867 err = __set_extent_bit(tree, start, end, bits, in __lock_extent()