From: Sage Weil Date: Tue, 10 Oct 2017 19:00:30 +0000 (-0500) Subject: os/bluestore: keep ref to deleted onode in _do_remove X-Git-Tag: v12.2.12~58^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fb2ceeb8f60bace7f676daad273958262bf592ec;p=ceph.git os/bluestore: keep ref to deleted onode in _do_remove We need to make sure we carry this ref through until the object is deleted or else another request right try to read it before the kv txn is applied. (This is easy to trigger now that onreadable is completed at queue time instead of commit time.) Signed-off-by: Sage Weil (cherry picked from commit 0347518d02eda4e0e2da5241f1d77bc7304d59fb) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6d601aaac83a..abf77ec189b8 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -10966,6 +10966,7 @@ int BlueStore::_do_remove( txc->removed(o); o->extent_map.clear(); o->onode = bluestore_onode_t(); + txc->note_modified_object(o); _debug_obj_on_delete(o->oid); if (!is_gen || maybe_unshared_blobs.empty()) {