]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix lack of blob unshare if 'root' onode is not present 37606/head
authorIgor Fedotov <ifedotov@suse.com>
Thu, 8 Oct 2020 18:54:21 +0000 (21:54 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Wed, 18 Nov 2020 09:15:44 +0000 (12:15 +0300)
in cache.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
src/os/bluestore/BlueStore.cc

index 00c65877b3382bfee1f8f81ba10e00ed47f45632..7cf4e6641aa82a5cd410e190c5df3ba06133a9d8 100644 (file)
@@ -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;