]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: add finisher
authorSage Weil <sage@redhat.com>
Sun, 20 Jul 2014 15:22:22 +0000 (08:22 -0700)
committerJohn Spray <john.spray@redhat.com>
Mon, 25 Aug 2014 00:34:00 +0000 (01:34 +0100)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mds/MDS.cc
src/mds/MDS.h

index c40fdb96a9d414015cac3804f7d07e6ad44c3edf..8245db4cd0f6048c7e5c03fd59eeb601db0ea4dc 100644 (file)
@@ -104,6 +104,7 @@ MDS::MDS(const std::string &n, Messenger *m, MonClient *mc) :
   monc(mc),
   clog(m->cct, messenger, &mc->monmap, LogClient::NO_FLAGS),
   op_tracker(cct, m->cct->_conf->mds_enable_op_tracker),
+  finisher(cct),
   sessionmap(this), asok_hook(NULL) {
 
   orig_argc = 0;
@@ -604,6 +605,8 @@ int MDS::init(MDSMap::DaemonState wanted_state)
   monc->set_want_keys(CEPH_ENTITY_TYPE_MON | CEPH_ENTITY_TYPE_OSD | CEPH_ENTITY_TYPE_MDS);
   monc->init();
 
+  finisher.start();
+
   // tell monc about log_client so it will know about mon session resets
   monc->set_log_client(&clog);
   
@@ -1816,6 +1819,8 @@ void MDS::suicide()
 
   mdlog->shutdown();
 
+  finisher.stop(); // no flushing
+
   // stop timers
   if (beacon_sender) {
     timer.cancel_event(beacon_sender);
index 493857a8cb4bd7e4718aea205c1bee9cb74008a4..fe3eab127389d67f9281916b42cbe75db10aa714 100644 (file)
@@ -30,6 +30,7 @@
 #include "common/Timer.h"
 #include "common/LogClient.h"
 #include "common/TrackedOp.h"
+#include "common/Finisher.h"
 
 #include "MDSMap.h"
 
@@ -183,6 +184,8 @@ class MDS : public Dispatcher, public md_config_obs_t {
   PerfCounters       *logger, *mlogger;
   OpTracker    op_tracker;
 
+  Finisher finisher;
+
   int orig_argc;
   const char **orig_argv;