X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fosd%2Fosd_types.h;h=2d7da93d7a811b286690c9ebb7461ddd5d732067;hb=94b1876350060563a6ac95339df15f95fd3ebadc;hp=70786b20326139531f1012e29c24a775abdd0a1e;hpb=4832b6f0acade977670a37c20ff5dbe69e727416;p=ceph.git diff --git a/ceph/src/osd/osd_types.h b/ceph/src/osd/osd_types.h index 70786b203..2d7da93d7 100644 --- a/ceph/src/osd/osd_types.h +++ b/ceph/src/osd/osd_types.h @@ -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 sv = get_flag_vector(flags); + for (auto ss : sv) { + s += string("|") + ss; + } + if (s.length()) + return s.substr(1); + return s; + } + static vector get_flag_vector(flag_t flags) { + vector 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);