]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types: adding or substracting invalid stats -> invalid stats
authorSage Weil <sage@redhat.com>
Tue, 12 Jun 2018 22:05:25 +0000 (17:05 -0500)
committerSage Weil <sage@redhat.com>
Fri, 7 Sep 2018 17:08:41 +0000 (12:08 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/osd_types.h

index 99b42bc1e0af7881af188a7e0a090b9f472e8adf..6e7ff20ebe2130368a226b10873d366235db35ae 100644 (file)
@@ -2098,12 +2098,21 @@ struct pg_stat_t {
       snaptrimq_len = f;
   }
 
+  void add_sub_invalid_flags(const pg_stat_t& o) {
+    // adding (or subtracting!) invalid stats render our stats invalid too
+    stats_invalid |= o.stats_invalid;
+    dirty_stats_invalid |= o.dirty_stats_invalid;
+    hitset_stats_invalid |= o.hitset_stats_invalid;
+    pin_stats_invalid |= o.pin_stats_invalid;
+    manifest_stats_invalid |= o.manifest_stats_invalid;
+  }
   void add(const pg_stat_t& o) {
     stats.add(o.stats);
     log_size += o.log_size;
     ondisk_log_size += o.ondisk_log_size;
     snaptrimq_len = std::min((uint64_t)snaptrimq_len + o.snaptrimq_len,
                              (uint64_t)(1ull << 31));
+    add_sub_invalid_flags(o);
   }
   void sub(const pg_stat_t& o) {
     stats.sub(o.stats);
@@ -2114,6 +2123,7 @@ struct pg_stat_t {
     } else {
       snaptrimq_len = 0;
     }
+    add_sub_invalid_flags(o);
   }
 
   bool is_acting_osd(int32_t osd, bool primary) const;