From: Samuel Just Date: Fri, 4 Feb 2011 01:02:17 +0000 (-0800) Subject: PG: switch _request_scrub_map to send MOSDRepScrub X-Git-Tag: v0.24.3~2^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=212f977f1138d3dc57e3a5e59760320faf2665c6;p=ceph.git PG: switch _request_scrub_map to send MOSDRepScrub Also switches sub_op_scrub_reply to sub_op_scrub_map to handle the OSD_OP_SCRUB_MAP response. Signed-off-by: Samuel Just --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 2c8b273956fa1..9d3126a6ae99a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2843,9 +2843,9 @@ void PG::sub_op_scrub(MOSDSubOp *op) 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 " @@ -2896,15 +2896,9 @@ void PG::_scan_list(ScrubMap &map, vector &ls) void PG::_request_scrub_map(int replica, eversion_t version) { dout(10) << "scrub requesting scrubmap from osd" << replica << dendl; - vector 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)); } diff --git a/src/osd/PG.h b/src/osd/PG.h index 4a3cb74411ae3..33dc226b9929f 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -912,7 +912,7 @@ public: 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); diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f636bd4e9797f..7e5f50e1bef30 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -493,6 +493,9 @@ void ReplicatedPG::do_sub_op(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; } } @@ -509,10 +512,6 @@ void ReplicatedPG::do_sub_op_reply(MOSDSubOpReply *r) 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;