From: Samuel Just Date: Thu, 20 Jun 2013 02:46:06 +0000 (-0700) Subject: FileStore: handle observers in constructor/destructor X-Git-Tag: v0.65~28 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c39b99cdecceaca77f66eafbcc38387406826406;p=ceph.git FileStore: handle observers in constructor/destructor Signed-off-by: Samuel Just Reviewed-by: Sage Weil --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 986ed77e6d66..6ddb58ba1396 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -469,10 +469,16 @@ FileStore::FileStore(const std::string &base, const std::string &jdev, const cha plb.add_u64_counter(l_os_j_full, "journal_full"); logger = plb.create_perf_counters(); + + g_ceph_context->get_perfcounters_collection()->add(logger); + g_ceph_context->_conf->add_observer(this); } FileStore::~FileStore() { + g_ceph_context->_conf->remove_observer(this); + g_ceph_context->get_perfcounters_collection()->remove(logger); + if (journal) journal->logger = NULL; delete logger; @@ -1797,10 +1803,6 @@ int FileStore::mount() timer.init(); - g_ceph_context->get_perfcounters_collection()->add(logger); - - g_ceph_context->_conf->add_observer(this); - // all okay. return 0; @@ -1822,7 +1824,6 @@ int FileStore::umount() { dout(5) << "umount " << basedir << dendl; - g_ceph_context->_conf->remove_observer(this); start_sync(); @@ -1835,8 +1836,6 @@ int FileStore::umount() journal_stop(); - g_ceph_context->get_perfcounters_collection()->remove(logger); - op_finisher.stop(); ondisk_finisher.stop();