Lines Matching refs:em
2208 struct extent_map *em; in btrfs_get_io_failure_record() local
2228 em = lookup_extent_mapping(em_tree, start, failrec->len); in btrfs_get_io_failure_record()
2229 if (!em) { in btrfs_get_io_failure_record()
2235 if (em->start > start || em->start + em->len <= start) { in btrfs_get_io_failure_record()
2236 free_extent_map(em); in btrfs_get_io_failure_record()
2237 em = NULL; in btrfs_get_io_failure_record()
2240 if (!em) { in btrfs_get_io_failure_record()
2245 logical = start - em->start; in btrfs_get_io_failure_record()
2246 logical = em->block_start + logical; in btrfs_get_io_failure_record()
2247 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_get_io_failure_record()
2248 logical = em->block_start; in btrfs_get_io_failure_record()
2251 em->compress_type); in btrfs_get_io_failure_record()
2258 free_extent_map(em); in btrfs_get_io_failure_record()
2878 struct extent_map *em; in __get_extent_map() local
2881 em = *em_cached; in __get_extent_map()
2882 if (extent_map_in_tree(em) && start >= em->start && in __get_extent_map()
2883 start < extent_map_end(em)) { in __get_extent_map()
2884 atomic_inc(&em->refs); in __get_extent_map()
2885 return em; in __get_extent_map()
2888 free_extent_map(em); in __get_extent_map()
2892 em = get_extent(inode, page, pg_offset, start, len, 0); in __get_extent_map()
2893 if (em_cached && !IS_ERR_OR_NULL(em)) { in __get_extent_map()
2895 atomic_inc(&em->refs); in __get_extent_map()
2896 *em_cached = em; in __get_extent_map()
2898 return em; in __get_extent_map()
2924 struct extent_map *em; in __do_readpage() local
2979 em = __get_extent_map(inode, page, pg_offset, cur, in __do_readpage()
2981 if (IS_ERR_OR_NULL(em)) { in __do_readpage()
2987 extent_offset = cur - em->start; in __do_readpage()
2988 BUG_ON(extent_map_end(em) <= cur); in __do_readpage()
2991 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in __do_readpage()
2994 em->compress_type); in __do_readpage()
2997 iosize = min(extent_map_end(em) - cur, end - cur + 1); in __do_readpage()
2998 cur_end = min(extent_map_end(em) - 1, end); in __do_readpage()
3001 disk_io_size = em->block_len; in __do_readpage()
3002 sector = em->block_start >> 9; in __do_readpage()
3004 sector = (em->block_start + extent_offset) >> 9; in __do_readpage()
3007 bdev = em->bdev; in __do_readpage()
3008 block_start = em->block_start; in __do_readpage()
3009 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in __do_readpage()
3046 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) && in __do_readpage()
3048 *prev_em_start != em->orig_start) in __do_readpage()
3052 *prev_em_start = em->orig_start; in __do_readpage()
3054 free_extent_map(em); in __do_readpage()
3055 em = NULL; in __do_readpage()
3381 struct extent_map *em; in __extent_writepage_io() local
3430 em = epd->get_extent(inode, page, pg_offset, cur, in __extent_writepage_io()
3432 if (IS_ERR_OR_NULL(em)) { in __extent_writepage_io()
3434 ret = PTR_ERR_OR_ZERO(em); in __extent_writepage_io()
3438 extent_offset = cur - em->start; in __extent_writepage_io()
3439 em_end = extent_map_end(em); in __extent_writepage_io()
3444 sector = (em->block_start + extent_offset) >> 9; in __extent_writepage_io()
3445 bdev = em->bdev; in __extent_writepage_io()
3446 block_start = em->block_start; in __extent_writepage_io()
3447 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in __extent_writepage_io()
3448 free_extent_map(em); in __extent_writepage_io()
3449 em = NULL; in __extent_writepage_io()
4313 struct extent_map *em; in try_release_extent_mapping() local
4323 em = lookup_extent_mapping(map, start, len); in try_release_extent_mapping()
4324 if (!em) { in try_release_extent_mapping()
4328 if (test_bit(EXTENT_FLAG_PINNED, &em->flags) || in try_release_extent_mapping()
4329 em->start != start) { in try_release_extent_mapping()
4331 free_extent_map(em); in try_release_extent_mapping()
4334 if (!test_range_bit(tree, em->start, in try_release_extent_mapping()
4335 extent_map_end(em) - 1, in try_release_extent_mapping()
4338 remove_extent_mapping(map, em); in try_release_extent_mapping()
4340 free_extent_map(em); in try_release_extent_mapping()
4342 start = extent_map_end(em); in try_release_extent_mapping()
4346 free_extent_map(em); in try_release_extent_mapping()
4362 struct extent_map *em; in get_extent_skip_holes() local
4373 em = get_extent(inode, NULL, 0, offset, len, 0); in get_extent_skip_holes()
4374 if (IS_ERR_OR_NULL(em)) in get_extent_skip_holes()
4375 return em; in get_extent_skip_holes()
4378 if (!test_bit(EXTENT_FLAG_VACANCY, &em->flags) && in get_extent_skip_holes()
4379 em->block_start != EXTENT_MAP_HOLE) { in get_extent_skip_holes()
4380 return em; in get_extent_skip_holes()
4384 offset = extent_map_end(em); in get_extent_skip_holes()
4385 free_extent_map(em); in get_extent_skip_holes()
4405 struct extent_map *em = NULL; in extent_fiemap() local
4470 em = get_extent_skip_holes(inode, start, last_for_get_extent, in extent_fiemap()
4472 if (!em) in extent_fiemap()
4474 if (IS_ERR(em)) { in extent_fiemap()
4475 ret = PTR_ERR(em); in extent_fiemap()
4483 if (em->start >= max || extent_map_end(em) < off) in extent_fiemap()
4492 em_start = max(em->start, off); in extent_fiemap()
4500 if (!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4501 offset_in_extent = em_start - em->start; in extent_fiemap()
4502 em_end = extent_map_end(em); in extent_fiemap()
4510 off = extent_map_end(em); in extent_fiemap()
4514 if (em->block_start == EXTENT_MAP_LAST_BYTE) { in extent_fiemap()
4517 } else if (em->block_start == EXTENT_MAP_INLINE) { in extent_fiemap()
4520 } else if (em->block_start == EXTENT_MAP_DELALLOC) { in extent_fiemap()
4524 u64 bytenr = em->block_start - in extent_fiemap()
4525 (em->start - em->orig_start); in extent_fiemap()
4527 disko = em->block_start + offset_in_extent; in extent_fiemap()
4545 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4548 free_extent_map(em); in extent_fiemap()
4549 em = NULL; in extent_fiemap()
4557 em = get_extent_skip_holes(inode, off, last_for_get_extent, in extent_fiemap()
4559 if (IS_ERR(em)) { in extent_fiemap()
4560 ret = PTR_ERR(em); in extent_fiemap()
4563 if (!em) { in extent_fiemap()
4576 free_extent_map(em); in extent_fiemap()