From: Sage Weil Date: Fri, 3 Jun 2016 20:42:35 +0000 (-0400) Subject: os/bluestore: paranoid checks on onode_map vs lru X-Git-Tag: v11.0.0~302^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F9470%2Fhead;p=ceph.git os/bluestore: paranoid checks on onode_map vs lru Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6c8b13ba7388..043ef7115ccb 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -547,6 +547,21 @@ void BlueStore::Cache::_audit_lru(const char *when) dout(20) << __func__ << " " << when << " buffer_size " << buffer_size << " ok" << dendl; } + if (false) { + uint64_t lc = 0, oc = 0; + set spaces; + for (auto i = onode_lru.begin(); i != onode_lru.end(); ++i) { + assert(i->space->onode_map.count(i->oid)); + if (spaces.count(i->space) == 0) { + spaces.insert(i->space); + oc += i->space->onode_map.size(); + } + ++lc; + } + if (lc != oc) { + derr << " lc " << lc << " oc " << oc << dendl; + } + } } #endif @@ -6630,8 +6645,11 @@ int BlueStore::_split_collection(TransContext *txc, int r; RWLock::WLocker l(c->lock); RWLock::WLocker l2(d->lock); + + // blow away the caches. FIXME. c->onode_map.clear(); d->onode_map.clear(); + c->cnode.bits = bits; assert(d->cnode.bits == bits); r = 0;