Lines Matching refs:extent
78 void ExtentRanges::AddExtent(Extent extent) { in AddExtent() argument
79 if (extent.start_block() == kSparseHole || extent.num_blocks() == 0) in AddExtent()
87 if (ExtentsOverlapOrTouch(*it, extent)) { in AddExtent()
94 extent = UnionOverlappingExtents(extent, *it); in AddExtent()
98 extent_set_.insert(extent); in AddExtent()
100 blocks_ += extent.num_blocks(); in AddExtent()
121 void ExtentRanges::SubtractExtent(const Extent& extent) { in SubtractExtent() argument
122 if (extent.start_block() == kSparseHole || extent.num_blocks() == 0) in SubtractExtent()
131 if (!ExtentsOverlap(*it, extent)) in SubtractExtent()
141 ExtentSet subtraction = SubtractOverlappingExtents(*it, extent); in SubtractExtent()
239 const Extent& extent = *it; in GetExtentsForBlockCount() local
240 out.push_back(extent); in GetExtentsForBlockCount()
241 out_blocks += extent.num_blocks(); in GetExtentsForBlockCount()
242 if (extent.num_blocks() < blocks_needed) in GetExtentsForBlockCount()
244 if (extent.num_blocks() == blocks_needed) in GetExtentsForBlockCount()
247 out_blocks -= extent.num_blocks(); in GetExtentsForBlockCount()
259 for (Extent extent : extents) { in FilterExtentRanges() local
265 auto lower = extent_set.lower_bound(extent); in FilterExtentRanges()
271 ExtentForRange(extent.start_block() + extent.num_blocks(), 0)); in FilterExtentRanges()
273 if (!ExtentRanges::ExtentsOverlap(extent, *iter)) in FilterExtentRanges()
275 if (iter->start_block() <= extent.start_block()) { in FilterExtentRanges()
278 extent.start_block(); in FilterExtentRanges()
279 if (cut_blocks >= extent.num_blocks()) { in FilterExtentRanges()
280 extent.set_num_blocks(0); in FilterExtentRanges()
283 extent = ExtentForRange(extent.start_block() + cut_blocks, in FilterExtentRanges()
284 extent.num_blocks() - cut_blocks); in FilterExtentRanges()
289 ExtentForRange(extent.start_block(), in FilterExtentRanges()
290 iter->start_block() - extent.start_block())); in FilterExtentRanges()
292 uint64_t old_end = extent.start_block() + extent.num_blocks(); in FilterExtentRanges()
294 extent.set_num_blocks(0); in FilterExtentRanges()
297 extent = ExtentForRange(new_start, old_end - new_start); in FilterExtentRanges()
300 if (extent.num_blocks() > 0) in FilterExtentRanges()
301 result.push_back(extent); in FilterExtentRanges()