]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/osd: reset objects_scrubbed count at the beginning of a new scrub
authorAishwarya Mathuria <amathuri@redhat.com>
Thu, 13 Jan 2022 12:47:59 +0000 (18:17 +0530)
committerAishwarya Mathuria <amathuri@redhat.com>
Thu, 13 Jan 2022 12:47:59 +0000 (18:17 +0530)
Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
src/osd/PG.h
src/osd/scrubber/pg_scrubber.cc

index e56c61f49591c80ed453d25fafc9be078894b3a6..59469602405707ac79535b0c712a77baea5fa294 100644 (file)
@@ -295,6 +295,18 @@ public:
       });
   }
 
+  static void reset_objects_scrubbed(pg_stat_t &stats) {
+    stats.objects_scrubbed = 0;
+  }
+
+  void reset_objects_scrubbed() {
+    recovery_state.update_stats(
+      [=](auto &history, auto &stats) {
+  reset_objects_scrubbed(stats);
+  return true;
+      });
+  }
+
   bool is_deleting() const {
     return recovery_state.is_deleting();
   }
index 58879e0c2a091f9cf10d7f98d9a5acc517c27395..7966b0d1cc7ded289bdfe713a75a8a6982011314 100644 (file)
@@ -950,7 +950,7 @@ void PgScrubber::on_init()
 {
   // going upwards from 'inactive'
   ceph_assert(!is_scrub_active());
-
+  m_pg->reset_objects_scrubbed();
   preemption_data.reset();
   m_pg->publish_stats_to_osd();
   m_interval_start = m_pg->get_history().same_interval_since;
@@ -1370,8 +1370,6 @@ void PgScrubber::scrub_compare_maps()
 {
   dout(10) << __func__ << " has maps, analyzing" << dendl;
 
-  int64_t primary_objects = 0;
-
   // construct authoritative scrub map for type-specific scrubbing
   m_cleaned_meta_map.insert(m_primary_scrubmap);
   map<hobject_t, pair<std::optional<uint32_t>, std::optional<uint32_t>>> missing_digest;
@@ -1412,8 +1410,7 @@ void PgScrubber::scrub_compare_maps()
 
     dout(2) << __func__ << ": primary (" << m_pg->get_primary() << ") has "
            << m_primary_scrubmap.objects.size() << " items" << dendl;
-    primary_objects = m_primary_scrubmap.objects.size();
-    m_pg->add_objects_scrubbed_count(primary_objects);
+    m_pg->add_objects_scrubbed_count(m_primary_scrubmap.objects.size());
 
     ss.str("");
     ss.clear();