Lines Matching refs:offset
48 u64 offset) in __lookup_free_space_inode() argument
59 key.offset = offset; in __lookup_free_space_inode()
134 u64 ino, u64 offset) in __create_free_space_inode() argument
167 btrfs_set_inode_block_group(leaf, inode_item, offset); in __create_free_space_inode()
172 key.offset = offset; in __create_free_space_inode()
473 unsigned offset = 0; in io_ctl_set_crc() local
481 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_set_crc()
483 crc = btrfs_csum_data(io_ctl->orig + offset, crc, in io_ctl_set_crc()
484 PAGE_CACHE_SIZE - offset); in io_ctl_set_crc()
496 unsigned offset = 0; in io_ctl_check_crc() local
504 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_check_crc()
511 crc = btrfs_csum_data(io_ctl->orig + offset, crc, in io_ctl_check_crc()
512 PAGE_CACHE_SIZE - offset); in io_ctl_check_crc()
524 static int io_ctl_add_entry(struct btrfs_io_ctl *io_ctl, u64 offset, u64 bytes, in io_ctl_add_entry() argument
533 entry->offset = cpu_to_le64(offset); in io_ctl_add_entry()
607 entry->offset = le64_to_cpu(e->offset); in io_ctl_read_entry()
658 if (prev->offset + prev->bytes == e->offset) { in merge_space_tree()
676 struct btrfs_path *path, u64 offset) in __load_free_space_cache() argument
695 key.offset = offset; in __load_free_space_cache()
719 offset); in __load_free_space_cache()
886 matched = (ctl->free_space == (block_group->key.offset - used - in load_free_space_cache()
946 ret = io_ctl_add_entry(io_ctl, e->offset, e->bytes, in write_cache_extent_entries()
993 struct btrfs_path *path, u64 offset, in update_cache_item() argument
1002 key.offset = offset; in update_cache_item()
1019 found_key.offset != offset) { in update_cache_item()
1068 while (start < block_group->key.objectid + block_group->key.offset) { in write_pinned_extent_entries()
1077 block_group->key.offset) in write_pinned_extent_entries()
1082 block_group->key.offset, extent_end + 1); in write_pinned_extent_entries()
1157 struct btrfs_path *path, u64 offset) in btrfs_wait_cache_io() argument
1174 ret = update_cache_item(trans, root, inode, path, offset, in btrfs_wait_cache_io()
1236 struct btrfs_path *path, u64 offset) in __btrfs_write_out_cache() argument
1419 u64 offset) in offset_to_bit() argument
1421 ASSERT(offset >= bitmap_start); in offset_to_bit()
1422 offset -= bitmap_start; in offset_to_bit()
1423 return (unsigned long)(div_u64(offset, unit)); in offset_to_bit()
1432 u64 offset) in offset_to_bitmap()
1438 bitmap_start = offset - ctl->start; in offset_to_bitmap()
1446 static int tree_insert_offset(struct rb_root *root, u64 offset, in tree_insert_offset() argument
1457 if (offset < info->offset) { in tree_insert_offset()
1459 } else if (offset > info->offset) { in tree_insert_offset()
1506 u64 offset, int bitmap_only, int fuzzy) in tree_search_offset() argument
1521 if (offset < entry->offset) in tree_search_offset()
1523 else if (offset > entry->offset) in tree_search_offset()
1543 if (entry->offset != offset) in tree_search_offset()
1559 prev->offset + prev->bytes > offset) in tree_search_offset()
1571 if (entry->offset > offset) { in tree_search_offset()
1576 ASSERT(entry->offset <= offset); in tree_search_offset()
1591 prev->offset + prev->bytes > offset) in tree_search_offset()
1594 if (entry->offset + BITS_PER_BITMAP * ctl->unit > offset) in tree_search_offset()
1596 } else if (entry->offset + entry->bytes > offset) in tree_search_offset()
1604 if (entry->offset + BITS_PER_BITMAP * in tree_search_offset()
1605 ctl->unit > offset) in tree_search_offset()
1608 if (entry->offset + entry->bytes > offset) in tree_search_offset()
1641 ret = tree_insert_offset(&ctl->free_space_offset, info->offset, in link_free_space()
1657 u64 size = block_group->key.offset; in recalculate_thresholds()
1701 u64 offset, u64 bytes) in __bitmap_clear_bits() argument
1705 start = offset_to_bit(info->offset, ctl->unit, offset); in __bitmap_clear_bits()
1717 struct btrfs_free_space *info, u64 offset, in bitmap_clear_bits() argument
1720 __bitmap_clear_bits(ctl, info, offset, bytes); in bitmap_clear_bits()
1725 struct btrfs_free_space *info, u64 offset, in bitmap_set_bits() argument
1730 start = offset_to_bit(info->offset, ctl->unit, offset); in bitmap_set_bits()
1745 struct btrfs_free_space *bitmap_info, u64 *offset, in search_bitmap() argument
1765 i = offset_to_bit(bitmap_info->offset, ctl->unit, in search_bitmap()
1766 max_t(u64, *offset, bitmap_info->offset)); in search_bitmap()
1787 *offset = (u64)(i * ctl->unit) + bitmap_info->offset; in search_bitmap()
1806 find_free_space(struct btrfs_free_space_ctl *ctl, u64 *offset, u64 *bytes, in find_free_space() argument
1818 entry = tree_search_offset(ctl, offset_to_bitmap(ctl, *offset), 0, 1); in find_free_space()
1834 tmp = entry->offset - ctl->start + align - 1; in find_free_space()
1837 align_off = tmp - entry->offset; in find_free_space()
1840 tmp = entry->offset; in find_free_space()
1854 *offset = tmp; in find_free_space()
1865 *offset = tmp; in find_free_space()
1874 struct btrfs_free_space *info, u64 offset) in add_new_bitmap() argument
1876 info->offset = offset_to_bitmap(ctl, offset); in add_new_bitmap()
1897 u64 *offset, u64 *bytes) in remove_from_bitmap() argument
1904 end = bitmap_info->offset + (u64)(BITS_PER_BITMAP * ctl->unit) - 1; in remove_from_bitmap()
1912 search_start = *offset; in remove_from_bitmap()
1917 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
1927 *offset += search_bytes; in remove_from_bitmap()
1958 search_start = *offset; in remove_from_bitmap()
1962 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
1973 struct btrfs_free_space *info, u64 offset, in add_bytes_to_bitmap() argument
1979 end = info->offset + (u64)(BITS_PER_BITMAP * ctl->unit); in add_bytes_to_bitmap()
1981 bytes_to_set = min(end - offset, bytes); in add_bytes_to_bitmap()
1983 bitmap_set_bits(ctl, info, offset, bytes_to_set); in add_bytes_to_bitmap()
2035 if (((BITS_PER_BITMAP * ctl->unit) >> 1) > block_group->key.offset) in use_bitmap()
2052 u64 bytes, offset, bytes_added; in insert_into_bitmap() local
2056 offset = info->offset; in insert_into_bitmap()
2090 if (entry->offset == offset_to_bitmap(ctl, offset)) { in insert_into_bitmap()
2092 offset, bytes); in insert_into_bitmap()
2094 offset += bytes_added; in insert_into_bitmap()
2104 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in insert_into_bitmap()
2111 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes); in insert_into_bitmap()
2113 offset += bytes_added; in insert_into_bitmap()
2124 add_new_bitmap(ctl, info, offset); in insert_into_bitmap()
2168 u64 offset = info->offset; in try_merge_free_space() local
2176 right_info = tree_search_offset(ctl, offset + bytes, 0, 0); in try_merge_free_space()
2181 left_info = tree_search_offset(ctl, offset - 1, 0, 0); in try_merge_free_space()
2194 left_info->offset + left_info->bytes == offset) { in try_merge_free_space()
2199 info->offset = left_info->offset; in try_merge_free_space()
2215 const u64 end = info->offset + info->bytes; in steal_from_bitmap_to_end()
2223 i = offset_to_bit(bitmap->offset, ctl->unit, end); in steal_from_bitmap_to_end()
2252 bitmap_offset = offset_to_bitmap(ctl, info->offset); in steal_from_bitmap_to_front()
2254 if (bitmap_offset == info->offset) { in steal_from_bitmap_to_front()
2255 if (info->offset == 0) in steal_from_bitmap_to_front()
2257 bitmap_offset = offset_to_bitmap(ctl, info->offset - 1); in steal_from_bitmap_to_front()
2264 i = offset_to_bit(bitmap->offset, ctl->unit, info->offset) - 1; in steal_from_bitmap_to_front()
2280 info->offset -= bytes; in steal_from_bitmap_to_front()
2284 bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2286 __bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2331 u64 offset, u64 bytes) in __btrfs_add_free_space() argument
2340 info->offset = offset; in __btrfs_add_free_space()
2385 u64 offset, u64 bytes) in btrfs_remove_free_space() argument
2399 info = tree_search_offset(ctl, offset, 0, 0); in btrfs_remove_free_space()
2405 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in btrfs_remove_free_space()
2421 if (offset == info->offset) { in btrfs_remove_free_space()
2425 info->offset += to_free; in btrfs_remove_free_space()
2433 offset += to_free; in btrfs_remove_free_space()
2437 u64 old_end = info->bytes + info->offset; in btrfs_remove_free_space()
2439 info->bytes = offset - info->offset; in btrfs_remove_free_space()
2446 if (old_end < offset + bytes) { in btrfs_remove_free_space()
2447 bytes -= old_end - offset; in btrfs_remove_free_space()
2448 offset = old_end; in btrfs_remove_free_space()
2450 } else if (old_end == offset + bytes) { in btrfs_remove_free_space()
2456 ret = btrfs_add_free_space(block_group, offset + bytes, in btrfs_remove_free_space()
2457 old_end - (offset + bytes)); in btrfs_remove_free_space()
2463 ret = remove_from_bitmap(ctl, info, &offset, &bytes); in btrfs_remove_free_space()
2489 info->offset, info->bytes, in btrfs_dump_free_space()
2558 entry->offset, &entry->offset_index, bitmap); in __btrfs_return_cluster_to_free_space()
2617 u64 offset, u64 bytes, u64 empty_size, in btrfs_find_space_for_alloc() argument
2628 entry = find_free_space(ctl, &offset, &bytes_search, in btrfs_find_space_for_alloc()
2633 ret = offset; in btrfs_find_space_for_alloc()
2635 bitmap_clear_bits(ctl, entry, offset, bytes); in btrfs_find_space_for_alloc()
2640 align_gap_len = offset - entry->offset; in btrfs_find_space_for_alloc()
2641 align_gap = entry->offset; in btrfs_find_space_for_alloc()
2643 entry->offset = offset + bytes; in btrfs_find_space_for_alloc()
2763 (!entry->bitmap && entry->offset < min_start)) { in btrfs_alloc_from_cluster()
2787 ret = entry->offset; in btrfs_alloc_from_cluster()
2789 entry->offset += bytes; in btrfs_alloc_from_cluster()
2824 u64 offset, u64 bytes, in btrfs_bitmap_cluster() argument
2838 i = offset_to_bit(entry->offset, ctl->unit, in btrfs_bitmap_cluster()
2839 max_t(u64, offset, entry->offset)); in btrfs_bitmap_cluster()
2886 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
2888 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2905 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_no_bitmap() argument
2917 entry = tree_search_offset(ctl, offset, 0, 1); in setup_cluster_no_bitmap()
2961 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
2978 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
2996 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_bitmap() argument
3002 u64 bitmap_offset = offset_to_bitmap(ctl, offset); in setup_cluster_bitmap()
3014 if (!entry || entry->offset != bitmap_offset) { in setup_cluster_bitmap()
3023 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3047 u64 offset, u64 bytes, u64 empty_size) in btrfs_find_space_cluster() argument
3091 trace_btrfs_find_cluster(block_group, offset, bytes, empty_size, in btrfs_find_space_cluster()
3094 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3099 offset, bytes + empty_size, in btrfs_find_space_cluster()
3223 if (entry->offset >= end) { in trim_no_bitmap()
3229 extent_start = entry->offset; in trim_no_bitmap()
3274 u64 offset = offset_to_bitmap(ctl, start); in trim_bitmaps() local
3276 while (offset < end) { in trim_bitmaps()
3289 entry = tree_search_offset(ctl, offset, 1, 0); in trim_bitmaps()
3329 offset += BITS_PER_BITMAP * ctl->unit; in trim_bitmaps()
3332 if (start >= offset + BITS_PER_BITMAP * ctl->unit) in trim_bitmaps()
3333 offset += BITS_PER_BITMAP * ctl->unit; in trim_bitmaps()
3437 ino = entry->offset; in btrfs_find_ino_for_alloc()
3440 entry->offset++; in btrfs_find_ino_for_alloc()
3447 u64 offset = 0; in btrfs_find_ino_for_alloc() local
3451 ret = search_bitmap(ctl, entry, &offset, &count, true); in btrfs_find_ino_for_alloc()
3455 ino = offset; in btrfs_find_ino_for_alloc()
3456 bitmap_clear_bits(ctl, entry, offset, 1); in btrfs_find_ino_for_alloc()
3588 u64 offset, u64 bytes, bool bitmap) in test_add_free_space_entry() argument
3605 info->offset = offset; in test_add_free_space_entry()
3624 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_add_free_space_entry()
3629 add_new_bitmap(ctl, info, offset); in test_add_free_space_entry()
3634 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes); in test_add_free_space_entry()
3637 offset += bytes_added; in test_add_free_space_entry()
3656 u64 offset, u64 bytes) in test_check_exists() argument
3663 info = tree_search_offset(ctl, offset, 0, 0); in test_check_exists()
3665 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_check_exists()
3677 bit_off = offset; in test_check_exists()
3681 if (bit_off == offset) { in test_check_exists()
3684 } else if (bit_off > offset && in test_check_exists()
3685 offset + bytes > bit_off) { in test_check_exists()
3695 if (tmp->offset + tmp->bytes < offset) in test_check_exists()
3697 if (offset + bytes < tmp->offset) { in test_check_exists()
3709 if (offset + bytes < tmp->offset) in test_check_exists()
3711 if (tmp->offset + tmp->bytes < offset) { in test_check_exists()
3723 if (info->offset == offset) { in test_check_exists()
3728 if (offset > info->offset && offset < info->offset + info->bytes) in test_check_exists()