Lines Matching refs:em
1061 struct extent_map *em; in submit_one_async_extent() local
1117 em = btrfs_create_io_em(inode, start, &file_extent, BTRFS_ORDERED_COMPRESSED); in submit_one_async_extent()
1118 if (IS_ERR(em)) { in submit_one_async_extent()
1119 ret = PTR_ERR(em); in submit_one_async_extent()
1122 btrfs_free_extent_map(em); in submit_one_async_extent()
1174 struct extent_map *em; in btrfs_get_extent_allocation_hint() local
1178 em = btrfs_search_extent_mapping(em_tree, start, num_bytes); in btrfs_get_extent_allocation_hint()
1179 if (em) { in btrfs_get_extent_allocation_hint()
1185 if (em->disk_bytenr >= EXTENT_MAP_LAST_BYTE) { in btrfs_get_extent_allocation_hint()
1186 btrfs_free_extent_map(em); in btrfs_get_extent_allocation_hint()
1187 em = btrfs_search_extent_mapping(em_tree, 0, 0); in btrfs_get_extent_allocation_hint()
1188 if (em && em->disk_bytenr < EXTENT_MAP_LAST_BYTE) in btrfs_get_extent_allocation_hint()
1189 alloc_hint = btrfs_extent_map_block_start(em); in btrfs_get_extent_allocation_hint()
1190 if (em) in btrfs_get_extent_allocation_hint()
1191 btrfs_free_extent_map(em); in btrfs_get_extent_allocation_hint()
1193 alloc_hint = btrfs_extent_map_block_start(em); in btrfs_get_extent_allocation_hint()
1194 btrfs_free_extent_map(em); in btrfs_get_extent_allocation_hint()
1230 struct extent_map *em; in cow_one_range() local
1258 em = btrfs_create_io_em(inode, file_offset, &file_extent, BTRFS_ORDERED_REGULAR); in cow_one_range()
1259 if (IS_ERR(em)) { in cow_one_range()
1260 ret = PTR_ERR(em); in cow_one_range()
1263 btrfs_free_extent_map(em); in cow_one_range()
1940 struct extent_map *em; in nocow_one_range() local
1942 em = btrfs_create_io_em(inode, file_pos, &nocow_args->file_extent, in nocow_one_range()
1944 if (IS_ERR(em)) { in nocow_one_range()
1945 ret = PTR_ERR(em); in nocow_one_range()
1948 btrfs_free_extent_map(em); in nocow_one_range()
2780 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
2784 em = btrfs_get_extent(inode, NULL, search_start, search_len); in btrfs_find_new_delalloc_bytes()
2785 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
2786 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
2788 if (em->disk_bytenr != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
2791 em_len = em->len; in btrfs_find_new_delalloc_bytes()
2792 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
2793 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
2801 search_start = btrfs_extent_map_end(em); in btrfs_find_new_delalloc_bytes()
2802 btrfs_free_extent_map(em); in btrfs_find_new_delalloc_bytes()
5300 struct extent_map *em = NULL; in btrfs_cont_expand() local
5325 em = btrfs_get_extent(inode, NULL, cur_offset, block_end - cur_offset); in btrfs_cont_expand()
5326 if (IS_ERR(em)) { in btrfs_cont_expand()
5327 ret = PTR_ERR(em); in btrfs_cont_expand()
5328 em = NULL; in btrfs_cont_expand()
5331 last_byte = min(btrfs_extent_map_end(em), block_end); in btrfs_cont_expand()
5335 if (!(em->flags & EXTENT_FLAG_PREALLOC)) { in btrfs_cont_expand()
5372 btrfs_free_extent_map(em); in btrfs_cont_expand()
5373 em = NULL; in btrfs_cont_expand()
5378 btrfs_free_extent_map(em); in btrfs_cont_expand()
7227 struct extent_map *em = NULL; in btrfs_get_extent() local
7231 em = btrfs_lookup_extent_mapping(em_tree, start, len); in btrfs_get_extent()
7234 if (em) { in btrfs_get_extent()
7235 if (em->start > start || btrfs_extent_map_end(em) <= start) in btrfs_get_extent()
7236 btrfs_free_extent_map(em); in btrfs_get_extent()
7237 else if (em->disk_bytenr == EXTENT_MAP_INLINE && folio) in btrfs_get_extent()
7238 btrfs_free_extent_map(em); in btrfs_get_extent()
7242 em = btrfs_alloc_extent_map(); in btrfs_get_extent()
7243 if (!em) { in btrfs_get_extent()
7247 em->start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7248 em->disk_bytenr = EXTENT_MAP_HOLE; in btrfs_get_extent()
7249 em->len = (u64)-1; in btrfs_get_extent()
7338 em->start = start; in btrfs_get_extent()
7339 em->len = found_key.offset - start; in btrfs_get_extent()
7340 em->disk_bytenr = EXTENT_MAP_HOLE; in btrfs_get_extent()
7344 btrfs_extent_item_to_extent_map(inode, path, item, em); in btrfs_get_extent()
7356 ASSERT(em->start == 0); in btrfs_get_extent()
7364 ASSERT(em->disk_bytenr == EXTENT_MAP_INLINE); in btrfs_get_extent()
7365 ASSERT(em->len == fs_info->sectorsize); in btrfs_get_extent()
7373 em->start = start; in btrfs_get_extent()
7374 em->len = len; in btrfs_get_extent()
7375 em->disk_bytenr = EXTENT_MAP_HOLE; in btrfs_get_extent()
7379 if (unlikely(em->start > start || btrfs_extent_map_end(em) <= start)) { in btrfs_get_extent()
7382 em->start, em->len, start, len); in btrfs_get_extent()
7388 ret = btrfs_add_extent_mapping(inode, &em, start, len); in btrfs_get_extent()
7393 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
7396 btrfs_free_extent_map(em); in btrfs_get_extent()
7399 return em; in btrfs_get_extent()
7528 struct extent_map *em; in btrfs_create_io_em() local
7568 em = btrfs_alloc_extent_map(); in btrfs_create_io_em()
7569 if (!em) in btrfs_create_io_em()
7572 em->start = start; in btrfs_create_io_em()
7573 em->len = file_extent->num_bytes; in btrfs_create_io_em()
7574 em->disk_bytenr = file_extent->disk_bytenr; in btrfs_create_io_em()
7575 em->disk_num_bytes = file_extent->disk_num_bytes; in btrfs_create_io_em()
7576 em->ram_bytes = file_extent->ram_bytes; in btrfs_create_io_em()
7577 em->generation = -1; in btrfs_create_io_em()
7578 em->offset = file_extent->offset; in btrfs_create_io_em()
7579 em->flags |= EXTENT_FLAG_PINNED; in btrfs_create_io_em()
7581 btrfs_extent_map_set_compression(em, file_extent->compression); in btrfs_create_io_em()
7583 ret = btrfs_replace_extent_map_range(inode, em, true); in btrfs_create_io_em()
7585 btrfs_free_extent_map(em); in btrfs_create_io_em()
7590 return em; in btrfs_create_io_em()
9215 struct extent_map *em; in __btrfs_prealloc_file_range() local
9270 em = btrfs_alloc_extent_map(); in __btrfs_prealloc_file_range()
9271 if (!em) { in __btrfs_prealloc_file_range()
9278 em->start = cur_offset; in __btrfs_prealloc_file_range()
9279 em->len = ins.offset; in __btrfs_prealloc_file_range()
9280 em->disk_bytenr = ins.objectid; in __btrfs_prealloc_file_range()
9281 em->offset = 0; in __btrfs_prealloc_file_range()
9282 em->disk_num_bytes = ins.offset; in __btrfs_prealloc_file_range()
9283 em->ram_bytes = ins.offset; in __btrfs_prealloc_file_range()
9284 em->flags |= EXTENT_FLAG_PREALLOC; in __btrfs_prealloc_file_range()
9285 em->generation = trans->transid; in __btrfs_prealloc_file_range()
9287 ret = btrfs_replace_extent_map_range(BTRFS_I(inode), em, true); in __btrfs_prealloc_file_range()
9288 btrfs_free_extent_map(em); in __btrfs_prealloc_file_range()
9717 struct extent_map *em; in btrfs_encoded_read() local
9781 em = btrfs_get_extent(inode, NULL, start, lockend - start + 1); in btrfs_encoded_read()
9782 if (IS_ERR(em)) { in btrfs_encoded_read()
9783 ret = PTR_ERR(em); in btrfs_encoded_read()
9787 if (em->disk_bytenr == EXTENT_MAP_INLINE) { in btrfs_encoded_read()
9788 u64 extent_start = em->start; in btrfs_encoded_read()
9794 btrfs_free_extent_map(em); in btrfs_encoded_read()
9795 em = NULL; in btrfs_encoded_read()
9806 encoded->len = min_t(u64, btrfs_extent_map_end(em), in btrfs_encoded_read()
9808 if (em->disk_bytenr == EXTENT_MAP_HOLE || in btrfs_encoded_read()
9809 (em->flags & EXTENT_FLAG_PREALLOC)) { in btrfs_encoded_read()
9814 } else if (btrfs_extent_map_is_compressed(em)) { in btrfs_encoded_read()
9815 *disk_bytenr = em->disk_bytenr; in btrfs_encoded_read()
9820 if (em->disk_num_bytes > count) { in btrfs_encoded_read()
9824 *disk_io_size = em->disk_num_bytes; in btrfs_encoded_read()
9825 count = em->disk_num_bytes; in btrfs_encoded_read()
9826 encoded->unencoded_len = em->ram_bytes; in btrfs_encoded_read()
9827 encoded->unencoded_offset = iocb->ki_pos - (em->start - em->offset); in btrfs_encoded_read()
9829 btrfs_extent_map_compression(em)); in btrfs_encoded_read()
9834 *disk_bytenr = btrfs_extent_map_block_start(em) + (start - em->start); in btrfs_encoded_read()
9847 btrfs_free_extent_map(em); in btrfs_encoded_read()
9848 em = NULL; in btrfs_encoded_read()
9863 btrfs_free_extent_map(em); in btrfs_encoded_read()
9894 struct extent_map *em; in btrfs_do_encoded_write() local
10073 em = btrfs_create_io_em(inode, start, &file_extent, BTRFS_ORDERED_COMPRESSED); in btrfs_do_encoded_write()
10074 if (IS_ERR(em)) { in btrfs_do_encoded_write()
10075 ret = PTR_ERR(em); in btrfs_do_encoded_write()
10078 btrfs_free_extent_map(em); in btrfs_do_encoded_write()