Lines Matching refs:em
889 struct extent_map *em = NULL; in check_defrag_in_cache() local
894 em = lookup_extent_mapping(em_tree, offset, PAGE_CACHE_SIZE); in check_defrag_in_cache()
897 if (em) { in check_defrag_in_cache()
898 end = extent_map_end(em); in check_defrag_in_cache()
899 free_extent_map(em); in check_defrag_in_cache()
983 struct extent_map *em; in defrag_lookup_extent() local
991 em = lookup_extent_mapping(em_tree, start, len); in defrag_lookup_extent()
994 if (!em) { in defrag_lookup_extent()
1000 em = btrfs_get_extent(inode, NULL, 0, start, len, 0); in defrag_lookup_extent()
1003 if (IS_ERR(em)) in defrag_lookup_extent()
1007 return em; in defrag_lookup_extent()
1010 static bool defrag_check_next_extent(struct inode *inode, struct extent_map *em) in defrag_check_next_extent() argument
1016 if (em->start + em->len >= i_size_read(inode)) in defrag_check_next_extent()
1019 next = defrag_lookup_extent(inode, em->start + em->len); in defrag_check_next_extent()
1022 else if ((em->block_start + em->block_len == next->block_start) && in defrag_check_next_extent()
1023 (em->block_len > 128 * 1024 && next->block_len > 128 * 1024)) in defrag_check_next_extent()
1034 struct extent_map *em; in should_defrag_range() local
1048 em = defrag_lookup_extent(inode, start); in should_defrag_range()
1049 if (!em) in should_defrag_range()
1053 if (em->block_start >= EXTENT_MAP_LAST_BYTE) { in should_defrag_range()
1061 next_mergeable = defrag_check_next_extent(inode, em); in should_defrag_range()
1067 (em->len >= thresh || (!next_mergeable && !prev_mergeable))) in should_defrag_range()
1079 *defrag_end = extent_map_end(em); in should_defrag_range()
1082 *skip = extent_map_end(em); in should_defrag_range()
1086 free_extent_map(em); in should_defrag_range()
3322 struct extent_map *em; in clone_update_extent_map() local
3325 em = alloc_extent_map(); in clone_update_extent_map()
3326 if (!em) { in clone_update_extent_map()
3337 btrfs_extent_item_to_extent_map(inode, path, fi, false, em); in clone_update_extent_map()
3338 em->generation = -1; in clone_update_extent_map()
3344 em->start = hole_offset; in clone_update_extent_map()
3345 em->len = hole_len; in clone_update_extent_map()
3346 em->ram_bytes = em->len; in clone_update_extent_map()
3347 em->orig_start = hole_offset; in clone_update_extent_map()
3348 em->block_start = EXTENT_MAP_HOLE; in clone_update_extent_map()
3349 em->block_len = 0; in clone_update_extent_map()
3350 em->orig_block_len = 0; in clone_update_extent_map()
3351 em->compress_type = BTRFS_COMPRESS_NONE; in clone_update_extent_map()
3352 em->generation = trans->transid; in clone_update_extent_map()
3357 ret = add_extent_mapping(em_tree, em, 1); in clone_update_extent_map()
3360 free_extent_map(em); in clone_update_extent_map()
3363 btrfs_drop_extent_cache(inode, em->start, in clone_update_extent_map()
3364 em->start + em->len - 1, 0); in clone_update_extent_map()