]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/osd/osd_types.h
update sources to v12.2.5
[ceph.git] / ceph / src / osd / osd_types.h
index 70786b20326139531f1012e29c24a775abdd0a1e..2d7da93d7a811b286690c9ebb7461ddd5d732067 100644 (file)
@@ -1702,9 +1702,9 @@ struct object_stat_sum_t {
     FLOOR(num_rd_kb);
     FLOOR(num_wr);
     FLOOR(num_wr_kb);
-    FLOOR(num_scrub_errors);
     FLOOR(num_shallow_scrub_errors);
     FLOOR(num_deep_scrub_errors);
+    num_scrub_errors = num_shallow_scrub_errors + num_deep_scrub_errors;
     FLOOR(num_objects_recovered);
     FLOOR(num_bytes_recovered);
     FLOOR(num_keys_recovered);
@@ -1756,9 +1756,12 @@ struct object_stat_sum_t {
     SPLIT(num_rd_kb);
     SPLIT(num_wr);
     SPLIT(num_wr_kb);
-    SPLIT(num_scrub_errors);
-    SPLIT(num_shallow_scrub_errors);
-    SPLIT(num_deep_scrub_errors);
+    SPLIT_PRESERVE_NONZERO(num_shallow_scrub_errors);
+    SPLIT_PRESERVE_NONZERO(num_deep_scrub_errors);
+    for (unsigned i = 0; i < out.size(); ++i) {
+      out[i].num_scrub_errors = out[i].num_shallow_scrub_errors +
+                               out[i].num_deep_scrub_errors;
+    }
     SPLIT(num_objects_recovered);
     SPLIT(num_bytes_recovered);
     SPLIT(num_keys_recovered);
@@ -4668,27 +4671,35 @@ struct object_info_t {
 
   static string get_flag_string(flag_t flags) {
     string s;
+    vector<string> sv = get_flag_vector(flags);
+    for (auto ss : sv) {
+      s += string("|") + ss;
+    }
+    if (s.length())
+      return s.substr(1);
+    return s;
+  }
+  static vector<string> get_flag_vector(flag_t flags) {
+    vector<string> sv;
     if (flags & FLAG_LOST)
-      s += "|lost";
+      sv.insert(sv.end(), "lost");
     if (flags & FLAG_WHITEOUT)
-      s += "|whiteout";
+      sv.insert(sv.end(), "whiteout");
     if (flags & FLAG_DIRTY)
-      s += "|dirty";
+      sv.insert(sv.end(), "dirty");
     if (flags & FLAG_USES_TMAP)
-      s += "|uses_tmap";
+      sv.insert(sv.end(), "uses_tmap");
     if (flags & FLAG_OMAP)
-      s += "|omap";
+      sv.insert(sv.end(), "omap");
     if (flags & FLAG_DATA_DIGEST)
-      s += "|data_digest";
+      sv.insert(sv.end(), "data_digest");
     if (flags & FLAG_OMAP_DIGEST)
-      s += "|omap_digest";
+      sv.insert(sv.end(), "omap_digest");
     if (flags & FLAG_CACHE_PIN)
-      s += "|cache_pin";
+      sv.insert(sv.end(), "cache_pin");
     if (flags & FLAG_MANIFEST)
-      s += "|manifest";
-    if (s.length())
-      return s.substr(1);
-    return s;
+      sv.insert(sv.end(), "manifest");
+    return sv;
   }
   string get_flag_string() const {
     return get_flag_string(flags);