Lines Matching refs:em
534 struct extent_map *em; in btrfs_drop_extent_cache() local
563 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_cache()
564 if (!em) { in btrfs_drop_extent_cache()
568 flags = em->flags; in btrfs_drop_extent_cache()
569 gen = em->generation; in btrfs_drop_extent_cache()
570 if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { in btrfs_drop_extent_cache()
571 if (testend && em->start + em->len >= start + len) { in btrfs_drop_extent_cache()
572 free_extent_map(em); in btrfs_drop_extent_cache()
576 start = em->start + em->len; in btrfs_drop_extent_cache()
578 len = start + len - (em->start + em->len); in btrfs_drop_extent_cache()
579 free_extent_map(em); in btrfs_drop_extent_cache()
583 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in btrfs_drop_extent_cache()
584 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in btrfs_drop_extent_cache()
586 modified = !list_empty(&em->list); in btrfs_drop_extent_cache()
590 if (em->start < start) { in btrfs_drop_extent_cache()
591 split->start = em->start; in btrfs_drop_extent_cache()
592 split->len = start - em->start; in btrfs_drop_extent_cache()
594 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
595 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
596 split->block_start = em->block_start; in btrfs_drop_extent_cache()
599 split->block_len = em->block_len; in btrfs_drop_extent_cache()
603 em->orig_block_len); in btrfs_drop_extent_cache()
604 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
608 split->block_start = em->block_start; in btrfs_drop_extent_cache()
614 split->bdev = em->bdev; in btrfs_drop_extent_cache()
616 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
617 replace_extent_mapping(em_tree, em, split, modified); in btrfs_drop_extent_cache()
622 if (testend && em->start + em->len > start + len) { in btrfs_drop_extent_cache()
623 u64 diff = start + len - em->start; in btrfs_drop_extent_cache()
626 split->len = em->start + em->len - (start + len); in btrfs_drop_extent_cache()
627 split->bdev = em->bdev; in btrfs_drop_extent_cache()
629 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
632 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
633 split->orig_block_len = max(em->block_len, in btrfs_drop_extent_cache()
634 em->orig_block_len); in btrfs_drop_extent_cache()
636 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
638 split->block_len = em->block_len; in btrfs_drop_extent_cache()
639 split->block_start = em->block_start; in btrfs_drop_extent_cache()
640 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
643 split->block_start = em->block_start in btrfs_drop_extent_cache()
645 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
651 split->block_start = em->block_start; in btrfs_drop_extent_cache()
655 if (extent_map_in_tree(em)) { in btrfs_drop_extent_cache()
656 replace_extent_mapping(em_tree, em, split, in btrfs_drop_extent_cache()
667 if (extent_map_in_tree(em)) in btrfs_drop_extent_cache()
668 remove_extent_mapping(em_tree, em); in btrfs_drop_extent_cache()
672 free_extent_map(em); in btrfs_drop_extent_cache()
674 free_extent_map(em); in btrfs_drop_extent_cache()
2234 struct extent_map *em; in find_first_non_hole() local
2237 em = btrfs_get_extent(inode, NULL, 0, *start, *len, 0); in find_first_non_hole()
2238 if (IS_ERR_OR_NULL(em)) { in find_first_non_hole()
2239 if (!em) in find_first_non_hole()
2242 ret = PTR_ERR(em); in find_first_non_hole()
2247 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2249 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2250 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2251 *start = em->start + em->len; in find_first_non_hole()
2253 free_extent_map(em); in find_first_non_hole()
2560 struct extent_map *em; in btrfs_fallocate() local
2649 em = btrfs_get_extent(inode, NULL, 0, cur_offset, in btrfs_fallocate()
2651 if (IS_ERR_OR_NULL(em)) { in btrfs_fallocate()
2652 if (!em) in btrfs_fallocate()
2655 ret = PTR_ERR(em); in btrfs_fallocate()
2658 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
2659 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
2662 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
2664 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
2696 free_extent_map(em); in btrfs_fallocate()
2718 struct extent_map *em = NULL; in find_desired_extent() local
2746 em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0); in find_desired_extent()
2747 if (IS_ERR(em)) { in find_desired_extent()
2748 ret = PTR_ERR(em); in find_desired_extent()
2749 em = NULL; in find_desired_extent()
2754 (em->block_start == EXTENT_MAP_HOLE || in find_desired_extent()
2755 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
2758 (em->block_start != EXTENT_MAP_HOLE && in find_desired_extent()
2759 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
2762 start = em->start + em->len; in find_desired_extent()
2763 free_extent_map(em); in find_desired_extent()
2764 em = NULL; in find_desired_extent()
2767 free_extent_map(em); in find_desired_extent()