]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG/Backend: move _do_push,_do_pull_response,do_push
authorSamuel Just <sam.just@inktank.com>
Sun, 1 Sep 2013 20:44:09 +0000 (13:44 -0700)
committerSamuel Just <sam.just@inktank.com>
Thu, 26 Sep 2013 18:24:26 +0000 (11:24 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/ReplicatedBackend.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 60c31c4c2be34cfe4bdf46323b85034f60d4a112..c4f501360d8d70a8b364ace14407ba19d21a95ca 100644 (file)
@@ -204,8 +204,8 @@ private:
   void sub_op_push_reply(OpRequestRef op);
   void sub_op_pull(OpRequestRef op);
 
-  void _do_push(OpRequestRef op) {}
-  void _do_pull_response(OpRequestRef op) {}
+  void _do_push(OpRequestRef op);
+  void _do_pull_response(OpRequestRef op);
   void do_push(OpRequestRef op) {
     if (is_primary()) {
       _do_pull_response(op);
index fb03ca83b6e2ef3dcc6215b5c56ed56d737f2a3e..32a3878242c6197326909a83a39ed2caf025617a 100644 (file)
@@ -1569,7 +1569,7 @@ void ReplicatedPG::do_scan(
   }
 }
 
-void ReplicatedPG::_do_push(OpRequestRef op)
+void ReplicatedBackend::_do_push(OpRequestRef op)
 {
   MOSDPGPush *m = static_cast<MOSDPGPush *>(op->request);
   assert(m->get_header().type == MSG_OSD_PG_PUSH);
@@ -1586,18 +1586,20 @@ void ReplicatedPG::_do_push(OpRequestRef op)
 
   MOSDPGPushReply *reply = new MOSDPGPushReply;
   reply->set_priority(m->get_priority());
-  reply->pgid = info.pgid;
+  reply->pgid = get_info().pgid;
   reply->map_epoch = m->map_epoch;
   reply->replies.swap(replies);
   reply->compute_cost(cct);
 
-  t->register_on_complete(new C_OSD_SendMessageOnConn(
-                           osd, reply, m->get_connection()));
+  t->register_on_complete(
+    get_parent()->bless_context(
+      new C_OSD_SendMessageOnConn(
+       osd, reply, m->get_connection())));
 
-  osd->store->queue_transaction(osr.get(), t);
+  get_parent()->queue_transaction(t);
 }
 
-void ReplicatedPG::_do_pull_response(OpRequestRef op)
+void ReplicatedBackend::_do_pull_response(OpRequestRef op)
 {
   MOSDPGPush *m = static_cast<MOSDPGPush *>(op->request);
   assert(m->get_header().type == MSG_OSD_PG_PUSH);
@@ -1617,16 +1619,18 @@ void ReplicatedPG::_do_pull_response(OpRequestRef op)
   if (replies.size()) {
     MOSDPGPull *reply = new MOSDPGPull;
     reply->set_priority(m->get_priority());
-    reply->pgid = info.pgid;
+    reply->pgid = get_info().pgid;
     reply->map_epoch = m->map_epoch;
     reply->pulls.swap(replies);
     reply->compute_cost(cct);
 
-    t->register_on_complete(new C_OSD_SendMessageOnConn(
-                             osd, reply, m->get_connection()));
+    t->register_on_complete(
+      get_parent()->bless_context(
+       new C_OSD_SendMessageOnConn(
+         osd, reply, m->get_connection())));
   }
 
-  osd->store->queue_transaction(osr.get(), t);
+  get_parent()->queue_transaction(t);
 }
 
 void ReplicatedPG::do_pull(OpRequestRef op)
index 4939299494463c7ad7cfe566f2653ed974c9b343..8562150fdaa9293502ea1a594900f58af380cda1 100644 (file)
@@ -905,15 +905,7 @@ public:
     OpRequestRef op,
     ThreadPool::TPHandle &handle);
   void do_backfill(OpRequestRef op);
-  void _do_push(OpRequestRef op);
-  void _do_pull_response(OpRequestRef op);
-  void do_push(OpRequestRef op) {
-    if (is_primary()) {
-      _do_pull_response(op);
-    } else {
-      _do_push(op);
-    }
-  }
+
   void do_pull(OpRequestRef op);
   void do_push_reply(OpRequestRef op);
   RepGather *trim_object(const hobject_t &coid);