op->put();
}
-void PG::sub_op_scrub_reply(MOSDSubOpReply *op)
+void PG::sub_op_scrub_map(MOSDSubOp *op)
{
- dout(7) << "sub_op_scrub_reply" << dendl;
+ dout(7) << "sub_op_scrub_map" << dendl;
if (op->map_epoch < info.history.same_acting_since) {
dout(10) << "sub_op_scrub discarding old sub_op from "
void PG::_request_scrub_map(int replica, eversion_t version)
{
dout(10) << "scrub requesting scrubmap from osd" << replica << dendl;
- vector<OSDOp> scrub(1);
- scrub[0].op.op = CEPH_OSD_OP_SCRUB;
- sobject_t poid;
- eversion_t v = version;
- osd_reqid_t reqid;
- MOSDSubOp *subop = new MOSDSubOp(reqid, info.pgid, poid, false, 0,
- osd->osdmap->get_epoch(), osd->get_tid(), v);
- subop->ops = scrub;
- osd->cluster_messenger->send_message(subop, //new MOSDPGScrub(info.pgid, osd->osdmap->get_epoch()),
+ MOSDRepScrub *repscrubop = new MOSDRepScrub(info.pgid, version,
+ osd->osdmap->get_epoch());
+ osd->cluster_messenger->send_message(repscrubop,
osd->osdmap->get_cluster_inst(replica));
}
void replica_scrub(class MOSDRepScrub *op);
void sub_op_scrub(class MOSDSubOp *op);
- void sub_op_scrub_reply(class MOSDSubOpReply *op);
+ void sub_op_scrub_map(class MOSDSubOp *op);
void sub_op_scrub_reserve(class MOSDSubOp *op);
void sub_op_scrub_reserve_reply(class MOSDSubOpReply *op);
void sub_op_scrub_unreserve(class MOSDSubOp *op);
case CEPH_OSD_OP_SCRUB_STOP:
sub_op_scrub_stop(op);
return;
+ case CEPH_OSD_OP_SCRUB_MAP:
+ sub_op_scrub_map(op);
+ return;
}
}
sub_op_push_reply(r);
return;
- case CEPH_OSD_OP_SCRUB:
- sub_op_scrub_reply(r);
- return;
-
case CEPH_OSD_OP_SCRUB_RESERVE:
sub_op_scrub_reserve_reply(r);
return;