]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/scrub: modify scrub_requested() to return the deduced scrub level
authorRonen Friedman <rfriedma@redhat.com>
Mon, 6 Nov 2023 09:33:22 +0000 (03:33 -0600)
committerRonen Friedman <rfriedma@redhat.com>
Mon, 6 Nov 2023 09:33:22 +0000 (03:33 -0600)
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/osd/PG.cc
src/osd/scrubber/pg_scrubber.cc
src/osd/scrubber/pg_scrubber.h
src/osd/scrubber_common.h

index 580b3add8484a87d9b8044b060fb9da5006d16a9..d2f97a129a241336ea91d2d3f35fa450607b7c62 100644 (file)
@@ -1708,7 +1708,8 @@ void PG::on_scrub_schedule_input_change()
 void PG::scrub_requested(scrub_level_t scrub_level, scrub_type_t scrub_type)
 {
   ceph_assert(m_scrubber);
-  m_scrubber->scrub_requested(scrub_level, scrub_type, m_planned_scrub);
+  std::ignore =
+      m_scrubber->scrub_requested(scrub_level, scrub_type, m_planned_scrub);
 }
 
 void PG::clear_ready_to_merge() {
index 5afc2ced27258c9e89e52ef6e8c8ee3f86d08e71..0c9b0585088efceed9dcfedd77c224c319df5302 100644 (file)
@@ -552,29 +552,33 @@ void PgScrubber::update_scrub_job(const requested_scrub_t& request_flags)
   dout(15) << __func__ << ": done " << registration_state() << dendl;
 }
 
-void PgScrubber::scrub_requested(scrub_level_t scrub_level,
-                                scrub_type_t scrub_type,
-                                requested_scrub_t& req_flags)
+scrub_level_t PgScrubber::scrub_requested(
+    scrub_level_t scrub_level,
+    scrub_type_t scrub_type,
+    requested_scrub_t& req_flags)
 {
-  dout(10) << __func__
-          << (scrub_level == scrub_level_t::deep ? " deep " : " shallow ")
-          << (scrub_type == scrub_type_t::do_repair ? " repair-scrub "
-                                                    : " not-repair ")
-          << " prev stamp: " << m_scrub_job->get_sched_time()
-          << " registered? " << registration_state() << dendl;
+  const bool deep_requested = (scrub_level == scrub_level_t::deep) ||
+                             (scrub_type == scrub_type_t::do_repair);
+  dout(10) << fmt::format(
+                 "{}: {} {} scrub requested. Prev stamp: {}. Registered? {}",
+                 __func__,
+                 (scrub_type == scrub_type_t::do_repair ? " repair + "
+                                                        : " not-repair + "),
+                 (deep_requested ? "deep" : "shallow"),
+                 m_scrub_job->get_sched_time(), registration_state())
+          << dendl;
 
   req_flags.must_scrub = true;
-  req_flags.must_deep_scrub = (scrub_level == scrub_level_t::deep) ||
-                             (scrub_type == scrub_type_t::do_repair);
+  req_flags.must_deep_scrub = deep_requested;
   req_flags.must_repair = (scrub_type == scrub_type_t::do_repair);
   // User might intervene, so clear this
   req_flags.need_auto = false;
   req_flags.req_scrub = true;
 
-  dout(20) << __func__ << " pg(" << m_pg_id << ") planned:" << req_flags
-          << dendl;
+  dout(20) << fmt::format("{}: planned scrub:{}", __func__, req_flags) << dendl;
 
   update_scrub_job(req_flags);
+  return deep_requested ? scrub_level_t::deep : scrub_level_t::shallow;
 }
 
 
index 97bf7da8f22a173fd9c1591cd9083ecf0c36f667..ab82e2b1714cb295645da4602e528b450df607c0 100644 (file)
@@ -274,7 +274,7 @@ class PgScrubber : public ScrubPgIF,
 
   void on_pg_activate(const requested_scrub_t& request_flags) final;
 
-  void scrub_requested(
+  scrub_level_t scrub_requested(
       scrub_level_t scrub_level,
       scrub_type_t scrub_type,
       requested_scrub_t& req_flags) final;
index 745ea2388b67b43170c1d1e4bb091e20c9f396b8..f717d41fa41f58b094af0d252ce35ecd9d378930 100644 (file)
@@ -402,9 +402,10 @@ struct ScrubPgIF {
 
   virtual void rm_from_osd_scrubbing() = 0;
 
-  virtual void scrub_requested(scrub_level_t scrub_level,
-                              scrub_type_t scrub_type,
-                              requested_scrub_t& req_flags) = 0;
+  virtual scrub_level_t scrub_requested(
+      scrub_level_t scrub_level,
+      scrub_type_t scrub_type,
+      requested_scrub_t& req_flags) = 0;
 
   // --------------- debugging via the asok ------------------------------