Lines Matching defs:leaf

207 	struct extent_buffer *leaf;
257 leaf = path->nodes[0];
258 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1);
265 leaf = path->nodes[0];
266 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
275 leaf = path->nodes[0];
279 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
292 fi = btrfs_item_ptr(leaf, path->slots[0],
294 extent_type = btrfs_file_extent_type(leaf, fi);
298 disk_bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
299 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
300 extent_offset = btrfs_file_extent_offset(leaf, fi);
302 btrfs_file_extent_num_bytes(leaf, fi);
305 btrfs_file_extent_ram_bytes(leaf, fi);
360 leaf = path->nodes[0];
361 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
363 btrfs_set_file_extent_num_bytes(leaf, fi,
366 fi = btrfs_item_ptr(leaf, path->slots[0],
370 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
371 btrfs_set_file_extent_num_bytes(leaf, fi,
373 btrfs_mark_buffer_dirty(trans, leaf);
414 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
415 btrfs_set_file_extent_num_bytes(leaf, fi,
417 btrfs_mark_buffer_dirty(trans, leaf);
435 btrfs_set_file_extent_num_bytes(leaf, fi,
437 btrfs_mark_buffer_dirty(trans, leaf);
487 if (path->slots[0] + 1 < btrfs_header_nritems(leaf)) {
512 * if items are move off from our leaf to its immediate left or
522 leaf = path->nodes[0];
524 * If btrfs_del_items() was called, it might have deleted a leaf, in
530 btrfs_leaf_free_space(leaf) >=
536 if (!del_nr && path->slots[0] < btrfs_header_nritems(leaf)) {
539 btrfs_item_key_to_cpu(leaf, &slot_key, path->slots[0]);
558 static int extent_mergeable(struct extent_buffer *leaf, int slot,
566 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
569 btrfs_item_key_to_cpu(leaf, &key, slot);
573 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
574 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG ||
575 btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr ||
576 btrfs_file_extent_offset(leaf, fi) != key.offset - orig_offset ||
577 btrfs_file_extent_compression(leaf, fi) ||
578 btrfs_file_extent_encryption(leaf, fi) ||
579 btrfs_file_extent_other_encoding(leaf, fi))
582 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
602 struct extent_buffer *leaf;
637 leaf = path->nodes[0];
638 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
645 fi = btrfs_item_ptr(leaf, path->slots[0],
647 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_PREALLOC) {
652 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
659 bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
660 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
661 orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi);
667 if (extent_mergeable(leaf, path->slots[0] - 1,
672 fi = btrfs_item_ptr(leaf, path->slots[0],
674 btrfs_set_file_extent_generation(leaf, fi,
676 btrfs_set_file_extent_num_bytes(leaf, fi,
678 btrfs_set_file_extent_offset(leaf, fi,
680 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
682 btrfs_set_file_extent_generation(leaf, fi,
684 btrfs_set_file_extent_num_bytes(leaf, fi,
686 btrfs_mark_buffer_dirty(trans, leaf);
694 if (extent_mergeable(leaf, path->slots[0] + 1,
697 fi = btrfs_item_ptr(leaf, path->slots[0],
699 btrfs_set_file_extent_num_bytes(leaf, fi,
701 btrfs_set_file_extent_generation(leaf, fi,
707 fi = btrfs_item_ptr(leaf, path->slots[0],
709 btrfs_set_file_extent_generation(leaf, fi,
711 btrfs_set_file_extent_num_bytes(leaf, fi,
713 btrfs_set_file_extent_offset(leaf, fi,
715 btrfs_mark_buffer_dirty(trans, leaf);
735 leaf = path->nodes[0];
736 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
738 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
739 btrfs_set_file_extent_num_bytes(leaf, fi,
742 fi = btrfs_item_ptr(leaf, path->slots[0],
745 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
746 btrfs_set_file_extent_offset(leaf, fi, split - orig_offset);
747 btrfs_set_file_extent_num_bytes(leaf, fi,
749 btrfs_mark_buffer_dirty(trans, leaf);
781 if (extent_mergeable(leaf, path->slots[0] + 1,
799 if (extent_mergeable(leaf, path->slots[0] - 1,
816 fi = btrfs_item_ptr(leaf, path->slots[0],
818 btrfs_set_file_extent_type(leaf, fi,
820 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
821 btrfs_mark_buffer_dirty(trans, leaf);
823 fi = btrfs_item_ptr(leaf, del_slot - 1,
825 btrfs_set_file_extent_type(leaf, fi,
827 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
828 btrfs_set_file_extent_num_bytes(leaf, fi,
830 btrfs_mark_buffer_dirty(trans, leaf);
2051 static int hole_mergeable(struct btrfs_inode *inode, struct extent_buffer *leaf,
2057 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
2060 btrfs_item_key_to_cpu(leaf, &key, slot);
2065 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2067 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG)
2070 if (btrfs_file_extent_disk_bytenr(leaf, fi))
2075 if (key.offset + btrfs_file_extent_num_bytes(leaf, fi) == start)
2086 struct extent_buffer *leaf;
2110 leaf = path->nodes[0];
2111 if (hole_mergeable(inode, leaf, path->slots[0] - 1, offset, end)) {
2115 fi = btrfs_item_ptr(leaf, path->slots[0],
2117 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) +
2119 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2120 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2121 btrfs_set_file_extent_offset(leaf, fi, 0);
2122 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
2123 btrfs_mark_buffer_dirty(trans, leaf);
2127 if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) {
2132 fi = btrfs_item_ptr(leaf, path->slots[0],
2134 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end -
2136 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2137 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2138 btrfs_set_file_extent_offset(leaf, fi, 0);
2139 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
2140 btrfs_mark_buffer_dirty(trans, leaf);
2258 struct extent_buffer *leaf;
2280 leaf = path->nodes[0];
2282 write_extent_buffer(leaf, extent_info->extent_buf,
2283 btrfs_item_ptr_offset(leaf, slot),
2285 extent = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2286 ASSERT(btrfs_file_extent_type(leaf, extent) != BTRFS_FILE_EXTENT_INLINE);
2287 btrfs_set_file_extent_offset(leaf, extent, extent_info->data_offset);
2288 btrfs_set_file_extent_num_bytes(leaf, extent, replace_len);
2290 btrfs_set_file_extent_generation(leaf, extent, trans->transid);
2291 btrfs_mark_buffer_dirty(trans, leaf);
3551 struct extent_buffer *leaf = path->nodes[0];
3556 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
3563 leaf = path->nodes[0];
3566 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
3608 extent = btrfs_item_ptr(leaf, path->slots[0],
3610 type = btrfs_file_extent_type(leaf, extent);
3619 btrfs_file_extent_disk_bytenr(leaf, extent) == 0)) {