]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd/scrub: remove PgScrubber::unregister_from_osd()
authorRonen Friedman <rfriedma@redhat.com>
Thu, 2 Feb 2023 15:06:46 +0000 (17:06 +0200)
committerSamuel Just <sjust@redhat.com>
Wed, 12 Apr 2023 03:39:19 +0000 (20:39 -0700)
and inline its functionality into its sole caller
(PgScrubber::rm_from_osd_scrubbing())

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/osd/scrubber/osd_scrub_sched.h
src/osd/scrubber/pg_scrubber.cc
src/osd/scrubber/pg_scrubber.h

index ac9dab728dca2378730c72751ee3e4d422a6521e..b00654153205f0e8a895fd4631f9ba207a1e9e71 100644 (file)
@@ -275,6 +275,12 @@ class ScrubQueue {
                                                       : "not-queued";
     }
 
+    /**
+     * access the 'state' directly, for when a distinction between 'registered'
+     * and 'unregistering' is needed (both have in_queues() == true)
+     */
+    bool is_state_registered() const { return state == qu_state_t::registered; }
+
     /**
      * a text description of the "scheduling intentions" of this PG:
      * are we already scheduled for a scrub/deep scrub? when?
index 806e5d8a84d5935acdc120ca7f64e9342ee078e9..3be30bf715bdc3705f62986984e6e82e7907c14d 100644 (file)
@@ -464,13 +464,6 @@ unsigned int PgScrubber::scrub_requeue_priority(
 // ///////////////////////////////////////////////////////////////////// //
 // scrub-op registration handling
 
-void PgScrubber::unregister_from_osd()
-{
-  if (m_scrub_job) {
-    dout(15) << __func__ << " prev. state: " << registration_state() << dendl;
-    m_osds->get_scrub_services().remove_from_osd_queue(m_scrub_job);
-  }
-}
 
 bool PgScrubber::is_scrub_registered() const
 {
@@ -487,8 +480,12 @@ std::string_view PgScrubber::registration_state() const
 
 void PgScrubber::rm_from_osd_scrubbing()
 {
-  // make sure the OSD won't try to scrub this one just now
-  unregister_from_osd();
+  if (m_scrub_job && m_scrub_job->is_state_registered()) {
+    dout(15) << fmt::format(
+                   "{}: prev. state: {}", __func__, registration_state())
+            << dendl;
+    m_osds->get_scrub_services().remove_from_osd_queue(m_scrub_job);
+  }
 }
 
 void PgScrubber::on_primary_change(
index bad3f00964f5272548e6578d9ad1ba25c8d66681..a48f78d93a3e7db3be55a19ab2ed431fc7ef3782 100644 (file)
@@ -887,8 +887,6 @@ class PgScrubber : public ScrubPgIF,
    */
   void request_rescrubbing(requested_scrub_t& req_flags);
 
-  void unregister_from_osd();
-
   /*
    * Select a range of objects to scrub.
    *