crimson::ct_error::enospc,
crimson::ct_error::erange
>;
- virtual write_ertr::future<> write(paddr_t addr, bufferptr &buf) = 0;
+ virtual write_ertr::future<> write(paddr_t addr, bufferptr buf) = 0;
using open_ertr = crimson::errorator<
crimson::ct_error::input_output_error,
BlockRBManager::write_ertr::future<> BlockRBManager::write(
paddr_t paddr,
- bufferptr &bptr)
+ bufferptr bptr)
{
ceph_assert(device);
rbm_abs_addr addr = convert_paddr_to_abs_addr(paddr);
if (!check_valid_range(addr, bptr)) {
return crimson::ct_error::erange::make();
}
- bufferptr bp = bufferptr(ceph::buffer::create_page_aligned(bptr.length()));
- bp.copy_in(0, bptr.length(), bptr.c_str());
return device->write(
addr,
- std::move(bp));
+ bptr);
}
BlockRBManager::read_ertr::future<> BlockRBManager::read(
*/
read_ertr::future<> read(paddr_t addr, bufferptr &buffer) final;
- write_ertr::future<> write(paddr_t addr, bufferptr &buf) final;
+ write_ertr::future<> write(paddr_t addr, bufferptr buf) final;
open_ertr::future<> open() final;
close_ertr::future<> close() final;
write_ertr::future<> NVMeBlockDevice::write(
uint64_t offset,
- bufferptr &&bptr,
+ bufferptr bptr,
uint16_t stream) {
logger().debug(
"block: write offset {} len {}",
}
if (is_end_to_end_data_protection()) {
return seastar::do_with(
- std::move(bptr),
+ bptr,
[this, offset] (auto &bptr) {
return nvme_write(offset, bptr.length(), bptr.c_str());
});
}
return seastar::do_with(
- std::move(bptr),
+ bptr,
[this, offset, length, supported_stream] (auto& bptr) {
return io_device[supported_stream].dma_write(
offset, bptr.c_str(), length).handle_exception(
write_ertr::future<> write(
uint64_t offset,
- bufferptr &&bptr,
+ bufferptr bptr,
uint16_t stream = 0) override;
using RBMDevice::read;
auto bp = bufferptr(ceph::buffer::create_page_aligned(super.block_size));
assert(bl.length() < super.block_size);
iter.copy(bl.length(), bp.c_str());
- return write(RBM_START_ADDRESS, std::move(bp));
+ return write(RBM_START_ADDRESS, bp);
}
read_ertr::future<rbm_superblock_t> RBMDevice::read_rbm_superblock(
write_ertr::future<> EphemeralRBMDevice::write(
uint64_t offset,
- bufferptr &&bptr,
+ bufferptr bptr,
uint16_t stream) {
LOG_PREFIX(EphemeralRBMDevice::write);
ceph_assert(buf);
*/
virtual write_ertr::future<> write(
uint64_t offset,
- bufferptr &&bptr,
+ bufferptr bptr,
uint16_t stream = 0) = 0;
virtual discard_ertr::future<> discard(
write_ertr::future<> write(
uint64_t offset,
- bufferptr &&bptr,
+ bufferptr bptr,
uint16_t stream = 0) override;
using RBMDevice::read;