Lines Matching refs:em

2276 	struct extent_map *em;  in btrfs_get_io_failure_record()  local
2296 em = lookup_extent_mapping(em_tree, start, failrec->len); in btrfs_get_io_failure_record()
2297 if (!em) { in btrfs_get_io_failure_record()
2303 if (em->start > start || em->start + em->len <= start) { in btrfs_get_io_failure_record()
2304 free_extent_map(em); in btrfs_get_io_failure_record()
2305 em = NULL; in btrfs_get_io_failure_record()
2308 if (!em) { in btrfs_get_io_failure_record()
2313 logical = start - em->start; in btrfs_get_io_failure_record()
2314 logical = em->block_start + logical; in btrfs_get_io_failure_record()
2315 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_get_io_failure_record()
2316 logical = em->block_start; in btrfs_get_io_failure_record()
2319 em->compress_type); in btrfs_get_io_failure_record()
2326 free_extent_map(em); in btrfs_get_io_failure_record()
2945 struct extent_map *em; in __get_extent_map() local
2948 em = *em_cached; in __get_extent_map()
2949 if (extent_map_in_tree(em) && start >= em->start && in __get_extent_map()
2950 start < extent_map_end(em)) { in __get_extent_map()
2951 atomic_inc(&em->refs); in __get_extent_map()
2952 return em; in __get_extent_map()
2955 free_extent_map(em); in __get_extent_map()
2959 em = get_extent(inode, page, pg_offset, start, len, 0); in __get_extent_map()
2960 if (em_cached && !IS_ERR_OR_NULL(em)) { in __get_extent_map()
2962 atomic_inc(&em->refs); in __get_extent_map()
2963 *em_cached = em; in __get_extent_map()
2965 return em; in __get_extent_map()
2991 struct extent_map *em; in __do_readpage() local
3046 em = __get_extent_map(inode, page, pg_offset, cur, in __do_readpage()
3048 if (IS_ERR_OR_NULL(em)) { in __do_readpage()
3054 extent_offset = cur - em->start; in __do_readpage()
3055 BUG_ON(extent_map_end(em) <= cur); in __do_readpage()
3058 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in __do_readpage()
3061 em->compress_type); in __do_readpage()
3064 iosize = min(extent_map_end(em) - cur, end - cur + 1); in __do_readpage()
3065 cur_end = min(extent_map_end(em) - 1, end); in __do_readpage()
3068 disk_io_size = em->block_len; in __do_readpage()
3069 sector = em->block_start >> 9; in __do_readpage()
3071 sector = (em->block_start + extent_offset) >> 9; in __do_readpage()
3074 bdev = em->bdev; in __do_readpage()
3075 block_start = em->block_start; in __do_readpage()
3076 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in __do_readpage()
3113 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) && in __do_readpage()
3115 *prev_em_start != em->orig_start) in __do_readpage()
3119 *prev_em_start = em->orig_start; in __do_readpage()
3121 free_extent_map(em); in __do_readpage()
3122 em = NULL; in __do_readpage()
3452 struct extent_map *em; in __extent_writepage_io() local
3501 em = epd->get_extent(inode, page, pg_offset, cur, in __extent_writepage_io()
3503 if (IS_ERR_OR_NULL(em)) { in __extent_writepage_io()
3505 ret = PTR_ERR_OR_ZERO(em); in __extent_writepage_io()
3509 extent_offset = cur - em->start; in __extent_writepage_io()
3510 em_end = extent_map_end(em); in __extent_writepage_io()
3515 sector = (em->block_start + extent_offset) >> 9; in __extent_writepage_io()
3516 bdev = em->bdev; in __extent_writepage_io()
3517 block_start = em->block_start; in __extent_writepage_io()
3518 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in __extent_writepage_io()
3519 free_extent_map(em); in __extent_writepage_io()
3520 em = NULL; in __extent_writepage_io()
4385 struct extent_map *em; in try_release_extent_mapping() local
4395 em = lookup_extent_mapping(map, start, len); in try_release_extent_mapping()
4396 if (!em) { in try_release_extent_mapping()
4400 if (test_bit(EXTENT_FLAG_PINNED, &em->flags) || in try_release_extent_mapping()
4401 em->start != start) { in try_release_extent_mapping()
4403 free_extent_map(em); in try_release_extent_mapping()
4406 if (!test_range_bit(tree, em->start, in try_release_extent_mapping()
4407 extent_map_end(em) - 1, in try_release_extent_mapping()
4410 remove_extent_mapping(map, em); in try_release_extent_mapping()
4412 free_extent_map(em); in try_release_extent_mapping()
4414 start = extent_map_end(em); in try_release_extent_mapping()
4418 free_extent_map(em); in try_release_extent_mapping()
4434 struct extent_map *em; in get_extent_skip_holes() local
4445 em = get_extent(inode, NULL, 0, offset, len, 0); in get_extent_skip_holes()
4446 if (IS_ERR_OR_NULL(em)) in get_extent_skip_holes()
4447 return em; in get_extent_skip_holes()
4450 if (!test_bit(EXTENT_FLAG_VACANCY, &em->flags) && in get_extent_skip_holes()
4451 em->block_start != EXTENT_MAP_HOLE) { in get_extent_skip_holes()
4452 return em; in get_extent_skip_holes()
4456 offset = extent_map_end(em); in get_extent_skip_holes()
4457 free_extent_map(em); in get_extent_skip_holes()
4477 struct extent_map *em = NULL; in extent_fiemap() local
4542 em = get_extent_skip_holes(inode, start, last_for_get_extent, in extent_fiemap()
4544 if (!em) in extent_fiemap()
4546 if (IS_ERR(em)) { in extent_fiemap()
4547 ret = PTR_ERR(em); in extent_fiemap()
4555 if (em->start >= max || extent_map_end(em) < off) in extent_fiemap()
4564 em_start = max(em->start, off); in extent_fiemap()
4572 if (!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4573 offset_in_extent = em_start - em->start; in extent_fiemap()
4574 em_end = extent_map_end(em); in extent_fiemap()
4582 off = extent_map_end(em); in extent_fiemap()
4586 if (em->block_start == EXTENT_MAP_LAST_BYTE) { in extent_fiemap()
4589 } else if (em->block_start == EXTENT_MAP_INLINE) { in extent_fiemap()
4592 } else if (em->block_start == EXTENT_MAP_DELALLOC) { in extent_fiemap()
4596 u64 bytenr = em->block_start - in extent_fiemap()
4597 (em->start - em->orig_start); in extent_fiemap()
4599 disko = em->block_start + offset_in_extent; in extent_fiemap()
4617 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4619 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in extent_fiemap()
4622 free_extent_map(em); in extent_fiemap()
4623 em = NULL; in extent_fiemap()
4631 em = get_extent_skip_holes(inode, off, last_for_get_extent, in extent_fiemap()
4633 if (IS_ERR(em)) { in extent_fiemap()
4634 ret = PTR_ERR(em); in extent_fiemap()
4637 if (!em) { in extent_fiemap()
4650 free_extent_map(em); in extent_fiemap()