Lines Matching refs:em

520 	struct extent_map *em;  in btrfs_drop_extent_cache()  local
549 em = lookup_extent_mapping(em_tree, start, len); in btrfs_drop_extent_cache()
550 if (!em) { in btrfs_drop_extent_cache()
554 flags = em->flags; in btrfs_drop_extent_cache()
555 gen = em->generation; in btrfs_drop_extent_cache()
556 if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { in btrfs_drop_extent_cache()
557 if (testend && em->start + em->len >= start + len) { in btrfs_drop_extent_cache()
558 free_extent_map(em); in btrfs_drop_extent_cache()
562 start = em->start + em->len; in btrfs_drop_extent_cache()
564 len = start + len - (em->start + em->len); in btrfs_drop_extent_cache()
565 free_extent_map(em); in btrfs_drop_extent_cache()
569 compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); in btrfs_drop_extent_cache()
570 clear_bit(EXTENT_FLAG_PINNED, &em->flags); in btrfs_drop_extent_cache()
572 modified = !list_empty(&em->list); in btrfs_drop_extent_cache()
576 if (em->start < start) { in btrfs_drop_extent_cache()
577 split->start = em->start; in btrfs_drop_extent_cache()
578 split->len = start - em->start; in btrfs_drop_extent_cache()
580 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
581 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
582 split->block_start = em->block_start; in btrfs_drop_extent_cache()
585 split->block_len = em->block_len; in btrfs_drop_extent_cache()
589 em->orig_block_len); in btrfs_drop_extent_cache()
590 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
594 split->block_start = em->block_start; in btrfs_drop_extent_cache()
601 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
602 replace_extent_mapping(em_tree, em, split, modified); in btrfs_drop_extent_cache()
607 if (testend && em->start + em->len > start + len) { in btrfs_drop_extent_cache()
608 u64 diff = start + len - em->start; in btrfs_drop_extent_cache()
611 split->len = em->start + em->len - (start + len); in btrfs_drop_extent_cache()
613 split->compress_type = em->compress_type; in btrfs_drop_extent_cache()
616 if (em->block_start < EXTENT_MAP_LAST_BYTE) { in btrfs_drop_extent_cache()
617 split->orig_block_len = max(em->block_len, in btrfs_drop_extent_cache()
618 em->orig_block_len); in btrfs_drop_extent_cache()
620 split->ram_bytes = em->ram_bytes; in btrfs_drop_extent_cache()
622 split->block_len = em->block_len; in btrfs_drop_extent_cache()
623 split->block_start = em->block_start; in btrfs_drop_extent_cache()
624 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
627 split->block_start = em->block_start in btrfs_drop_extent_cache()
629 split->orig_start = em->orig_start; in btrfs_drop_extent_cache()
635 split->block_start = em->block_start; in btrfs_drop_extent_cache()
639 if (extent_map_in_tree(em)) { in btrfs_drop_extent_cache()
640 replace_extent_mapping(em_tree, em, split, in btrfs_drop_extent_cache()
651 if (extent_map_in_tree(em)) in btrfs_drop_extent_cache()
652 remove_extent_mapping(em_tree, em); in btrfs_drop_extent_cache()
656 free_extent_map(em); in btrfs_drop_extent_cache()
658 free_extent_map(em); in btrfs_drop_extent_cache()
2449 struct extent_map *em; in find_first_non_hole() local
2452 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, in find_first_non_hole()
2455 if (IS_ERR(em)) in find_first_non_hole()
2456 return PTR_ERR(em); in find_first_non_hole()
2459 if (em->block_start == EXTENT_MAP_HOLE) { in find_first_non_hole()
2461 *len = em->start + em->len > *start + *len ? in find_first_non_hole()
2462 0 : *start + *len - em->start - em->len; in find_first_non_hole()
2463 *start = em->start + em->len; in find_first_non_hole()
2465 free_extent_map(em); in find_first_non_hole()
3069 struct extent_map *em; in btrfs_zero_range_check_range_boundary() local
3073 em = btrfs_get_extent(inode, NULL, 0, offset, sectorsize); in btrfs_zero_range_check_range_boundary()
3074 if (IS_ERR(em)) in btrfs_zero_range_check_range_boundary()
3075 return PTR_ERR(em); in btrfs_zero_range_check_range_boundary()
3077 if (em->block_start == EXTENT_MAP_HOLE) in btrfs_zero_range_check_range_boundary()
3079 else if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) in btrfs_zero_range_check_range_boundary()
3084 free_extent_map(em); in btrfs_zero_range_check_range_boundary()
3094 struct extent_map *em; in btrfs_zero_range() local
3106 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3108 if (IS_ERR(em)) { in btrfs_zero_range()
3109 ret = PTR_ERR(em); in btrfs_zero_range()
3121 if (em->start <= alloc_start && in btrfs_zero_range()
3122 test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3123 const u64 em_end = em->start + em->len; in btrfs_zero_range()
3131 free_extent_map(em); in btrfs_zero_range()
3144 alloc_hint = em->block_start + em->len; in btrfs_zero_range()
3146 free_extent_map(em); in btrfs_zero_range()
3150 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
3152 if (IS_ERR(em)) { in btrfs_zero_range()
3153 ret = PTR_ERR(em); in btrfs_zero_range()
3157 if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) { in btrfs_zero_range()
3158 free_extent_map(em); in btrfs_zero_range()
3163 if (len < sectorsize && em->block_start != EXTENT_MAP_HOLE) { in btrfs_zero_range()
3164 free_extent_map(em); in btrfs_zero_range()
3172 free_extent_map(em); in btrfs_zero_range()
3279 struct extent_map *em; in btrfs_fallocate() local
3390 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3392 if (IS_ERR(em)) { in btrfs_fallocate()
3393 ret = PTR_ERR(em); in btrfs_fallocate()
3396 last_byte = min(extent_map_end(em), alloc_end); in btrfs_fallocate()
3397 actual_end = min_t(u64, extent_map_end(em), offset + len); in btrfs_fallocate()
3399 if (em->block_start == EXTENT_MAP_HOLE || in btrfs_fallocate()
3401 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { in btrfs_fallocate()
3405 free_extent_map(em); in btrfs_fallocate()
3413 free_extent_map(em); in btrfs_fallocate()
3426 free_extent_map(em); in btrfs_fallocate()
3472 struct extent_map *em = NULL; in find_desired_extent() local
3501 em = btrfs_get_extent_fiemap(BTRFS_I(inode), start, len); in find_desired_extent()
3502 if (IS_ERR(em)) { in find_desired_extent()
3503 ret = PTR_ERR(em); in find_desired_extent()
3504 em = NULL; in find_desired_extent()
3509 (em->block_start == EXTENT_MAP_HOLE || in find_desired_extent()
3510 test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3513 (em->block_start != EXTENT_MAP_HOLE && in find_desired_extent()
3514 !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) in find_desired_extent()
3517 start = em->start + em->len; in find_desired_extent()
3518 free_extent_map(em); in find_desired_extent()
3519 em = NULL; in find_desired_extent()
3522 free_extent_map(em); in find_desired_extent()