]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/FreelistManager: detect overlapping extents on init
authorSage Weil <sage@redhat.com>
Fri, 25 Mar 2016 14:58:59 +0000 (10:58 -0400)
committerSage Weil <sage@redhat.com>
Wed, 30 Mar 2016 15:23:15 +0000 (11:23 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/FreelistManager.cc

index 20480a77958f041789f77d1010b71456a41095f7..0115767884ea4390755dfee29d7c77e7bedb5ef9 100644 (file)
@@ -36,6 +36,14 @@ int FreelistManager::init(KeyValueDB *db, string p)
 
     total_free += length;
 
+    if (offset < last_offset + last_length) {
+      derr << __func__ << " detected overlapping extent on load, had "
+          << last_offset << "~" << last_length
+          << " and got "
+          << offset << "~" << length
+          << dendl;
+      return -EIO;
+    }
     if (offset && offset == last_offset + last_length) {
       derr << __func__ << " detected contiguous extent on load, merging "
           << last_offset << "~" << last_length << " with "