Lines Matching refs:em

528 	struct extent_map *em;  in btrfs_drop_extent_cache()  local
557 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_cache()
558 if (!em) { in btrfs_drop_extent_cache()
562 flags = em->flags; in btrfs_drop_extent_cache()
563 gen = em->generation; in btrfs_drop_extent_cache()
564 if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { in btrfs_drop_extent_cache()
565 if (testend && em->start + em->len >= start + len) { in btrfs_drop_extent_cache()
566 free_extent_map(em); in btrfs_drop_extent_cache()
570 start = em->start + em->len; in btrfs_drop_extent_cache()
572 len = start + len - (em->start + em->len); in btrfs_drop_extent_cache()
573 free_extent_map(em); in btrfs_drop_extent_cache()
577 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in btrfs_drop_extent_cache()
578 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in btrfs_drop_extent_cache()
580 modified = !list_empty(&em->list); in btrfs_drop_extent_cache()
584 if (em->start < start) { in btrfs_drop_extent_cache()
585 split->start = em->start; in btrfs_drop_extent_cache()
586 split->len = start - em->start; in btrfs_drop_extent_cache()
588 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
589 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
590 split->block_start = em->block_start; in btrfs_drop_extent_cache()
593 split->block_len = em->block_len; in btrfs_drop_extent_cache()
597 em->orig_block_len); in btrfs_drop_extent_cache()
598 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
602 split->block_start = em->block_start; in btrfs_drop_extent_cache()
609 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
610 replace_extent_mapping(em_tree, em, split, modified); in btrfs_drop_extent_cache()
615 if (testend && em->start + em->len > start + len) { in btrfs_drop_extent_cache()
616 u64 diff = start + len - em->start; in btrfs_drop_extent_cache()
619 split->len = em->start + em->len - (start + len); in btrfs_drop_extent_cache()
621 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
624 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
625 split->orig_block_len = max(em->block_len, in btrfs_drop_extent_cache()
626 em->orig_block_len); in btrfs_drop_extent_cache()
628 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
630 split->block_len = em->block_len; in btrfs_drop_extent_cache()
631 split->block_start = em->block_start; in btrfs_drop_extent_cache()
632 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
635 split->block_start = em->block_start in btrfs_drop_extent_cache()
637 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
643 split->block_start = em->block_start; in btrfs_drop_extent_cache()
647 if (extent_map_in_tree(em)) { in btrfs_drop_extent_cache()
648 replace_extent_mapping(em_tree, em, split, in btrfs_drop_extent_cache()
659 if (extent_map_in_tree(em)) in btrfs_drop_extent_cache()
660 remove_extent_mapping(em_tree, em); in btrfs_drop_extent_cache()
664 free_extent_map(em); in btrfs_drop_extent_cache()
666 free_extent_map(em); in btrfs_drop_extent_cache()
2474 struct extent_map *em; in find_first_non_hole() local
2477 em = btrfs_get_extent(inode, NULL, 0, in find_first_non_hole()
2480 if (IS_ERR(em)) in find_first_non_hole()
2481 return PTR_ERR(em); in find_first_non_hole()
2484 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2486 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2487 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2488 *start = em->start + em->len; in find_first_non_hole()
2490 free_extent_map(em); in find_first_non_hole()
3121 struct extent_map *em; in btrfs_zero_range_check_range_boundary() local
3125 em = btrfs_get_extent(inode, NULL, 0, offset, sectorsize); in btrfs_zero_range_check_range_boundary()
3126 if (IS_ERR(em)) in btrfs_zero_range_check_range_boundary()
3127 return PTR_ERR(em); in btrfs_zero_range_check_range_boundary()
3129 if (em->block_start == EXTENT_MAP_HOLE) in btrfs_zero_range_check_range_boundary()
3131 else if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_zero_range_check_range_boundary()
3136 free_extent_map(em); in btrfs_zero_range_check_range_boundary()
3146 struct extent_map *em; in btrfs_zero_range() local
3158 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3160 if (IS_ERR(em)) { in btrfs_zero_range()
3161 ret = PTR_ERR(em); in btrfs_zero_range()
3173 if (em->start <= alloc_start && in btrfs_zero_range()
3174 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3175 const u64 em_end = em->start + em->len; in btrfs_zero_range()
3183 free_extent_map(em); in btrfs_zero_range()
3196 alloc_hint = em->block_start + em->len; in btrfs_zero_range()
3198 free_extent_map(em); in btrfs_zero_range()
3202 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3204 if (IS_ERR(em)) { in btrfs_zero_range()
3205 ret = PTR_ERR(em); in btrfs_zero_range()
3209 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3210 free_extent_map(em); in btrfs_zero_range()
3215 if (len < sectorsize && em->block_start != EXTENT_MAP_HOLE) { in btrfs_zero_range()
3216 free_extent_map(em); in btrfs_zero_range()
3225 free_extent_map(em); in btrfs_zero_range()
3336 struct extent_map *em; in btrfs_fallocate() local
3451 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3453 if (IS_ERR(em)) { in btrfs_fallocate()
3454 ret = PTR_ERR(em); in btrfs_fallocate()
3457 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
3458 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
3460 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
3462 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
3466 free_extent_map(em); in btrfs_fallocate()
3474 free_extent_map(em); in btrfs_fallocate()
3487 free_extent_map(em); in btrfs_fallocate()
3533 struct extent_map *em = NULL; in find_desired_extent() local
3561 em = btrfs_get_extent_fiemap(inode, start, len); in find_desired_extent()
3562 if (IS_ERR(em)) { in find_desired_extent()
3563 ret = PTR_ERR(em); in find_desired_extent()
3564 em = NULL; in find_desired_extent()
3569 (em->block_start == EXTENT_MAP_HOLE || in find_desired_extent()
3570 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3573 (em->block_start != EXTENT_MAP_HOLE && in find_desired_extent()
3574 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3577 start = em->start + em->len; in find_desired_extent()
3578 free_extent_map(em); in find_desired_extent()
3579 em = NULL; in find_desired_extent()
3582 free_extent_map(em); in find_desired_extent()