]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: switch _request_scrub_map to send MOSDRepScrub
authorSamuel Just <samuel.just@dreamhost.com>
Fri, 4 Feb 2011 01:02:17 +0000 (17:02 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Tue, 8 Feb 2011 04:56:30 +0000 (20:56 -0800)
Also switches sub_op_scrub_reply to sub_op_scrub_map to handle the
OSD_OP_SCRUB_MAP response.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc

index 2c8b273956fa16a642e97e671069b56cd1b351ed..9d3126a6ae99a27a249130a5b4e4699d2c73dcfc 100644 (file)
@@ -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<sobject_t> &ls)
 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));
 }
 
index 4a3cb74411ae3ea3c60283e7e69c077315d6ca8e..33dc226b9929f20d7fcbca47967e056d60823753 100644 (file)
@@ -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);
index f636bd4e9797f204d212b847b98004ec9eb9c782..7e5f50e1bef301fa8caa03092cb2fa5afcd8b0a3 100644 (file)
@@ -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;