From: Igor Fedotov Date: Thu, 8 Oct 2020 18:54:21 +0000 (+0300) Subject: os/bluestore: fix lack of blob unshare if 'root' onode is not present X-Git-Tag: v17.0.0~597^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7801dc290987700717896346f550f7d52a5ef860;p=ceph-ci.git os/bluestore: fix lack of blob unshare if 'root' onode is not present in cache. Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 00c65877b33..7cf4e6641aa 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -13786,7 +13786,7 @@ void BlueStore::_wctx_finish( auto& r = lo.r; txc->statfs_delta.stored() -= lo.e.length; if (!r.empty()) { - dout(20) << __func__ << " blob release " << r << dendl; + dout(20) << __func__ << " blob " << *b << " release " << r << dendl; if (blob.is_shared()) { PExtentVector final; c->load_shared_blob(b->shared_blob); @@ -14319,7 +14319,7 @@ int BlueStore::_do_remove( << maybe_unshared_blobs << dendl; ghobject_t nogen = o->oid; nogen.generation = ghobject_t::NO_GEN; - OnodeRef h = c->onode_map.lookup(nogen); + OnodeRef h = c->get_onode(nogen, false); if (!h || !h->exists) { return 0;