From 68dac914ed90e61688596770f0c01efe76a1ad92 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 8 Mar 2018 11:50:44 -0600 Subject: [PATCH] osd/PG: do final pg delete transaction on pg sequencer Simpler, cleaner. Also, this way we flush before returning. Signed-off-by: Sage Weil --- src/osd/PG.cc | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index a7e5a4a493905..c0d608dbda329 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; -- 2.39.5