osd->send_message_osd_client(reply, m->get_connection());
}
),
- op
+ op,
+ r
);
}
waiting_for_ondisk[repop->v].begin();
i != waiting_for_ondisk[repop->v].end();
++i) {
- osd->reply_op_error(i->first, 0, repop->v,
+ osd->reply_op_error(i->first, repop->r, repop->v,
i->second);
}
waiting_for_ondisk.erase(repop->v);
boost::intrusive_ptr<ReplicatedPG::RepGather> ReplicatedPG::new_repop(
eversion_t version,
+ int r,
ObcLockManager &&manager,
OpRequestRef &&op,
boost::optional<std::function<void(void)> > &&on_complete)
std::move(on_complete),
osd->get_tid(),
info.last_complete,
- true);
+ true,
+ r);
repop->v = version;
repop->start = ceph_clock_now(cct);
const mempool::osd::list<pg_log_entry_t> &entries,
ObcLockManager &&manager,
boost::optional<std::function<void(void)> > &&_on_complete,
- OpRequestRef op)
+ OpRequestRef op,
+ int r)
{
dout(10) << __func__ << " " << entries << dendl;
assert(is_primary());
if (get_osdmap()->test_flag(CEPH_OSDMAP_REQUIRE_JEWEL)) {
repop = new_repop(
version,
+ r,
std::move(manager),
std::move(op),
std::move(_on_complete));
int nref;
eversion_t v;
+ int r = 0;
ceph_tid_t rep_tid;
boost::optional<std::function<void(void)> > &&on_complete,
ceph_tid_t rt,
eversion_t lc,
- bool applies_with_commit) :
+ bool applies_with_commit,
+ int r) :
op(o),
queue_item(this),
nref(1),
+ r(r),
rep_tid(rt),
rep_aborted(false), rep_done(false),
all_applied(false), all_committed(false),
ceph_tid_t rep_tid);
boost::intrusive_ptr<RepGather> new_repop(
eversion_t version,
+ int r,
ObcLockManager &&manager,
OpRequestRef &&op,
boost::optional<std::function<void(void)> > &&on_complete);
const mempool::osd::list<pg_log_entry_t> &entries,
ObcLockManager &&manager,
boost::optional<std::function<void(void)> > &&on_complete,
- OpRequestRef op = OpRequestRef());
+ OpRequestRef op = OpRequestRef(),
+ int r = 0);
struct LogUpdateCtx {
boost::intrusive_ptr<RepGather> repop;
set<pg_shard_t> waiting_on;
<< " " << repop.v
<< " rep_tid=" << repop.rep_tid
<< " committed?=" << repop.all_committed
- << " applied?=" << repop.all_applied;
- out << ")";
+ << " applied?=" << repop.all_applied
+ << " r=" << repop.r
+ << ")";
return out;
}