Lines Matching refs:em
2475 struct extent_map *em; in find_first_non_hole() local
2478 em = btrfs_get_extent(inode, NULL, 0, in find_first_non_hole()
2481 if (IS_ERR(em)) in find_first_non_hole()
2482 return PTR_ERR(em); in find_first_non_hole()
2485 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2487 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2488 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2489 *start = em->start + em->len; in find_first_non_hole()
2491 free_extent_map(em); in find_first_non_hole()
3135 struct extent_map *em; in btrfs_zero_range_check_range_boundary() local
3139 em = btrfs_get_extent(inode, NULL, 0, offset, sectorsize); in btrfs_zero_range_check_range_boundary()
3140 if (IS_ERR(em)) in btrfs_zero_range_check_range_boundary()
3141 return PTR_ERR(em); in btrfs_zero_range_check_range_boundary()
3143 if (em->block_start == EXTENT_MAP_HOLE) in btrfs_zero_range_check_range_boundary()
3145 else if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_zero_range_check_range_boundary()
3150 free_extent_map(em); in btrfs_zero_range_check_range_boundary()
3160 struct extent_map *em; in btrfs_zero_range() local
3170 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3172 if (IS_ERR(em)) { in btrfs_zero_range()
3173 ret = PTR_ERR(em); in btrfs_zero_range()
3185 if (em->start <= alloc_start && in btrfs_zero_range()
3186 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3187 const u64 em_end = em->start + em->len; in btrfs_zero_range()
3195 free_extent_map(em); in btrfs_zero_range()
3208 alloc_hint = em->block_start + em->len; in btrfs_zero_range()
3210 free_extent_map(em); in btrfs_zero_range()
3214 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3216 if (IS_ERR(em)) { in btrfs_zero_range()
3217 ret = PTR_ERR(em); in btrfs_zero_range()
3221 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3222 free_extent_map(em); in btrfs_zero_range()
3227 if (len < sectorsize && em->block_start != EXTENT_MAP_HOLE) { in btrfs_zero_range()
3228 free_extent_map(em); in btrfs_zero_range()
3237 free_extent_map(em); in btrfs_zero_range()
3349 struct extent_map *em; in btrfs_fallocate() local
3432 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3434 if (IS_ERR(em)) { in btrfs_fallocate()
3435 ret = PTR_ERR(em); in btrfs_fallocate()
3438 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
3439 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
3441 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
3443 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
3448 free_extent_map(em); in btrfs_fallocate()
3454 free_extent_map(em); in btrfs_fallocate()
3460 free_extent_map(em); in btrfs_fallocate()
3533 struct extent_map *em; in find_delalloc_subrange() local
3567 em = lookup_extent_mapping(em_tree, start, len); in find_delalloc_subrange()
3571 em_end = em ? extent_map_end(em) : 0; in find_delalloc_subrange()
3577 if (em && (em->block_start == EXTENT_MAP_HOLE || in find_delalloc_subrange()
3578 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) && em_end < end) { in find_delalloc_subrange()
3585 free_extent_map(em); in find_delalloc_subrange()
3587 em = next_em; in find_delalloc_subrange()
3590 if (em && (em->block_start == EXTENT_MAP_HOLE || in find_delalloc_subrange()
3591 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in find_delalloc_subrange()
3592 free_extent_map(em); in find_delalloc_subrange()
3593 em = NULL; in find_delalloc_subrange()
3600 if (!em) in find_delalloc_subrange()
3608 *delalloc_start_ret = em->start; in find_delalloc_subrange()
3610 free_extent_map(em); in find_delalloc_subrange()
3618 if (em->start < *delalloc_start_ret) { in find_delalloc_subrange()
3619 *delalloc_start_ret = em->start; in find_delalloc_subrange()
3627 free_extent_map(em); in find_delalloc_subrange()
3636 if (*delalloc_end_ret + 1 == em->start) in find_delalloc_subrange()
3639 free_extent_map(em); in find_delalloc_subrange()