Lines Matching refs:em
1000 struct extent_map *em = NULL; in check_defrag_in_cache() local
1005 em = lookup_extent_mapping(em_tree, offset, PAGE_SIZE); in check_defrag_in_cache()
1008 if (em) { in check_defrag_in_cache()
1009 end = extent_map_end(em); in check_defrag_in_cache()
1010 free_extent_map(em); in check_defrag_in_cache()
1094 struct extent_map *em; in defrag_lookup_extent() local
1102 em = lookup_extent_mapping(em_tree, start, len); in defrag_lookup_extent()
1105 if (!em) { in defrag_lookup_extent()
1111 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len, 0); in defrag_lookup_extent()
1114 if (IS_ERR(em)) in defrag_lookup_extent()
1118 return em; in defrag_lookup_extent()
1121 static bool defrag_check_next_extent(struct inode *inode, struct extent_map *em) in defrag_check_next_extent() argument
1127 if (em->start + em->len >= i_size_read(inode)) in defrag_check_next_extent()
1130 next = defrag_lookup_extent(inode, em->start + em->len); in defrag_check_next_extent()
1133 else if ((em->block_start + em->block_len == next->block_start) && in defrag_check_next_extent()
1134 (em->block_len > SZ_128K && next->block_len > SZ_128K)) in defrag_check_next_extent()
1145 struct extent_map *em; in should_defrag_range() local
1159 em = defrag_lookup_extent(inode, start); in should_defrag_range()
1160 if (!em) in should_defrag_range()
1164 if (em->block_start >= EXTENT_MAP_LAST_BYTE) { in should_defrag_range()
1172 next_mergeable = defrag_check_next_extent(inode, em); in should_defrag_range()
1178 (em->len >= thresh || (!next_mergeable && !prev_mergeable))) in should_defrag_range()
1190 *defrag_end = extent_map_end(em); in should_defrag_range()
1193 *skip = extent_map_end(em); in should_defrag_range()
1197 free_extent_map(em); in should_defrag_range()
3690 struct extent_map *em; in clone_update_extent_map() local
3693 em = alloc_extent_map(); in clone_update_extent_map()
3694 if (!em) { in clone_update_extent_map()
3704 btrfs_extent_item_to_extent_map(inode, path, fi, false, em); in clone_update_extent_map()
3705 em->generation = -1; in clone_update_extent_map()
3711 em->start = hole_offset; in clone_update_extent_map()
3712 em->len = hole_len; in clone_update_extent_map()
3713 em->ram_bytes = em->len; in clone_update_extent_map()
3714 em->orig_start = hole_offset; in clone_update_extent_map()
3715 em->block_start = EXTENT_MAP_HOLE; in clone_update_extent_map()
3716 em->block_len = 0; in clone_update_extent_map()
3717 em->orig_block_len = 0; in clone_update_extent_map()
3718 em->compress_type = BTRFS_COMPRESS_NONE; in clone_update_extent_map()
3719 em->generation = trans->transid; in clone_update_extent_map()
3724 ret = add_extent_mapping(em_tree, em, 1); in clone_update_extent_map()
3727 free_extent_map(em); in clone_update_extent_map()
3730 btrfs_drop_extent_cache(inode, em->start, in clone_update_extent_map()
3731 em->start + em->len - 1, 0); in clone_update_extent_map()