Lines Matching refs:leaf
1810 struct extent_buffer *leaf = path->nodes[0]; in search_leaf() local
1828 leaf_free_space = btrfs_leaf_free_space(leaf); in search_leaf()
1837 ASSERT(btrfs_header_nritems(leaf) > 0); in search_leaf()
1838 btrfs_item_key(leaf, &first_key, 0); in search_leaf()
1892 ret = search_for_key_slot(leaf, search_low_slot, key, in search_leaf()
2322 struct extent_buffer *leaf; in btrfs_search_slot_for_read() local
2335 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
2338 if (p->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_search_slot_for_read()
2359 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
2360 if (p->slots[0] == btrfs_header_nritems(leaf)) in btrfs_search_slot_for_read()
2419 const struct extent_buffer *leaf = path->nodes[0]; in btrfs_get_next_valid_item() local
2422 if (slot >= btrfs_header_nritems(leaf)) { in btrfs_get_next_valid_item()
2433 btrfs_item_key_to_cpu(leaf, key, slot); in btrfs_get_next_valid_item()
2951 noinline int btrfs_leaf_free_space(struct extent_buffer *leaf) in btrfs_leaf_free_space() argument
2953 struct btrfs_fs_info *fs_info = leaf->fs_info; in btrfs_leaf_free_space()
2954 int nritems = btrfs_header_nritems(leaf); in btrfs_leaf_free_space()
2957 ret = BTRFS_LEAF_DATA_SIZE(fs_info) - leaf_space_used(leaf, 0, nritems); in btrfs_leaf_free_space()
2963 leaf_space_used(leaf, 0, nritems), nritems); in btrfs_leaf_free_space()
3715 struct extent_buffer *leaf; in setup_leaf_for_split() local
3721 leaf = path->nodes[0]; in setup_leaf_for_split()
3722 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in setup_leaf_for_split()
3727 if (btrfs_leaf_free_space(leaf) >= ins_len) in setup_leaf_for_split()
3730 item_size = btrfs_item_size(leaf, path->slots[0]); in setup_leaf_for_split()
3732 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
3734 extent_len = btrfs_file_extent_num_bytes(leaf, fi); in setup_leaf_for_split()
3748 leaf = path->nodes[0]; in setup_leaf_for_split()
3750 if (item_size != btrfs_item_size(leaf, path->slots[0])) in setup_leaf_for_split()
3758 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
3760 if (extent_len != btrfs_file_extent_num_bytes(leaf, fi)) in setup_leaf_for_split()
3780 struct extent_buffer *leaf; in split_item() local
3788 leaf = path->nodes[0]; in split_item()
3789 BUG_ON(btrfs_leaf_free_space(leaf) < sizeof(struct btrfs_item)); in split_item()
3792 orig_offset = btrfs_item_offset(leaf, path->slots[0]); in split_item()
3793 item_size = btrfs_item_size(leaf, path->slots[0]); in split_item()
3799 read_extent_buffer(leaf, buf, btrfs_item_ptr_offset(leaf, in split_item()
3803 nritems = btrfs_header_nritems(leaf); in split_item()
3806 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + 1), in split_item()
3812 btrfs_set_item_key(leaf, &disk_key, slot); in split_item()
3814 btrfs_set_item_offset(leaf, slot, orig_offset); in split_item()
3815 btrfs_set_item_size(leaf, slot, item_size - split_offset); in split_item()
3817 btrfs_set_item_offset(leaf, orig_slot, in split_item()
3819 btrfs_set_item_size(leaf, orig_slot, split_offset); in split_item()
3821 btrfs_set_header_nritems(leaf, nritems + 1); in split_item()
3824 write_extent_buffer(leaf, buf, in split_item()
3825 btrfs_item_ptr_offset(leaf, path->slots[0]), in split_item()
3829 write_extent_buffer(leaf, buf + split_offset, in split_item()
3830 btrfs_item_ptr_offset(leaf, slot), in split_item()
3832 btrfs_mark_buffer_dirty(leaf); in split_item()
3834 BUG_ON(btrfs_leaf_free_space(leaf) < 0); in split_item()
3879 struct extent_buffer *leaf; in btrfs_truncate_item() local
3888 leaf = path->nodes[0]; in btrfs_truncate_item()
3891 old_size = btrfs_item_size(leaf, slot); in btrfs_truncate_item()
3895 nritems = btrfs_header_nritems(leaf); in btrfs_truncate_item()
3896 data_end = leaf_data_end(leaf); in btrfs_truncate_item()
3898 old_data_start = btrfs_item_offset(leaf, slot); in btrfs_truncate_item()
3909 btrfs_init_map_token(&token, leaf); in btrfs_truncate_item()
3919 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
3926 btrfs_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
3932 fi = btrfs_item_ptr(leaf, slot, in btrfs_truncate_item()
3937 if (btrfs_file_extent_type(leaf, fi) == in btrfs_truncate_item()
3939 ptr = btrfs_item_ptr_offset(leaf, slot); in btrfs_truncate_item()
3940 memmove_extent_buffer(leaf, ptr, in btrfs_truncate_item()
3946 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
3952 btrfs_set_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
3957 btrfs_set_item_size(leaf, slot, new_size); in btrfs_truncate_item()
3958 btrfs_mark_buffer_dirty(leaf); in btrfs_truncate_item()
3960 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_truncate_item()
3961 btrfs_print_leaf(leaf); in btrfs_truncate_item()
3972 struct extent_buffer *leaf; in btrfs_extend_item() local
3980 leaf = path->nodes[0]; in btrfs_extend_item()
3982 nritems = btrfs_header_nritems(leaf); in btrfs_extend_item()
3983 data_end = leaf_data_end(leaf); in btrfs_extend_item()
3985 if (btrfs_leaf_free_space(leaf) < data_size) { in btrfs_extend_item()
3986 btrfs_print_leaf(leaf); in btrfs_extend_item()
3990 old_data = btrfs_item_data_end(leaf, slot); in btrfs_extend_item()
3994 btrfs_print_leaf(leaf); in btrfs_extend_item()
3995 btrfs_crit(leaf->fs_info, "slot %d too large, nritems %d", in btrfs_extend_item()
4004 btrfs_init_map_token(&token, leaf); in btrfs_extend_item()
4013 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_extend_item()
4018 old_size = btrfs_item_size(leaf, slot); in btrfs_extend_item()
4019 btrfs_set_item_size(leaf, slot, old_size + data_size); in btrfs_extend_item()
4020 btrfs_mark_buffer_dirty(leaf); in btrfs_extend_item()
4022 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_extend_item()
4023 btrfs_print_leaf(leaf); in btrfs_extend_item()
4045 struct extent_buffer *leaf; in setup_items_for_insert() local
4061 leaf = path->nodes[0]; in setup_items_for_insert()
4064 nritems = btrfs_header_nritems(leaf); in setup_items_for_insert()
4065 data_end = leaf_data_end(leaf); in setup_items_for_insert()
4068 if (btrfs_leaf_free_space(leaf) < total_size) { in setup_items_for_insert()
4069 btrfs_print_leaf(leaf); in setup_items_for_insert()
4071 total_size, btrfs_leaf_free_space(leaf)); in setup_items_for_insert()
4075 btrfs_init_map_token(&token, leaf); in setup_items_for_insert()
4077 unsigned int old_data = btrfs_item_data_end(leaf, slot); in setup_items_for_insert()
4080 btrfs_print_leaf(leaf); in setup_items_for_insert()
4098 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + batch->nr), in setup_items_for_insert()
4103 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in setup_items_for_insert()
4113 btrfs_set_item_key(leaf, &disk_key, slot + i); in setup_items_for_insert()
4119 btrfs_set_header_nritems(leaf, nritems + batch->nr); in setup_items_for_insert()
4120 btrfs_mark_buffer_dirty(leaf); in setup_items_for_insert()
4122 if (btrfs_leaf_free_space(leaf) < 0) { in setup_items_for_insert()
4123 btrfs_print_leaf(leaf); in setup_items_for_insert()
4188 struct extent_buffer *leaf; in btrfs_insert_item() local
4196 leaf = path->nodes[0]; in btrfs_insert_item()
4197 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_insert_item()
4198 write_extent_buffer(leaf, data, ptr, data_size); in btrfs_insert_item()
4199 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_item()
4218 struct extent_buffer *leaf; in btrfs_duplicate_item() local
4222 leaf = path->nodes[0]; in btrfs_duplicate_item()
4223 item_size = btrfs_item_size(leaf, path->slots[0]); in btrfs_duplicate_item()
4231 leaf = path->nodes[0]; in btrfs_duplicate_item()
4232 memcpy_extent_buffer(leaf, in btrfs_duplicate_item()
4233 btrfs_item_ptr_offset(leaf, path->slots[0]), in btrfs_duplicate_item()
4234 btrfs_item_ptr_offset(leaf, path->slots[0] - 1), in btrfs_duplicate_item()
4298 struct extent_buffer *leaf) in btrfs_del_leaf() argument
4300 WARN_ON(btrfs_header_generation(leaf) != trans->transid); in btrfs_del_leaf()
4309 root_sub_used(root, leaf->len); in btrfs_del_leaf()
4311 atomic_inc(&leaf->refs); in btrfs_del_leaf()
4312 btrfs_free_tree_block(trans, btrfs_root_id(root), leaf, 0, 1); in btrfs_del_leaf()
4313 free_extent_buffer_stale(leaf); in btrfs_del_leaf()
4323 struct extent_buffer *leaf; in btrfs_del_items() local
4328 leaf = path->nodes[0]; in btrfs_del_items()
4329 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
4332 const u32 last_off = btrfs_item_offset(leaf, slot + nr - 1); in btrfs_del_items()
4333 const int data_end = leaf_data_end(leaf); in btrfs_del_items()
4339 dsize += btrfs_item_size(leaf, slot + i); in btrfs_del_items()
4341 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_del_items()
4346 btrfs_init_map_token(&token, leaf); in btrfs_del_items()
4354 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot), in btrfs_del_items()
4359 btrfs_set_header_nritems(leaf, nritems - nr); in btrfs_del_items()
4364 if (leaf == root->node) { in btrfs_del_items()
4365 btrfs_set_header_level(leaf, 0); in btrfs_del_items()
4367 btrfs_clean_tree_block(leaf); in btrfs_del_items()
4368 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
4371 int used = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
4375 btrfs_item_key(leaf, &disk_key, 0); in btrfs_del_items()
4395 atomic_inc(&leaf->refs); in btrfs_del_items()
4401 btrfs_item_size(leaf, 0); in btrfs_del_items()
4407 if (path->nodes[0] == leaf && in btrfs_del_items()
4408 btrfs_header_nritems(leaf)) { in btrfs_del_items()
4419 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
4420 min_push_space = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
4427 if (btrfs_header_nritems(leaf) == 0) { in btrfs_del_items()
4429 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
4430 free_extent_buffer(leaf); in btrfs_del_items()
4438 if (path->nodes[0] == leaf) in btrfs_del_items()
4439 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
4440 free_extent_buffer(leaf); in btrfs_del_items()
4443 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
4940 struct extent_buffer *leaf; in btrfs_previous_item() local
4952 leaf = path->nodes[0]; in btrfs_previous_item()
4953 nritems = btrfs_header_nritems(leaf); in btrfs_previous_item()
4959 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_item()
4981 struct extent_buffer *leaf; in btrfs_previous_extent_item() local
4993 leaf = path->nodes[0]; in btrfs_previous_extent_item()
4994 nritems = btrfs_header_nritems(leaf); in btrfs_previous_extent_item()
5000 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_extent_item()