Lines Matching refs:leaf

1734 					 struct extent_buffer *leaf)  in leaf_data_end()  argument
1736 u32 nr = btrfs_header_nritems(leaf); in leaf_data_end()
1739 return btrfs_item_offset_nr(leaf, nr - 1); in leaf_data_end()
3067 struct extent_buffer *leaf; in btrfs_search_slot_for_read() local
3080 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3083 if (p->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_search_slot_for_read()
3104 leaf = p->nodes[0]; in btrfs_search_slot_for_read()
3105 if (p->slots[0] == btrfs_header_nritems(leaf)) in btrfs_search_slot_for_read()
3574 struct extent_buffer *leaf) in btrfs_leaf_free_space() argument
3576 int nritems = btrfs_header_nritems(leaf); in btrfs_leaf_free_space()
3578 ret = BTRFS_LEAF_DATA_SIZE(root) - leaf_space_used(leaf, 0, nritems); in btrfs_leaf_free_space()
3583 leaf_space_used(leaf, 0, nritems), nritems); in btrfs_leaf_free_space()
4337 struct extent_buffer *leaf; in setup_leaf_for_split() local
4343 leaf = path->nodes[0]; in setup_leaf_for_split()
4344 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in setup_leaf_for_split()
4349 if (btrfs_leaf_free_space(root, leaf) >= ins_len) in setup_leaf_for_split()
4352 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in setup_leaf_for_split()
4354 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4356 extent_len = btrfs_file_extent_num_bytes(leaf, fi); in setup_leaf_for_split()
4370 leaf = path->nodes[0]; in setup_leaf_for_split()
4372 if (item_size != btrfs_item_size_nr(leaf, path->slots[0])) in setup_leaf_for_split()
4380 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
4382 if (extent_len != btrfs_file_extent_num_bytes(leaf, fi)) in setup_leaf_for_split()
4405 struct extent_buffer *leaf; in split_item() local
4415 leaf = path->nodes[0]; in split_item()
4416 BUG_ON(btrfs_leaf_free_space(root, leaf) < sizeof(struct btrfs_item)); in split_item()
4421 orig_offset = btrfs_item_offset(leaf, item); in split_item()
4422 item_size = btrfs_item_size(leaf, item); in split_item()
4428 read_extent_buffer(leaf, buf, btrfs_item_ptr_offset(leaf, in split_item()
4432 nritems = btrfs_header_nritems(leaf); in split_item()
4435 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + 1), in split_item()
4441 btrfs_set_item_key(leaf, &disk_key, slot); in split_item()
4445 btrfs_set_item_offset(leaf, new_item, orig_offset); in split_item()
4446 btrfs_set_item_size(leaf, new_item, item_size - split_offset); in split_item()
4448 btrfs_set_item_offset(leaf, item, in split_item()
4450 btrfs_set_item_size(leaf, item, split_offset); in split_item()
4452 btrfs_set_header_nritems(leaf, nritems + 1); in split_item()
4455 write_extent_buffer(leaf, buf, in split_item()
4456 btrfs_item_ptr_offset(leaf, path->slots[0]), in split_item()
4460 write_extent_buffer(leaf, buf + split_offset, in split_item()
4461 btrfs_item_ptr_offset(leaf, slot), in split_item()
4463 btrfs_mark_buffer_dirty(leaf); in split_item()
4465 BUG_ON(btrfs_leaf_free_space(root, leaf) < 0); in split_item()
4514 struct extent_buffer *leaf; in btrfs_duplicate_item() local
4518 leaf = path->nodes[0]; in btrfs_duplicate_item()
4519 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in btrfs_duplicate_item()
4529 leaf = path->nodes[0]; in btrfs_duplicate_item()
4530 memcpy_extent_buffer(leaf, in btrfs_duplicate_item()
4531 btrfs_item_ptr_offset(leaf, path->slots[0]), in btrfs_duplicate_item()
4532 btrfs_item_ptr_offset(leaf, path->slots[0] - 1), in btrfs_duplicate_item()
4547 struct extent_buffer *leaf; in btrfs_truncate_item() local
4559 leaf = path->nodes[0]; in btrfs_truncate_item()
4562 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_truncate_item()
4566 nritems = btrfs_header_nritems(leaf); in btrfs_truncate_item()
4567 data_end = leaf_data_end(root, leaf); in btrfs_truncate_item()
4569 old_data_start = btrfs_item_offset_nr(leaf, slot); in btrfs_truncate_item()
4584 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_truncate_item()
4585 btrfs_set_token_item_offset(leaf, item, in btrfs_truncate_item()
4591 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
4592 data_end + size_diff, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
4598 btrfs_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4604 fi = btrfs_item_ptr(leaf, slot, in btrfs_truncate_item()
4609 if (btrfs_file_extent_type(leaf, fi) == in btrfs_truncate_item()
4611 ptr = btrfs_item_ptr_offset(leaf, slot); in btrfs_truncate_item()
4612 memmove_extent_buffer(leaf, ptr, in btrfs_truncate_item()
4618 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
4619 data_end + size_diff, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
4624 btrfs_set_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
4630 btrfs_set_item_size(leaf, item, new_size); in btrfs_truncate_item()
4631 btrfs_mark_buffer_dirty(leaf); in btrfs_truncate_item()
4633 if (btrfs_leaf_free_space(root, leaf) < 0) { in btrfs_truncate_item()
4634 btrfs_print_leaf(root, leaf); in btrfs_truncate_item()
4646 struct extent_buffer *leaf; in btrfs_extend_item() local
4657 leaf = path->nodes[0]; in btrfs_extend_item()
4659 nritems = btrfs_header_nritems(leaf); in btrfs_extend_item()
4660 data_end = leaf_data_end(root, leaf); in btrfs_extend_item()
4662 if (btrfs_leaf_free_space(root, leaf) < data_size) { in btrfs_extend_item()
4663 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
4667 old_data = btrfs_item_end_nr(leaf, slot); in btrfs_extend_item()
4671 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
4685 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_extend_item()
4686 btrfs_set_token_item_offset(leaf, item, in btrfs_extend_item()
4691 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_extend_item()
4692 data_end - data_size, btrfs_leaf_data(leaf) + in btrfs_extend_item()
4696 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_extend_item()
4698 btrfs_set_item_size(leaf, item, old_size + data_size); in btrfs_extend_item()
4699 btrfs_mark_buffer_dirty(leaf); in btrfs_extend_item()
4701 if (btrfs_leaf_free_space(root, leaf) < 0) { in btrfs_extend_item()
4702 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
4721 struct extent_buffer *leaf; in setup_items_for_insert() local
4733 leaf = path->nodes[0]; in setup_items_for_insert()
4736 nritems = btrfs_header_nritems(leaf); in setup_items_for_insert()
4737 data_end = leaf_data_end(root, leaf); in setup_items_for_insert()
4739 if (btrfs_leaf_free_space(root, leaf) < total_size) { in setup_items_for_insert()
4740 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
4742 total_size, btrfs_leaf_free_space(root, leaf)); in setup_items_for_insert()
4747 unsigned int old_data = btrfs_item_end_nr(leaf, slot); in setup_items_for_insert()
4750 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
4763 ioff = btrfs_token_item_offset(leaf, item, &token); in setup_items_for_insert()
4764 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
4768 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr), in setup_items_for_insert()
4773 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in setup_items_for_insert()
4774 data_end - total_data, btrfs_leaf_data(leaf) + in setup_items_for_insert()
4782 btrfs_set_item_key(leaf, &disk_key, slot + i); in setup_items_for_insert()
4784 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
4787 btrfs_set_token_item_size(leaf, item, data_size[i], &token); in setup_items_for_insert()
4790 btrfs_set_header_nritems(leaf, nritems + nr); in setup_items_for_insert()
4791 btrfs_mark_buffer_dirty(leaf); in setup_items_for_insert()
4793 if (btrfs_leaf_free_space(root, leaf) < 0) { in setup_items_for_insert()
4794 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
4843 struct extent_buffer *leaf; in btrfs_insert_item() local
4851 leaf = path->nodes[0]; in btrfs_insert_item()
4852 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_insert_item()
4853 write_extent_buffer(leaf, data, ptr, data_size); in btrfs_insert_item()
4854 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_item()
4917 struct extent_buffer *leaf) in btrfs_del_leaf() argument
4919 WARN_ON(btrfs_header_generation(leaf) != trans->transid); in btrfs_del_leaf()
4928 root_sub_used(root, leaf->len); in btrfs_del_leaf()
4930 extent_buffer_get(leaf); in btrfs_del_leaf()
4931 btrfs_free_tree_block(trans, root, leaf, 0, 1); in btrfs_del_leaf()
4932 free_extent_buffer_stale(leaf); in btrfs_del_leaf()
4941 struct extent_buffer *leaf; in btrfs_del_items() local
4953 leaf = path->nodes[0]; in btrfs_del_items()
4954 last_off = btrfs_item_offset_nr(leaf, slot + nr - 1); in btrfs_del_items()
4957 dsize += btrfs_item_size_nr(leaf, slot + i); in btrfs_del_items()
4959 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
4962 int data_end = leaf_data_end(root, leaf); in btrfs_del_items()
4964 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_del_items()
4966 btrfs_leaf_data(leaf) + data_end, in btrfs_del_items()
4973 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_del_items()
4974 btrfs_set_token_item_offset(leaf, item, in btrfs_del_items()
4978 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot), in btrfs_del_items()
4983 btrfs_set_header_nritems(leaf, nritems - nr); in btrfs_del_items()
4988 if (leaf == root->node) { in btrfs_del_items()
4989 btrfs_set_header_level(leaf, 0); in btrfs_del_items()
4992 clean_tree_block(trans, root->fs_info, leaf); in btrfs_del_items()
4993 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
4996 int used = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
5000 btrfs_item_key(leaf, &disk_key, 0); in btrfs_del_items()
5011 extent_buffer_get(leaf); in btrfs_del_items()
5019 if (path->nodes[0] == leaf && in btrfs_del_items()
5020 btrfs_header_nritems(leaf)) { in btrfs_del_items()
5027 if (btrfs_header_nritems(leaf) == 0) { in btrfs_del_items()
5029 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
5030 free_extent_buffer(leaf); in btrfs_del_items()
5038 if (path->nodes[0] == leaf) in btrfs_del_items()
5039 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5040 free_extent_buffer(leaf); in btrfs_del_items()
5043 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
5843 struct extent_buffer *leaf; in btrfs_previous_item() local
5856 leaf = path->nodes[0]; in btrfs_previous_item()
5857 nritems = btrfs_header_nritems(leaf); in btrfs_previous_item()
5863 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_item()
5885 struct extent_buffer *leaf; in btrfs_previous_extent_item() local
5898 leaf = path->nodes[0]; in btrfs_previous_extent_item()
5899 nritems = btrfs_header_nritems(leaf); in btrfs_previous_extent_item()
5905 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_extent_item()