From: Sage Weil Date: Thu, 8 Mar 2018 17:50:44 +0000 (-0600) Subject: osd/PG: do final pg delete transaction on pg sequencer X-Git-Tag: v13.1.0~390^2~32 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=68dac914ed90e61688596770f0c01efe76a1ad92;p=ceph.git osd/PG: do final pg delete transaction on pg sequencer Simpler, cleaner. Also, this way we flush before returning. Signed-off-by: Sage Weil --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index a7e5a4a4939..c0d608dbda3 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -6533,24 +6533,14 @@ void PG::_delete_some() { ObjectStore::Transaction t; PGRef pgref(this); + PGLog::clear_info_log(info.pgid, &t); + t.remove_collection(coll); t.register_on_commit(new ContainerContext(pgref)); t.register_on_applied(new ContainerContext(pgref)); osd->store->queue_transaction(ch, std::move(t)); } ch->flush(); - ObjectStore::Transaction t; - PGLog::clear_info_log(info.pgid, &t); - t.remove_collection(coll); - PGRef pgref(this); - // keep pg ref around until txn completes to avoid any issues - // with Sequencer lifecycle (seen w/ filestore). - t.register_on_commit(new ContainerContext(pgref)); - t.register_on_applied(new ContainerContext(pgref)); - int r = osd->store->queue_transaction( - osd->meta_ch, std::move(t)); - assert(r == 0); - osd->finish_pg_delete(this, pool.info.get_pg_num()); deleted = true;