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()
467 unsigned offset = 0; in io_ctl_set_crc() local
475 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_set_crc()
477 crc = btrfs_csum_data(io_ctl->orig + offset, crc, in io_ctl_set_crc()
478 PAGE_CACHE_SIZE - offset); in io_ctl_set_crc()
490 unsigned offset = 0; in io_ctl_check_crc() local
498 offset = sizeof(u32) * io_ctl->num_pages; in io_ctl_check_crc()
505 crc = btrfs_csum_data(io_ctl->orig + offset, crc, in io_ctl_check_crc()
506 PAGE_CACHE_SIZE - offset); in io_ctl_check_crc()
518 static int io_ctl_add_entry(struct btrfs_io_ctl *io_ctl, u64 offset, u64 bytes, in io_ctl_add_entry() argument
527 entry->offset = cpu_to_le64(offset); in io_ctl_add_entry()
601 entry->offset = le64_to_cpu(e->offset); in io_ctl_read_entry()
652 if (prev->offset + prev->bytes == e->offset) { in merge_space_tree()
670 struct btrfs_path *path, u64 offset) in __load_free_space_cache() argument
689 key.offset = offset; in __load_free_space_cache()
713 offset); in __load_free_space_cache()
876 matched = (ctl->free_space == (block_group->key.offset - used - in load_free_space_cache()
936 ret = io_ctl_add_entry(io_ctl, e->offset, e->bytes, in write_cache_extent_entries()
983 struct btrfs_path *path, u64 offset, in update_cache_item() argument
992 key.offset = offset; in update_cache_item()
1009 found_key.offset != offset) { in update_cache_item()
1058 while (start < block_group->key.objectid + block_group->key.offset) { in write_pinned_extent_entries()
1067 block_group->key.offset) in write_pinned_extent_entries()
1072 block_group->key.offset, extent_end + 1); in write_pinned_extent_entries()
1147 struct btrfs_path *path, u64 offset) in btrfs_wait_cache_io() argument
1164 ret = update_cache_item(trans, root, inode, path, offset, in btrfs_wait_cache_io()
1226 struct btrfs_path *path, u64 offset) in __btrfs_write_out_cache() argument
1408 u64 offset) in offset_to_bit() argument
1410 ASSERT(offset >= bitmap_start); in offset_to_bit()
1411 offset -= bitmap_start; in offset_to_bit()
1412 return (unsigned long)(div_u64(offset, unit)); in offset_to_bit()
1421 u64 offset) in offset_to_bitmap()
1427 bitmap_start = offset - ctl->start; in offset_to_bitmap()
1435 static int tree_insert_offset(struct rb_root *root, u64 offset, in tree_insert_offset() argument
1446 if (offset < info->offset) { in tree_insert_offset()
1448 } else if (offset > info->offset) { in tree_insert_offset()
1495 u64 offset, int bitmap_only, int fuzzy) in tree_search_offset() argument
1510 if (offset < entry->offset) in tree_search_offset()
1512 else if (offset > entry->offset) in tree_search_offset()
1532 if (entry->offset != offset) in tree_search_offset()
1548 prev->offset + prev->bytes > offset) in tree_search_offset()
1560 if (entry->offset > offset) { in tree_search_offset()
1565 ASSERT(entry->offset <= offset); in tree_search_offset()
1580 prev->offset + prev->bytes > offset) in tree_search_offset()
1583 if (entry->offset + BITS_PER_BITMAP * ctl->unit > offset) in tree_search_offset()
1585 } else if (entry->offset + entry->bytes > offset) in tree_search_offset()
1593 if (entry->offset + BITS_PER_BITMAP * in tree_search_offset()
1594 ctl->unit > offset) in tree_search_offset()
1597 if (entry->offset + entry->bytes > offset) in tree_search_offset()
1630 ret = tree_insert_offset(&ctl->free_space_offset, info->offset, in link_free_space()
1646 u64 size = block_group->key.offset; in recalculate_thresholds()
1690 u64 offset, u64 bytes) in __bitmap_clear_bits() argument
1694 start = offset_to_bit(info->offset, ctl->unit, offset); in __bitmap_clear_bits()
1704 struct btrfs_free_space *info, u64 offset, in bitmap_clear_bits() argument
1707 __bitmap_clear_bits(ctl, info, offset, bytes); in bitmap_clear_bits()
1712 struct btrfs_free_space *info, u64 offset, in bitmap_set_bits() argument
1717 start = offset_to_bit(info->offset, ctl->unit, offset); in bitmap_set_bits()
1732 struct btrfs_free_space *bitmap_info, u64 *offset, in search_bitmap() argument
1752 i = offset_to_bit(bitmap_info->offset, ctl->unit, in search_bitmap()
1753 max_t(u64, *offset, bitmap_info->offset)); in search_bitmap()
1774 *offset = (u64)(i * ctl->unit) + bitmap_info->offset; in search_bitmap()
1786 find_free_space(struct btrfs_free_space_ctl *ctl, u64 *offset, u64 *bytes, in find_free_space() argument
1798 entry = tree_search_offset(ctl, offset_to_bitmap(ctl, *offset), 0, 1); in find_free_space()
1814 tmp = entry->offset - ctl->start + align - 1; in find_free_space()
1817 align_off = tmp - entry->offset; in find_free_space()
1820 tmp = entry->offset; in find_free_space()
1834 *offset = tmp; in find_free_space()
1843 *offset = tmp; in find_free_space()
1852 struct btrfs_free_space *info, u64 offset) in add_new_bitmap() argument
1854 info->offset = offset_to_bitmap(ctl, offset); in add_new_bitmap()
1875 u64 *offset, u64 *bytes) in remove_from_bitmap() argument
1882 end = bitmap_info->offset + (u64)(BITS_PER_BITMAP * ctl->unit) - 1; in remove_from_bitmap()
1890 search_start = *offset; in remove_from_bitmap()
1895 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
1905 *offset += search_bytes; in remove_from_bitmap()
1936 search_start = *offset; in remove_from_bitmap()
1940 if (ret < 0 || search_start != *offset) in remove_from_bitmap()
1951 struct btrfs_free_space *info, u64 offset, in add_bytes_to_bitmap() argument
1957 end = info->offset + (u64)(BITS_PER_BITMAP * ctl->unit); in add_bytes_to_bitmap()
1959 bytes_to_set = min(end - offset, bytes); in add_bytes_to_bitmap()
1961 bitmap_set_bits(ctl, info, offset, bytes_to_set); in add_bytes_to_bitmap()
2013 if (((BITS_PER_BITMAP * ctl->unit) >> 1) > block_group->key.offset) in use_bitmap()
2030 u64 bytes, offset, bytes_added; in insert_into_bitmap() local
2034 offset = info->offset; in insert_into_bitmap()
2068 if (entry->offset == offset_to_bitmap(ctl, offset)) { in insert_into_bitmap()
2070 offset, bytes); in insert_into_bitmap()
2072 offset += bytes_added; in insert_into_bitmap()
2082 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in insert_into_bitmap()
2089 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes); in insert_into_bitmap()
2091 offset += bytes_added; in insert_into_bitmap()
2102 add_new_bitmap(ctl, info, offset); in insert_into_bitmap()
2146 u64 offset = info->offset; in try_merge_free_space() local
2154 right_info = tree_search_offset(ctl, offset + bytes, 0, 0); in try_merge_free_space()
2159 left_info = tree_search_offset(ctl, offset - 1, 0, 0); in try_merge_free_space()
2172 left_info->offset + left_info->bytes == offset) { in try_merge_free_space()
2177 info->offset = left_info->offset; in try_merge_free_space()
2193 const u64 end = info->offset + info->bytes; in steal_from_bitmap_to_end()
2201 i = offset_to_bit(bitmap->offset, ctl->unit, end); in steal_from_bitmap_to_end()
2230 bitmap_offset = offset_to_bitmap(ctl, info->offset); in steal_from_bitmap_to_front()
2232 if (bitmap_offset == info->offset) { in steal_from_bitmap_to_front()
2233 if (info->offset == 0) in steal_from_bitmap_to_front()
2235 bitmap_offset = offset_to_bitmap(ctl, info->offset - 1); in steal_from_bitmap_to_front()
2242 i = offset_to_bit(bitmap->offset, ctl->unit, info->offset) - 1; in steal_from_bitmap_to_front()
2258 info->offset -= bytes; in steal_from_bitmap_to_front()
2262 bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2264 __bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2309 u64 offset, u64 bytes) in __btrfs_add_free_space() argument
2318 info->offset = offset; in __btrfs_add_free_space()
2363 u64 offset, u64 bytes) in btrfs_remove_free_space() argument
2377 info = tree_search_offset(ctl, offset, 0, 0); in btrfs_remove_free_space()
2383 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in btrfs_remove_free_space()
2399 if (offset == info->offset) { in btrfs_remove_free_space()
2403 info->offset += to_free; in btrfs_remove_free_space()
2411 offset += to_free; in btrfs_remove_free_space()
2415 u64 old_end = info->bytes + info->offset; in btrfs_remove_free_space()
2417 info->bytes = offset - info->offset; in btrfs_remove_free_space()
2424 if (old_end < offset + bytes) { in btrfs_remove_free_space()
2425 bytes -= old_end - offset; in btrfs_remove_free_space()
2426 offset = old_end; in btrfs_remove_free_space()
2428 } else if (old_end == offset + bytes) { in btrfs_remove_free_space()
2434 ret = btrfs_add_free_space(block_group, offset + bytes, in btrfs_remove_free_space()
2435 old_end - (offset + bytes)); in btrfs_remove_free_space()
2441 ret = remove_from_bitmap(ctl, info, &offset, &bytes); in btrfs_remove_free_space()
2466 info->offset, info->bytes, in btrfs_dump_free_space()
2534 entry->offset, &entry->offset_index, bitmap); in __btrfs_return_cluster_to_free_space()
2593 u64 offset, u64 bytes, u64 empty_size, in btrfs_find_space_for_alloc() argument
2604 entry = find_free_space(ctl, &offset, &bytes_search, in btrfs_find_space_for_alloc()
2609 ret = offset; in btrfs_find_space_for_alloc()
2611 bitmap_clear_bits(ctl, entry, offset, bytes); in btrfs_find_space_for_alloc()
2616 align_gap_len = offset - entry->offset; in btrfs_find_space_for_alloc()
2617 align_gap = entry->offset; in btrfs_find_space_for_alloc()
2619 entry->offset = offset + bytes; in btrfs_find_space_for_alloc()
2738 (!entry->bitmap && entry->offset < min_start)) { in btrfs_alloc_from_cluster()
2762 ret = entry->offset; in btrfs_alloc_from_cluster()
2764 entry->offset += bytes; in btrfs_alloc_from_cluster()
2799 u64 offset, u64 bytes, in btrfs_bitmap_cluster() argument
2813 i = offset_to_bit(entry->offset, ctl->unit, in btrfs_bitmap_cluster()
2814 max_t(u64, offset, entry->offset)); in btrfs_bitmap_cluster()
2861 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
2863 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2880 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_no_bitmap() argument
2892 entry = tree_search_offset(ctl, offset, 0, 1); in setup_cluster_no_bitmap()
2936 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
2953 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
2971 struct list_head *bitmaps, u64 offset, u64 bytes, in setup_cluster_bitmap() argument
2977 u64 bitmap_offset = offset_to_bitmap(ctl, offset); in setup_cluster_bitmap()
2989 if (!entry || entry->offset != bitmap_offset) { in setup_cluster_bitmap()
2998 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3022 u64 offset, u64 bytes, u64 empty_size) in btrfs_find_space_cluster() argument
3066 trace_btrfs_find_cluster(block_group, offset, bytes, empty_size, in btrfs_find_space_cluster()
3069 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3074 offset, bytes + empty_size, in btrfs_find_space_cluster()
3198 if (entry->offset >= end) { in trim_no_bitmap()
3204 extent_start = entry->offset; in trim_no_bitmap()
3249 u64 offset = offset_to_bitmap(ctl, start); in trim_bitmaps() local
3251 while (offset < end) { in trim_bitmaps()
3264 entry = tree_search_offset(ctl, offset, 1, 0); in trim_bitmaps()
3304 offset += BITS_PER_BITMAP * ctl->unit; in trim_bitmaps()
3307 if (start >= offset + BITS_PER_BITMAP * ctl->unit) in trim_bitmaps()
3308 offset += BITS_PER_BITMAP * ctl->unit; in trim_bitmaps()
3412 ino = entry->offset; in btrfs_find_ino_for_alloc()
3415 entry->offset++; in btrfs_find_ino_for_alloc()
3422 u64 offset = 0; in btrfs_find_ino_for_alloc() local
3426 ret = search_bitmap(ctl, entry, &offset, &count, true); in btrfs_find_ino_for_alloc()
3430 ino = offset; in btrfs_find_ino_for_alloc()
3431 bitmap_clear_bits(ctl, entry, offset, 1); in btrfs_find_ino_for_alloc()
3563 u64 offset, u64 bytes, bool bitmap) in test_add_free_space_entry() argument
3580 info->offset = offset; in test_add_free_space_entry()
3599 bitmap_info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_add_free_space_entry()
3604 add_new_bitmap(ctl, info, offset); in test_add_free_space_entry()
3609 bytes_added = add_bytes_to_bitmap(ctl, bitmap_info, offset, bytes); in test_add_free_space_entry()
3612 offset += bytes_added; in test_add_free_space_entry()
3631 u64 offset, u64 bytes) in test_check_exists() argument
3638 info = tree_search_offset(ctl, offset, 0, 0); in test_check_exists()
3640 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_check_exists()
3652 bit_off = offset; in test_check_exists()
3656 if (bit_off == offset) { in test_check_exists()
3659 } else if (bit_off > offset && in test_check_exists()
3660 offset + bytes > bit_off) { in test_check_exists()
3670 if (tmp->offset + tmp->bytes < offset) in test_check_exists()
3672 if (offset + bytes < tmp->offset) { in test_check_exists()
3684 if (offset + bytes < tmp->offset) in test_check_exists()
3686 if (tmp->offset + tmp->bytes < offset) { in test_check_exists()
3698 if (info->offset == offset) { in test_check_exists()
3703 if (offset > info->offset && offset < info->offset + info->bytes) in test_check_exists()