From de9f18ddcc407b90f2cc44e1a52c7d7da01f85b2 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 14 Nov 2014 14:47:05 -0800 Subject: [PATCH] osdc/Objecter: take Finisher ref from creator Only needed for watch/notify users, so most can pass NULL. Signed-off-by: Sage Weil --- src/client/Client.cc | 2 +- src/librados/RadosClient.cc | 1 + src/mds/MDS.cc | 2 +- src/osd/OSD.cc | 2 +- src/osdc/Objecter.cc | 1 + src/osdc/Objecter.h | 5 ++++- src/test/mon/test_mon_workloadgen.cc | 2 +- src/tools/cephfs/MDSUtility.cc | 2 +- 8 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 5cd6e861c30c0..dc47cd54d4409 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -201,7 +201,7 @@ Client::Client(Messenger *m, MonClient *mc) // osd interfaces mdsmap = new MDSMap; - objecter = new Objecter(cct, messenger, monclient, + objecter = new Objecter(cct, messenger, monclient, NULL, 0, 0); objecter->set_client_incarnation(0); // client always 0, for now. writeback_handler = new ObjecterWriteback(objecter, &objecter_finisher, diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index c2e572e436c21..a6b292e516aed 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -224,6 +224,7 @@ int librados::RadosClient::connect() err = -ENOMEM; objecter = new Objecter(cct, messenger, &monclient, + &finisher, cct->_conf->rados_mon_op_timeout, cct->_conf->rados_osd_op_timeout); if (!objecter) diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 460dd5b668262..9ea2e4a98718e 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -126,7 +126,7 @@ MDS::MDS(const std::string &n, Messenger *m, MonClient *mc) : mdsmap = new MDSMap; - objecter = new Objecter(m->cct, messenger, monc, 0, 0); + objecter = new Objecter(m->cct, messenger, monc, NULL, 0, 0); objecter->unset_honor_osdmap_full(); filer = new Filer(objecter, &finisher); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f1c28457cb6a3..216008980199b 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -213,7 +213,7 @@ OSDService::OSDService(OSD *osd) : agent_stop_flag(false), agent_timer_lock("OSD::agent_timer_lock"), agent_timer(osd->client_messenger->cct, agent_timer_lock), - objecter(new Objecter(osd->client_messenger->cct, osd->objecter_messenger, osd->monc, 0, 0)), + objecter(new Objecter(osd->client_messenger->cct, osd->objecter_messenger, osd->monc, NULL, 0, 0)), objecter_finisher(osd->client_messenger->cct), watch_lock("OSD::watch_lock"), watch_timer(osd->client_messenger->cct, watch_lock), diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 8341264708d69..6833dc51c4ab9 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -44,6 +44,7 @@ #include "common/config.h" #include "common/perf_counters.h" +#include "common/Finisher.h" #include "include/str_list.h" #include "common/errno.h" diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 21d18d64b6a9b..8e207ab8e3e72 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -37,6 +37,7 @@ class Messenger; class OSDMap; class MonClient; class Message; +class Finisher; class MPoolOpReply; @@ -1001,6 +1002,7 @@ public: public: Messenger *messenger; MonClient *monc; + Finisher *finisher; private: OSDMap *osdmap; public: @@ -1729,10 +1731,11 @@ public: public: Objecter(CephContext *cct_, Messenger *m, MonClient *mc, + Finisher *fin, double mon_timeout, double osd_timeout) : Dispatcher(cct), - messenger(m), monc(mc), + messenger(m), monc(mc), finisher(fin), osdmap(new OSDMap), cct(cct_), initialized(0), diff --git a/src/test/mon/test_mon_workloadgen.cc b/src/test/mon/test_mon_workloadgen.cc index a09676ef6d05d..a5a8afb6a7b18 100644 --- a/src/test/mon/test_mon_workloadgen.cc +++ b/src/test/mon/test_mon_workloadgen.cc @@ -253,7 +253,7 @@ class ClientStub : public TestStub dout(10) << "ClientStub::" << __func__ << " starting messenger at " << messenger->get_myaddr() << dendl; - objecter.reset(new Objecter(cct, messenger.get(), &monc, 0, 0)); + objecter.reset(new Objecter(cct, messenger.get(), &monc, NULL, 0, 0)); assert(objecter.get() != NULL); objecter->set_balanced_budget(); diff --git a/src/tools/cephfs/MDSUtility.cc b/src/tools/cephfs/MDSUtility.cc index dda915042481c..53fb4912548fc 100644 --- a/src/tools/cephfs/MDSUtility.cc +++ b/src/tools/cephfs/MDSUtility.cc @@ -28,7 +28,7 @@ MDSUtility::MDSUtility() : monc = new MonClient(g_ceph_context); messenger = Messenger::create(g_ceph_context, entity_name_t::CLIENT(), "mds", getpid()); mdsmap = new MDSMap(); - objecter = new Objecter(g_ceph_context, messenger, monc, 0, 0); + objecter = new Objecter(g_ceph_context, messenger, monc, NULL, 0, 0); } -- 2.39.5