Lines Matching refs:leaf
143 struct extent_buffer *leaf; in btrfs_drop_extents() local
192 leaf = path->nodes[0]; in btrfs_drop_extents()
193 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1); in btrfs_drop_extents()
200 leaf = path->nodes[0]; in btrfs_drop_extents()
201 if (path->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_drop_extents()
203 btrfs_print_leaf(leaf); in btrfs_drop_extents()
214 leaf = path->nodes[0]; in btrfs_drop_extents()
218 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_drop_extents()
231 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_drop_extents()
233 extent_type = btrfs_file_extent_type(leaf, fi); in btrfs_drop_extents()
237 disk_bytenr = btrfs_file_extent_disk_bytenr(leaf, fi); in btrfs_drop_extents()
238 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); in btrfs_drop_extents()
239 extent_offset = btrfs_file_extent_offset(leaf, fi); in btrfs_drop_extents()
241 btrfs_file_extent_num_bytes(leaf, fi); in btrfs_drop_extents()
244 btrfs_file_extent_ram_bytes(leaf, fi); in btrfs_drop_extents()
283 btrfs_print_leaf(leaf); in btrfs_drop_extents()
303 leaf = path->nodes[0]; in btrfs_drop_extents()
304 fi = btrfs_item_ptr(leaf, path->slots[0] - 1, in btrfs_drop_extents()
306 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_drop_extents()
309 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_drop_extents()
313 btrfs_set_file_extent_offset(leaf, fi, extent_offset); in btrfs_drop_extents()
314 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_drop_extents()
358 btrfs_set_file_extent_offset(leaf, fi, extent_offset); in btrfs_drop_extents()
359 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_drop_extents()
373 btrfs_print_leaf(leaf); in btrfs_drop_extents()
382 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_drop_extents()
404 btrfs_print_leaf(leaf); in btrfs_drop_extents()
439 if (path->slots[0] + 1 < btrfs_header_nritems(leaf)) { in btrfs_drop_extents()
474 leaf = path->nodes[0]; in btrfs_drop_extents()
482 btrfs_leaf_free_space(leaf) >= in btrfs_drop_extents()
488 if (!del_nr && path->slots[0] < btrfs_header_nritems(leaf)) { in btrfs_drop_extents()
491 btrfs_item_key_to_cpu(leaf, &slot_key, path->slots[0]); in btrfs_drop_extents()
510 static bool extent_mergeable(struct extent_buffer *leaf, int slot, u64 objectid, in extent_mergeable() argument
517 if (slot < 0 || slot >= btrfs_header_nritems(leaf)) in extent_mergeable()
520 btrfs_item_key_to_cpu(leaf, &key, slot); in extent_mergeable()
524 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in extent_mergeable()
525 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG || in extent_mergeable()
526 btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr || in extent_mergeable()
527 btrfs_file_extent_offset(leaf, fi) != key.offset - orig_offset || in extent_mergeable()
528 btrfs_file_extent_compression(leaf, fi) || in extent_mergeable()
529 btrfs_file_extent_encryption(leaf, fi) || in extent_mergeable()
530 btrfs_file_extent_other_encoding(leaf, fi)) in extent_mergeable()
533 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi); in extent_mergeable()
553 struct extent_buffer *leaf; in btrfs_mark_extent_written() local
588 leaf = path->nodes[0]; in btrfs_mark_extent_written()
589 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_mark_extent_written()
595 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
597 if (unlikely(btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_PREALLOC)) { in btrfs_mark_extent_written()
602 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi); in btrfs_mark_extent_written()
609 bytenr = btrfs_file_extent_disk_bytenr(leaf, fi); in btrfs_mark_extent_written()
610 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); in btrfs_mark_extent_written()
611 orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi); in btrfs_mark_extent_written()
617 if (extent_mergeable(leaf, path->slots[0] - 1, in btrfs_mark_extent_written()
622 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
624 btrfs_set_file_extent_generation(leaf, fi, in btrfs_mark_extent_written()
626 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
628 btrfs_set_file_extent_offset(leaf, fi, in btrfs_mark_extent_written()
630 fi = btrfs_item_ptr(leaf, path->slots[0] - 1, in btrfs_mark_extent_written()
632 btrfs_set_file_extent_generation(leaf, fi, in btrfs_mark_extent_written()
634 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
643 if (extent_mergeable(leaf, path->slots[0] + 1, in btrfs_mark_extent_written()
646 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
648 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
650 btrfs_set_file_extent_generation(leaf, fi, in btrfs_mark_extent_written()
656 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
658 btrfs_set_file_extent_generation(leaf, fi, in btrfs_mark_extent_written()
660 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
662 btrfs_set_file_extent_offset(leaf, fi, in btrfs_mark_extent_written()
683 leaf = path->nodes[0]; in btrfs_mark_extent_written()
684 fi = btrfs_item_ptr(leaf, path->slots[0] - 1, in btrfs_mark_extent_written()
686 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in btrfs_mark_extent_written()
687 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
690 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
693 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in btrfs_mark_extent_written()
694 btrfs_set_file_extent_offset(leaf, fi, split - orig_offset); in btrfs_mark_extent_written()
695 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
735 if (extent_mergeable(leaf, path->slots[0] + 1, in btrfs_mark_extent_written()
753 if (extent_mergeable(leaf, path->slots[0] - 1, in btrfs_mark_extent_written()
770 fi = btrfs_item_ptr(leaf, path->slots[0], in btrfs_mark_extent_written()
772 btrfs_set_file_extent_type(leaf, fi, in btrfs_mark_extent_written()
774 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in btrfs_mark_extent_written()
776 fi = btrfs_item_ptr(leaf, del_slot - 1, in btrfs_mark_extent_written()
778 btrfs_set_file_extent_type(leaf, fi, in btrfs_mark_extent_written()
780 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in btrfs_mark_extent_written()
781 btrfs_set_file_extent_num_bytes(leaf, fi, in btrfs_mark_extent_written()
2057 static bool hole_mergeable(struct btrfs_inode *inode, struct extent_buffer *leaf, in hole_mergeable() argument
2063 if (slot < 0 || slot >= btrfs_header_nritems(leaf)) in hole_mergeable()
2066 btrfs_item_key_to_cpu(leaf, &key, slot); in hole_mergeable()
2071 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in hole_mergeable()
2073 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG) in hole_mergeable()
2076 if (btrfs_file_extent_disk_bytenr(leaf, fi)) in hole_mergeable()
2081 if (key.offset + btrfs_file_extent_num_bytes(leaf, fi) == start) in hole_mergeable()
2092 struct extent_buffer *leaf; in fill_holes() local
2116 leaf = path->nodes[0]; in fill_holes()
2117 if (hole_mergeable(inode, leaf, path->slots[0] - 1, offset, end)) { in fill_holes()
2121 fi = btrfs_item_ptr(leaf, path->slots[0], in fill_holes()
2123 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + in fill_holes()
2125 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes); in fill_holes()
2126 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); in fill_holes()
2127 btrfs_set_file_extent_offset(leaf, fi, 0); in fill_holes()
2128 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in fill_holes()
2132 if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) { in fill_holes()
2137 fi = btrfs_item_ptr(leaf, path->slots[0], in fill_holes()
2139 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end - in fill_holes()
2141 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes); in fill_holes()
2142 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); in fill_holes()
2143 btrfs_set_file_extent_offset(leaf, fi, 0); in fill_holes()
2144 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in fill_holes()
2311 struct extent_buffer *leaf; in btrfs_insert_replace_extent() local
2332 leaf = path->nodes[0]; in btrfs_insert_replace_extent()
2334 write_extent_buffer(leaf, extent_info->extent_buf, in btrfs_insert_replace_extent()
2335 btrfs_item_ptr_offset(leaf, slot), in btrfs_insert_replace_extent()
2337 extent = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in btrfs_insert_replace_extent()
2338 ASSERT(btrfs_file_extent_type(leaf, extent) != BTRFS_FILE_EXTENT_INLINE); in btrfs_insert_replace_extent()
2339 btrfs_set_file_extent_offset(leaf, extent, extent_info->data_offset); in btrfs_insert_replace_extent()
2340 btrfs_set_file_extent_num_bytes(leaf, extent, replace_len); in btrfs_insert_replace_extent()
2342 btrfs_set_file_extent_generation(leaf, extent, trans->transid); in btrfs_insert_replace_extent()
3641 struct extent_buffer *leaf = path->nodes[0]; in find_desired_extent() local
3646 if (path->slots[0] >= btrfs_header_nritems(leaf)) { in find_desired_extent()
3653 leaf = path->nodes[0]; in find_desired_extent()
3656 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in find_desired_extent()
3698 extent = btrfs_item_ptr(leaf, path->slots[0], in find_desired_extent()
3700 type = btrfs_file_extent_type(leaf, extent); in find_desired_extent()
3709 btrfs_file_extent_disk_bytenr(leaf, extent) == 0)) { in find_desired_extent()