]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: fsck: check for shards past EOF
authorSage Weil <sage@redhat.com>
Fri, 27 Jan 2017 21:06:37 +0000 (16:06 -0500)
committerSage Weil <sage@redhat.com>
Thu, 2 Feb 2017 15:12:08 +0000 (10:12 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 806fbbfb90a1646f338ee720228b5891268326c0..a151dcff5fbc5a9059ea665cacf2ea94dc865a8d 100644 (file)
@@ -4782,6 +4782,12 @@ int BlueStore::fsck(bool deep)
        dout(20) << __func__ << "    shard " << *s.shard_info << dendl;
        expecting_shards.push_back(string());
        get_extent_shard_key(o->key, s.offset, &expecting_shards.back());
+       if (s.offset >= o->onode.size) {
+         derr << __func__ << " " << oid << " shard 0x" << std::hex
+              << s.offset << " past EOF at 0x" << o->onode.size
+              << std::dec << dendl;
+         ++errors;
+       }
       }
       // lextents
       uint64_t pos = 0;