• Home
  • Raw
  • Download

Lines Matching refs:leaf

774 					 struct extent_buffer *leaf)  in leaf_data_end()  argument
776 u32 nr = btrfs_header_nritems(leaf); in leaf_data_end()
779 return btrfs_item_offset_nr(leaf, nr - 1); in leaf_data_end()
2328 struct extent_buffer *leaf) in btrfs_leaf_free_space() argument
2330 int nritems = btrfs_header_nritems(leaf); in btrfs_leaf_free_space()
2332 ret = BTRFS_LEAF_DATA_SIZE(root) - leaf_space_used(leaf, 0, nritems); in btrfs_leaf_free_space()
2337 leaf_space_used(leaf, 0, nritems), nritems); in btrfs_leaf_free_space()
3076 struct extent_buffer *leaf; in setup_leaf_for_split() local
3082 leaf = path->nodes[0]; in setup_leaf_for_split()
3083 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in setup_leaf_for_split()
3088 if (btrfs_leaf_free_space(root, leaf) >= ins_len) in setup_leaf_for_split()
3091 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in setup_leaf_for_split()
3093 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
3095 extent_len = btrfs_file_extent_num_bytes(leaf, fi); in setup_leaf_for_split()
3107 leaf = path->nodes[0]; in setup_leaf_for_split()
3109 if (ret > 0 || item_size != btrfs_item_size_nr(leaf, path->slots[0])) in setup_leaf_for_split()
3117 fi = btrfs_item_ptr(leaf, path->slots[0], in setup_leaf_for_split()
3119 if (extent_len != btrfs_file_extent_num_bytes(leaf, fi)) in setup_leaf_for_split()
3142 struct extent_buffer *leaf; in split_item() local
3152 leaf = path->nodes[0]; in split_item()
3153 BUG_ON(btrfs_leaf_free_space(root, leaf) < sizeof(struct btrfs_item)); in split_item()
3157 item = btrfs_item_nr(leaf, path->slots[0]); in split_item()
3158 orig_offset = btrfs_item_offset(leaf, item); in split_item()
3159 item_size = btrfs_item_size(leaf, item); in split_item()
3165 read_extent_buffer(leaf, buf, btrfs_item_ptr_offset(leaf, in split_item()
3169 nritems = btrfs_header_nritems(leaf); in split_item()
3172 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + 1), in split_item()
3178 btrfs_set_item_key(leaf, &disk_key, slot); in split_item()
3180 new_item = btrfs_item_nr(leaf, slot); in split_item()
3182 btrfs_set_item_offset(leaf, new_item, orig_offset); in split_item()
3183 btrfs_set_item_size(leaf, new_item, item_size - split_offset); in split_item()
3185 btrfs_set_item_offset(leaf, item, in split_item()
3187 btrfs_set_item_size(leaf, item, split_offset); in split_item()
3189 btrfs_set_header_nritems(leaf, nritems + 1); in split_item()
3192 write_extent_buffer(leaf, buf, in split_item()
3193 btrfs_item_ptr_offset(leaf, path->slots[0]), in split_item()
3197 write_extent_buffer(leaf, buf + split_offset, in split_item()
3198 btrfs_item_ptr_offset(leaf, slot), in split_item()
3200 btrfs_mark_buffer_dirty(leaf); in split_item()
3202 BUG_ON(btrfs_leaf_free_space(root, leaf) < 0); in split_item()
3251 struct extent_buffer *leaf; in btrfs_duplicate_item() local
3255 leaf = path->nodes[0]; in btrfs_duplicate_item()
3256 item_size = btrfs_item_size_nr(leaf, path->slots[0]); in btrfs_duplicate_item()
3266 leaf = path->nodes[0]; in btrfs_duplicate_item()
3267 memcpy_extent_buffer(leaf, in btrfs_duplicate_item()
3268 btrfs_item_ptr_offset(leaf, path->slots[0]), in btrfs_duplicate_item()
3269 btrfs_item_ptr_offset(leaf, path->slots[0] - 1), in btrfs_duplicate_item()
3286 struct extent_buffer *leaf; in btrfs_truncate_item() local
3298 leaf = path->nodes[0]; in btrfs_truncate_item()
3301 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_truncate_item()
3305 nritems = btrfs_header_nritems(leaf); in btrfs_truncate_item()
3306 data_end = leaf_data_end(root, leaf); in btrfs_truncate_item()
3308 old_data_start = btrfs_item_offset_nr(leaf, slot); in btrfs_truncate_item()
3321 item = btrfs_item_nr(leaf, i); in btrfs_truncate_item()
3323 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_truncate_item()
3324 btrfs_set_token_item_offset(leaf, item, in btrfs_truncate_item()
3330 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
3331 data_end + size_diff, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
3337 btrfs_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
3343 fi = btrfs_item_ptr(leaf, slot, in btrfs_truncate_item()
3348 if (btrfs_file_extent_type(leaf, fi) == in btrfs_truncate_item()
3350 ptr = btrfs_item_ptr_offset(leaf, slot); in btrfs_truncate_item()
3351 memmove_extent_buffer(leaf, ptr, in btrfs_truncate_item()
3358 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
3359 data_end + size_diff, btrfs_leaf_data(leaf) + in btrfs_truncate_item()
3364 btrfs_set_item_key(leaf, &disk_key, slot); in btrfs_truncate_item()
3369 item = btrfs_item_nr(leaf, slot); in btrfs_truncate_item()
3370 btrfs_set_item_size(leaf, item, new_size); in btrfs_truncate_item()
3371 btrfs_mark_buffer_dirty(leaf); in btrfs_truncate_item()
3373 if (btrfs_leaf_free_space(root, leaf) < 0) { in btrfs_truncate_item()
3374 btrfs_print_leaf(root, leaf); in btrfs_truncate_item()
3387 struct extent_buffer *leaf; in btrfs_extend_item() local
3398 leaf = path->nodes[0]; in btrfs_extend_item()
3400 nritems = btrfs_header_nritems(leaf); in btrfs_extend_item()
3401 data_end = leaf_data_end(root, leaf); in btrfs_extend_item()
3403 if (btrfs_leaf_free_space(root, leaf) < data_size) { in btrfs_extend_item()
3404 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
3408 old_data = btrfs_item_end_nr(leaf, slot); in btrfs_extend_item()
3412 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
3424 item = btrfs_item_nr(leaf, i); in btrfs_extend_item()
3426 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_extend_item()
3427 btrfs_set_token_item_offset(leaf, item, in btrfs_extend_item()
3432 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_extend_item()
3433 data_end - data_size, btrfs_leaf_data(leaf) + in btrfs_extend_item()
3437 old_size = btrfs_item_size_nr(leaf, slot); in btrfs_extend_item()
3438 item = btrfs_item_nr(leaf, slot); in btrfs_extend_item()
3439 btrfs_set_item_size(leaf, item, old_size + data_size); in btrfs_extend_item()
3440 btrfs_mark_buffer_dirty(leaf); in btrfs_extend_item()
3442 if (btrfs_leaf_free_space(root, leaf) < 0) { in btrfs_extend_item()
3443 btrfs_print_leaf(root, leaf); in btrfs_extend_item()
3459 struct extent_buffer *leaf; in btrfs_insert_some_items() local
3491 leaf = path->nodes[0]; in btrfs_insert_some_items()
3493 nritems = btrfs_header_nritems(leaf); in btrfs_insert_some_items()
3494 data_end = leaf_data_end(root, leaf); in btrfs_insert_some_items()
3496 if (btrfs_leaf_free_space(root, leaf) < total_size) { in btrfs_insert_some_items()
3500 if (total_size < btrfs_leaf_free_space(root, leaf)) in btrfs_insert_some_items()
3510 unsigned int old_data = btrfs_item_end_nr(leaf, slot); in btrfs_insert_some_items()
3512 item = btrfs_item_nr(leaf, slot); in btrfs_insert_some_items()
3513 btrfs_item_key_to_cpu(leaf, &found_key, slot); in btrfs_insert_some_items()
3525 btrfs_print_leaf(root, leaf); in btrfs_insert_some_items()
3537 item = btrfs_item_nr(leaf, i); in btrfs_insert_some_items()
3538 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_insert_some_items()
3539 btrfs_set_token_item_offset(leaf, item, in btrfs_insert_some_items()
3543 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr), in btrfs_insert_some_items()
3548 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_insert_some_items()
3549 data_end - total_data, btrfs_leaf_data(leaf) + in btrfs_insert_some_items()
3565 btrfs_set_item_key(leaf, &disk_key, slot + i); in btrfs_insert_some_items()
3566 item = btrfs_item_nr(leaf, slot + i); in btrfs_insert_some_items()
3567 btrfs_set_token_item_offset(leaf, item, in btrfs_insert_some_items()
3570 btrfs_set_token_item_size(leaf, item, data_size[i], &token); in btrfs_insert_some_items()
3572 btrfs_set_header_nritems(leaf, nritems + nr); in btrfs_insert_some_items()
3573 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_some_items()
3581 if (btrfs_leaf_free_space(root, leaf) < 0) { in btrfs_insert_some_items()
3582 btrfs_print_leaf(root, leaf); in btrfs_insert_some_items()
3606 struct extent_buffer *leaf; in setup_items_for_insert() local
3612 leaf = path->nodes[0]; in setup_items_for_insert()
3615 nritems = btrfs_header_nritems(leaf); in setup_items_for_insert()
3616 data_end = leaf_data_end(root, leaf); in setup_items_for_insert()
3618 if (btrfs_leaf_free_space(root, leaf) < total_size) { in setup_items_for_insert()
3619 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
3621 total_size, btrfs_leaf_free_space(root, leaf)); in setup_items_for_insert()
3626 unsigned int old_data = btrfs_item_end_nr(leaf, slot); in setup_items_for_insert()
3629 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
3641 item = btrfs_item_nr(leaf, i); in setup_items_for_insert()
3642 ioff = btrfs_token_item_offset(leaf, item, &token); in setup_items_for_insert()
3643 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
3647 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr), in setup_items_for_insert()
3652 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in setup_items_for_insert()
3653 data_end - total_data, btrfs_leaf_data(leaf) + in setup_items_for_insert()
3661 btrfs_set_item_key(leaf, &disk_key, slot + i); in setup_items_for_insert()
3662 item = btrfs_item_nr(leaf, slot + i); in setup_items_for_insert()
3663 btrfs_set_token_item_offset(leaf, item, in setup_items_for_insert()
3666 btrfs_set_token_item_size(leaf, item, data_size[i], &token); in setup_items_for_insert()
3669 btrfs_set_header_nritems(leaf, nritems + nr); in setup_items_for_insert()
3676 btrfs_mark_buffer_dirty(leaf); in setup_items_for_insert()
3678 if (btrfs_leaf_free_space(root, leaf) < 0) { in setup_items_for_insert()
3679 btrfs_print_leaf(root, leaf); in setup_items_for_insert()
3728 struct extent_buffer *leaf; in btrfs_insert_item() local
3736 leaf = path->nodes[0]; in btrfs_insert_item()
3737 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_insert_item()
3738 write_extent_buffer(leaf, data, ptr, data_size); in btrfs_insert_item()
3739 btrfs_mark_buffer_dirty(leaf); in btrfs_insert_item()
3793 struct extent_buffer *leaf) in btrfs_del_leaf() argument
3795 WARN_ON(btrfs_header_generation(leaf) != trans->transid); in btrfs_del_leaf()
3804 root_sub_used(root, leaf->len); in btrfs_del_leaf()
3806 extent_buffer_get(leaf); in btrfs_del_leaf()
3807 btrfs_free_tree_block(trans, root, leaf, 0, 1, 0); in btrfs_del_leaf()
3808 free_extent_buffer_stale(leaf); in btrfs_del_leaf()
3817 struct extent_buffer *leaf; in btrfs_del_items() local
3829 leaf = path->nodes[0]; in btrfs_del_items()
3830 last_off = btrfs_item_offset_nr(leaf, slot + nr - 1); in btrfs_del_items()
3833 dsize += btrfs_item_size_nr(leaf, slot + i); in btrfs_del_items()
3835 nritems = btrfs_header_nritems(leaf); in btrfs_del_items()
3838 int data_end = leaf_data_end(root, leaf); in btrfs_del_items()
3840 memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) + in btrfs_del_items()
3842 btrfs_leaf_data(leaf) + data_end, in btrfs_del_items()
3848 item = btrfs_item_nr(leaf, i); in btrfs_del_items()
3849 ioff = btrfs_token_item_offset(leaf, item, &token); in btrfs_del_items()
3850 btrfs_set_token_item_offset(leaf, item, in btrfs_del_items()
3854 memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot), in btrfs_del_items()
3859 btrfs_set_header_nritems(leaf, nritems - nr); in btrfs_del_items()
3864 if (leaf == root->node) { in btrfs_del_items()
3865 btrfs_set_header_level(leaf, 0); in btrfs_del_items()
3868 clean_tree_block(trans, root, leaf); in btrfs_del_items()
3869 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
3872 int used = leaf_space_used(leaf, 0, nritems); in btrfs_del_items()
3876 btrfs_item_key(leaf, &disk_key, 0); in btrfs_del_items()
3887 extent_buffer_get(leaf); in btrfs_del_items()
3895 if (path->nodes[0] == leaf && in btrfs_del_items()
3896 btrfs_header_nritems(leaf)) { in btrfs_del_items()
3903 if (btrfs_header_nritems(leaf) == 0) { in btrfs_del_items()
3905 btrfs_del_leaf(trans, root, path, leaf); in btrfs_del_items()
3906 free_extent_buffer(leaf); in btrfs_del_items()
3914 if (path->nodes[0] == leaf) in btrfs_del_items()
3915 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
3916 free_extent_buffer(leaf); in btrfs_del_items()
3919 btrfs_mark_buffer_dirty(leaf); in btrfs_del_items()
4352 struct extent_buffer *leaf; in btrfs_previous_item() local
4365 leaf = path->nodes[0]; in btrfs_previous_item()
4366 nritems = btrfs_header_nritems(leaf); in btrfs_previous_item()
4372 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_previous_item()