From: David Zafman Date: Fri, 29 Apr 2016 18:26:39 +0000 (-0700) Subject: include, rados: Fixes for list-inconsistent-obj and librados X-Git-Tag: v10.2.3~142^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e4e562926d38371f70ba2cf2f7003daa251b9f0;p=ceph.git include, rados: Fixes for list-inconsistent-obj and librados Signed-off-by: David Zafman (cherry picked from commit 4fc4326b36aa00092043514746aa39aedad06b0f) --- diff --git a/src/common/scrub_types.h b/src/common/scrub_types.h index c9f4fda90c268..ed45e0872b808 100644 --- a/src/common/scrub_types.h +++ b/src/common/scrub_types.h @@ -51,13 +51,13 @@ public: errors |= err_t::SIZE_MISMATCH; } void set_attr_missing() { - errors |= err_t::ATTR_MISMATCH; + errors |= err_t::ATTR_MISSING; } void set_attr_mismatch() { errors |= err_t::ATTR_MISMATCH; } void set_attr_unexpected() { - errors |= err_t::ATTR_MISMATCH; + errors |= err_t::ATTR_UNEXPECTED; } void encode(bufferlist& bl) const; void decode(bufferlist::iterator& bp); diff --git a/src/include/rados/rados_types.hpp b/src/include/rados/rados_types.hpp index d10e5f5b109f2..c4f268d49889f 100644 --- a/src/include/rados/rados_types.hpp +++ b/src/include/rados/rados_types.hpp @@ -52,6 +52,7 @@ struct object_id_t { struct err_t { enum { + ATTR_UNEXPECTED = 1 << 0, SHARD_MISSING = 1 << 1, SHARD_STAT_ERR = 1 << 2, SHARD_READ_ERR = 1 << 3, @@ -59,12 +60,15 @@ struct err_t { OMAP_DIGEST_MISMATCH = 1 << 5, SIZE_MISMATCH = 1 << 6, ATTR_MISMATCH = 1 << 7, - SNAPSET_MISSING = 1 << 8, + ATTR_MISSING = 1 << 8, DATA_DIGEST_MISMATCH_OI = 1 << 9, OMAP_DIGEST_MISMATCH_OI = 1 << 10, SIZE_MISMATCH_OI = 1 << 11, }; uint64_t errors = 0; + bool has_attr_unexpected() const { + return errors & ATTR_UNEXPECTED; + } bool has_shard_missing() const { return errors & SHARD_MISSING; } @@ -97,6 +101,9 @@ struct err_t { bool has_attr_mismatch() const { return errors & ATTR_MISMATCH; } + bool has_attr_missing() const { + return errors & ATTR_MISSING; + } }; struct shard_info_t : err_t { diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index 8c346eab0a317..bdd6a33c31484 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1279,6 +1279,8 @@ static void dump_shard(const shard_info_t& shard, } f.close_section(); } + f.dump_bool("attr_missing", shard.has_attr_missing()); + f.dump_bool("attr_unexpected", shard.has_attr_unexpected()); } static void dump_object_id(const object_id_t& object,