Lines Matching refs:em
964 struct extent_map *em; in submit_one_async_extent() local
1003 em = create_io_em(inode, start, in submit_one_async_extent()
1012 if (IS_ERR(em)) { in submit_one_async_extent()
1013 ret = PTR_ERR(em); in submit_one_async_extent()
1016 free_extent_map(em); in submit_one_async_extent()
1108 struct extent_map *em; in get_extent_allocation_hint() local
1112 em = search_extent_mapping(em_tree, start, num_bytes); in get_extent_allocation_hint()
1113 if (em) { in get_extent_allocation_hint()
1119 if (em->block_start >= EXTENT_MAP_LAST_BYTE) { in get_extent_allocation_hint()
1120 free_extent_map(em); in get_extent_allocation_hint()
1121 em = search_extent_mapping(em_tree, 0, 0); in get_extent_allocation_hint()
1122 if (em && em->block_start < EXTENT_MAP_LAST_BYTE) in get_extent_allocation_hint()
1123 alloc_hint = em->block_start; in get_extent_allocation_hint()
1124 if (em) in get_extent_allocation_hint()
1125 free_extent_map(em); in get_extent_allocation_hint()
1127 alloc_hint = em->block_start; in get_extent_allocation_hint()
1128 free_extent_map(em); in get_extent_allocation_hint()
1187 struct extent_map *em; in cow_file_range() local
1285 em = create_io_em(inode, start, ins.offset, /* len */ in cow_file_range()
1293 if (IS_ERR(em)) { in cow_file_range()
1294 ret = PTR_ERR(em); in cow_file_range()
1297 free_extent_map(em); in cow_file_range()
2083 struct extent_map *em; in run_delalloc_nocow() local
2085 em = create_io_em(inode, cur_offset, nocow_args.num_bytes, in run_delalloc_nocow()
2092 if (IS_ERR(em)) { in run_delalloc_nocow()
2093 ret = PTR_ERR(em); in run_delalloc_nocow()
2096 free_extent_map(em); in run_delalloc_nocow()
2531 struct extent_map *em; in split_zoned_em() local
2556 em = lookup_extent_mapping(em_tree, start, len); in split_zoned_em()
2557 if (!em) { in split_zoned_em()
2562 ASSERT(em->len == len); in split_zoned_em()
2563 ASSERT(!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)); in split_zoned_em()
2564 ASSERT(em->block_start < EXTENT_MAP_LAST_BYTE); in split_zoned_em()
2565 ASSERT(test_bit(EXTENT_FLAG_PINNED, &em->flags)); in split_zoned_em()
2566 ASSERT(!test_bit(EXTENT_FLAG_LOGGING, &em->flags)); in split_zoned_em()
2567 ASSERT(!list_empty(&em->list)); in split_zoned_em()
2569 flags = em->flags; in split_zoned_em()
2570 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in split_zoned_em()
2573 split_pre->start = em->start; in split_zoned_em()
2574 split_pre->len = (pre ? pre : em->len - post); in split_zoned_em()
2576 split_pre->block_start = em->block_start; in split_zoned_em()
2581 split_pre->compress_type = em->compress_type; in split_zoned_em()
2582 split_pre->generation = em->generation; in split_zoned_em()
2584 replace_extent_mapping(em_tree, em, split_pre, 1); in split_zoned_em()
2594 split_mid->start = em->start + pre; in split_zoned_em()
2595 split_mid->len = em->len - pre - post; in split_zoned_em()
2597 split_mid->block_start = em->block_start + pre; in split_zoned_em()
2602 split_mid->compress_type = em->compress_type; in split_zoned_em()
2603 split_mid->generation = em->generation; in split_zoned_em()
2608 split_post->start = em->start + em->len - post; in split_zoned_em()
2611 split_post->block_start = em->block_start + em->len - post; in split_zoned_em()
2616 split_post->compress_type = em->compress_type; in split_zoned_em()
2617 split_post->generation = em->generation; in split_zoned_em()
2622 free_extent_map(em); in split_zoned_em()
2624 free_extent_map(em); in split_zoned_em()
2802 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
2806 em = btrfs_get_extent(inode, NULL, 0, search_start, search_len); in btrfs_find_new_delalloc_bytes()
2807 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
2808 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
2810 if (em->block_start != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
2813 em_len = em->len; in btrfs_find_new_delalloc_bytes()
2814 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
2815 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
2824 search_start = extent_map_end(em); in btrfs_find_new_delalloc_bytes()
2825 free_extent_map(em); in btrfs_find_new_delalloc_bytes()
5051 struct extent_map *em = NULL; in btrfs_cont_expand() local
5076 em = btrfs_get_extent(inode, NULL, 0, cur_offset, in btrfs_cont_expand()
5078 if (IS_ERR(em)) { in btrfs_cont_expand()
5079 err = PTR_ERR(em); in btrfs_cont_expand()
5080 em = NULL; in btrfs_cont_expand()
5083 last_byte = min(extent_map_end(em), block_end); in btrfs_cont_expand()
5087 if (!test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_cont_expand()
5128 free_extent_map(em); in btrfs_cont_expand()
5129 em = NULL; in btrfs_cont_expand()
5134 free_extent_map(em); in btrfs_cont_expand()
6850 struct extent_map *em = NULL; in btrfs_get_extent() local
6854 em = lookup_extent_mapping(em_tree, start, len); in btrfs_get_extent()
6857 if (em) { in btrfs_get_extent()
6858 if (em->start > start || em->start + em->len <= start) in btrfs_get_extent()
6859 free_extent_map(em); in btrfs_get_extent()
6860 else if (em->block_start == EXTENT_MAP_INLINE && page) in btrfs_get_extent()
6861 free_extent_map(em); in btrfs_get_extent()
6865 em = alloc_extent_map(); in btrfs_get_extent()
6866 if (!em) { in btrfs_get_extent()
6870 em->start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6871 em->orig_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6872 em->len = (u64)-1; in btrfs_get_extent()
6873 em->block_len = (u64)-1; in btrfs_get_extent()
6962 em->start = start; in btrfs_get_extent()
6963 em->orig_start = start; in btrfs_get_extent()
6964 em->len = found_key.offset - start; in btrfs_get_extent()
6965 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6969 btrfs_extent_item_to_extent_map(inode, path, item, !page, em); in btrfs_get_extent()
6988 em->start = extent_start + extent_offset; in btrfs_get_extent()
6989 em->len = ALIGN(copy_size, fs_info->sectorsize); in btrfs_get_extent()
6990 em->orig_block_len = em->len; in btrfs_get_extent()
6991 em->orig_start = em->start; in btrfs_get_extent()
7017 em->start = start; in btrfs_get_extent()
7018 em->orig_start = start; in btrfs_get_extent()
7019 em->len = len; in btrfs_get_extent()
7020 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7024 if (em->start > start || extent_map_end(em) <= start) { in btrfs_get_extent()
7027 em->start, em->len, start, len); in btrfs_get_extent()
7033 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); in btrfs_get_extent()
7038 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
7041 free_extent_map(em); in btrfs_get_extent()
7044 return em; in btrfs_get_extent()
7057 struct extent_map *em = NULL; in btrfs_create_dio_extent() local
7061 em = create_io_em(inode, start, len, orig_start, block_start, in btrfs_create_dio_extent()
7065 if (IS_ERR(em)) in btrfs_create_dio_extent()
7074 if (em) { in btrfs_create_dio_extent()
7075 free_extent_map(em); in btrfs_create_dio_extent()
7079 em = ERR_PTR(ret); in btrfs_create_dio_extent()
7083 return em; in btrfs_create_dio_extent()
7091 struct extent_map *em; in btrfs_new_extent_direct() local
7102 em = btrfs_create_dio_extent(inode, start, ins.offset, start, in btrfs_new_extent_direct()
7106 if (IS_ERR(em)) in btrfs_new_extent_direct()
7110 return em; in btrfs_new_extent_direct()
7345 struct extent_map *em; in create_io_em() local
7353 em = alloc_extent_map(); in create_io_em()
7354 if (!em) in create_io_em()
7357 em->start = start; in create_io_em()
7358 em->orig_start = orig_start; in create_io_em()
7359 em->len = len; in create_io_em()
7360 em->block_len = block_len; in create_io_em()
7361 em->block_start = block_start; in create_io_em()
7362 em->orig_block_len = orig_block_len; in create_io_em()
7363 em->ram_bytes = ram_bytes; in create_io_em()
7364 em->generation = -1; in create_io_em()
7365 set_bit(EXTENT_FLAG_PINNED, &em->flags); in create_io_em()
7367 set_bit(EXTENT_FLAG_FILLING, &em->flags); in create_io_em()
7369 set_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in create_io_em()
7370 em->compress_type = compress_type; in create_io_em()
7373 ret = btrfs_replace_extent_map_range(inode, em, true); in create_io_em()
7375 free_extent_map(em); in create_io_em()
7380 return em; in create_io_em()
7392 struct extent_map *em = *map; in btrfs_get_blocks_direct_write() local
7410 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) || in btrfs_get_blocks_direct_write()
7412 em->block_start != EXTENT_MAP_HOLE)) { in btrfs_get_blocks_direct_write()
7413 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_get_blocks_direct_write()
7417 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7418 block_start = em->block_start + (start - em->start); in btrfs_get_blocks_direct_write()
7437 free_extent_map(em); in btrfs_get_blocks_direct_write()
7452 free_extent_map(em); in btrfs_get_blocks_direct_write()
7454 em = em2; in btrfs_get_blocks_direct_write()
7465 free_extent_map(em); in btrfs_get_blocks_direct_write()
7488 em = btrfs_new_extent_direct(BTRFS_I(inode), start, len); in btrfs_get_blocks_direct_write()
7489 if (IS_ERR(em)) { in btrfs_get_blocks_direct_write()
7490 ret = PTR_ERR(em); in btrfs_get_blocks_direct_write()
7493 *map = em; in btrfs_get_blocks_direct_write()
7494 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7526 struct extent_map *em; in btrfs_dio_iomap_begin() local
7623 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_dio_iomap_begin()
7624 if (IS_ERR(em)) { in btrfs_dio_iomap_begin()
7625 ret = PTR_ERR(em); in btrfs_dio_iomap_begin()
7643 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) || in btrfs_dio_iomap_begin()
7644 em->block_start == EXTENT_MAP_INLINE) { in btrfs_dio_iomap_begin()
7645 free_extent_map(em); in btrfs_dio_iomap_begin()
7662 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
7686 free_extent_map(em); in btrfs_dio_iomap_begin()
7692 ret = btrfs_get_blocks_direct_write(&em, inode, dio_data, in btrfs_dio_iomap_begin()
7698 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
7738 if ((em->block_start == EXTENT_MAP_HOLE) || in btrfs_dio_iomap_begin()
7739 (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) && !write)) { in btrfs_dio_iomap_begin()
7743 iomap->addr = em->block_start + (start - em->start); in btrfs_dio_iomap_begin()
7750 if (write && btrfs_use_zone_append(BTRFS_I(inode), em->block_start)) in btrfs_dio_iomap_begin()
7753 free_extent_map(em); in btrfs_dio_iomap_begin()
7965 struct extent_map *em = NULL; in btrfs_submit_direct() local
7996 em = btrfs_get_chunk_map(fs_info, logical, submit_len); in btrfs_submit_direct()
7997 if (IS_ERR(em)) { in btrfs_submit_direct()
7998 status = errno_to_blk_status(PTR_ERR(em)); in btrfs_submit_direct()
7999 em = NULL; in btrfs_submit_direct()
8002 ret = btrfs_get_io_geometry(fs_info, em, btrfs_op(dio_bio), in btrfs_submit_direct()
8060 free_extent_map(em); in btrfs_submit_direct()
8065 free_extent_map(em); in btrfs_submit_direct()
9880 struct extent_map *em; in __btrfs_prealloc_file_range() local
9935 em = alloc_extent_map(); in __btrfs_prealloc_file_range()
9936 if (!em) { in __btrfs_prealloc_file_range()
9943 em->start = cur_offset; in __btrfs_prealloc_file_range()
9944 em->orig_start = cur_offset; in __btrfs_prealloc_file_range()
9945 em->len = ins.offset; in __btrfs_prealloc_file_range()
9946 em->block_start = ins.objectid; in __btrfs_prealloc_file_range()
9947 em->block_len = ins.offset; in __btrfs_prealloc_file_range()
9948 em->orig_block_len = ins.offset; in __btrfs_prealloc_file_range()
9949 em->ram_bytes = ins.offset; in __btrfs_prealloc_file_range()
9950 set_bit(EXTENT_FLAG_PREALLOC, &em->flags); in __btrfs_prealloc_file_range()
9951 em->generation = trans->transid; in __btrfs_prealloc_file_range()
9953 ret = btrfs_replace_extent_map_range(BTRFS_I(inode), em, true); in __btrfs_prealloc_file_range()
9954 free_extent_map(em); in __btrfs_prealloc_file_range()
10322 struct extent_map *em; in btrfs_encoded_read_regular_fill_pages() local
10327 em = btrfs_get_chunk_map(fs_info, disk_bytenr + cur, in btrfs_encoded_read_regular_fill_pages()
10329 if (IS_ERR(em)) { in btrfs_encoded_read_regular_fill_pages()
10330 ret = PTR_ERR(em); in btrfs_encoded_read_regular_fill_pages()
10332 ret = btrfs_get_io_geometry(fs_info, em, BTRFS_MAP_READ, in btrfs_encoded_read_regular_fill_pages()
10334 free_extent_map(em); in btrfs_encoded_read_regular_fill_pages()
10455 struct extent_map *em; in btrfs_encoded_read() local
10490 em = btrfs_get_extent(inode, NULL, 0, start, lockend - start + 1); in btrfs_encoded_read()
10491 if (IS_ERR(em)) { in btrfs_encoded_read()
10492 ret = PTR_ERR(em); in btrfs_encoded_read()
10496 if (em->block_start == EXTENT_MAP_INLINE) { in btrfs_encoded_read()
10497 u64 extent_start = em->start; in btrfs_encoded_read()
10503 free_extent_map(em); in btrfs_encoded_read()
10504 em = NULL; in btrfs_encoded_read()
10515 encoded->len = min_t(u64, extent_map_end(em), in btrfs_encoded_read()
10517 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_encoded_read()
10518 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_encoded_read()
10523 } else if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_encoded_read()
10524 disk_bytenr = em->block_start; in btrfs_encoded_read()
10529 if (em->block_len > count) { in btrfs_encoded_read()
10533 disk_io_size = em->block_len; in btrfs_encoded_read()
10534 count = em->block_len; in btrfs_encoded_read()
10535 encoded->unencoded_len = em->ram_bytes; in btrfs_encoded_read()
10536 encoded->unencoded_offset = iocb->ki_pos - em->orig_start; in btrfs_encoded_read()
10538 em->compress_type); in btrfs_encoded_read()
10543 disk_bytenr = em->block_start + (start - em->start); in btrfs_encoded_read()
10556 free_extent_map(em); in btrfs_encoded_read()
10557 em = NULL; in btrfs_encoded_read()
10578 free_extent_map(em); in btrfs_encoded_read()
10605 struct extent_map *em; in btrfs_do_encoded_write() local
10763 em = create_io_em(inode, start, num_bytes, in btrfs_do_encoded_write()
10767 if (IS_ERR(em)) { in btrfs_do_encoded_write()
10768 ret = PTR_ERR(em); in btrfs_do_encoded_write()
10771 free_extent_map(em); in btrfs_do_encoded_write()
10973 struct extent_map *em = NULL; in btrfs_swap_activate() local
11067 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_swap_activate()
11068 if (IS_ERR(em)) { in btrfs_swap_activate()
11069 ret = PTR_ERR(em); in btrfs_swap_activate()
11073 if (em->block_start == EXTENT_MAP_HOLE) { in btrfs_swap_activate()
11078 if (em->block_start == EXTENT_MAP_INLINE) { in btrfs_swap_activate()
11090 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_swap_activate()
11096 logical_block_start = em->block_start + (start - em->start); in btrfs_swap_activate()
11097 len = min(len, em->len - (start - em->start)); in btrfs_swap_activate()
11098 free_extent_map(em); in btrfs_swap_activate()
11099 em = NULL; in btrfs_swap_activate()
11113 em = btrfs_get_chunk_map(fs_info, logical_block_start, len); in btrfs_swap_activate()
11114 if (IS_ERR(em)) { in btrfs_swap_activate()
11115 ret = PTR_ERR(em); in btrfs_swap_activate()
11119 if (em->map_lookup->type & BTRFS_BLOCK_GROUP_PROFILE_MASK) { in btrfs_swap_activate()
11127 device = em->map_lookup->stripes[0].dev; in btrfs_swap_activate()
11133 } else if (device != em->map_lookup->stripes[0].dev) { in btrfs_swap_activate()
11139 physical_block_start = (em->map_lookup->stripes[0].physical + in btrfs_swap_activate()
11140 (logical_block_start - em->start)); in btrfs_swap_activate()
11141 len = min(len, em->len - (logical_block_start - em->start)); in btrfs_swap_activate()
11142 free_extent_map(em); in btrfs_swap_activate()
11143 em = NULL; in btrfs_swap_activate()
11194 if (!IS_ERR_OR_NULL(em)) in btrfs_swap_activate()
11195 free_extent_map(em); in btrfs_swap_activate()