Lines Matching refs:em

1776 	struct extent_map *em;  in find_next_chunk()  local
1784 em = rb_entry(n, struct extent_map, rb_node); in find_next_chunk()
1785 ret = em->start + em->len; in find_next_chunk()
3032 struct extent_map *em; in btrfs_get_chunk_map() local
3036 em = lookup_extent_mapping(em_tree, logical, length); in btrfs_get_chunk_map()
3039 if (!em) { in btrfs_get_chunk_map()
3045 if (em->start > logical || em->start + em->len < logical) { in btrfs_get_chunk_map()
3048 logical, length, em->start, em->start + em->len); in btrfs_get_chunk_map()
3049 free_extent_map(em); in btrfs_get_chunk_map()
3054 return em; in btrfs_get_chunk_map()
3083 struct extent_map *em; in btrfs_remove_chunk() local
3089 em = btrfs_get_chunk_map(fs_info, chunk_offset, 1); in btrfs_remove_chunk()
3090 if (IS_ERR(em)) { in btrfs_remove_chunk()
3097 return PTR_ERR(em); in btrfs_remove_chunk()
3099 map = em->map_lookup; in btrfs_remove_chunk()
3202 trace_btrfs_chunk_free(fs_info, map, chunk_offset, em->len); in btrfs_remove_chunk()
3221 ret = btrfs_remove_block_group(trans, chunk_offset, em); in btrfs_remove_chunk()
3233 free_extent_map(em); in btrfs_remove_chunk()
5374 struct extent_map *em; in create_chunk() local
5402 em = alloc_extent_map(); in create_chunk()
5403 if (!em) { in create_chunk()
5407 set_bit(EXTENT_FLAG_FS_MAPPING, &em->flags); in create_chunk()
5408 em->map_lookup = map; in create_chunk()
5409 em->start = start; in create_chunk()
5410 em->len = ctl->chunk_size; in create_chunk()
5411 em->block_start = 0; in create_chunk()
5412 em->block_len = em->len; in create_chunk()
5413 em->orig_block_len = ctl->stripe_size; in create_chunk()
5417 ret = add_extent_mapping(em_tree, em, 0); in create_chunk()
5420 free_extent_map(em); in create_chunk()
5442 free_extent_map(em); in create_chunk()
5450 remove_extent_mapping(em_tree, em); in create_chunk()
5454 free_extent_map(em); in create_chunk()
5456 free_extent_map(em); in create_chunk()
5534 struct extent_map *em; in btrfs_chunk_alloc_add_chunk_item() local
5564 em = btrfs_get_chunk_map(fs_info, bg->start, bg->length); in btrfs_chunk_alloc_add_chunk_item()
5565 if (IS_ERR(em)) { in btrfs_chunk_alloc_add_chunk_item()
5566 ret = PTR_ERR(em); in btrfs_chunk_alloc_add_chunk_item()
5571 map = em->map_lookup; in btrfs_chunk_alloc_add_chunk_item()
5628 free_extent_map(em); in btrfs_chunk_alloc_add_chunk_item()
5682 struct extent_map *em; in btrfs_chunk_writeable() local
5688 em = btrfs_get_chunk_map(fs_info, chunk_offset, 1); in btrfs_chunk_writeable()
5689 if (IS_ERR(em)) in btrfs_chunk_writeable()
5692 map = em->map_lookup; in btrfs_chunk_writeable()
5713 free_extent_map(em); in btrfs_chunk_writeable()
5719 struct extent_map *em; in btrfs_mapping_tree_free() local
5723 em = lookup_extent_mapping(tree, 0, (u64)-1); in btrfs_mapping_tree_free()
5724 if (em) in btrfs_mapping_tree_free()
5725 remove_extent_mapping(tree, em); in btrfs_mapping_tree_free()
5727 if (!em) in btrfs_mapping_tree_free()
5730 free_extent_map(em); in btrfs_mapping_tree_free()
5732 free_extent_map(em); in btrfs_mapping_tree_free()
5738 struct extent_map *em; in btrfs_num_copies() local
5743 em = btrfs_get_chunk_map(fs_info, logical, len); in btrfs_num_copies()
5744 if (IS_ERR(em)) in btrfs_num_copies()
5753 map = em->map_lookup; in btrfs_num_copies()
5770 free_extent_map(em); in btrfs_num_copies()
5784 struct extent_map *em; in btrfs_full_stripe_len() local
5791 em = btrfs_get_chunk_map(fs_info, logical, len); in btrfs_full_stripe_len()
5793 if (!WARN_ON(IS_ERR(em))) { in btrfs_full_stripe_len()
5794 map = em->map_lookup; in btrfs_full_stripe_len()
5797 free_extent_map(em); in btrfs_full_stripe_len()
5804 struct extent_map *em; in btrfs_is_parity_mirror() local
5811 em = btrfs_get_chunk_map(fs_info, logical, len); in btrfs_is_parity_mirror()
5813 if(!WARN_ON(IS_ERR(em))) { in btrfs_is_parity_mirror()
5814 map = em->map_lookup; in btrfs_is_parity_mirror()
5817 free_extent_map(em); in btrfs_is_parity_mirror()
5953 struct extent_map *em; in btrfs_map_discard() local
5973 em = btrfs_get_chunk_map(fs_info, logical, length); in btrfs_map_discard()
5974 if (IS_ERR(em)) in btrfs_map_discard()
5975 return ERR_CAST(em); in btrfs_map_discard()
5977 map = em->map_lookup; in btrfs_map_discard()
5985 offset = logical - em->start; in btrfs_map_discard()
5986 length = min_t(u64, em->start + em->len - logical, length); in btrfs_map_discard()
6083 free_extent_map(em); in btrfs_map_discard()
6086 free_extent_map(em); in btrfs_map_discard()
6339 struct extent_map *em; in __btrfs_map_block() local
6365 em = btrfs_get_chunk_map(fs_info, logical, *length); in __btrfs_map_block()
6366 ASSERT(!IS_ERR(em)); in __btrfs_map_block()
6368 map = em->map_lookup; in __btrfs_map_block()
6372 map_offset = logical - em->start; in __btrfs_map_block()
6375 *length = min_t(u64, em->len - map_offset, max_len); in __btrfs_map_block()
6458 raid56_full_stripe_start + em->start + in __btrfs_map_block()
6554 em->start + (tmp + i) * map->stripe_len; in __btrfs_map_block()
6596 free_extent_map(em); in __btrfs_map_block()
6785 u64 btrfs_calc_stripe_length(const struct extent_map *em) in btrfs_calc_stripe_length() argument
6787 const struct map_lookup *map = em->map_lookup; in btrfs_calc_stripe_length()
6790 return div_u64(em->len, data_stripes); in btrfs_calc_stripe_length()
6861 struct extent_map *em; in read_one_chunk() local
6896 em = lookup_extent_mapping(map_tree, logical, 1); in read_one_chunk()
6900 if (em && em->start <= logical && em->start + em->len > logical) { in read_one_chunk()
6901 free_extent_map(em); in read_one_chunk()
6903 } else if (em) { in read_one_chunk()
6904 free_extent_map(em); in read_one_chunk()
6907 em = alloc_extent_map(); in read_one_chunk()
6908 if (!em) in read_one_chunk()
6912 free_extent_map(em); in read_one_chunk()
6916 set_bit(EXTENT_FLAG_FS_MAPPING, &em->flags); in read_one_chunk()
6917 em->map_lookup = map; in read_one_chunk()
6918 em->start = logical; in read_one_chunk()
6919 em->len = length; in read_one_chunk()
6920 em->orig_start = 0; in read_one_chunk()
6921 em->block_start = 0; in read_one_chunk()
6922 em->block_len = em->len; in read_one_chunk()
6939 em->orig_block_len = btrfs_calc_stripe_length(em); in read_one_chunk()
6955 free_extent_map(em); in read_one_chunk()
6965 ret = add_extent_mapping(map_tree, em, 0); in read_one_chunk()
6970 em->start, em->len, ret); in read_one_chunk()
6972 free_extent_map(em); in read_one_chunk()
7283 struct extent_map *em; in btrfs_check_rw_degradable() local
7288 em = lookup_extent_mapping(map_tree, 0, (u64)-1); in btrfs_check_rw_degradable()
7291 if (!em) { in btrfs_check_rw_degradable()
7295 while (em) { in btrfs_check_rw_degradable()
7301 map = em->map_lookup; in btrfs_check_rw_degradable()
7319 em->start, missing, max_tolerated); in btrfs_check_rw_degradable()
7320 free_extent_map(em); in btrfs_check_rw_degradable()
7324 next_start = extent_map_end(em); in btrfs_check_rw_degradable()
7325 free_extent_map(em); in btrfs_check_rw_degradable()
7328 em = lookup_extent_mapping(map_tree, next_start, in btrfs_check_rw_degradable()
7824 struct extent_map *em; in verify_one_dev_extent() local
7833 em = lookup_extent_mapping(em_tree, chunk_offset, 1); in verify_one_dev_extent()
7836 if (!em) { in verify_one_dev_extent()
7844 map = em->map_lookup; in verify_one_dev_extent()
7845 stripe_len = btrfs_calc_stripe_length(em); in verify_one_dev_extent()
7849 physical_offset, devid, em->start, physical_len, in verify_one_dev_extent()
7872 em->start); in verify_one_dev_extent()
7918 free_extent_map(em); in verify_one_dev_extent()
7925 struct extent_map *em; in verify_chunk_dev_extent_mapping() local
7931 em = rb_entry(node, struct extent_map, rb_node); in verify_chunk_dev_extent_mapping()
7932 if (em->map_lookup->num_stripes != in verify_chunk_dev_extent_mapping()
7933 em->map_lookup->verified_stripes) { in verify_chunk_dev_extent_mapping()
7936 em->start, em->map_lookup->verified_stripes, in verify_chunk_dev_extent_mapping()
7937 em->map_lookup->num_stripes); in verify_chunk_dev_extent_mapping()