Lines Matching defs:leaf
205 struct extent_buffer *leaf;
255 leaf = path->nodes[0];
256 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1);
263 leaf = path->nodes[0];
264 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
273 leaf = path->nodes[0];
277 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
290 fi = btrfs_item_ptr(leaf, path->slots[0],
292 extent_type = btrfs_file_extent_type(leaf, fi);
296 disk_bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
297 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
298 extent_offset = btrfs_file_extent_offset(leaf, fi);
300 btrfs_file_extent_num_bytes(leaf, fi);
303 btrfs_file_extent_ram_bytes(leaf, fi);
358 leaf = path->nodes[0];
359 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
361 btrfs_set_file_extent_num_bytes(leaf, fi,
364 fi = btrfs_item_ptr(leaf, path->slots[0],
368 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
369 btrfs_set_file_extent_num_bytes(leaf, fi,
371 btrfs_mark_buffer_dirty(trans, leaf);
411 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
412 btrfs_set_file_extent_num_bytes(leaf, fi,
414 btrfs_mark_buffer_dirty(trans, leaf);
432 btrfs_set_file_extent_num_bytes(leaf, fi,
434 btrfs_mark_buffer_dirty(trans, leaf);
483 if (path->slots[0] + 1 < btrfs_header_nritems(leaf)) {
508 * if items are move off from our leaf to its immediate left or
518 leaf = path->nodes[0];
520 * If btrfs_del_items() was called, it might have deleted a leaf, in
526 btrfs_leaf_free_space(leaf) >=
532 if (!del_nr && path->slots[0] < btrfs_header_nritems(leaf)) {
535 btrfs_item_key_to_cpu(leaf, &slot_key, path->slots[0]);
554 static int extent_mergeable(struct extent_buffer *leaf, int slot,
562 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
565 btrfs_item_key_to_cpu(leaf, &key, slot);
569 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
570 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG ||
571 btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr ||
572 btrfs_file_extent_offset(leaf, fi) != key.offset - orig_offset ||
573 btrfs_file_extent_compression(leaf, fi) ||
574 btrfs_file_extent_encryption(leaf, fi) ||
575 btrfs_file_extent_other_encoding(leaf, fi))
578 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
598 struct extent_buffer *leaf;
633 leaf = path->nodes[0];
634 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
641 fi = btrfs_item_ptr(leaf, path->slots[0],
643 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_PREALLOC) {
648 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
655 bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
656 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
657 orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi);
663 if (extent_mergeable(leaf, path->slots[0] - 1,
668 fi = btrfs_item_ptr(leaf, path->slots[0],
670 btrfs_set_file_extent_generation(leaf, fi,
672 btrfs_set_file_extent_num_bytes(leaf, fi,
674 btrfs_set_file_extent_offset(leaf, fi,
676 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
678 btrfs_set_file_extent_generation(leaf, fi,
680 btrfs_set_file_extent_num_bytes(leaf, fi,
682 btrfs_mark_buffer_dirty(trans, leaf);
690 if (extent_mergeable(leaf, path->slots[0] + 1,
693 fi = btrfs_item_ptr(leaf, path->slots[0],
695 btrfs_set_file_extent_num_bytes(leaf, fi,
697 btrfs_set_file_extent_generation(leaf, fi,
703 fi = btrfs_item_ptr(leaf, path->slots[0],
705 btrfs_set_file_extent_generation(leaf, fi,
707 btrfs_set_file_extent_num_bytes(leaf, fi,
709 btrfs_set_file_extent_offset(leaf, fi,
711 btrfs_mark_buffer_dirty(trans, leaf);
731 leaf = path->nodes[0];
732 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
734 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
735 btrfs_set_file_extent_num_bytes(leaf, fi,
738 fi = btrfs_item_ptr(leaf, path->slots[0],
741 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
742 btrfs_set_file_extent_offset(leaf, fi, split - orig_offset);
743 btrfs_set_file_extent_num_bytes(leaf, fi,
745 btrfs_mark_buffer_dirty(trans, leaf);
777 if (extent_mergeable(leaf, path->slots[0] + 1,
795 if (extent_mergeable(leaf, path->slots[0] - 1,
812 fi = btrfs_item_ptr(leaf, path->slots[0],
814 btrfs_set_file_extent_type(leaf, fi,
816 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
817 btrfs_mark_buffer_dirty(trans, leaf);
819 fi = btrfs_item_ptr(leaf, del_slot - 1,
821 btrfs_set_file_extent_type(leaf, fi,
823 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
824 btrfs_set_file_extent_num_bytes(leaf, fi,
826 btrfs_mark_buffer_dirty(trans, leaf);
2035 static int hole_mergeable(struct btrfs_inode *inode, struct extent_buffer *leaf,
2041 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
2044 btrfs_item_key_to_cpu(leaf, &key, slot);
2049 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2051 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG)
2054 if (btrfs_file_extent_disk_bytenr(leaf, fi))
2059 if (key.offset + btrfs_file_extent_num_bytes(leaf, fi) == start)
2070 struct extent_buffer *leaf;
2094 leaf = path->nodes[0];
2095 if (hole_mergeable(inode, leaf, path->slots[0] - 1, offset, end)) {
2099 fi = btrfs_item_ptr(leaf, path->slots[0],
2101 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) +
2103 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2104 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2105 btrfs_set_file_extent_offset(leaf, fi, 0);
2106 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
2107 btrfs_mark_buffer_dirty(trans, leaf);
2111 if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) {
2116 fi = btrfs_item_ptr(leaf, path->slots[0],
2118 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end -
2120 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2121 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2122 btrfs_set_file_extent_offset(leaf, fi, 0);
2123 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
2124 btrfs_mark_buffer_dirty(trans, leaf);
2243 struct extent_buffer *leaf;
2265 leaf = path->nodes[0];
2267 write_extent_buffer(leaf, extent_info->extent_buf,
2268 btrfs_item_ptr_offset(leaf, slot),
2270 extent = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2271 ASSERT(btrfs_file_extent_type(leaf, extent) != BTRFS_FILE_EXTENT_INLINE);
2272 btrfs_set_file_extent_offset(leaf, extent, extent_info->data_offset);
2273 btrfs_set_file_extent_num_bytes(leaf, extent, replace_len);
2275 btrfs_set_file_extent_generation(leaf, extent, trans->transid);
2276 btrfs_mark_buffer_dirty(trans, leaf);
3536 struct extent_buffer *leaf = path->nodes[0];
3541 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
3548 leaf = path->nodes[0];
3551 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
3593 extent = btrfs_item_ptr(leaf, path->slots[0],
3595 type = btrfs_file_extent_type(leaf, extent);
3604 btrfs_file_extent_disk_bytenr(leaf, extent) == 0)) {