Lines Matching refs:leaf

3078 	struct extent_buffer *leaf;  in btrfs_search_slot_for_read()  local
3091 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3094 if (p->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_search_slot_for_read()
3115 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3116 if (p->slots[0] == btrfs_header_nritems(leaf)) in btrfs_search_slot_for_read()
3652 noinline int btrfs_leaf_free_space(struct extent_buffer *leaf) in btrfs_leaf_free_space() argument
3654 struct btrfs_fs_info *fs_info = leaf->fs_info; in btrfs_leaf_free_space()
3655 int nritems = btrfs_header_nritems(leaf); in btrfs_leaf_free_space()
3658 ret = BTRFS_LEAF_DATA_SIZE(fs_info) - leaf_space_used(leaf, 0, nritems); in btrfs_leaf_free_space()
3664 leaf_space_used(leaf, 0, nritems), nritems); in btrfs_leaf_free_space()
4438 struct extent_buffer *leaf; in setup_leaf_for_split() local
4444 leaf = path->nodes[0]; in setup_leaf_for_split()
4445 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in setup_leaf_for_split()
4450 if (btrfs_leaf_free_space(leaf) >= ins_len) in setup_leaf_for_split()
4453 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in setup_leaf_for_split()
4455 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4457 extent_len = btrfs_file_extent_num_bytes(leaf, fi); in setup_leaf_for_split()
4471 leaf = path->nodes[0]; in setup_leaf_for_split()
4473 if (item_size != btrfs_item_size_nr(leaf, path->slots[0])) in setup_leaf_for_split()
4481 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4483 if (extent_len != btrfs_file_extent_num_bytes(leaf, fi)) in setup_leaf_for_split()
4504 struct extent_buffer *leaf; in split_item() local
4514 leaf = path->nodes[0]; in split_item()
4515 BUG_ON(btrfs_leaf_free_space(leaf) < sizeof(struct btrfs_item)); in split_item()
4520 orig_offset = btrfs_item_offset(leaf, item); in split_item()
4521 item_size = btrfs_item_size(leaf, item); in split_item()
4527 read_extent_buffer(leaf, buf, btrfs_item_ptr_offset(leaf, in split_item()
4531 nritems = btrfs_header_nritems(leaf); in split_item()
4534 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + 1), in split_item()
4540 btrfs_set_item_key(leaf, &disk_key, slot); in split_item()
4544 btrfs_set_item_offset(leaf, new_item, orig_offset); in split_item()
4545 btrfs_set_item_size(leaf, new_item, item_size - split_offset); in split_item()
4547 btrfs_set_item_offset(leaf, item, in split_item()
4549 btrfs_set_item_size(leaf, item, split_offset); in split_item()
4551 btrfs_set_header_nritems(leaf, nritems + 1); in split_item()
4554 write_extent_buffer(leaf, buf, in split_item()
4555 btrfs_item_ptr_offset(leaf, path->slots[0]), in split_item()
4559 write_extent_buffer(leaf, buf + split_offset, in split_item()
4560 btrfs_item_ptr_offset(leaf, slot), in split_item()
4562 btrfs_mark_buffer_dirty(leaf); in split_item()
4564 BUG_ON(btrfs_leaf_free_space(leaf) < 0); in split_item()
4613 struct extent_buffer *leaf; in btrfs_duplicate_item() local
4617 leaf = path->nodes[0]; in btrfs_duplicate_item()
4618 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in btrfs_duplicate_item()
4626 leaf = path->nodes[0]; in btrfs_duplicate_item()
4627 memcpy_extent_buffer(leaf, in btrfs_duplicate_item()
4628 btrfs_item_ptr_offset(leaf, path->slots[0]), in btrfs_duplicate_item()
4629 btrfs_item_ptr_offset(leaf, path->slots[0] - 1), in btrfs_duplicate_item()
4643 struct extent_buffer *leaf; in btrfs_truncate_item() local
4653 leaf = path->nodes[0]; in btrfs_truncate_item()
4656 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_truncate_item()
4660 nritems = btrfs_header_nritems(leaf); in btrfs_truncate_item()
4661 data_end = leaf_data_end(leaf); in btrfs_truncate_item()
4663 old_data_start = btrfs_item_offset_nr(leaf, slot); in btrfs_truncate_item()
4674 btrfs_init_map_token(&token, leaf); in btrfs_truncate_item()
4685 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
4692 btrfs_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4698 fi = btrfs_item_ptr(leaf, slot, in btrfs_truncate_item()
4703 if (btrfs_file_extent_type(leaf, fi) == in btrfs_truncate_item()
4705 ptr = btrfs_item_ptr_offset(leaf, slot); in btrfs_truncate_item()
4706 memmove_extent_buffer(leaf, ptr, in btrfs_truncate_item()
4712 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
4718 btrfs_set_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4724 btrfs_set_item_size(leaf, item, new_size); in btrfs_truncate_item()
4725 btrfs_mark_buffer_dirty(leaf); in btrfs_truncate_item()
4727 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_truncate_item()
4728 btrfs_print_leaf(leaf); in btrfs_truncate_item()
4739 struct extent_buffer *leaf; in btrfs_extend_item() local
4748 leaf = path->nodes[0]; in btrfs_extend_item()
4750 nritems = btrfs_header_nritems(leaf); in btrfs_extend_item()
4751 data_end = leaf_data_end(leaf); in btrfs_extend_item()
4753 if (btrfs_leaf_free_space(leaf) < data_size) { in btrfs_extend_item()
4754 btrfs_print_leaf(leaf); in btrfs_extend_item()
4758 old_data = btrfs_item_end_nr(leaf, slot); in btrfs_extend_item()
4762 btrfs_print_leaf(leaf); in btrfs_extend_item()
4763 btrfs_crit(leaf->fs_info, "slot %d too large, nritems %d", in btrfs_extend_item()
4772 btrfs_init_map_token(&token, leaf); in btrfs_extend_item()
4782 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_extend_item()
4787 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_extend_item()
4789 btrfs_set_item_size(leaf, item, old_size + data_size); in btrfs_extend_item()
4790 btrfs_mark_buffer_dirty(leaf); in btrfs_extend_item()
4792 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_extend_item()
4793 btrfs_print_leaf(leaf); in btrfs_extend_item()
4819 struct extent_buffer *leaf; in setup_items_for_insert() local
4835 leaf = path->nodes[0]; in setup_items_for_insert()
4838 nritems = btrfs_header_nritems(leaf); in setup_items_for_insert()
4839 data_end = leaf_data_end(leaf); in setup_items_for_insert()
4841 if (btrfs_leaf_free_space(leaf) < total_size) { in setup_items_for_insert()
4842 btrfs_print_leaf(leaf); in setup_items_for_insert()
4844 total_size, btrfs_leaf_free_space(leaf)); in setup_items_for_insert()
4848 btrfs_init_map_token(&token, leaf); in setup_items_for_insert()
4850 unsigned int old_data = btrfs_item_end_nr(leaf, slot); in setup_items_for_insert()
4853 btrfs_print_leaf(leaf); in setup_items_for_insert()
4872 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr), in setup_items_for_insert()
4877 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in setup_items_for_insert()
4886 btrfs_set_item_key(leaf, &disk_key, slot + i); in setup_items_for_insert()
4893 btrfs_set_header_nritems(leaf, nritems + nr); in setup_items_for_insert()
4894 btrfs_mark_buffer_dirty(leaf); in setup_items_for_insert()
4896 if (btrfs_leaf_free_space(leaf) < 0) { in setup_items_for_insert()
4897 btrfs_print_leaf(leaf); in setup_items_for_insert()
4945 struct extent_buffer *leaf; in btrfs_insert_item() local
4953 leaf = path->nodes[0]; in btrfs_insert_item()
4954 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_insert_item()
4955 write_extent_buffer(leaf, data, ptr, data_size); in btrfs_insert_item()
4956 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_item()
5021 struct extent_buffer *leaf) in btrfs_del_leaf() argument
5023 WARN_ON(btrfs_header_generation(leaf) != trans->transid); in btrfs_del_leaf()
5032 root_sub_used(root, leaf->len); in btrfs_del_leaf()
5034 atomic_inc(&leaf->refs); in btrfs_del_leaf()
5035 btrfs_free_tree_block(trans, root, leaf, 0, 1); in btrfs_del_leaf()
5036 free_extent_buffer_stale(leaf); in btrfs_del_leaf()
5046 struct extent_buffer *leaf; in btrfs_del_items() local
5055 leaf = path->nodes[0]; in btrfs_del_items()
5056 last_off = btrfs_item_offset_nr(leaf, slot + nr - 1); in btrfs_del_items()
5059 dsize += btrfs_item_size_nr(leaf, slot + i); in btrfs_del_items()
5061 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
5064 int data_end = leaf_data_end(leaf); in btrfs_del_items()
5067 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_del_items()
5072 btrfs_init_map_token(&token, leaf); in btrfs_del_items()
5081 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot), in btrfs_del_items()
5086 btrfs_set_header_nritems(leaf, nritems - nr); in btrfs_del_items()
5091 if (leaf == root->node) { in btrfs_del_items()
5092 btrfs_set_header_level(leaf, 0); in btrfs_del_items()
5095 btrfs_clean_tree_block(leaf); in btrfs_del_items()
5096 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
5099 int used = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
5103 btrfs_item_key(leaf, &disk_key, 0); in btrfs_del_items()
5114 atomic_inc(&leaf->refs); in btrfs_del_items()
5122 if (path->nodes[0] == leaf && in btrfs_del_items()
5123 btrfs_header_nritems(leaf)) { in btrfs_del_items()
5130 if (btrfs_header_nritems(leaf) == 0) { in btrfs_del_items()
5132 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
5133 free_extent_buffer(leaf); in btrfs_del_items()
5141 if (path->nodes[0] == leaf) in btrfs_del_items()
5142 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5143 free_extent_buffer(leaf); in btrfs_del_items()
5146 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5597 struct extent_buffer *leaf; in btrfs_previous_item() local
5610 leaf = path->nodes[0]; in btrfs_previous_item()
5611 nritems = btrfs_header_nritems(leaf); in btrfs_previous_item()
5617 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_item()
5639 struct extent_buffer *leaf; in btrfs_previous_extent_item() local
5652 leaf = path->nodes[0]; in btrfs_previous_extent_item()
5653 nritems = btrfs_header_nritems(leaf); in btrfs_previous_extent_item()
5659 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_extent_item()