From: Igor Fedotov Date: Tue, 7 Jun 2016 13:24:13 +0000 (+0300) Subject: os/BlueStore: Adds checkes for lextent range overlaps to _fsck X-Git-Tag: v11.0.0~288^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6f8cc6111aa89d37b1434888b23fe3a29eb92a9a;p=ceph.git os/BlueStore: Adds checkes for lextent range overlaps to _fsck Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 7f8c8fcf81b..637a1234496 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -2549,7 +2549,18 @@ int BlueStore::fsck() } // lextents map local_blobs; + uint64_t lext_next_offset = 0, lext_prev_offset = 0; for (auto& l : o->onode.extent_map) { + if(l.first < lext_next_offset) { + derr << " " << oid << " lextent at 0x" + << std::hex << l.first + << "overlaps with the previous one 0x" + << lext_prev_offset << "~" << (lext_next_offset - lext_prev_offset) + << std::dec << dendl; + ++errors; + } + lext_next_offset = l.first + l.second.length; + lext_prev_offset = l.first; if (l.second.blob >= 0) { local_blobs[l.second.blob].get(l.second.offset, l.second.length); } else {