]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types: fix pi_compact_rep empty() condition
authorSage Weil <sage@redhat.com>
Tue, 11 Apr 2017 19:15:51 +0000 (15:15 -0400)
committerSage Weil <sage@redhat.com>
Fri, 28 Apr 2017 15:30:39 +0000 (11:30 -0400)
We may have no intervals but still be non-empty (have a first and
last), because during that period there were no osds.  This easily
happens when a pool is created before osds are up.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/osd_types.cc

index 274e7441ee6eeead5570657b1b136a113f820ede..0743f86304cbf3d71d7e569e8bca7c09bcadb8e3 100644 (file)
@@ -3090,7 +3090,9 @@ public:
   pi_compact_rep &operator=(pi_compact_rep &&) = default;
 
   size_t size() const override { return intervals.size(); }
-  bool empty() const override { return intervals.empty(); }
+  bool empty() const override {
+    return first > last || (first == 0 && last == 0);
+  }
   void clear() override {
     *this = pi_compact_rep();
   }