From 46897fd4ffc2fe2fc2cc0c39b5d4c510df1e6c25 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 23 Oct 2012 06:04:08 -0700 Subject: [PATCH] osdc/ObjectCacher: take Object ref for bh writes Signed-off-by: Sage Weil --- src/osdc/ObjectCacher.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index 425cda2be6e..827564ef278 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -617,6 +617,8 @@ void ObjectCacher::bh_read_finish(int64_t poolid, sobject_t oid, loff_t start, void ObjectCacher::bh_write(BufferHead *bh) { ldout(cct, 7) << "bh_write " << *bh << dendl; + + bh->ob->get(); // finishers C_WriteCommit *oncommit = new C_WriteCommit(this, bh->ob->oloc.pool, @@ -777,6 +779,7 @@ void ObjectCacher::bh_write_commit(int64_t poolid, sobject_t oid, loff_t start, ObjectSet *oset = ob->oset; if (ob->can_close()) close_object(ob); + ob->put(); // is the entire object set now clean? if (flush_set_callback &&