summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-08-30 14:25:32 -0700
committerSamuel Just <sam.just@inktank.com>2013-09-14 00:45:31 -0700
commitc741999535f392ac657eb3d9c74b0b48f8ff1644 (patch)
treeb5861770396c6f40e1dd5e63e540427810261aa0
parentacfda28430b731b50be1da5840f69a1fbb79cee6 (diff)
downloadceph-c741999535f392ac657eb3d9c74b0b48f8ff1644.tar.gz
ReplicatedPG/Backend: shuffle sub_op_push over to ReplicatedBackend
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/osd/OSD.h14
-rw-r--r--src/osd/ReplicatedBackend.h2
-rw-r--r--src/osd/ReplicatedPG.cc7
-rw-r--r--src/osd/ReplicatedPG.h13
4 files changed, 19 insertions, 17 deletions
diff --git a/src/osd/OSD.h b/src/osd/OSD.h
index f5f50be4af8..8aad81a4521 100644
--- a/src/osd/OSD.h
+++ b/src/osd/OSD.h
@@ -637,6 +637,20 @@ public:
OSDService(OSD *osd);
~OSDService();
};
+
+struct C_OSD_SendMessageOnConn: public Context {
+ OSDService *osd;
+ Message *reply;
+ ConnectionRef conn;
+ C_OSD_SendMessageOnConn(
+ OSDService *osd,
+ Message *reply,
+ ConnectionRef conn) : osd(osd), reply(reply), conn(conn) {}
+ void finish(int) {
+ osd->send_message_osd_cluster(reply, conn.get());
+ }
+};
+
class OSD : public Dispatcher,
public md_config_obs_t {
/** OSD **/
diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h
index c40b4f73733..1161becbbd0 100644
--- a/src/osd/ReplicatedBackend.h
+++ b/src/osd/ReplicatedBackend.h
@@ -192,7 +192,7 @@ private:
// Reverse mapping from osd peer to objects beging pulled from that peer
map<int, set<hobject_t> > pull_from_peer;
- void sub_op_push(OpRequestRef op) {}
+ void sub_op_push(OpRequestRef op);
void sub_op_push_reply(OpRequestRef op) {}
void sub_op_pull(OpRequestRef op) {}
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 725a9fe68eb..6c3f4166003 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -79,6 +79,7 @@ PGLSFilter::~PGLSFilter()
{
}
+
// ======================
// PGBackend::Listener
@@ -6736,7 +6737,7 @@ void ReplicatedPG::trim_pushed_data(
/** op_push
* NOTE: called from opqueue.
*/
-void ReplicatedPG::sub_op_push(OpRequestRef op)
+void ReplicatedBackend::sub_op_push(OpRequestRef op)
{
op->mark_started();
MOSDSubOp *m = static_cast<MOSDSubOp *>(op->request);
@@ -6772,9 +6773,9 @@ void ReplicatedPG::sub_op_push(OpRequestRef op)
assert(entity_name_t::TYPE_OSD == m->get_connection()->peer_type);
handle_push(m->get_source().num(), pop, &resp, t);
t->register_on_complete(new C_OSD_SendMessageOnConn(
- osd, reply, m->get_connection()));
+ osd, reply, m->get_connection()));
}
- osd->store->queue_transaction(osr.get(), t);
+ get_parent()->queue_transaction(t);
return;
}
diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h
index 3f64fdab3f0..f9be2f4b71c 100644
--- a/src/osd/ReplicatedPG.h
+++ b/src/osd/ReplicatedPG.h
@@ -808,18 +808,6 @@ protected:
pg->_committed_pushed_object(epoch, last_complete);
}
};
- struct C_OSD_SendMessageOnConn: public Context {
- OSDService *osd;
- Message *reply;
- ConnectionRef conn;
- C_OSD_SendMessageOnConn(
- OSDService *osd,
- Message *reply,
- ConnectionRef conn) : osd(osd), reply(reply), conn(conn) {}
- void finish(int) {
- osd->send_message_osd_cluster(reply, conn.get());
- }
- };
struct C_OSD_CompletedPull : public Context {
ReplicatedPGRef pg;
hobject_t hoid;
@@ -857,7 +845,6 @@ protected:
void _applied_recovered_object_replica();
void _committed_pushed_object(epoch_t epoch, eversion_t lc);
void recover_got(hobject_t oid, eversion_t v);
- void sub_op_push(OpRequestRef op);
void _failed_push(int from, const hobject_t &soid);
void sub_op_push_reply(OpRequestRef op);
bool handle_push_reply(int peer, PushReplyOp &op, PushOp *reply);