Lines Matching refs:em
476 struct extent_map *em; in btrfs_find_new_delalloc_bytes() local
480 em = btrfs_get_extent(inode, NULL, 0, search_start, in btrfs_find_new_delalloc_bytes()
482 if (IS_ERR(em)) in btrfs_find_new_delalloc_bytes()
483 return PTR_ERR(em); in btrfs_find_new_delalloc_bytes()
485 if (em->block_start != EXTENT_MAP_HOLE) in btrfs_find_new_delalloc_bytes()
488 em_len = em->len; in btrfs_find_new_delalloc_bytes()
489 if (em->start < search_start) in btrfs_find_new_delalloc_bytes()
490 em_len -= search_start - em->start; in btrfs_find_new_delalloc_bytes()
499 search_start = extent_map_end(em); in btrfs_find_new_delalloc_bytes()
500 free_extent_map(em); in btrfs_find_new_delalloc_bytes()
590 struct extent_map *em; in btrfs_drop_extent_cache() local
619 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_cache()
620 if (!em) { in btrfs_drop_extent_cache()
624 flags = em->flags; in btrfs_drop_extent_cache()
625 gen = em->generation; in btrfs_drop_extent_cache()
626 if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { in btrfs_drop_extent_cache()
627 if (testend && em->start + em->len >= start + len) { in btrfs_drop_extent_cache()
628 free_extent_map(em); in btrfs_drop_extent_cache()
632 start = em->start + em->len; in btrfs_drop_extent_cache()
634 len = start + len - (em->start + em->len); in btrfs_drop_extent_cache()
635 free_extent_map(em); in btrfs_drop_extent_cache()
639 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in btrfs_drop_extent_cache()
640 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in btrfs_drop_extent_cache()
642 modified = !list_empty(&em->list); in btrfs_drop_extent_cache()
646 if (em->start < start) { in btrfs_drop_extent_cache()
647 split->start = em->start; in btrfs_drop_extent_cache()
648 split->len = start - em->start; in btrfs_drop_extent_cache()
650 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
651 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
652 split->block_start = em->block_start; in btrfs_drop_extent_cache()
655 split->block_len = em->block_len; in btrfs_drop_extent_cache()
659 em->orig_block_len); in btrfs_drop_extent_cache()
660 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
664 split->block_start = em->block_start; in btrfs_drop_extent_cache()
670 split->bdev = em->bdev; in btrfs_drop_extent_cache()
672 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
673 replace_extent_mapping(em_tree, em, split, modified); in btrfs_drop_extent_cache()
678 if (testend && em->start + em->len > start + len) { in btrfs_drop_extent_cache()
679 u64 diff = start + len - em->start; in btrfs_drop_extent_cache()
682 split->len = em->start + em->len - (start + len); in btrfs_drop_extent_cache()
683 split->bdev = em->bdev; in btrfs_drop_extent_cache()
685 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
688 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
689 split->orig_block_len = max(em->block_len, in btrfs_drop_extent_cache()
690 em->orig_block_len); in btrfs_drop_extent_cache()
692 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
694 split->block_len = em->block_len; in btrfs_drop_extent_cache()
695 split->block_start = em->block_start; in btrfs_drop_extent_cache()
696 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
699 split->block_start = em->block_start in btrfs_drop_extent_cache()
701 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
707 split->block_start = em->block_start; in btrfs_drop_extent_cache()
711 if (extent_map_in_tree(em)) { in btrfs_drop_extent_cache()
712 replace_extent_mapping(em_tree, em, split, in btrfs_drop_extent_cache()
723 if (extent_map_in_tree(em)) in btrfs_drop_extent_cache()
724 remove_extent_mapping(em_tree, em); in btrfs_drop_extent_cache()
728 free_extent_map(em); in btrfs_drop_extent_cache()
730 free_extent_map(em); in btrfs_drop_extent_cache()
2390 struct extent_map *em; in find_first_non_hole() local
2393 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in find_first_non_hole()
2396 if (IS_ERR(em)) in find_first_non_hole()
2397 return PTR_ERR(em); in find_first_non_hole()
2400 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2402 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2403 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2404 *start = em->start + em->len; in find_first_non_hole()
2406 free_extent_map(em); in find_first_non_hole()
2958 struct extent_map *em; in btrfs_zero_range_check_range_boundary() local
2962 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0); in btrfs_zero_range_check_range_boundary()
2963 if (IS_ERR(em)) in btrfs_zero_range_check_range_boundary()
2964 return PTR_ERR(em); in btrfs_zero_range_check_range_boundary()
2966 if (em->block_start == EXTENT_MAP_HOLE) in btrfs_zero_range_check_range_boundary()
2968 else if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_zero_range_check_range_boundary()
2973 free_extent_map(em); in btrfs_zero_range_check_range_boundary()
2983 struct extent_map *em; in btrfs_zero_range() local
2995 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in btrfs_zero_range()
2997 if (IS_ERR(em)) { in btrfs_zero_range()
2998 ret = PTR_ERR(em); in btrfs_zero_range()
3010 if (em->start <= alloc_start && in btrfs_zero_range()
3011 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3012 const u64 em_end = em->start + em->len; in btrfs_zero_range()
3020 free_extent_map(em); in btrfs_zero_range()
3033 alloc_hint = em->block_start + em->len; in btrfs_zero_range()
3035 free_extent_map(em); in btrfs_zero_range()
3039 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in btrfs_zero_range()
3041 if (IS_ERR(em)) { in btrfs_zero_range()
3042 ret = PTR_ERR(em); in btrfs_zero_range()
3046 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3047 free_extent_map(em); in btrfs_zero_range()
3052 if (len < sectorsize && em->block_start != EXTENT_MAP_HOLE) { in btrfs_zero_range()
3053 free_extent_map(em); in btrfs_zero_range()
3061 free_extent_map(em); in btrfs_zero_range()
3167 struct extent_map *em; in btrfs_fallocate() local
3277 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3279 if (IS_ERR(em)) { in btrfs_fallocate()
3280 ret = PTR_ERR(em); in btrfs_fallocate()
3283 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
3284 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
3286 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
3288 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
3292 free_extent_map(em); in btrfs_fallocate()
3299 free_extent_map(em); in btrfs_fallocate()
3311 free_extent_map(em); in btrfs_fallocate()
3356 struct extent_map *em = NULL; in find_desired_extent() local
3385 em = btrfs_get_extent_fiemap(BTRFS_I(inode), start, len); in find_desired_extent()
3386 if (IS_ERR(em)) { in find_desired_extent()
3387 ret = PTR_ERR(em); in find_desired_extent()
3388 em = NULL; in find_desired_extent()
3393 (em->block_start == EXTENT_MAP_HOLE || in find_desired_extent()
3394 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3397 (em->block_start != EXTENT_MAP_HOLE && in find_desired_extent()
3398 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3401 start = em->start + em->len; in find_desired_extent()
3402 free_extent_map(em); in find_desired_extent()
3403 em = NULL; in find_desired_extent()
3406 free_extent_map(em); in find_desired_extent()