Lines Matching refs:em
1105 struct extent_map *em; in submit_one_async_extent() local
1147 em = create_io_em(inode, start, in submit_one_async_extent()
1156 if (IS_ERR(em)) { in submit_one_async_extent()
1157 ret = PTR_ERR(em); in submit_one_async_extent()
1160 free_extent_map(em); in submit_one_async_extent()
1217 struct extent_map *em; in get_extent_allocation_hint() local
1221 em = search_extent_mapping(em_tree, start, num_bytes); in get_extent_allocation_hint()
1222 if (em) { in get_extent_allocation_hint()
1228 if (em->block_start >= EXTENT_MAP_LAST_BYTE) { in get_extent_allocation_hint()
1229 free_extent_map(em); in get_extent_allocation_hint()
1230 em = search_extent_mapping(em_tree, 0, 0); in get_extent_allocation_hint()
1231 if (em && em->block_start < EXTENT_MAP_LAST_BYTE) in get_extent_allocation_hint()
1232 alloc_hint = em->block_start; in get_extent_allocation_hint()
1233 if (em) in get_extent_allocation_hint()
1234 free_extent_map(em); in get_extent_allocation_hint()
1236 alloc_hint = em->block_start; in get_extent_allocation_hint()
1237 free_extent_map(em); in get_extent_allocation_hint()
1288 struct extent_map *em; in cow_file_range() local
1411 em = create_io_em(inode, start, ins.offset, /* len */ in cow_file_range()
1419 if (IS_ERR(em)) { in cow_file_range()
1420 ret = PTR_ERR(em); in cow_file_range()
1423 free_extent_map(em); in cow_file_range()
2138 struct extent_map *em; in run_delalloc_nocow() local
2140 em = create_io_em(inode, cur_offset, nocow_args.num_bytes, in run_delalloc_nocow()
2147 if (IS_ERR(em)) { in run_delalloc_nocow()
2149 ret = PTR_ERR(em); in run_delalloc_nocow()
2152 free_extent_map(em); in run_delalloc_nocow()
2619 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
2623 em = btrfs_get_extent(inode, NULL, 0, search_start, search_len); in btrfs_find_new_delalloc_bytes()
2624 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
2625 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
2627 if (em->block_start != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
2630 em_len = em->len; in btrfs_find_new_delalloc_bytes()
2631 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
2632 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
2640 search_start = extent_map_end(em); in btrfs_find_new_delalloc_bytes()
2641 free_extent_map(em); in btrfs_find_new_delalloc_bytes()
4853 struct extent_map *em = NULL; in btrfs_cont_expand() local
4878 em = btrfs_get_extent(inode, NULL, 0, cur_offset, in btrfs_cont_expand()
4880 if (IS_ERR(em)) { in btrfs_cont_expand()
4881 err = PTR_ERR(em); in btrfs_cont_expand()
4882 em = NULL; in btrfs_cont_expand()
4885 last_byte = min(extent_map_end(em), block_end); in btrfs_cont_expand()
4889 if (!test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_cont_expand()
4930 free_extent_map(em); in btrfs_cont_expand()
4931 em = NULL; in btrfs_cont_expand()
4936 free_extent_map(em); in btrfs_cont_expand()
6743 struct extent_map *em = NULL; in btrfs_get_extent() local
6747 em = lookup_extent_mapping(em_tree, start, len); in btrfs_get_extent()
6750 if (em) { in btrfs_get_extent()
6751 if (em->start > start || em->start + em->len <= start) in btrfs_get_extent()
6752 free_extent_map(em); in btrfs_get_extent()
6753 else if (em->block_start == EXTENT_MAP_INLINE && page) in btrfs_get_extent()
6754 free_extent_map(em); in btrfs_get_extent()
6758 em = alloc_extent_map(); in btrfs_get_extent()
6759 if (!em) { in btrfs_get_extent()
6763 em->start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6764 em->orig_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6765 em->len = (u64)-1; in btrfs_get_extent()
6766 em->block_len = (u64)-1; in btrfs_get_extent()
6855 em->start = start; in btrfs_get_extent()
6856 em->orig_start = start; in btrfs_get_extent()
6857 em->len = found_key.offset - start; in btrfs_get_extent()
6858 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6862 btrfs_extent_item_to_extent_map(inode, path, item, em); in btrfs_get_extent()
6875 ASSERT(em->start == 0); in btrfs_get_extent()
6883 ASSERT(em->block_start == EXTENT_MAP_INLINE); in btrfs_get_extent()
6884 ASSERT(em->len == fs_info->sectorsize); in btrfs_get_extent()
6892 em->start = start; in btrfs_get_extent()
6893 em->orig_start = start; in btrfs_get_extent()
6894 em->len = len; in btrfs_get_extent()
6895 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
6899 if (em->start > start || extent_map_end(em) <= start) { in btrfs_get_extent()
6902 em->start, em->len, start, len); in btrfs_get_extent()
6908 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); in btrfs_get_extent()
6913 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
6916 free_extent_map(em); in btrfs_get_extent()
6919 return em; in btrfs_get_extent()
6933 struct extent_map *em = NULL; in btrfs_create_dio_extent() local
6937 em = create_io_em(inode, start, len, orig_start, block_start, in btrfs_create_dio_extent()
6941 if (IS_ERR(em)) in btrfs_create_dio_extent()
6950 if (em) { in btrfs_create_dio_extent()
6951 free_extent_map(em); in btrfs_create_dio_extent()
6955 em = ERR_CAST(ordered); in btrfs_create_dio_extent()
6962 return em; in btrfs_create_dio_extent()
6971 struct extent_map *em; in btrfs_new_extent_direct() local
6982 em = btrfs_create_dio_extent(inode, dio_data, start, ins.offset, start, in btrfs_new_extent_direct()
6986 if (IS_ERR(em)) in btrfs_new_extent_direct()
6990 return em; in btrfs_new_extent_direct()
7226 struct extent_map *em; in create_io_em() local
7234 em = alloc_extent_map(); in create_io_em()
7235 if (!em) in create_io_em()
7238 em->start = start; in create_io_em()
7239 em->orig_start = orig_start; in create_io_em()
7240 em->len = len; in create_io_em()
7241 em->block_len = block_len; in create_io_em()
7242 em->block_start = block_start; in create_io_em()
7243 em->orig_block_len = orig_block_len; in create_io_em()
7244 em->ram_bytes = ram_bytes; in create_io_em()
7245 em->generation = -1; in create_io_em()
7246 set_bit(EXTENT_FLAG_PINNED, &em->flags); in create_io_em()
7248 set_bit(EXTENT_FLAG_FILLING, &em->flags); in create_io_em()
7250 set_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in create_io_em()
7251 em->compress_type = compress_type; in create_io_em()
7254 ret = btrfs_replace_extent_map_range(inode, em, true); in create_io_em()
7256 free_extent_map(em); in create_io_em()
7261 return em; in create_io_em()
7273 struct extent_map *em = *map; in btrfs_get_blocks_direct_write() local
7292 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) || in btrfs_get_blocks_direct_write()
7294 em->block_start != EXTENT_MAP_HOLE)) { in btrfs_get_blocks_direct_write()
7295 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_get_blocks_direct_write()
7299 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7300 block_start = em->block_start + (start - em->start); in btrfs_get_blocks_direct_write()
7319 free_extent_map(em); in btrfs_get_blocks_direct_write()
7334 free_extent_map(em); in btrfs_get_blocks_direct_write()
7336 em = em2; in btrfs_get_blocks_direct_write()
7347 free_extent_map(em); in btrfs_get_blocks_direct_write()
7374 em = btrfs_new_extent_direct(BTRFS_I(inode), dio_data, start, len); in btrfs_get_blocks_direct_write()
7375 if (IS_ERR(em)) { in btrfs_get_blocks_direct_write()
7376 ret = PTR_ERR(em); in btrfs_get_blocks_direct_write()
7379 *map = em; in btrfs_get_blocks_direct_write()
7380 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7413 struct extent_map *em; in btrfs_dio_iomap_begin() local
7510 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_dio_iomap_begin()
7511 if (IS_ERR(em)) { in btrfs_dio_iomap_begin()
7512 ret = PTR_ERR(em); in btrfs_dio_iomap_begin()
7530 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) || in btrfs_dio_iomap_begin()
7531 em->block_start == EXTENT_MAP_INLINE) { in btrfs_dio_iomap_begin()
7532 free_extent_map(em); in btrfs_dio_iomap_begin()
7549 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
7573 free_extent_map(em); in btrfs_dio_iomap_begin()
7579 ret = btrfs_get_blocks_direct_write(&em, inode, dio_data, in btrfs_dio_iomap_begin()
7585 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
7625 if ((em->block_start == EXTENT_MAP_HOLE) || in btrfs_dio_iomap_begin()
7626 (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) && !write)) { in btrfs_dio_iomap_begin()
7630 iomap->addr = em->block_start + (start - em->start); in btrfs_dio_iomap_begin()
7636 free_extent_map(em); in btrfs_dio_iomap_begin()
9548 struct extent_map *em; in __btrfs_prealloc_file_range() local
9603 em = alloc_extent_map(); in __btrfs_prealloc_file_range()
9604 if (!em) { in __btrfs_prealloc_file_range()
9611 em->start = cur_offset; in __btrfs_prealloc_file_range()
9612 em->orig_start = cur_offset; in __btrfs_prealloc_file_range()
9613 em->len = ins.offset; in __btrfs_prealloc_file_range()
9614 em->block_start = ins.objectid; in __btrfs_prealloc_file_range()
9615 em->block_len = ins.offset; in __btrfs_prealloc_file_range()
9616 em->orig_block_len = ins.offset; in __btrfs_prealloc_file_range()
9617 em->ram_bytes = ins.offset; in __btrfs_prealloc_file_range()
9618 set_bit(EXTENT_FLAG_PREALLOC, &em->flags); in __btrfs_prealloc_file_range()
9619 em->generation = trans->transid; in __btrfs_prealloc_file_range()
9621 ret = btrfs_replace_extent_map_range(BTRFS_I(inode), em, true); in __btrfs_prealloc_file_range()
9622 free_extent_map(em); in __btrfs_prealloc_file_range()
10036 struct extent_map *em; in btrfs_encoded_read() local
10071 em = btrfs_get_extent(inode, NULL, 0, start, lockend - start + 1); in btrfs_encoded_read()
10072 if (IS_ERR(em)) { in btrfs_encoded_read()
10073 ret = PTR_ERR(em); in btrfs_encoded_read()
10077 if (em->block_start == EXTENT_MAP_INLINE) { in btrfs_encoded_read()
10078 u64 extent_start = em->start; in btrfs_encoded_read()
10084 free_extent_map(em); in btrfs_encoded_read()
10085 em = NULL; in btrfs_encoded_read()
10096 encoded->len = min_t(u64, extent_map_end(em), in btrfs_encoded_read()
10098 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_encoded_read()
10099 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_encoded_read()
10104 } else if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_encoded_read()
10105 disk_bytenr = em->block_start; in btrfs_encoded_read()
10110 if (em->block_len > count) { in btrfs_encoded_read()
10114 disk_io_size = em->block_len; in btrfs_encoded_read()
10115 count = em->block_len; in btrfs_encoded_read()
10116 encoded->unencoded_len = em->ram_bytes; in btrfs_encoded_read()
10117 encoded->unencoded_offset = iocb->ki_pos - em->orig_start; in btrfs_encoded_read()
10119 em->compress_type); in btrfs_encoded_read()
10124 disk_bytenr = em->block_start + (start - em->start); in btrfs_encoded_read()
10137 free_extent_map(em); in btrfs_encoded_read()
10138 em = NULL; in btrfs_encoded_read()
10159 free_extent_map(em); in btrfs_encoded_read()
10187 struct extent_map *em; in btrfs_do_encoded_write() local
10345 em = create_io_em(inode, start, num_bytes, in btrfs_do_encoded_write()
10349 if (IS_ERR(em)) { in btrfs_do_encoded_write()
10350 ret = PTR_ERR(em); in btrfs_do_encoded_write()
10353 free_extent_map(em); in btrfs_do_encoded_write()
10549 struct extent_map *em = NULL; in btrfs_swap_activate() local
10643 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_swap_activate()
10644 if (IS_ERR(em)) { in btrfs_swap_activate()
10645 ret = PTR_ERR(em); in btrfs_swap_activate()
10649 if (em->block_start == EXTENT_MAP_HOLE) { in btrfs_swap_activate()
10654 if (em->block_start == EXTENT_MAP_INLINE) { in btrfs_swap_activate()
10666 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_swap_activate()
10672 logical_block_start = em->block_start + (start - em->start); in btrfs_swap_activate()
10673 len = min(len, em->len - (start - em->start)); in btrfs_swap_activate()
10674 free_extent_map(em); in btrfs_swap_activate()
10675 em = NULL; in btrfs_swap_activate()
10689 em = btrfs_get_chunk_map(fs_info, logical_block_start, len); in btrfs_swap_activate()
10690 if (IS_ERR(em)) { in btrfs_swap_activate()
10691 ret = PTR_ERR(em); in btrfs_swap_activate()
10695 if (em->map_lookup->type & BTRFS_BLOCK_GROUP_PROFILE_MASK) { in btrfs_swap_activate()
10703 device = em->map_lookup->stripes[0].dev; in btrfs_swap_activate()
10709 } else if (device != em->map_lookup->stripes[0].dev) { in btrfs_swap_activate()
10715 physical_block_start = (em->map_lookup->stripes[0].physical + in btrfs_swap_activate()
10716 (logical_block_start - em->start)); in btrfs_swap_activate()
10717 len = min(len, em->len - (logical_block_start - em->start)); in btrfs_swap_activate()
10718 free_extent_map(em); in btrfs_swap_activate()
10719 em = NULL; in btrfs_swap_activate()
10770 if (!IS_ERR_OR_NULL(em)) in btrfs_swap_activate()
10771 free_extent_map(em); in btrfs_swap_activate()