virtual void mark_space_used(paddr_t paddr, size_t len) = 0;
virtual void mark_space_free(paddr_t paddr, size_t len) = 0;
- using abort_allocation_ertr = crimson::errorator<
- crimson::ct_error::input_output_error,
- crimson::ct_error::invarg
- >;
- virtual abort_allocation_ertr::future<> abort_allocation(Transaction &t) = 0;
-
virtual void complete_allocation(paddr_t addr, size_t size) = 0;
virtual size_t get_size() const = 0;
return paddr;
}
-
-BlockRBManager::abort_allocation_ertr::future<> BlockRBManager::abort_allocation(
- Transaction &t)
-{
- /*
- * TODO: clear all allocation infos associated with transaction in in-memory allocator
- */
- return abort_allocation_ertr::now();
-}
-
void BlockRBManager::complete_allocation(
paddr_t paddr, size_t size)
{
*/
paddr_t alloc_extent(size_t size) final; // allocator, return blocks
- abort_allocation_ertr::future<> abort_allocation(Transaction &t) final;
void complete_allocation(paddr_t addr, size_t size) final;
size_t get_start_rbm_addr() const {
};
extent_len_t get_block_size() const final { return device->get_block_size(); }
- /*
- * We will have mulitple partitions (circularjournals and randbomblockmanagers)
- * on a device, so start and end location of the device are needed to
- * support such case.
- */
BlockRBManager(RBMDevice * device, std::string path, bool detailed)
: device(device), path(path) {
allocator.reset(new AvlAllocator(detailed));