Lines Matching full:em

602  * Return valid em if we find a file extent matching the requirement.
613 struct extent_map *em; in defrag_get_extent() local
618 em = btrfs_alloc_extent_map(); in defrag_get_extent()
619 if (!em) { in defrag_get_extent()
691 em->start = start; in defrag_get_extent()
692 em->disk_bytenr = EXTENT_MAP_HOLE; in defrag_get_extent()
693 em->disk_num_bytes = 0; in defrag_get_extent()
694 em->ram_bytes = 0; in defrag_get_extent()
695 em->offset = 0; in defrag_get_extent()
696 em->len = key.offset - start; in defrag_get_extent()
713 /* Now this extent covers @start, convert it to em */ in defrag_get_extent()
714 btrfs_extent_item_to_extent_map(inode, &path, fi, em); in defrag_get_extent()
724 return em; in defrag_get_extent()
728 btrfs_free_extent_map(em); in defrag_get_extent()
733 btrfs_free_extent_map(em); in defrag_get_extent()
742 struct extent_map *em; in defrag_lookup_extent() local
750 em = btrfs_lookup_extent_mapping(em_tree, start, sectorsize); in defrag_lookup_extent()
755 * tree to get the original em for defrag. in defrag_lookup_extent()
762 if (em && (em->flags & EXTENT_FLAG_MERGED)) { in defrag_lookup_extent()
763 btrfs_free_extent_map(em); in defrag_lookup_extent()
764 em = NULL; in defrag_lookup_extent()
767 if (!em) { in defrag_lookup_extent()
774 em = defrag_get_extent(BTRFS_I(inode), start, newer_than); in defrag_lookup_extent()
778 if (IS_ERR(em)) in defrag_lookup_extent()
782 return em; in defrag_lookup_extent()
786 const struct extent_map *em) in get_extent_max_capacity() argument
788 if (btrfs_extent_map_is_compressed(em)) in get_extent_max_capacity()
793 static bool defrag_check_next_extent(struct inode *inode, struct extent_map *em, in defrag_check_next_extent() argument
801 if (em->start + em->len >= i_size_read(inode)) in defrag_check_next_extent()
810 next = defrag_lookup_extent(inode, em->start + em->len, newer_than, locked); in defrag_check_next_extent()
811 /* No more em or hole */ in defrag_check_next_extent()
820 if (next->len >= get_extent_max_capacity(fs_info, em)) in defrag_check_next_extent()
968 struct extent_map *em; in defrag_collect_targets() local
974 em = defrag_lookup_extent(&inode->vfs_inode, cur, newer_than, locked); in defrag_collect_targets()
975 if (!em) in defrag_collect_targets()
984 if (em->disk_bytenr == EXTENT_MAP_INLINE && in defrag_collect_targets()
985 em->len <= inode->root->fs_info->max_inline) in defrag_collect_targets()
989 if (em->disk_bytenr == EXTENT_MAP_HOLE || in defrag_collect_targets()
990 (em->flags & EXTENT_FLAG_PREALLOC)) in defrag_collect_targets()
994 if (em->generation < newer_than) in defrag_collect_targets()
997 /* This em is under writeback, no need to defrag */ in defrag_collect_targets()
998 if (em->generation == (u64)-1) in defrag_collect_targets()
1005 range_len = em->len - (cur - em->start); in defrag_collect_targets()
1038 if (em->len >= extent_thresh) in defrag_collect_targets()
1045 if (em->len >= get_extent_max_capacity(fs_info, em)) in defrag_collect_targets()
1054 if (em->disk_bytenr == EXTENT_MAP_INLINE) in defrag_collect_targets()
1057 next_mergeable = defrag_check_next_extent(&inode->vfs_inode, em, in defrag_collect_targets()
1076 range_len = min(btrfs_extent_map_end(em), start + len) - cur; in defrag_collect_targets()
1098 btrfs_free_extent_map(em); in defrag_collect_targets()
1107 cur = btrfs_extent_map_end(em); in defrag_collect_targets()
1108 btrfs_free_extent_map(em); in defrag_collect_targets()