Lines Matching defs:leaf

684 	struct extent_buffer *leaf;
721 leaf = path->nodes[0];
722 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1);
730 leaf = path->nodes[0];
731 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
741 leaf = path->nodes[0];
745 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
758 fi = btrfs_item_ptr(leaf, path->slots[0],
760 extent_type = btrfs_file_extent_type(leaf, fi);
764 disk_bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
765 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
766 extent_offset = btrfs_file_extent_offset(leaf, fi);
768 btrfs_file_extent_num_bytes(leaf, fi);
771 btrfs_file_extent_ram_bytes(leaf, fi);
826 leaf = path->nodes[0];
827 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
829 btrfs_set_file_extent_num_bytes(leaf, fi,
832 fi = btrfs_item_ptr(leaf, path->slots[0],
836 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
837 btrfs_set_file_extent_num_bytes(leaf, fi,
839 btrfs_mark_buffer_dirty(leaf);
875 btrfs_set_file_extent_offset(leaf, fi, extent_offset);
876 btrfs_set_file_extent_num_bytes(leaf, fi,
878 btrfs_mark_buffer_dirty(leaf);
896 btrfs_set_file_extent_num_bytes(leaf, fi,
898 btrfs_mark_buffer_dirty(leaf);
945 if (path->slots[0] + 1 < btrfs_header_nritems(leaf)) {
970 * if items are move off from our leaf to its immediate left or
980 leaf = path->nodes[0];
982 * If btrfs_del_items() was called, it might have deleted a leaf, in
989 btrfs_leaf_free_space(leaf) >=
995 if (!del_nr && path->slots[0] < btrfs_header_nritems(leaf)) {
998 btrfs_item_key_to_cpu(leaf, &slot_key, path->slots[0]);
1029 static int extent_mergeable(struct extent_buffer *leaf, int slot,
1037 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
1040 btrfs_item_key_to_cpu(leaf, &key, slot);
1044 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
1045 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG ||
1046 btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr ||
1047 btrfs_file_extent_offset(leaf, fi) != key.offset - orig_offset ||
1048 btrfs_file_extent_compression(leaf, fi) ||
1049 btrfs_file_extent_encryption(leaf, fi) ||
1050 btrfs_file_extent_other_encoding(leaf, fi))
1053 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
1074 struct extent_buffer *leaf;
1109 leaf = path->nodes[0];
1110 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
1117 fi = btrfs_item_ptr(leaf, path->slots[0],
1119 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_PREALLOC) {
1124 extent_end = key.offset + btrfs_file_extent_num_bytes(leaf, fi);
1131 bytenr = btrfs_file_extent_disk_bytenr(leaf, fi);
1132 num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
1133 orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi);
1139 if (extent_mergeable(leaf, path->slots[0] - 1,
1144 fi = btrfs_item_ptr(leaf, path->slots[0],
1146 btrfs_set_file_extent_generation(leaf, fi,
1148 btrfs_set_file_extent_num_bytes(leaf, fi,
1150 btrfs_set_file_extent_offset(leaf, fi,
1152 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
1154 btrfs_set_file_extent_generation(leaf, fi,
1156 btrfs_set_file_extent_num_bytes(leaf, fi,
1158 btrfs_mark_buffer_dirty(leaf);
1166 if (extent_mergeable(leaf, path->slots[0] + 1,
1169 fi = btrfs_item_ptr(leaf, path->slots[0],
1171 btrfs_set_file_extent_num_bytes(leaf, fi,
1173 btrfs_set_file_extent_generation(leaf, fi,
1179 fi = btrfs_item_ptr(leaf, path->slots[0],
1181 btrfs_set_file_extent_generation(leaf, fi,
1183 btrfs_set_file_extent_num_bytes(leaf, fi,
1185 btrfs_set_file_extent_offset(leaf, fi,
1187 btrfs_mark_buffer_dirty(leaf);
1207 leaf = path->nodes[0];
1208 fi = btrfs_item_ptr(leaf, path->slots[0] - 1,
1210 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
1211 btrfs_set_file_extent_num_bytes(leaf, fi,
1214 fi = btrfs_item_ptr(leaf, path->slots[0],
1217 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
1218 btrfs_set_file_extent_offset(leaf, fi, split - orig_offset);
1219 btrfs_set_file_extent_num_bytes(leaf, fi,
1221 btrfs_mark_buffer_dirty(leaf);
1252 if (extent_mergeable(leaf, path->slots[0] + 1,
1270 if (extent_mergeable(leaf, path->slots[0] - 1,
1287 fi = btrfs_item_ptr(leaf, path->slots[0],
1289 btrfs_set_file_extent_type(leaf, fi,
1291 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
1292 btrfs_mark_buffer_dirty(leaf);
1294 fi = btrfs_item_ptr(leaf, del_slot - 1,
1296 btrfs_set_file_extent_type(leaf, fi,
1298 btrfs_set_file_extent_generation(leaf, fi, trans->transid);
1299 btrfs_set_file_extent_num_bytes(leaf, fi,
1301 btrfs_mark_buffer_dirty(leaf);
2314 static int hole_mergeable(struct btrfs_inode *inode, struct extent_buffer *leaf,
2320 if (slot < 0 || slot >= btrfs_header_nritems(leaf))
2323 btrfs_item_key_to_cpu(leaf, &key, slot);
2328 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2330 if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG)
2333 if (btrfs_file_extent_disk_bytenr(leaf, fi))
2338 if (key.offset + btrfs_file_extent_num_bytes(leaf, fi) == start)
2349 struct extent_buffer *leaf;
2374 leaf = path->nodes[0];
2375 if (hole_mergeable(inode, leaf, path->slots[0] - 1, offset, end)) {
2379 fi = btrfs_item_ptr(leaf, path->slots[0],
2381 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) +
2383 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2384 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2385 btrfs_set_file_extent_offset(leaf, fi, 0);
2386 btrfs_mark_buffer_dirty(leaf);
2390 if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) {
2395 fi = btrfs_item_ptr(leaf, path->slots[0],
2397 num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end -
2399 btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
2400 btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes);
2401 btrfs_set_file_extent_offset(leaf, fi, 0);
2402 btrfs_mark_buffer_dirty(leaf);
2526 struct extent_buffer *leaf;
2546 leaf = path->nodes[0];
2548 write_extent_buffer(leaf, extent_info->extent_buf,
2549 btrfs_item_ptr_offset(leaf, slot),
2551 extent = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
2552 ASSERT(btrfs_file_extent_type(leaf, extent) != BTRFS_FILE_EXTENT_INLINE);
2553 btrfs_set_file_extent_offset(leaf, extent, extent_info->data_offset);
2554 btrfs_set_file_extent_num_bytes(leaf, extent, replace_len);
2556 btrfs_set_file_extent_generation(leaf, extent, trans->transid);
2557 btrfs_mark_buffer_dirty(leaf);