]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix fsck contains vs intersects
authorSage Weil <sage@redhat.com>
Mon, 21 Dec 2015 13:57:18 +0000 (08:57 -0500)
committerSage Weil <sage@redhat.com>
Fri, 1 Jan 2016 18:07:18 +0000 (13:07 -0500)
Any overlap is an error.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 859f7a07fe4baea052ca22bccce8624a9d229ecd..e77fdf53e6fa7cf0d2a256a24a9f7f732235a23f 100644 (file)
@@ -1755,7 +1755,7 @@ int BlueStore::fsck()
        }
        // blocks
        for (auto& b : o->onode.block_map) {
-         if (used_blocks.contains(b.second.offset, b.second.length)) {
+         if (used_blocks.intersects(b.second.offset, b.second.length)) {
            derr << " " << oid << " extent " << b.first << ": " << b.second
                 << " already allocated" << dendl;
            ++errors;
@@ -1946,7 +1946,7 @@ int BlueStore::fsck()
     const map<uint64_t,uint64_t>& free = fm->get_freelist();
     for (map<uint64_t,uint64_t>::const_iterator p = free.begin();
         p != free.end(); ++p) {
-      if (used_blocks.contains(p->first, p->second)) {
+      if (used_blocks.intersects(p->first, p->second)) {
        derr << __func__ << " free extent " << p->first << "~" << p->second
             << " intersects allocated blocks" << dendl;
        ++errors;