From: Sage Weil Date: Sat, 27 Jan 2018 21:06:05 +0000 (-0600) Subject: osd/PG: make C_DeleteMore called only once (on safe, not applied) X-Git-Tag: v13.0.2~222^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a8414430466e589248200ce9183820735ec6ee2d;p=ceph.git osd/PG: make C_DeleteMore called only once (on safe, not applied) Signed-off-by: Sage Weil --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index de09c98b804..80398e4809a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -6213,18 +6213,12 @@ void PG::update_store_on_load() struct C_DeleteMore : public Context { PGRef pg; epoch_t epoch; - int count = 2; C_DeleteMore(PG *p, epoch_t e) : pg(p), epoch(e) {} void finish(int r) override { ceph_abort(); } void complete(int r) override { assert(r == 0); - // complete will be called exactly count times; only the last time will actualy - // complete. - if (--count) { - return; - } pg->lock(); if (!pg->pg_has_reset_since(epoch)) { pg->osd->queue_for_pg_delete(pg->get_pgid(), epoch); @@ -6273,7 +6267,6 @@ void PG::_delete_some() if (num) { dout(20) << __func__ << " deleting " << num << " objects" << dendl; Context *fin = new C_DeleteMore(this, e); - t.register_on_applied(fin); t.register_on_commit(fin); osd->store->queue_transaction( ch, @@ -8199,7 +8192,6 @@ PG::RecoveryState::Deleting::Deleting(my_context ctx) pg->on_removal(t); RecoveryCtx *rctx = context().get_recovery_ctx(); Context *fin = new C_DeleteMore(pg, pg->get_osdmap()->get_epoch()); - rctx->on_applied->contexts.push_back(fin); rctx->on_safe->contexts.push_back(fin); }