Lines Matching refs:leaf

3101 	struct extent_buffer *leaf;  in btrfs_search_slot_for_read()  local
3114 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3117 if (p->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_search_slot_for_read()
3138 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3139 if (p->slots[0] == btrfs_header_nritems(leaf)) in btrfs_search_slot_for_read()
3612 noinline int btrfs_leaf_free_space(struct extent_buffer *leaf) in btrfs_leaf_free_space() argument
3614 struct btrfs_fs_info *fs_info = leaf->fs_info; in btrfs_leaf_free_space()
3615 int nritems = btrfs_header_nritems(leaf); in btrfs_leaf_free_space()
3618 ret = BTRFS_LEAF_DATA_SIZE(fs_info) - leaf_space_used(leaf, 0, nritems); in btrfs_leaf_free_space()
3624 leaf_space_used(leaf, 0, nritems), nritems); in btrfs_leaf_free_space()
4380 struct extent_buffer *leaf; in setup_leaf_for_split() local
4386 leaf = path->nodes[0]; in setup_leaf_for_split()
4387 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in setup_leaf_for_split()
4392 if (btrfs_leaf_free_space(leaf) >= ins_len) in setup_leaf_for_split()
4395 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in setup_leaf_for_split()
4397 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4399 extent_len = btrfs_file_extent_num_bytes(leaf, fi); in setup_leaf_for_split()
4413 leaf = path->nodes[0]; in setup_leaf_for_split()
4415 if (item_size != btrfs_item_size_nr(leaf, path->slots[0])) in setup_leaf_for_split()
4423 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4425 if (extent_len != btrfs_file_extent_num_bytes(leaf, fi)) in setup_leaf_for_split()
4446 struct extent_buffer *leaf; in split_item() local
4456 leaf = path->nodes[0]; in split_item()
4457 BUG_ON(btrfs_leaf_free_space(leaf) < sizeof(struct btrfs_item)); in split_item()
4462 orig_offset = btrfs_item_offset(leaf, item); in split_item()
4463 item_size = btrfs_item_size(leaf, item); in split_item()
4469 read_extent_buffer(leaf, buf, btrfs_item_ptr_offset(leaf, in split_item()
4473 nritems = btrfs_header_nritems(leaf); in split_item()
4476 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + 1), in split_item()
4482 btrfs_set_item_key(leaf, &disk_key, slot); in split_item()
4486 btrfs_set_item_offset(leaf, new_item, orig_offset); in split_item()
4487 btrfs_set_item_size(leaf, new_item, item_size - split_offset); in split_item()
4489 btrfs_set_item_offset(leaf, item, in split_item()
4491 btrfs_set_item_size(leaf, item, split_offset); in split_item()
4493 btrfs_set_header_nritems(leaf, nritems + 1); in split_item()
4496 write_extent_buffer(leaf, buf, in split_item()
4497 btrfs_item_ptr_offset(leaf, path->slots[0]), in split_item()
4501 write_extent_buffer(leaf, buf + split_offset, in split_item()
4502 btrfs_item_ptr_offset(leaf, slot), in split_item()
4504 btrfs_mark_buffer_dirty(leaf); in split_item()
4506 BUG_ON(btrfs_leaf_free_space(leaf) < 0); in split_item()
4555 struct extent_buffer *leaf; in btrfs_duplicate_item() local
4559 leaf = path->nodes[0]; in btrfs_duplicate_item()
4560 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in btrfs_duplicate_item()
4570 leaf = path->nodes[0]; in btrfs_duplicate_item()
4571 memcpy_extent_buffer(leaf, in btrfs_duplicate_item()
4572 btrfs_item_ptr_offset(leaf, path->slots[0]), in btrfs_duplicate_item()
4573 btrfs_item_ptr_offset(leaf, path->slots[0] - 1), in btrfs_duplicate_item()
4587 struct extent_buffer *leaf; in btrfs_truncate_item() local
4597 leaf = path->nodes[0]; in btrfs_truncate_item()
4600 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_truncate_item()
4604 nritems = btrfs_header_nritems(leaf); in btrfs_truncate_item()
4605 data_end = leaf_data_end(leaf); in btrfs_truncate_item()
4607 old_data_start = btrfs_item_offset_nr(leaf, slot); in btrfs_truncate_item()
4618 btrfs_init_map_token(&token, leaf); in btrfs_truncate_item()
4623 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_truncate_item()
4624 btrfs_set_token_item_offset(leaf, item, in btrfs_truncate_item()
4630 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
4637 btrfs_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4643 fi = btrfs_item_ptr(leaf, slot, in btrfs_truncate_item()
4648 if (btrfs_file_extent_type(leaf, fi) == in btrfs_truncate_item()
4650 ptr = btrfs_item_ptr_offset(leaf, slot); in btrfs_truncate_item()
4651 memmove_extent_buffer(leaf, ptr, in btrfs_truncate_item()
4657 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_truncate_item()
4663 btrfs_set_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4669 btrfs_set_item_size(leaf, item, new_size); in btrfs_truncate_item()
4670 btrfs_mark_buffer_dirty(leaf); in btrfs_truncate_item()
4672 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_truncate_item()
4673 btrfs_print_leaf(leaf); in btrfs_truncate_item()
4684 struct extent_buffer *leaf; in btrfs_extend_item() local
4693 leaf = path->nodes[0]; in btrfs_extend_item()
4695 nritems = btrfs_header_nritems(leaf); in btrfs_extend_item()
4696 data_end = leaf_data_end(leaf); in btrfs_extend_item()
4698 if (btrfs_leaf_free_space(leaf) < data_size) { in btrfs_extend_item()
4699 btrfs_print_leaf(leaf); in btrfs_extend_item()
4703 old_data = btrfs_item_end_nr(leaf, slot); in btrfs_extend_item()
4707 btrfs_print_leaf(leaf); in btrfs_extend_item()
4708 btrfs_crit(leaf->fs_info, "slot %d too large, nritems %d", in btrfs_extend_item()
4717 btrfs_init_map_token(&token, leaf); in btrfs_extend_item()
4722 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_extend_item()
4723 btrfs_set_token_item_offset(leaf, item, in btrfs_extend_item()
4728 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_extend_item()
4733 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_extend_item()
4735 btrfs_set_item_size(leaf, item, old_size + data_size); in btrfs_extend_item()
4736 btrfs_mark_buffer_dirty(leaf); in btrfs_extend_item()
4738 if (btrfs_leaf_free_space(leaf) < 0) { in btrfs_extend_item()
4739 btrfs_print_leaf(leaf); in btrfs_extend_item()
4759 struct extent_buffer *leaf; in setup_items_for_insert() local
4769 leaf = path->nodes[0]; in setup_items_for_insert()
4772 nritems = btrfs_header_nritems(leaf); in setup_items_for_insert()
4773 data_end = leaf_data_end(leaf); in setup_items_for_insert()
4775 if (btrfs_leaf_free_space(leaf) < total_size) { in setup_items_for_insert()
4776 btrfs_print_leaf(leaf); in setup_items_for_insert()
4778 total_size, btrfs_leaf_free_space(leaf)); in setup_items_for_insert()
4782 btrfs_init_map_token(&token, leaf); in setup_items_for_insert()
4784 unsigned int old_data = btrfs_item_end_nr(leaf, slot); in setup_items_for_insert()
4787 btrfs_print_leaf(leaf); in setup_items_for_insert()
4800 ioff = btrfs_token_item_offset(leaf, item, &token); in setup_items_for_insert()
4801 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
4805 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr), in setup_items_for_insert()
4810 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in setup_items_for_insert()
4819 btrfs_set_item_key(leaf, &disk_key, slot + i); in setup_items_for_insert()
4821 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
4824 btrfs_set_token_item_size(leaf, item, data_size[i], &token); in setup_items_for_insert()
4827 btrfs_set_header_nritems(leaf, nritems + nr); in setup_items_for_insert()
4828 btrfs_mark_buffer_dirty(leaf); in setup_items_for_insert()
4830 if (btrfs_leaf_free_space(leaf) < 0) { in setup_items_for_insert()
4831 btrfs_print_leaf(leaf); in setup_items_for_insert()
4880 struct extent_buffer *leaf; in btrfs_insert_item() local
4888 leaf = path->nodes[0]; in btrfs_insert_item()
4889 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_insert_item()
4890 write_extent_buffer(leaf, data, ptr, data_size); in btrfs_insert_item()
4891 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_item()
4956 struct extent_buffer *leaf) in btrfs_del_leaf() argument
4958 WARN_ON(btrfs_header_generation(leaf) != trans->transid); in btrfs_del_leaf()
4967 root_sub_used(root, leaf->len); in btrfs_del_leaf()
4969 extent_buffer_get(leaf); in btrfs_del_leaf()
4970 btrfs_free_tree_block(trans, root, leaf, 0, 1); in btrfs_del_leaf()
4971 free_extent_buffer_stale(leaf); in btrfs_del_leaf()
4981 struct extent_buffer *leaf; in btrfs_del_items() local
4990 leaf = path->nodes[0]; in btrfs_del_items()
4991 last_off = btrfs_item_offset_nr(leaf, slot + nr - 1); in btrfs_del_items()
4994 dsize += btrfs_item_size_nr(leaf, slot + i); in btrfs_del_items()
4996 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
4999 int data_end = leaf_data_end(leaf); in btrfs_del_items()
5002 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + in btrfs_del_items()
5007 btrfs_init_map_token(&token, leaf); in btrfs_del_items()
5012 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_del_items()
5013 btrfs_set_token_item_offset(leaf, item, in btrfs_del_items()
5017 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot), in btrfs_del_items()
5022 btrfs_set_header_nritems(leaf, nritems - nr); in btrfs_del_items()
5027 if (leaf == root->node) { in btrfs_del_items()
5028 btrfs_set_header_level(leaf, 0); in btrfs_del_items()
5031 btrfs_clean_tree_block(leaf); in btrfs_del_items()
5032 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
5035 int used = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
5039 btrfs_item_key(leaf, &disk_key, 0); in btrfs_del_items()
5050 extent_buffer_get(leaf); in btrfs_del_items()
5058 if (path->nodes[0] == leaf && in btrfs_del_items()
5059 btrfs_header_nritems(leaf)) { in btrfs_del_items()
5066 if (btrfs_header_nritems(leaf) == 0) { in btrfs_del_items()
5068 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
5069 free_extent_buffer(leaf); in btrfs_del_items()
5077 if (path->nodes[0] == leaf) in btrfs_del_items()
5078 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5079 free_extent_buffer(leaf); in btrfs_del_items()
5082 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5529 struct extent_buffer *leaf; in btrfs_previous_item() local
5542 leaf = path->nodes[0]; in btrfs_previous_item()
5543 nritems = btrfs_header_nritems(leaf); in btrfs_previous_item()
5549 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_item()
5571 struct extent_buffer *leaf; in btrfs_previous_extent_item() local
5584 leaf = path->nodes[0]; in btrfs_previous_extent_item()
5585 nritems = btrfs_header_nritems(leaf); in btrfs_previous_extent_item()
5591 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_extent_item()