• Home
  • Raw
  • Download

Lines Matching refs:em

855 	struct extent_map *em;  in submit_compressed_extents()  local
933 em = create_io_em(inode, async_extent->start, in submit_compressed_extents()
942 if (IS_ERR(em)) in submit_compressed_extents()
945 free_extent_map(em); in submit_compressed_extents()
1016 struct extent_map *em; in get_extent_allocation_hint() local
1020 em = search_extent_mapping(em_tree, start, num_bytes); in get_extent_allocation_hint()
1021 if (em) { in get_extent_allocation_hint()
1027 if (em->block_start >= EXTENT_MAP_LAST_BYTE) { in get_extent_allocation_hint()
1028 free_extent_map(em); in get_extent_allocation_hint()
1029 em = search_extent_mapping(em_tree, 0, 0); in get_extent_allocation_hint()
1030 if (em && em->block_start < EXTENT_MAP_LAST_BYTE) in get_extent_allocation_hint()
1031 alloc_hint = em->block_start; in get_extent_allocation_hint()
1032 if (em) in get_extent_allocation_hint()
1033 free_extent_map(em); in get_extent_allocation_hint()
1035 alloc_hint = em->block_start; in get_extent_allocation_hint()
1036 free_extent_map(em); in get_extent_allocation_hint()
1094 struct extent_map *em; in cow_file_range() local
1190 em = create_io_em(inode, start, ins.offset, /* len */ in cow_file_range()
1198 if (IS_ERR(em)) { in cow_file_range()
1199 ret = PTR_ERR(em); in cow_file_range()
1202 free_extent_map(em); in cow_file_range()
1884 struct extent_map *em; in run_delalloc_nocow() local
1886 em = create_io_em(inode, cur_offset, num_bytes, in run_delalloc_nocow()
1893 if (IS_ERR(em)) { in run_delalloc_nocow()
1894 ret = PTR_ERR(em); in run_delalloc_nocow()
1897 free_extent_map(em); in run_delalloc_nocow()
2318 struct extent_map *em; in btrfs_bio_fits_in_stripe() local
2325 em = btrfs_get_chunk_map(fs_info, logical, fs_info->sectorsize); in btrfs_bio_fits_in_stripe()
2326 if (IS_ERR(em)) in btrfs_bio_fits_in_stripe()
2327 return PTR_ERR(em); in btrfs_bio_fits_in_stripe()
2328 ret = btrfs_get_io_geometry(fs_info, em, btrfs_op(bio), logical, &geom); in btrfs_bio_fits_in_stripe()
2335 free_extent_map(em); in btrfs_bio_fits_in_stripe()
2362 struct extent_map *em; in split_zoned_em() local
2387 em = lookup_extent_mapping(em_tree, start, len); in split_zoned_em()
2388 if (!em) { in split_zoned_em()
2393 ASSERT(em->len == len); in split_zoned_em()
2394 ASSERT(!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)); in split_zoned_em()
2395 ASSERT(em->block_start < EXTENT_MAP_LAST_BYTE); in split_zoned_em()
2396 ASSERT(test_bit(EXTENT_FLAG_PINNED, &em->flags)); in split_zoned_em()
2397 ASSERT(!test_bit(EXTENT_FLAG_LOGGING, &em->flags)); in split_zoned_em()
2398 ASSERT(!list_empty(&em->list)); in split_zoned_em()
2400 flags = em->flags; in split_zoned_em()
2401 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in split_zoned_em()
2404 split_pre->start = em->start; in split_zoned_em()
2405 split_pre->len = (pre ? pre : em->len - post); in split_zoned_em()
2407 split_pre->block_start = em->block_start; in split_zoned_em()
2412 split_pre->compress_type = em->compress_type; in split_zoned_em()
2413 split_pre->generation = em->generation; in split_zoned_em()
2415 replace_extent_mapping(em_tree, em, split_pre, 1); in split_zoned_em()
2425 split_mid->start = em->start + pre; in split_zoned_em()
2426 split_mid->len = em->len - pre - post; in split_zoned_em()
2428 split_mid->block_start = em->block_start + pre; in split_zoned_em()
2433 split_mid->compress_type = em->compress_type; in split_zoned_em()
2434 split_mid->generation = em->generation; in split_zoned_em()
2439 split_post->start = em->start + em->len - post; in split_zoned_em()
2442 split_post->block_start = em->block_start + em->len - post; in split_zoned_em()
2447 split_post->compress_type = em->compress_type; in split_zoned_em()
2448 split_post->generation = em->generation; in split_zoned_em()
2453 free_extent_map(em); in split_zoned_em()
2455 free_extent_map(em); in split_zoned_em()
2648 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
2652 em = btrfs_get_extent(inode, NULL, 0, search_start, search_len); in btrfs_find_new_delalloc_bytes()
2653 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
2654 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
2656 if (em->block_start != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
2659 em_len = em->len; in btrfs_find_new_delalloc_bytes()
2660 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
2661 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
2670 search_start = extent_map_end(em); in btrfs_find_new_delalloc_bytes()
2671 free_extent_map(em); in btrfs_find_new_delalloc_bytes()
5273 struct extent_map *em = NULL; in btrfs_cont_expand() local
5299 em = btrfs_get_extent(inode, NULL, 0, cur_offset, in btrfs_cont_expand()
5301 if (IS_ERR(em)) { in btrfs_cont_expand()
5302 err = PTR_ERR(em); in btrfs_cont_expand()
5303 em = NULL; in btrfs_cont_expand()
5306 last_byte = min(extent_map_end(em), block_end); in btrfs_cont_expand()
5310 if (!test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_cont_expand()
5360 free_extent_map(em); in btrfs_cont_expand()
5361 em = NULL; in btrfs_cont_expand()
5366 free_extent_map(em); in btrfs_cont_expand()
5519 struct extent_map *em; in evict_inode_truncate_pages() local
5522 em = rb_entry(node, struct extent_map, rb_node); in evict_inode_truncate_pages()
5523 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in evict_inode_truncate_pages()
5524 clear_bit(EXTENT_FLAG_LOGGING, &em->flags); in evict_inode_truncate_pages()
5525 remove_extent_mapping(map_tree, em); in evict_inode_truncate_pages()
5526 free_extent_map(em); in evict_inode_truncate_pages()
7163 struct extent_map *em = NULL; in btrfs_get_extent() local
7168 em = lookup_extent_mapping(em_tree, start, len); in btrfs_get_extent()
7171 if (em) { in btrfs_get_extent()
7172 if (em->start > start || em->start + em->len <= start) in btrfs_get_extent()
7173 free_extent_map(em); in btrfs_get_extent()
7174 else if (em->block_start == EXTENT_MAP_INLINE && page) in btrfs_get_extent()
7175 free_extent_map(em); in btrfs_get_extent()
7179 em = alloc_extent_map(); in btrfs_get_extent()
7180 if (!em) { in btrfs_get_extent()
7184 em->start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7185 em->orig_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7186 em->len = (u64)-1; in btrfs_get_extent()
7187 em->block_len = (u64)-1; in btrfs_get_extent()
7276 em->start = start; in btrfs_get_extent()
7277 em->orig_start = start; in btrfs_get_extent()
7278 em->len = found_key.offset - start; in btrfs_get_extent()
7279 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7283 btrfs_extent_item_to_extent_map(inode, path, item, !page, em); in btrfs_get_extent()
7302 em->start = extent_start + extent_offset; in btrfs_get_extent()
7303 em->len = ALIGN(copy_size, fs_info->sectorsize); in btrfs_get_extent()
7304 em->orig_block_len = em->len; in btrfs_get_extent()
7305 em->orig_start = em->start; in btrfs_get_extent()
7328 set_extent_uptodate(io_tree, em->start, in btrfs_get_extent()
7329 extent_map_end(em) - 1, NULL, GFP_NOFS); in btrfs_get_extent()
7333 em->start = start; in btrfs_get_extent()
7334 em->orig_start = start; in btrfs_get_extent()
7335 em->len = len; in btrfs_get_extent()
7336 em->block_start = EXTENT_MAP_HOLE; in btrfs_get_extent()
7340 if (em->start > start || extent_map_end(em) <= start) { in btrfs_get_extent()
7343 em->start, em->len, start, len); in btrfs_get_extent()
7349 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); in btrfs_get_extent()
7354 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
7357 free_extent_map(em); in btrfs_get_extent()
7360 return em; in btrfs_get_extent()
7366 struct extent_map *em; in btrfs_get_extent_fiemap() local
7374 em = btrfs_get_extent(inode, NULL, 0, start, len); in btrfs_get_extent_fiemap()
7375 if (IS_ERR(em)) in btrfs_get_extent_fiemap()
7376 return em; in btrfs_get_extent_fiemap()
7383 if (em->block_start != EXTENT_MAP_HOLE && in btrfs_get_extent_fiemap()
7384 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_get_extent_fiemap()
7385 return em; in btrfs_get_extent_fiemap()
7387 hole_em = em; in btrfs_get_extent_fiemap()
7396 em = NULL; in btrfs_get_extent_fiemap()
7410 em = hole_em; in btrfs_get_extent_fiemap()
7427 em = alloc_extent_map(); in btrfs_get_extent_fiemap()
7428 if (!em) { in btrfs_get_extent_fiemap()
7455 em->len = min(hole_len, delalloc_start - hole_start); in btrfs_get_extent_fiemap()
7456 em->start = hole_start; in btrfs_get_extent_fiemap()
7457 em->orig_start = hole_start; in btrfs_get_extent_fiemap()
7462 em->block_start = hole_em->block_start; in btrfs_get_extent_fiemap()
7463 em->block_len = hole_len; in btrfs_get_extent_fiemap()
7465 set_bit(EXTENT_FLAG_PREALLOC, &em->flags); in btrfs_get_extent_fiemap()
7471 em->start = delalloc_start; in btrfs_get_extent_fiemap()
7472 em->len = delalloc_len; in btrfs_get_extent_fiemap()
7473 em->orig_start = delalloc_start; in btrfs_get_extent_fiemap()
7474 em->block_start = EXTENT_MAP_DELALLOC; in btrfs_get_extent_fiemap()
7475 em->block_len = delalloc_len; in btrfs_get_extent_fiemap()
7484 free_extent_map(em); in btrfs_get_extent_fiemap()
7487 return em; in btrfs_get_extent_fiemap()
7500 struct extent_map *em = NULL; in btrfs_create_dio_extent() local
7504 em = create_io_em(inode, start, len, orig_start, block_start, in btrfs_create_dio_extent()
7508 if (IS_ERR(em)) in btrfs_create_dio_extent()
7514 if (em) { in btrfs_create_dio_extent()
7515 free_extent_map(em); in btrfs_create_dio_extent()
7518 em = ERR_PTR(ret); in btrfs_create_dio_extent()
7522 return em; in btrfs_create_dio_extent()
7530 struct extent_map *em; in btrfs_new_extent_direct() local
7541 em = btrfs_create_dio_extent(inode, start, ins.offset, start, in btrfs_new_extent_direct()
7545 if (IS_ERR(em)) in btrfs_new_extent_direct()
7549 return em; in btrfs_new_extent_direct()
7819 struct extent_map *em; in create_io_em() local
7828 em = alloc_extent_map(); in create_io_em()
7829 if (!em) in create_io_em()
7832 em->start = start; in create_io_em()
7833 em->orig_start = orig_start; in create_io_em()
7834 em->len = len; in create_io_em()
7835 em->block_len = block_len; in create_io_em()
7836 em->block_start = block_start; in create_io_em()
7837 em->orig_block_len = orig_block_len; in create_io_em()
7838 em->ram_bytes = ram_bytes; in create_io_em()
7839 em->generation = -1; in create_io_em()
7840 set_bit(EXTENT_FLAG_PINNED, &em->flags); in create_io_em()
7842 set_bit(EXTENT_FLAG_FILLING, &em->flags); in create_io_em()
7844 set_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in create_io_em()
7845 em->compress_type = compress_type; in create_io_em()
7849 btrfs_drop_extent_cache(inode, em->start, in create_io_em()
7850 em->start + em->len - 1, 0); in create_io_em()
7852 ret = add_extent_mapping(em_tree, em, 1); in create_io_em()
7861 free_extent_map(em); in create_io_em()
7866 return em; in create_io_em()
7876 struct extent_map *em = *map; in btrfs_get_blocks_direct_write() local
7893 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) || in btrfs_get_blocks_direct_write()
7895 em->block_start != EXTENT_MAP_HOLE)) { in btrfs_get_blocks_direct_write()
7896 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_get_blocks_direct_write()
7900 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7901 block_start = em->block_start + (start - em->start); in btrfs_get_blocks_direct_write()
7917 free_extent_map(em); in btrfs_get_blocks_direct_write()
7930 free_extent_map(em); in btrfs_get_blocks_direct_write()
7931 *map = em = em2; in btrfs_get_blocks_direct_write()
7940 free_extent_map(em); in btrfs_get_blocks_direct_write()
7951 em = btrfs_new_extent_direct(BTRFS_I(inode), start, len); in btrfs_get_blocks_direct_write()
7952 if (IS_ERR(em)) { in btrfs_get_blocks_direct_write()
7953 ret = PTR_ERR(em); in btrfs_get_blocks_direct_write()
7956 *map = em; in btrfs_get_blocks_direct_write()
7957 len = min(len, em->len - (start - em->start)); in btrfs_get_blocks_direct_write()
7998 struct extent_map *em; in btrfs_dio_iomap_begin() local
8043 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_dio_iomap_begin()
8044 if (IS_ERR(em)) { in btrfs_dio_iomap_begin()
8045 ret = PTR_ERR(em); in btrfs_dio_iomap_begin()
8063 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) || in btrfs_dio_iomap_begin()
8064 em->block_start == EXTENT_MAP_INLINE) { in btrfs_dio_iomap_begin()
8065 free_extent_map(em); in btrfs_dio_iomap_begin()
8082 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
8106 free_extent_map(em); in btrfs_dio_iomap_begin()
8112 ret = btrfs_get_blocks_direct_write(&em, inode, dio_data, in btrfs_dio_iomap_begin()
8118 len = min(len, em->len - (start - em->start)); in btrfs_dio_iomap_begin()
8140 if ((em->block_start == EXTENT_MAP_HOLE) || in btrfs_dio_iomap_begin()
8141 (test_bit(EXTENT_FLAG_PREALLOC, &em->flags) && !write)) { in btrfs_dio_iomap_begin()
8145 iomap->addr = em->block_start + (start - em->start); in btrfs_dio_iomap_begin()
8152 if (write && btrfs_use_zone_append(BTRFS_I(inode), em->block_start)) in btrfs_dio_iomap_begin()
8155 free_extent_map(em); in btrfs_dio_iomap_begin()
8443 struct extent_map *em = NULL; in btrfs_submit_direct() local
8473 em = btrfs_get_chunk_map(fs_info, logical, submit_len); in btrfs_submit_direct()
8474 if (IS_ERR(em)) { in btrfs_submit_direct()
8475 status = errno_to_blk_status(PTR_ERR(em)); in btrfs_submit_direct()
8476 em = NULL; in btrfs_submit_direct()
8479 ret = btrfs_get_io_geometry(fs_info, em, btrfs_op(dio_bio), in btrfs_submit_direct()
8545 free_extent_map(em); in btrfs_submit_direct()
8550 free_extent_map(em); in btrfs_submit_direct()
10420 struct extent_map *em; in __btrfs_prealloc_file_range() local
10478 em = alloc_extent_map(); in __btrfs_prealloc_file_range()
10479 if (!em) { in __btrfs_prealloc_file_range()
10485 em->start = cur_offset; in __btrfs_prealloc_file_range()
10486 em->orig_start = cur_offset; in __btrfs_prealloc_file_range()
10487 em->len = ins.offset; in __btrfs_prealloc_file_range()
10488 em->block_start = ins.objectid; in __btrfs_prealloc_file_range()
10489 em->block_len = ins.offset; in __btrfs_prealloc_file_range()
10490 em->orig_block_len = ins.offset; in __btrfs_prealloc_file_range()
10491 em->ram_bytes = ins.offset; in __btrfs_prealloc_file_range()
10492 set_bit(EXTENT_FLAG_PREALLOC, &em->flags); in __btrfs_prealloc_file_range()
10493 em->generation = trans->transid; in __btrfs_prealloc_file_range()
10497 ret = add_extent_mapping(em_tree, em, 1); in __btrfs_prealloc_file_range()
10505 free_extent_map(em); in __btrfs_prealloc_file_range()
10810 struct extent_map *em = NULL; in btrfs_swap_activate() local
10904 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len); in btrfs_swap_activate()
10905 if (IS_ERR(em)) { in btrfs_swap_activate()
10906 ret = PTR_ERR(em); in btrfs_swap_activate()
10910 if (em->block_start == EXTENT_MAP_HOLE) { in btrfs_swap_activate()
10915 if (em->block_start == EXTENT_MAP_INLINE) { in btrfs_swap_activate()
10927 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_swap_activate()
10933 logical_block_start = em->block_start + (start - em->start); in btrfs_swap_activate()
10934 len = min(len, em->len - (start - em->start)); in btrfs_swap_activate()
10935 free_extent_map(em); in btrfs_swap_activate()
10936 em = NULL; in btrfs_swap_activate()
10950 em = btrfs_get_chunk_map(fs_info, logical_block_start, len); in btrfs_swap_activate()
10951 if (IS_ERR(em)) { in btrfs_swap_activate()
10952 ret = PTR_ERR(em); in btrfs_swap_activate()
10956 if (em->map_lookup->type & BTRFS_BLOCK_GROUP_PROFILE_MASK) { in btrfs_swap_activate()
10964 device = em->map_lookup->stripes[0].dev; in btrfs_swap_activate()
10970 } else if (device != em->map_lookup->stripes[0].dev) { in btrfs_swap_activate()
10976 physical_block_start = (em->map_lookup->stripes[0].physical + in btrfs_swap_activate()
10977 (logical_block_start - em->start)); in btrfs_swap_activate()
10978 len = min(len, em->len - (logical_block_start - em->start)); in btrfs_swap_activate()
10979 free_extent_map(em); in btrfs_swap_activate()
10980 em = NULL; in btrfs_swap_activate()
11031 if (!IS_ERR_OR_NULL(em)) in btrfs_swap_activate()
11032 free_extent_map(em); in btrfs_swap_activate()