]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
include, rados: Fixes for list-inconsistent-obj and librados
authorDavid Zafman <dzafman@redhat.com>
Fri, 29 Apr 2016 18:26:39 +0000 (11:26 -0700)
committerDavid Zafman <dzafman@redhat.com>
Tue, 14 Jun 2016 22:55:05 +0000 (15:55 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 4fc4326b36aa00092043514746aa39aedad06b0f)

src/common/scrub_types.h
src/include/rados/rados_types.hpp
src/tools/rados/rados.cc

index c9f4fda90c268a974086a96b823742944c5e45e0..ed45e0872b808bc9ad842ab35b88dd1a66f40427 100644 (file)
@@ -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);
index d10e5f5b109f225e57d6e73f74cb89c78eedceda..c4f268d49889f977af4e248099b63adb867da3a0 100644 (file)
@@ -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 {
index 8c346eab0a317485343c73d8a94a43bcd143e2d3..bdd6a33c31484cf5106c0932b8f020d4a45c1746 100644 (file)
@@ -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,