}
seastar::future<>
-PG::do_osd_op(const object_info_t& oi, OSDOp* osd_op)
+PG::do_osd_op(const object_info_t& oi, OSDOp& osd_op)
{
- switch (const auto& op = osd_op->op; op.op) {
+ switch (const auto& op = osd_op.op; op.op) {
case CEPH_OSD_OP_SYNC_READ:
[[fallthrough]];
case CEPH_OSD_OP_READ:
op.extent.length,
op.extent.truncate_size,
op.extent.truncate_seq,
- op.flags).then([osd_op](bufferlist bl) {
- osd_op->rval = bl.length();
- osd_op->outdata = std::move(bl);
+ op.flags).then([&osd_op](bufferlist bl) {
+ osd_op.rval = bl.length();
+ osd_op.outdata = std::move(bl);
return seastar::now();
});
default:
m->get_hobj().get_head() :
m->get_hobj());
return backend->get_object(oid).then([&osd_op,this](auto oi) {
- return do_osd_op(*oi, &osd_op);
+ return do_osd_op(*oi, osd_op);
}).handle_exception_type([&osd_op](const object_not_found&) {
osd_op.rval = -ENOENT;
throw;
const std::vector<int>& new_acting,
int new_acting_primary);
seastar::future<Ref<MOSDOpReply>> do_osd_ops(Ref<MOSDOp> m);
- seastar::future<> do_osd_op(const object_info_t& oi, OSDOp* op);
+ seastar::future<> do_osd_op(const object_info_t& oi, OSDOp& op);
private:
const spg_t pgid;