Lines Matching refs:em

2456 	struct extent_map *em;  in btrfs_get_io_failure_record()  local
2489 em = lookup_extent_mapping(em_tree, start, failrec->len); in btrfs_get_io_failure_record()
2490 if (!em) { in btrfs_get_io_failure_record()
2496 if (em->start > start || em->start + em->len <= start) { in btrfs_get_io_failure_record()
2497 free_extent_map(em); in btrfs_get_io_failure_record()
2498 em = NULL; in btrfs_get_io_failure_record()
2501 if (!em) { in btrfs_get_io_failure_record()
2506 logical = start - em->start; in btrfs_get_io_failure_record()
2507 logical = em->block_start + logical; in btrfs_get_io_failure_record()
2508 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_get_io_failure_record()
2509 logical = em->block_start; in btrfs_get_io_failure_record()
2511 extent_set_compress_type(&failrec->bio_flags, em->compress_type); in btrfs_get_io_failure_record()
2519 free_extent_map(em); in btrfs_get_io_failure_record()
3113 struct extent_map *em; in __get_extent_map() local
3116 em = *em_cached; in __get_extent_map()
3117 if (extent_map_in_tree(em) && start >= em->start && in __get_extent_map()
3118 start < extent_map_end(em)) { in __get_extent_map()
3119 refcount_inc(&em->refs); in __get_extent_map()
3120 return em; in __get_extent_map()
3123 free_extent_map(em); in __get_extent_map()
3127 em = btrfs_get_extent(BTRFS_I(inode), page, pg_offset, start, len); in __get_extent_map()
3128 if (em_cached && !IS_ERR_OR_NULL(em)) { in __get_extent_map()
3130 refcount_inc(&em->refs); in __get_extent_map()
3131 *em_cached = em; in __get_extent_map()
3133 return em; in __get_extent_map()
3154 struct extent_map *em; in btrfs_do_readpage() local
3205 em = __get_extent_map(inode, page, pg_offset, cur, in btrfs_do_readpage()
3207 if (IS_ERR_OR_NULL(em)) { in btrfs_do_readpage()
3212 extent_offset = cur - em->start; in btrfs_do_readpage()
3213 BUG_ON(extent_map_end(em) <= cur); in btrfs_do_readpage()
3216 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) { in btrfs_do_readpage()
3219 em->compress_type); in btrfs_do_readpage()
3222 iosize = min(extent_map_end(em) - cur, end - cur + 1); in btrfs_do_readpage()
3223 cur_end = min(extent_map_end(em) - 1, end); in btrfs_do_readpage()
3226 disk_io_size = em->block_len; in btrfs_do_readpage()
3227 offset = em->block_start; in btrfs_do_readpage()
3229 offset = em->block_start + extent_offset; in btrfs_do_readpage()
3232 block_start = em->block_start; in btrfs_do_readpage()
3233 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_do_readpage()
3270 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) && in btrfs_do_readpage()
3272 *prev_em_start != em->start) in btrfs_do_readpage()
3276 *prev_em_start = em->start; in btrfs_do_readpage()
3278 free_extent_map(em); in btrfs_do_readpage()
3279 em = NULL; in btrfs_do_readpage()
3470 struct extent_map *em; in __extent_writepage_io() local
3505 em = btrfs_get_extent(inode, NULL, 0, cur, end - cur + 1); in __extent_writepage_io()
3506 if (IS_ERR_OR_NULL(em)) { in __extent_writepage_io()
3508 ret = PTR_ERR_OR_ZERO(em); in __extent_writepage_io()
3512 extent_offset = cur - em->start; in __extent_writepage_io()
3513 em_end = extent_map_end(em); in __extent_writepage_io()
3518 offset = em->block_start + extent_offset; in __extent_writepage_io()
3519 block_start = em->block_start; in __extent_writepage_io()
3520 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in __extent_writepage_io()
3521 free_extent_map(em); in __extent_writepage_io()
3522 em = NULL; in __extent_writepage_io()
4441 struct extent_map *em; in try_release_extent_mapping() local
4457 em = lookup_extent_mapping(map, start, len); in try_release_extent_mapping()
4458 if (!em) { in try_release_extent_mapping()
4462 if (test_bit(EXTENT_FLAG_PINNED, &em->flags) || in try_release_extent_mapping()
4463 em->start != start) { in try_release_extent_mapping()
4465 free_extent_map(em); in try_release_extent_mapping()
4468 if (test_range_bit(tree, em->start, in try_release_extent_mapping()
4469 extent_map_end(em) - 1, in try_release_extent_mapping()
4478 if (list_empty(&em->list) || in try_release_extent_mapping()
4479 test_bit(EXTENT_FLAG_LOGGING, &em->flags)) in try_release_extent_mapping()
4492 if (em->generation >= cur_gen) in try_release_extent_mapping()
4503 remove_extent_mapping(map, em); in try_release_extent_mapping()
4505 free_extent_map(em); in try_release_extent_mapping()
4507 start = extent_map_end(em); in try_release_extent_mapping()
4511 free_extent_map(em); in try_release_extent_mapping()
4527 struct extent_map *em; in get_extent_skip_holes() local
4538 em = btrfs_get_extent_fiemap(inode, offset, len); in get_extent_skip_holes()
4539 if (IS_ERR_OR_NULL(em)) in get_extent_skip_holes()
4540 return em; in get_extent_skip_holes()
4543 if (em->block_start != EXTENT_MAP_HOLE) in get_extent_skip_holes()
4544 return em; in get_extent_skip_holes()
4547 offset = extent_map_end(em); in get_extent_skip_holes()
4548 free_extent_map(em); in get_extent_skip_holes()
4680 struct extent_map *em = NULL; in extent_fiemap() local
4763 em = get_extent_skip_holes(inode, start, last_for_get_extent); in extent_fiemap()
4764 if (!em) in extent_fiemap()
4766 if (IS_ERR(em)) { in extent_fiemap()
4767 ret = PTR_ERR(em); in extent_fiemap()
4775 if (em->start >= max || extent_map_end(em) < off) in extent_fiemap()
4784 em_start = max(em->start, off); in extent_fiemap()
4792 if (!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4793 offset_in_extent = em_start - em->start; in extent_fiemap()
4794 em_end = extent_map_end(em); in extent_fiemap()
4797 if (em->block_start < EXTENT_MAP_LAST_BYTE) in extent_fiemap()
4798 disko = em->block_start + offset_in_extent; in extent_fiemap()
4805 off = extent_map_end(em); in extent_fiemap()
4809 if (em->block_start == EXTENT_MAP_LAST_BYTE) { in extent_fiemap()
4812 } else if (em->block_start == EXTENT_MAP_INLINE) { in extent_fiemap()
4815 } else if (em->block_start == EXTENT_MAP_DELALLOC) { in extent_fiemap()
4819 u64 bytenr = em->block_start - in extent_fiemap()
4820 (em->start - em->orig_start); in extent_fiemap()
4837 if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) in extent_fiemap()
4839 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in extent_fiemap()
4842 free_extent_map(em); in extent_fiemap()
4843 em = NULL; in extent_fiemap()
4851 em = get_extent_skip_holes(inode, off, last_for_get_extent); in extent_fiemap()
4852 if (IS_ERR(em)) { in extent_fiemap()
4853 ret = PTR_ERR(em); in extent_fiemap()
4856 if (!em) { in extent_fiemap()
4871 free_extent_map(em); in extent_fiemap()