Lines Matching refs:offset
51 struct btrfs_free_space *bitmap_info, u64 *offset,
56 struct btrfs_free_space *info, u64 offset,
84 u64 offset) in __lookup_free_space_inode() argument
97 key.offset = offset; in __lookup_free_space_inode()
169 u64 ino, u64 offset) in __create_free_space_inode() argument
200 btrfs_set_inode_block_group(leaf, inode_item, offset); in __create_free_space_inode()
205 key.offset = offset; in __create_free_space_inode()
282 key.offset = block_group->start; in btrfs_remove_free_space_inode()
538 unsigned offset = 0; in io_ctl_set_crc() local
541 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_set_crc()
543 crc = crc32c(crc, io_ctl->orig + offset, PAGE_SIZE - offset); in io_ctl_set_crc()
555 unsigned offset = 0; in io_ctl_check_crc() local
558 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_check_crc()
565 crc = crc32c(crc, io_ctl->orig + offset, PAGE_SIZE - offset); in io_ctl_check_crc()
577 static int io_ctl_add_entry(struct btrfs_io_ctl *io_ctl, u64 offset, u64 bytes, in io_ctl_add_entry() argument
586 put_unaligned_le64(offset, &entry->offset); in io_ctl_add_entry()
660 entry->offset = get_unaligned_le64(&e->offset); in io_ctl_read_entry()
735 struct btrfs_path *path, u64 offset) in __load_free_space_cache() argument
756 key.offset = offset; in __load_free_space_cache()
779 offset); in __load_free_space_cache()
908 const u64 offset = info->offset; in copy_free_space_cache() local
914 ret = btrfs_add_free_space(block_group, offset, bytes); in copy_free_space_cache()
917 u64 offset = info->offset; in copy_free_space_cache() local
920 ret = search_bitmap(ctl, info, &offset, &bytes, false); in copy_free_space_cache()
922 bitmap_clear_bits(ctl, info, offset, bytes, true); in copy_free_space_cache()
924 ret = btrfs_add_free_space(block_group, offset, in copy_free_space_cache()
1101 ret = io_ctl_add_entry(io_ctl, e->offset, e->bytes, in write_cache_extent_entries()
1148 struct btrfs_path *path, u64 offset, in update_cache_item() argument
1158 key.offset = offset; in update_cache_item()
1173 found_key.offset != offset) { in update_cache_item()
1298 struct btrfs_path *path, u64 offset) in __btrfs_wait_cache_io() argument
1312 ret = update_cache_item(trans, root, inode, path, offset, in __btrfs_wait_cache_io()
1562 u64 offset) in offset_to_bit() argument
1564 ASSERT(offset >= bitmap_start); in offset_to_bit()
1565 offset -= bitmap_start; in offset_to_bit()
1566 return (unsigned long)(div_u64(offset, unit)); in offset_to_bit()
1575 u64 offset) in offset_to_bitmap()
1581 bitmap_start = offset - ctl->start; in offset_to_bitmap()
1614 if (new_entry->offset < info->offset) { in tree_insert_offset()
1616 } else if (new_entry->offset > info->offset) { in tree_insert_offset()
1707 u64 offset, int bitmap_only, int fuzzy) in tree_search_offset() argument
1719 if (offset < entry->offset) in tree_search_offset()
1721 else if (offset > entry->offset) in tree_search_offset()
1743 if (entry->offset != offset) in tree_search_offset()
1759 prev->offset + prev->bytes > offset) in tree_search_offset()
1771 if (entry->offset > offset) { in tree_search_offset()
1776 ASSERT(entry->offset <= offset); in tree_search_offset()
1791 prev->offset + prev->bytes > offset) in tree_search_offset()
1794 if (entry->offset + BITS_PER_BITMAP * ctl->unit > offset) in tree_search_offset()
1796 } else if (entry->offset + entry->bytes > offset) in tree_search_offset()
1808 if (entry->offset + BITS_PER_BITMAP * in tree_search_offset()
1809 ctl->unit > offset) in tree_search_offset()
1812 if (entry->offset + entry->bytes > offset) in tree_search_offset()
1882 u64 offset, u64 bytes, bool update_stat) in bitmap_clear_bits() argument
1887 start = offset_to_bit(info->offset, ctl->unit, offset); in bitmap_clear_bits()
1917 struct btrfs_free_space *info, u64 offset, in btrfs_bitmap_set_bits() argument
1923 start = offset_to_bit(info->offset, ctl->unit, offset); in btrfs_bitmap_set_bits()
1958 struct btrfs_free_space *bitmap_info, u64 *offset, in search_bitmap() argument
1978 i = offset_to_bit(bitmap_info->offset, ctl->unit, in search_bitmap()
1979 max_t(u64, *offset, bitmap_info->offset)); in search_bitmap()
2000 *offset = (u64)(i * ctl->unit) + bitmap_info->offset; in search_bitmap()
2013 find_free_space(struct btrfs_free_space_ctl *ctl, u64 *offset, u64 *bytes, in find_free_space() argument
2028 entry = tree_search_offset(ctl, offset_to_bitmap(ctl, *offset), in find_free_space()
2063 tmp = entry->offset - ctl->start + align - 1; in find_free_space()
2066 align_off = tmp - entry->offset; in find_free_space()
2069 tmp = entry->offset; in find_free_space()
2091 *offset = tmp; in find_free_space()
2111 *offset = tmp; in find_free_space()
2120 struct btrfs_free_space *info, u64 offset) in add_new_bitmap() argument
2122 info->offset = offset_to_bitmap(ctl, offset); in add_new_bitmap()
2155 u64 *offset, u64 *bytes) in remove_from_bitmap() argument
2162 end = bitmap_info->offset + (u64)(BITS_PER_BITMAP * ctl->unit) - 1; in remove_from_bitmap()
2170 search_start = *offset; in remove_from_bitmap()
2175 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
2185 *offset += search_bytes; in remove_from_bitmap()
2216 search_start = *offset; in remove_from_bitmap()
2220 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
2231 struct btrfs_free_space *info, u64 offset, in add_bytes_to_bitmap() argument
2250 end = info->offset + (u64)(BITS_PER_BITMAP * ctl->unit); in add_bytes_to_bitmap()
2252 bytes_to_set = min(end - offset, bytes); in add_bytes_to_bitmap()
2254 btrfs_bitmap_set_bits(ctl, info, offset, bytes_to_set); in add_bytes_to_bitmap()
2320 u64 bytes, offset, bytes_added; in insert_into_bitmap() local
2325 offset = info->offset; in insert_into_bitmap()
2359 if (entry->offset == offset_to_bitmap(ctl, offset)) { in insert_into_bitmap()
2360 bytes_added = add_bytes_to_bitmap(ctl, entry, offset, in insert_into_bitmap()
2363 offset += bytes_added; in insert_into_bitmap()
2373 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in insert_into_bitmap()
2380 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes, in insert_into_bitmap()
2383 offset += bytes_added; in insert_into_bitmap()
2394 add_new_bitmap(ctl, info, offset); in insert_into_bitmap()
2457 u64 offset = info->offset; in try_merge_free_space() local
2467 right_info = tree_search_offset(ctl, offset + bytes, 0, 0); in try_merge_free_space()
2474 left_info = tree_search_offset(ctl, offset - 1, 0, 0); in try_merge_free_space()
2487 left_info->offset + left_info->bytes == offset && in try_merge_free_space()
2490 info->offset = left_info->offset; in try_merge_free_space()
2506 const u64 end = info->offset + info->bytes; in steal_from_bitmap_to_end()
2514 i = offset_to_bit(bitmap->offset, ctl->unit, end); in steal_from_bitmap_to_end()
2544 bitmap_offset = offset_to_bitmap(ctl, info->offset); in steal_from_bitmap_to_front()
2546 if (bitmap_offset == info->offset) { in steal_from_bitmap_to_front()
2547 if (info->offset == 0) in steal_from_bitmap_to_front()
2549 bitmap_offset = offset_to_bitmap(ctl, info->offset - 1); in steal_from_bitmap_to_front()
2556 i = offset_to_bit(bitmap->offset, ctl->unit, info->offset) - 1; in steal_from_bitmap_to_front()
2572 info->offset -= bytes; in steal_from_bitmap_to_front()
2579 bitmap_clear_bits(ctl, bitmap, info->offset, bytes, update_stat); in steal_from_bitmap_to_front()
2624 u64 offset, u64 bytes, in __btrfs_add_free_space() argument
2639 info->offset = offset; in __btrfs_add_free_space()
2698 u64 offset = bytenr - block_group->start; in __btrfs_add_free_space_zoned() local
2707 WARN_ON(!initial && offset + size > block_group->zone_capacity); in __btrfs_add_free_space_zoned()
2715 else if (offset >= block_group->alloc_offset) in __btrfs_add_free_space_zoned()
2717 else if (offset + size <= block_group->alloc_offset) in __btrfs_add_free_space_zoned()
2720 to_free = offset + size - block_group->alloc_offset; in __btrfs_add_free_space_zoned()
2801 u64 offset, u64 bytes) in btrfs_remove_free_space() argument
2821 offset + bytes) { in btrfs_remove_free_space()
2823 offset + bytes - block_group->start; in btrfs_remove_free_space()
2835 info = tree_search_offset(ctl, offset, 0, 0); in btrfs_remove_free_space()
2841 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in btrfs_remove_free_space()
2857 if (offset == info->offset) { in btrfs_remove_free_space()
2861 info->offset += to_free; in btrfs_remove_free_space()
2869 offset += to_free; in btrfs_remove_free_space()
2873 u64 old_end = info->bytes + info->offset; in btrfs_remove_free_space()
2875 info->bytes = offset - info->offset; in btrfs_remove_free_space()
2882 if (old_end < offset + bytes) { in btrfs_remove_free_space()
2883 bytes -= old_end - offset; in btrfs_remove_free_space()
2884 offset = old_end; in btrfs_remove_free_space()
2886 } else if (old_end == offset + bytes) { in btrfs_remove_free_space()
2893 offset + bytes, in btrfs_remove_free_space()
2894 old_end - (offset + bytes), in btrfs_remove_free_space()
2901 ret = remove_from_bitmap(ctl, info, &offset, &bytes); in btrfs_remove_free_space()
2940 info->offset, info->bytes, str_yes_no(info->bitmap)); in btrfs_dump_free_space()
3085 u64 offset, u64 bytes, u64 empty_size, in btrfs_find_space_for_alloc() argument
3097 bool use_bytes_index = (offset == block_group->start); in btrfs_find_space_for_alloc()
3102 entry = find_free_space(ctl, &offset, &bytes_search, in btrfs_find_space_for_alloc()
3108 ret = offset; in btrfs_find_space_for_alloc()
3110 bitmap_clear_bits(ctl, entry, offset, bytes, true); in btrfs_find_space_for_alloc()
3119 align_gap_len = offset - entry->offset; in btrfs_find_space_for_alloc()
3120 align_gap = entry->offset; in btrfs_find_space_for_alloc()
3126 entry->offset = offset + bytes; in btrfs_find_space_for_alloc()
3252 (!entry->bitmap && entry->offset < min_start)) { in btrfs_alloc_from_cluster()
3276 ret = entry->offset; in btrfs_alloc_from_cluster()
3278 entry->offset += bytes; in btrfs_alloc_from_cluster()
3323 u64 offset, u64 bytes, in btrfs_bitmap_cluster() argument
3339 i = offset_to_bit(entry->offset, ctl->unit, in btrfs_bitmap_cluster()
3340 max_t(u64, offset, entry->offset)); in btrfs_bitmap_cluster()
3387 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
3416 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_no_bitmap() argument
3430 entry = tree_search_offset(ctl, offset, 0, 1); in setup_cluster_no_bitmap()
3474 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
3509 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_bitmap() argument
3515 u64 bitmap_offset = offset_to_bitmap(ctl, offset); in setup_cluster_bitmap()
3527 if (!entry || entry->offset != bitmap_offset) { in setup_cluster_bitmap()
3536 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3559 u64 offset, u64 bytes, u64 empty_size) in btrfs_find_space_cluster() argument
3605 trace_btrfs_find_cluster(block_group, offset, bytes, empty_size, in btrfs_find_space_cluster()
3608 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3613 offset, bytes + empty_size, in btrfs_find_space_cluster()
3749 if (entry->offset >= end) in trim_no_bitmap()
3752 extent_start = entry->offset; in trim_no_bitmap()
3756 start = entry->offset; in trim_no_bitmap()
3774 entry->offset += max_discard_size; in trim_no_bitmap()
3844 static void reset_trimming_bitmap(struct btrfs_free_space_ctl *ctl, u64 offset) in reset_trimming_bitmap() argument
3849 entry = tree_search_offset(ctl, offset, 1, 0); in reset_trimming_bitmap()
3887 u64 offset = offset_to_bitmap(ctl, start); in trim_bitmaps() local
3890 while (offset < end) { in trim_bitmaps()
3905 entry = tree_search_offset(ctl, offset, 1, 0); in trim_bitmaps()
3914 if (!entry || (async && minlen && start == offset && in trim_bitmaps()
3928 if (start == offset) in trim_bitmaps()
3989 reset_trimming_bitmap(ctl, offset); in trim_bitmaps()
3996 offset += BITS_PER_BITMAP * ctl->unit; in trim_bitmaps()
3997 start = offset; in trim_bitmaps()
4004 if (start != offset) in trim_bitmaps()
4005 reset_trimming_bitmap(ctl, offset); in trim_bitmaps()
4013 if (offset >= end) in trim_bitmaps()
4190 u64 offset, u64 bytes, bool bitmap) in test_add_free_space_entry() argument
4208 info->offset = offset; in test_add_free_space_entry()
4227 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_add_free_space_entry()
4232 add_new_bitmap(ctl, info, offset); in test_add_free_space_entry()
4237 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes, in test_add_free_space_entry()
4241 offset += bytes_added; in test_add_free_space_entry()
4260 u64 offset, u64 bytes) in test_check_exists() argument
4267 info = tree_search_offset(ctl, offset, 0, 0); in test_check_exists()
4269 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_check_exists()
4281 bit_off = offset; in test_check_exists()
4285 if (bit_off == offset) { in test_check_exists()
4288 } else if (bit_off > offset && in test_check_exists()
4289 offset + bytes > bit_off) { in test_check_exists()
4299 if (tmp->offset + tmp->bytes < offset) in test_check_exists()
4301 if (offset + bytes < tmp->offset) { in test_check_exists()
4313 if (offset + bytes < tmp->offset) in test_check_exists()
4315 if (tmp->offset + tmp->bytes < offset) { in test_check_exists()
4327 if (info->offset == offset) { in test_check_exists()
4332 if (offset > info->offset && offset < info->offset + info->bytes) in test_check_exists()