Lines Matching refs:em
475 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
479 em = btrfs_get_extent(inode, NULL, 0, search_start, in btrfs_find_new_delalloc_bytes()
481 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
482 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
484 if (em->block_start != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
487 em_len = em->len; in btrfs_find_new_delalloc_bytes()
488 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
489 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
498 search_start = extent_map_end(em); in btrfs_find_new_delalloc_bytes()
499 free_extent_map(em); in btrfs_find_new_delalloc_bytes()
581 struct extent_map *em; in btrfs_drop_extent_cache() local
610 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_cache()
611 if (!em) { in btrfs_drop_extent_cache()
615 flags = em->flags; in btrfs_drop_extent_cache()
616 gen = em->generation; in btrfs_drop_extent_cache()
617 if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { in btrfs_drop_extent_cache()
618 if (testend && em->start + em->len >= start + len) { in btrfs_drop_extent_cache()
619 free_extent_map(em); in btrfs_drop_extent_cache()
623 start = em->start + em->len; in btrfs_drop_extent_cache()
625 len = start + len - (em->start + em->len); in btrfs_drop_extent_cache()
626 free_extent_map(em); in btrfs_drop_extent_cache()
630 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in btrfs_drop_extent_cache()
631 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in btrfs_drop_extent_cache()
633 modified = !list_empty(&em->list); in btrfs_drop_extent_cache()
637 if (em->start < start) { in btrfs_drop_extent_cache()
638 split->start = em->start; in btrfs_drop_extent_cache()
639 split->len = start - em->start; in btrfs_drop_extent_cache()
641 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
642 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
643 split->block_start = em->block_start; in btrfs_drop_extent_cache()
646 split->block_len = em->block_len; in btrfs_drop_extent_cache()
650 em->orig_block_len); in btrfs_drop_extent_cache()
651 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
655 split->block_start = em->block_start; in btrfs_drop_extent_cache()
661 split->bdev = em->bdev; in btrfs_drop_extent_cache()
663 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
664 replace_extent_mapping(em_tree, em, split, modified); in btrfs_drop_extent_cache()
669 if (testend && em->start + em->len > start + len) { in btrfs_drop_extent_cache()
670 u64 diff = start + len - em->start; in btrfs_drop_extent_cache()
673 split->len = em->start + em->len - (start + len); in btrfs_drop_extent_cache()
674 split->bdev = em->bdev; in btrfs_drop_extent_cache()
676 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
679 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
680 split->orig_block_len = max(em->block_len, in btrfs_drop_extent_cache()
681 em->orig_block_len); in btrfs_drop_extent_cache()
683 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
685 split->block_len = em->block_len; in btrfs_drop_extent_cache()
686 split->block_start = em->block_start; in btrfs_drop_extent_cache()
687 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
690 split->block_start = em->block_start in btrfs_drop_extent_cache()
692 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
698 split->block_start = em->block_start; in btrfs_drop_extent_cache()
702 if (extent_map_in_tree(em)) { in btrfs_drop_extent_cache()
703 replace_extent_mapping(em_tree, em, split, in btrfs_drop_extent_cache()
714 if (extent_map_in_tree(em)) in btrfs_drop_extent_cache()
715 remove_extent_mapping(em_tree, em); in btrfs_drop_extent_cache()
719 free_extent_map(em); in btrfs_drop_extent_cache()
721 free_extent_map(em); in btrfs_drop_extent_cache()
2336 struct extent_map *em; in find_first_non_hole() local
2339 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in find_first_non_hole()
2342 if (IS_ERR(em)) in find_first_non_hole()
2343 return PTR_ERR(em); in find_first_non_hole()
2346 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2348 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2349 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2350 *start = em->start + em->len; in find_first_non_hole()
2352 free_extent_map(em); in find_first_non_hole()
2761 struct extent_map *em; in btrfs_zero_range_check_range_boundary() local
2765 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0); in btrfs_zero_range_check_range_boundary()
2766 if (IS_ERR(em)) in btrfs_zero_range_check_range_boundary()
2767 return PTR_ERR(em); in btrfs_zero_range_check_range_boundary()
2769 if (em->block_start == EXTENT_MAP_HOLE) in btrfs_zero_range_check_range_boundary()
2771 else if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_zero_range_check_range_boundary()
2776 free_extent_map(em); in btrfs_zero_range_check_range_boundary()
2786 struct extent_map *em; in btrfs_zero_range() local
2798 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in btrfs_zero_range()
2800 if (IS_ERR(em)) { in btrfs_zero_range()
2801 ret = PTR_ERR(em); in btrfs_zero_range()
2813 if (em->start <= alloc_start && in btrfs_zero_range()
2814 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
2815 const u64 em_end = em->start + em->len; in btrfs_zero_range()
2823 free_extent_map(em); in btrfs_zero_range()
2836 alloc_hint = em->block_start + em->len; in btrfs_zero_range()
2838 free_extent_map(em); in btrfs_zero_range()
2842 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in btrfs_zero_range()
2844 if (IS_ERR(em)) { in btrfs_zero_range()
2845 ret = PTR_ERR(em); in btrfs_zero_range()
2849 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
2850 free_extent_map(em); in btrfs_zero_range()
2855 if (len < sectorsize && em->block_start != EXTENT_MAP_HOLE) { in btrfs_zero_range()
2856 free_extent_map(em); in btrfs_zero_range()
2864 free_extent_map(em); in btrfs_zero_range()
2970 struct extent_map *em; in btrfs_fallocate() local
3080 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3082 if (IS_ERR(em)) { in btrfs_fallocate()
3083 ret = PTR_ERR(em); in btrfs_fallocate()
3086 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
3087 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
3089 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
3091 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
3095 free_extent_map(em); in btrfs_fallocate()
3101 free_extent_map(em); in btrfs_fallocate()
3113 free_extent_map(em); in btrfs_fallocate()
3158 struct extent_map *em = NULL; in find_desired_extent() local
3187 em = btrfs_get_extent_fiemap(BTRFS_I(inode), NULL, 0, in find_desired_extent()
3189 if (IS_ERR(em)) { in find_desired_extent()
3190 ret = PTR_ERR(em); in find_desired_extent()
3191 em = NULL; in find_desired_extent()
3196 (em->block_start == EXTENT_MAP_HOLE || in find_desired_extent()
3197 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3200 (em->block_start != EXTENT_MAP_HOLE && in find_desired_extent()
3201 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3204 start = em->start + em->len; in find_desired_extent()
3205 free_extent_map(em); in find_desired_extent()
3206 em = NULL; in find_desired_extent()
3209 free_extent_map(em); in find_desired_extent()