From 9230c863b3dc2bdda12c23202682a84c48f070a1 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 19 Jan 2013 18:28:35 -0800 Subject: [PATCH] osd: make OSD a config observer Signed-off-by: Sage Weil --- src/osd/OSD.cc | 19 +++++++++++++++++++ src/osd/OSD.h | 9 ++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 4549eb7667107..4ffab8f1fab3a 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 &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 &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 83308486f0f24..3d5e51523ea01 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 &changed); + protected: Mutex osd_lock; // global lock SafeTimer timer; // safe timer (osd_lock) -- 2.39.5