Lines Matching +full:pk +full:- +full:pk

1 // SPDX-License-Identifier: GPL-2.0
14 #include "disk-io.h"
20 #include "file-item.h"
22 #define __MAX_CSUM_ITEMS(r, size) ((unsigned long)(((BTRFS_LEAF_DATA_SIZE(r) - \
24 size) - 1))
51 spin_lock(&inode->lock); in btrfs_inode_safe_disk_i_size_write()
52 i_size = new_i_size ?: i_size_read(&inode->vfs_inode); in btrfs_inode_safe_disk_i_size_write()
53 if (!inode->file_extent_tree) { in btrfs_inode_safe_disk_i_size_write()
54 inode->disk_i_size = i_size; in btrfs_inode_safe_disk_i_size_write()
58 found = btrfs_find_contiguous_extent_bit(inode->file_extent_tree, 0, &start, in btrfs_inode_safe_disk_i_size_write()
64 inode->disk_i_size = i_size; in btrfs_inode_safe_disk_i_size_write()
66 spin_unlock(&inode->lock); in btrfs_inode_safe_disk_i_size_write()
86 if (!inode->file_extent_tree) in btrfs_inode_set_file_extent_range()
92 ASSERT(IS_ALIGNED(start + len, inode->root->fs_info->sectorsize)); in btrfs_inode_set_file_extent_range()
94 return btrfs_set_extent_bit(inode->file_extent_tree, start, start + len - 1, in btrfs_inode_set_file_extent_range()
115 if (!inode->file_extent_tree) in btrfs_inode_clear_file_extent_range()
121 ASSERT(IS_ALIGNED(start + len, inode->root->fs_info->sectorsize) || in btrfs_inode_clear_file_extent_range()
122 len == (u64)-1); in btrfs_inode_clear_file_extent_range()
124 return btrfs_clear_extent_bit(inode->file_extent_tree, start, in btrfs_inode_clear_file_extent_range()
125 start + len - 1, EXTENT_DIRTY, NULL); in btrfs_inode_clear_file_extent_range()
130 ASSERT(IS_ALIGNED(bytes, fs_info->sectorsize)); in bytes_to_csum_size()
132 return (bytes >> fs_info->sectorsize_bits) * fs_info->csum_size; in bytes_to_csum_size()
137 ASSERT(IS_ALIGNED(csum_size, fs_info->csum_size)); in csum_size_to_bytes()
139 return (csum_size / fs_info->csum_size) << fs_info->sectorsize_bits; in csum_size_to_bytes()
144 u32 max_csum_size = round_down(PAGE_SIZE - sizeof(struct btrfs_ordered_sum), in max_ordered_sum_bytes()
145 fs_info->csum_size); in max_ordered_sum_bytes()
171 return -ENOMEM; in btrfs_insert_hole_extent()
181 leaf = path->nodes[0]; in btrfs_insert_hole_extent()
182 item = btrfs_item_ptr(leaf, path->slots[0], in btrfs_insert_hole_extent()
189 btrfs_set_file_extent_generation(leaf, item, trans->transid); in btrfs_insert_hole_extent()
204 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_lookup_csum()
211 const u32 csum_size = fs_info->csum_size; in btrfs_lookup_csum()
220 leaf = path->nodes[0]; in btrfs_lookup_csum()
223 if (path->slots[0] == 0) in btrfs_lookup_csum()
225 path->slots[0]--; in btrfs_lookup_csum()
226 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_lookup_csum()
230 csum_offset = (bytenr - found_key.offset) >> in btrfs_lookup_csum()
231 fs_info->sectorsize_bits; in btrfs_lookup_csum()
232 csums_in_item = btrfs_item_size(leaf, path->slots[0]); in btrfs_lookup_csum()
236 ret = -EFBIG; in btrfs_lookup_csum()
242 item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item); in btrfs_lookup_csum()
248 ret = -ENOENT; in btrfs_lookup_csum()
258 int ins_len = mod < 0 ? -1 : 0; in btrfs_lookup_file_extent()
284 const u32 sectorsize = fs_info->sectorsize; in search_csum_tree()
285 const u32 csum_size = fs_info->csum_size; in search_csum_tree()
295 if (path->nodes[0]) { in search_csum_tree()
296 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in search_csum_tree()
298 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in search_csum_tree()
299 itemsize = btrfs_item_size(path->nodes[0], path->slots[0]); in search_csum_tree()
316 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in search_csum_tree()
317 itemsize = btrfs_item_size(path->nodes[0], path->slots[0]); in search_csum_tree()
324 ret = (min(csum_start + csum_len, disk_bytenr + len) - in search_csum_tree()
325 disk_bytenr) >> fs_info->sectorsize_bits; in search_csum_tree()
326 read_extent_buffer(path->nodes[0], dst, (unsigned long)item, in search_csum_tree()
329 if (ret == -ENOENT || ret == -EFBIG) in search_csum_tree()
341 struct btrfs_inode *inode = bbio->inode; in btrfs_lookup_bio_sums()
342 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_lookup_bio_sums()
343 struct bio *bio = &bbio->bio; in btrfs_lookup_bio_sums()
345 const u32 sectorsize = fs_info->sectorsize; in btrfs_lookup_bio_sums()
346 const u32 csum_size = fs_info->csum_size; in btrfs_lookup_bio_sums()
347 u32 orig_len = bio->bi_iter.bi_size; in btrfs_lookup_bio_sums()
348 u64 orig_disk_bytenr = bio->bi_iter.bi_sector << SECTOR_SHIFT; in btrfs_lookup_bio_sums()
349 const unsigned int nblocks = orig_len >> fs_info->sectorsize_bits; in btrfs_lookup_bio_sums()
353 if ((inode->flags & BTRFS_INODE_NODATASUM) || in btrfs_lookup_bio_sums()
354 test_bit(BTRFS_FS_STATE_NO_DATA_CSUMS, &fs_info->fs_state)) in btrfs_lookup_bio_sums()
361 * - All our csums should only be in csum tree in btrfs_lookup_bio_sums()
364 * - No need to bother any other info from bvec in btrfs_lookup_bio_sums()
372 return -ENOMEM; in btrfs_lookup_bio_sums()
375 bbio->csum = kmalloc_array(nblocks, csum_size, GFP_NOFS); in btrfs_lookup_bio_sums()
376 if (!bbio->csum) in btrfs_lookup_bio_sums()
377 return -ENOMEM; in btrfs_lookup_bio_sums()
379 bbio->csum = bbio->csum_inline; in btrfs_lookup_bio_sums()
386 if (nblocks > fs_info->csums_per_leaf) in btrfs_lookup_bio_sums()
387 path->reada = READA_FORWARD; in btrfs_lookup_bio_sums()
396 path->search_commit_root = 1; in btrfs_lookup_bio_sums()
397 path->skip_locking = 1; in btrfs_lookup_bio_sums()
424 if (bbio->csum_search_commit_root) { in btrfs_lookup_bio_sums()
425 path->search_commit_root = 1; in btrfs_lookup_bio_sums()
426 path->skip_locking = 1; in btrfs_lookup_bio_sums()
427 down_read(&fs_info->commit_root_sem); in btrfs_lookup_bio_sums()
433 u8 *csum_dst = bbio->csum + in btrfs_lookup_bio_sums()
434 (bio_offset >> fs_info->sectorsize_bits) * csum_size; in btrfs_lookup_bio_sums()
437 orig_len - bio_offset, csum_dst); in btrfs_lookup_bio_sums()
440 if (bbio->csum != bbio->csum_inline) in btrfs_lookup_bio_sums()
441 kfree(bbio->csum); in btrfs_lookup_bio_sums()
442 bbio->csum = NULL; in btrfs_lookup_bio_sums()
460 if (btrfs_is_data_reloc_root(inode->root)) { in btrfs_lookup_bio_sums()
461 u64 file_offset = bbio->file_offset + bio_offset; in btrfs_lookup_bio_sums()
463 btrfs_set_extent_bit(&inode->io_tree, file_offset, in btrfs_lookup_bio_sums()
464 file_offset + sectorsize - 1, in btrfs_lookup_bio_sums()
475 if (bbio->csum_search_commit_root) in btrfs_lookup_bio_sums()
476 up_read(&fs_info->commit_root_sem); in btrfs_lookup_bio_sums()
489 * @nowait: Indicate if the search must be non-blocking or not.
497 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_lookup_csums_list()
506 ASSERT(IS_ALIGNED(start, fs_info->sectorsize) && in btrfs_lookup_csums_list()
507 IS_ALIGNED(end + 1, fs_info->sectorsize)); in btrfs_lookup_csums_list()
511 return -ENOMEM; in btrfs_lookup_csums_list()
513 path->nowait = nowait; in btrfs_lookup_csums_list()
522 if (ret > 0 && path->slots[0] > 0) { in btrfs_lookup_csums_list()
523 leaf = path->nodes[0]; in btrfs_lookup_csums_list()
524 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1); in btrfs_lookup_csums_list()
530 * |<- search range ->| in btrfs_lookup_csums_list()
531 * |<- csum item ->| in btrfs_lookup_csums_list()
534 * |<- search range ->| in btrfs_lookup_csums_list()
535 * |<- csum item ->| in btrfs_lookup_csums_list()
543 if (bytes_to_csum_size(fs_info, start - key.offset) < in btrfs_lookup_csums_list()
544 btrfs_item_size(leaf, path->slots[0] - 1)) in btrfs_lookup_csums_list()
545 path->slots[0]--; in btrfs_lookup_csums_list()
552 leaf = path->nodes[0]; in btrfs_lookup_csums_list()
553 if (path->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_lookup_csums_list()
559 leaf = path->nodes[0]; in btrfs_lookup_csums_list()
562 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_lookup_csums_list()
572 btrfs_item_size(leaf, path->slots[0])); in btrfs_lookup_csums_list()
574 path->slots[0]++; in btrfs_lookup_csums_list()
583 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in btrfs_lookup_csums_list()
589 size = min_t(size_t, csum_end - start, in btrfs_lookup_csums_list()
594 ret = -ENOMEM; in btrfs_lookup_csums_list()
598 sums->logical = start; in btrfs_lookup_csums_list()
599 sums->len = size; in btrfs_lookup_csums_list()
601 offset = bytes_to_csum_size(fs_info, start - key.offset); in btrfs_lookup_csums_list()
603 read_extent_buffer(path->nodes[0], in btrfs_lookup_csums_list()
604 sums->sums, in btrfs_lookup_csums_list()
609 list_add_tail(&sums->list, list); in btrfs_lookup_csums_list()
611 path->slots[0]++; in btrfs_lookup_csums_list()
642 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_lookup_csums_bitmap()
650 ASSERT(IS_ALIGNED(start, fs_info->sectorsize) && in btrfs_lookup_csums_bitmap()
651 IS_ALIGNED(end + 1, fs_info->sectorsize)); in btrfs_lookup_csums_bitmap()
656 return -ENOMEM; in btrfs_lookup_csums_bitmap()
661 if (path->nodes[0]) { in btrfs_lookup_csums_bitmap()
662 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in btrfs_lookup_csums_bitmap()
678 if (ret > 0 && path->slots[0] > 0) { in btrfs_lookup_csums_bitmap()
679 leaf = path->nodes[0]; in btrfs_lookup_csums_bitmap()
680 btrfs_item_key_to_cpu(leaf, &key, path->slots[0] - 1); in btrfs_lookup_csums_bitmap()
686 * |<- search range ->| in btrfs_lookup_csums_bitmap()
687 * |<- csum item ->| in btrfs_lookup_csums_bitmap()
690 * |<- search range ->| in btrfs_lookup_csums_bitmap()
691 * |<- csum item ->| in btrfs_lookup_csums_bitmap()
699 if (bytes_to_csum_size(fs_info, start - key.offset) < in btrfs_lookup_csums_bitmap()
700 btrfs_item_size(leaf, path->slots[0] - 1)) in btrfs_lookup_csums_bitmap()
701 path->slots[0]--; in btrfs_lookup_csums_bitmap()
709 leaf = path->nodes[0]; in btrfs_lookup_csums_bitmap()
710 if (path->slots[0] >= btrfs_header_nritems(leaf)) { in btrfs_lookup_csums_bitmap()
716 leaf = path->nodes[0]; in btrfs_lookup_csums_bitmap()
719 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_lookup_csums_bitmap()
729 btrfs_item_size(leaf, path->slots[0])); in btrfs_lookup_csums_bitmap()
731 path->slots[0]++; in btrfs_lookup_csums_bitmap()
736 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in btrfs_lookup_csums_bitmap()
742 start - orig_start); in btrfs_lookup_csums_bitmap()
744 size = min_t(size_t, csum_end - start, end + 1 - start); in btrfs_lookup_csums_bitmap()
746 offset = bytes_to_csum_size(fs_info, start - key.offset); in btrfs_lookup_csums_bitmap()
748 read_extent_buffer(path->nodes[0], csum_dest, in btrfs_lookup_csums_bitmap()
753 (start - orig_start) >> fs_info->sectorsize_bits, in btrfs_lookup_csums_bitmap()
754 size >> fs_info->sectorsize_bits); in btrfs_lookup_csums_bitmap()
758 path->slots[0]++; in btrfs_lookup_csums_bitmap()
772 struct btrfs_ordered_extent *ordered = bbio->ordered; in btrfs_csum_one_bio()
773 struct btrfs_inode *inode = bbio->inode; in btrfs_csum_one_bio()
774 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_csum_one_bio()
775 SHASH_DESC_ON_STACK(shash, fs_info->csum_shash); in btrfs_csum_one_bio()
776 struct bio *bio = &bbio->bio; in btrfs_csum_one_bio()
778 struct bvec_iter iter = bio->bi_iter; in btrfs_csum_one_bio()
780 const u32 blocksize = fs_info->sectorsize; in btrfs_csum_one_bio()
785 sums = kvzalloc(btrfs_ordered_sum_size(fs_info, bio->bi_iter.bi_size), in btrfs_csum_one_bio()
790 return -ENOMEM; in btrfs_csum_one_bio()
792 sums->len = bio->bi_iter.bi_size; in btrfs_csum_one_bio()
793 INIT_LIST_HEAD(&sums->list); in btrfs_csum_one_bio()
795 sums->logical = bio->bi_iter.bi_sector << SECTOR_SHIFT; in btrfs_csum_one_bio()
798 shash->tfm = fs_info->csum_shash; in btrfs_csum_one_bio()
801 btrfs_calculate_block_csum(fs_info, paddr, sums->sums + index); in btrfs_csum_one_bio()
802 index += fs_info->csum_size; in btrfs_csum_one_bio()
805 bbio->sums = sums; in btrfs_csum_one_bio()
817 bbio->sums = kmalloc(sizeof(*bbio->sums), GFP_NOFS); in btrfs_alloc_dummy_sum()
818 if (!bbio->sums) in btrfs_alloc_dummy_sum()
819 return -ENOMEM; in btrfs_alloc_dummy_sum()
820 bbio->sums->len = bbio->bio.bi_iter.bi_size; in btrfs_alloc_dummy_sum()
821 bbio->sums->logical = bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT; in btrfs_alloc_dummy_sum()
822 btrfs_add_ordered_sum(bbio->ordered, bbio->sums); in btrfs_alloc_dummy_sum()
843 struct btrfs_fs_info *fs_info = trans->fs_info; in truncate_one_csum()
845 const u32 csum_size = fs_info->csum_size; in truncate_one_csum()
848 u32 blocksize_bits = fs_info->sectorsize_bits; in truncate_one_csum()
850 leaf = path->nodes[0]; in truncate_one_csum()
851 csum_end = btrfs_item_size(leaf, path->slots[0]) / csum_size; in truncate_one_csum()
853 csum_end += key->offset; in truncate_one_csum()
855 if (key->offset < bytenr && csum_end <= end_byte) { in truncate_one_csum()
857 * [ bytenr - len ] in truncate_one_csum()
862 u32 new_size = (bytenr - key->offset) >> blocksize_bits; in truncate_one_csum()
865 } else if (key->offset >= bytenr && csum_end > end_byte && in truncate_one_csum()
866 end_byte > key->offset) { in truncate_one_csum()
868 * [ bytenr - len ] in truncate_one_csum()
873 u32 new_size = (csum_end - end_byte) >> blocksize_bits; in truncate_one_csum()
878 key->offset = end_byte; in truncate_one_csum()
891 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_del_csums()
898 const u32 csum_size = fs_info->csum_size; in btrfs_del_csums()
899 u32 blocksize_bits = fs_info->sectorsize_bits; in btrfs_del_csums()
906 return -ENOMEM; in btrfs_del_csums()
911 key.offset = end_byte - 1; in btrfs_del_csums()
913 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_del_csums()
916 if (path->slots[0] == 0) in btrfs_del_csums()
918 path->slots[0]--; in btrfs_del_csums()
923 leaf = path->nodes[0]; in btrfs_del_csums()
924 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_del_csums()
934 csum_end = btrfs_item_size(leaf, path->slots[0]) / csum_size; in btrfs_del_csums()
951 if (key.offset > bytenr && path->slots[0] > 0) { in btrfs_del_csums()
952 int slot = path->slots[0] - 1; in btrfs_del_csums()
955 struct btrfs_key pk; in btrfs_del_csums() local
957 btrfs_item_key_to_cpu(leaf, &pk, slot); in btrfs_del_csums()
958 if (pk.offset < bytenr || in btrfs_del_csums()
959 pk.type != BTRFS_EXTENT_CSUM_KEY || in btrfs_del_csums()
960 pk.objectid != in btrfs_del_csums()
963 path->slots[0] = slot; in btrfs_del_csums()
965 key.offset = pk.offset; in btrfs_del_csums()
966 slot--; in btrfs_del_csums()
970 path->slots[0], del_nr); in btrfs_del_csums()
980 * [ bytenr - len ] in btrfs_del_csums()
997 offset = (bytenr - key.offset) >> blocksize_bits; in btrfs_del_csums()
1003 path->slots[0]); in btrfs_del_csums()
1010 * btrfs_split_item returns -EAGAIN when the in btrfs_del_csums()
1014 if (unlikely(ret && ret != -EAGAIN)) { in btrfs_del_csums()
1020 key.offset = end_byte - 1; in btrfs_del_csums()
1035 const u32 nritems = btrfs_header_nritems(path->nodes[0]); in find_next_csum_offset()
1037 int slot = path->slots[0] + 1; in find_next_csum_offset()
1045 *next_offset = (u64)-1; in find_next_csum_offset()
1048 slot = path->slots[0]; in find_next_csum_offset()
1051 btrfs_item_key_to_cpu(path->nodes[0], &found_key, slot); in find_next_csum_offset()
1055 *next_offset = (u64)-1; in find_next_csum_offset()
1066 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_csum_file_blocks()
1081 const u32 csum_size = fs_info->csum_size; in btrfs_csum_file_blocks()
1085 return -ENOMEM; in btrfs_csum_file_blocks()
1087 next_offset = (u64)-1; in btrfs_csum_file_blocks()
1089 bytenr = sums->logical + total_bytes; in btrfs_csum_file_blocks()
1097 leaf = path->nodes[0]; in btrfs_csum_file_blocks()
1098 item_end = btrfs_item_ptr(leaf, path->slots[0], in btrfs_csum_file_blocks()
1101 btrfs_item_size(leaf, path->slots[0])); in btrfs_csum_file_blocks()
1105 if (ret != -EFBIG && ret != -ENOENT) in btrfs_csum_file_blocks()
1108 if (ret == -EFBIG) { in btrfs_csum_file_blocks()
1111 leaf = path->nodes[0]; in btrfs_csum_file_blocks()
1112 item_size = btrfs_item_size(leaf, path->slots[0]); in btrfs_csum_file_blocks()
1138 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_csum_file_blocks()
1139 csum_offset = (bytenr - found_key.offset) >> in btrfs_csum_file_blocks()
1140 fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1145 path->search_for_extension = 1; in btrfs_csum_file_blocks()
1148 path->search_for_extension = 0; in btrfs_csum_file_blocks()
1153 if (path->slots[0] == 0) in btrfs_csum_file_blocks()
1155 path->slots[0]--; in btrfs_csum_file_blocks()
1158 leaf = path->nodes[0]; in btrfs_csum_file_blocks()
1159 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); in btrfs_csum_file_blocks()
1160 csum_offset = (bytenr - found_key.offset) >> fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1169 if (csum_offset == btrfs_item_size(leaf, path->slots[0]) / in btrfs_csum_file_blocks()
1175 tmp = sums->len - total_bytes; in btrfs_csum_file_blocks()
1176 tmp >>= fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1188 * covered by a prealloc extent - this is done at in btrfs_csum_file_blocks()
1196 * item - it is not worth the complexity of releasing the path, in btrfs_csum_file_blocks()
1202 if (path->slots[0] + 1 >= in btrfs_csum_file_blocks()
1203 btrfs_header_nritems(path->nodes[0])) { in btrfs_csum_file_blocks()
1215 tmp = (next_offset - bytenr) >> fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1224 diff = diff - btrfs_item_size(leaf, path->slots[0]); in btrfs_csum_file_blocks()
1240 tmp = sums->len - total_bytes; in btrfs_csum_file_blocks()
1241 tmp >>= fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1242 tmp = min(tmp, (next_offset - file_key.offset) >> in btrfs_csum_file_blocks()
1243 fs_info->sectorsize_bits); in btrfs_csum_file_blocks()
1255 leaf = path->nodes[0]; in btrfs_csum_file_blocks()
1257 item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item); in btrfs_csum_file_blocks()
1259 btrfs_item_size(leaf, path->slots[0])); in btrfs_csum_file_blocks()
1263 ins_size = (u32)(sums->len - total_bytes) >> fs_info->sectorsize_bits; in btrfs_csum_file_blocks()
1265 ins_size = min_t(u32, (unsigned long)item_end - (unsigned long)item, in btrfs_csum_file_blocks()
1267 write_extent_buffer(leaf, sums->sums + index, (unsigned long)item, in btrfs_csum_file_blocks()
1272 total_bytes += ins_size * fs_info->sectorsize; in btrfs_csum_file_blocks()
1274 if (total_bytes < sums->len) { in btrfs_csum_file_blocks()
1288 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_extent_item_to_extent_map()
1289 struct btrfs_root *root = inode->root; in btrfs_extent_item_to_extent_map()
1290 struct extent_buffer *leaf = path->nodes[0]; in btrfs_extent_item_to_extent_map()
1291 const int slot = path->slots[0]; in btrfs_extent_item_to_extent_map()
1299 em->ram_bytes = btrfs_file_extent_ram_bytes(leaf, fi); in btrfs_extent_item_to_extent_map()
1300 em->generation = btrfs_file_extent_generation(leaf, fi); in btrfs_extent_item_to_extent_map()
1305 em->start = extent_start; in btrfs_extent_item_to_extent_map()
1306 em->len = btrfs_file_extent_end(path) - extent_start; in btrfs_extent_item_to_extent_map()
1308 em->disk_bytenr = EXTENT_MAP_HOLE; in btrfs_extent_item_to_extent_map()
1309 em->disk_num_bytes = 0; in btrfs_extent_item_to_extent_map()
1310 em->offset = 0; in btrfs_extent_item_to_extent_map()
1313 em->disk_bytenr = disk_bytenr; in btrfs_extent_item_to_extent_map()
1314 em->disk_num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); in btrfs_extent_item_to_extent_map()
1315 em->offset = btrfs_file_extent_offset(leaf, fi); in btrfs_extent_item_to_extent_map()
1320 * Older kernels can create regular non-hole data in btrfs_extent_item_to_extent_map()
1325 em->ram_bytes = em->disk_num_bytes; in btrfs_extent_item_to_extent_map()
1327 em->flags |= EXTENT_FLAG_PREALLOC; in btrfs_extent_item_to_extent_map()
1330 /* Tree-checker has ensured this. */ in btrfs_extent_item_to_extent_map()
1333 em->disk_bytenr = EXTENT_MAP_INLINE; in btrfs_extent_item_to_extent_map()
1334 em->start = 0; in btrfs_extent_item_to_extent_map()
1335 em->len = fs_info->sectorsize; in btrfs_extent_item_to_extent_map()
1336 em->offset = 0; in btrfs_extent_item_to_extent_map()
1353 const struct extent_buffer *leaf = path->nodes[0]; in btrfs_file_extent_end()
1354 const int slot = path->slots[0]; in btrfs_file_extent_end()
1364 end = leaf->fs_info->sectorsize; in btrfs_file_extent_end()