Transaction &t,
laddr_t offset) = 0;
- /**
- * Finds unmapped laddr extent of len len
- */
- using find_hole_iertr = base_iertr;
- using find_hole_ret = find_hole_iertr::future<
- std::pair<laddr_t, extent_len_t>
- >;
- virtual find_hole_ret find_hole(
- Transaction &t,
- laddr_t hint,
- extent_len_t) = 0;
-
/**
* Allocates a new mapping referenced by LBARef
*
});
}
-BtreeLBAManager::find_hole_ret
-BtreeLBAManager::find_hole(
- Transaction &t,
- laddr_t hint,
- extent_len_t len)
-{
- return get_root(t
- ).si_then([this, hint, len, &t](auto extent) {
- return extent->find_hole(
- get_context(t),
- hint,
- L_ADDR_MAX,
- len);
- }).si_then([len](auto addr) {
- return std::make_pair(addr, len);
- });
-}
-
BtreeLBAManager::alloc_extent_ret
BtreeLBAManager::alloc_extent(
Transaction &t,
Transaction &t,
laddr_t offset) final;
- find_hole_ret find_hole(
- Transaction &t,
- laddr_t hint,
- extent_len_t) final;
-
alloc_extent_ret alloc_extent(
Transaction &t,
laddr_t hint,
zero_paddr());
}
- using find_hole_iertr = LBAManager::find_hole_iertr;
- using find_hole_ret = LBAManager::find_hole_iertr::future<
- std::pair<laddr_t, extent_len_t>
- >;
- find_hole_ret find_hole(
- Transaction &t,
- laddr_t hint,
- extent_len_t len) {
- return lba_manager->find_hole(
- t,
- hint,
- len);
- }
-
/* alloc_extents
*
* allocates more than one new blocks of type T.