From: Milind Changire Date: Mon, 6 Feb 2023 07:57:57 +0000 (+0530) Subject: mds: handle mds_scrub_stats_review_period change via ScrubStack::handle_conf_change() X-Git-Tag: v20.0.0~1119^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e30d18a16b9f53bd32085e6d50d6a0f1fe91836;p=ceph.git mds: handle mds_scrub_stats_review_period change via ScrubStack::handle_conf_change() Signed-off-by: Milind Changire --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index bb059ca5a7d..50c7175df80 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -4249,6 +4249,7 @@ void MDSRankDispatcher::handle_conf_change(const ConfigProxy& conf, const std::s mdcache->handle_conf_change(changed, *mdsmap); mdlog->handle_conf_change(changed, *mdsmap); purge_queue.handle_conf_change(changed, *mdsmap); + scrubstack->handle_conf_change(changed); })); } diff --git a/src/mds/ScrubStack.cc b/src/mds/ScrubStack.cc index acca1d75561..5a0b45c15e9 100644 --- a/src/mds/ScrubStack.cc +++ b/src/mds/ScrubStack.cc @@ -126,8 +126,7 @@ void ScrubStack::purge_scrub_counters(std::string_view tag) void ScrubStack::purge_old_scrub_counters() { // "mds_scrub_stats_review_period" must be in number of days - uint64_t mds_scrub_stats_review_period = g_conf().get_val("mds_scrub_stats_review_period"); - auto review_period = ceph::make_timespan(mds_scrub_stats_review_period * 24 * 60 * 60); + auto review_period = ceph::make_timespan(_mds_scrub_stats_review_period * 24 * 60 * 60); auto now = coarse_real_clock::now(); dout(20) << __func__ << " review_period:" << review_period << dendl; @@ -1369,3 +1368,10 @@ void ScrubStack::uninline_data(CInode *in, Context *fin) in->mdcache->dispatch_request(mdr); } + +void ScrubStack::handle_conf_change(const std::set& changed) +{ + if (changed.count("mds_scrub_stats_review_period")) { + _mds_scrub_stats_review_period = g_conf().get_val("mds_scrub_stats_review_period"); + } +} diff --git a/src/mds/ScrubStack.h b/src/mds/ScrubStack.h index c921804ba25..4d0a0570d35 100644 --- a/src/mds/ScrubStack.h +++ b/src/mds/ScrubStack.h @@ -38,7 +38,9 @@ public: clog(clog), finisher(finisher_), scrub_stack(member_offset(MDSCacheObject, item_scrub)), - scrub_waiting(member_offset(MDSCacheObject, item_scrub)) {} + scrub_waiting(member_offset(MDSCacheObject, item_scrub)) { + _mds_scrub_stats_review_period = g_conf().get_val("mds_scrub_stats_review_period"); + } ~ScrubStack() { ceph_assert(scrub_stack.empty()); ceph_assert(!scrubs_in_progress); @@ -110,6 +112,7 @@ public: void init_scrub_counters(std::string_view path, std::string_view tag); void purge_scrub_counters(std::string_view tag); void purge_old_scrub_counters(); // on tick + void handle_conf_change(const std::set& changed); MDCache *mdcache; @@ -298,6 +301,8 @@ private: // list of pending context completions for asynchronous scrub // control operations. std::vector control_ctxs; + + uint64_t _mds_scrub_stats_review_period = 1; // 1 day }; #endif /* SCRUBSTACK_H_ */