diff options
author | Sage Weil <sage@inktank.com> | 2013-01-19 18:28:35 -0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-01-22 14:47:38 -0800 |
commit | 9230c863b3dc2bdda12c23202682a84c48f070a1 (patch) | |
tree | 2d63b3bb6f11a46f2fb3e222200cf30551aaf9db | |
parent | 3399860de2724281ee024b52f461b60f769ee0ee (diff) | |
download | ceph-9230c863b3dc2bdda12c23202682a84c48f070a1.tar.gz |
osd: make OSD a config observer
Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r-- | src/osd/OSD.cc | 19 | ||||
-rw-r--r-- | src/osd/OSD.h | 9 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 4549eb76671..4ffab8f1fab 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -841,6 +841,8 @@ int OSD::pre_init() << "currently in use. (Is ceph-osd already running?)" << dendl; return -EBUSY; } + + g_conf->add_observer(this); return 0; } @@ -1090,6 +1092,8 @@ void OSD::suicide(int exitcode) int OSD::shutdown() { + g_conf->remove_observer(this); + service.shutdown(); g_ceph_context->_conf->set_val("debug_osd", "100"); g_ceph_context->_conf->set_val("debug_journal", "100"); @@ -6212,6 +6216,21 @@ void OSD::process_peering_events(const list<PG*> &pgs) // -------------------------------- +const char** OSD::get_tracked_conf_keys() const +{ + static const char* KEYS[] = { + NULL + }; + return KEYS; +} + +void OSD::handle_conf_change(const struct md_config_t *conf, + const std::set <std::string> &changed) +{ +} + +// -------------------------------- + int OSD::init_op_flags(OpRequestRef op) { MOSDOp *m = (MOSDOp*)op->request; diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 83308486f0f..3d5e51523ea 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -394,8 +394,15 @@ public: OSDService(OSD *osd); }; -class OSD : public Dispatcher { +class OSD : public Dispatcher, + public md_config_obs_t { /** OSD **/ +public: + // config observer bits + virtual const char** get_tracked_conf_keys() const; + virtual void handle_conf_change(const struct md_config_t *conf, + const std::set <std::string> &changed); + protected: Mutex osd_lock; // global lock SafeTimer timer; // safe timer (osd_lock) |