From 517ba56868dc74089b305b61a1c069a5338bdedd Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 27 Jun 2019 11:57:22 -0700 Subject: [PATCH] crimson/osd/pg: start_operation for read_state, schedule_event_on_commit This way they'll be holding the appropriate pipeline stage. Signed-off-by: Samuel Just --- src/crimson/osd/pg.cc | 16 +++++++++------- src/crimson/osd/pg.h | 14 +++++++++----- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 64d6fc3e62ad5..d4c25aedcc290 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -221,13 +221,15 @@ seastar::future<> PG::read_state(ceph::os::FuturizedStore* store) else peering_state.set_role(-1); - PeeringCtx rctx; - PeeringState::Initialize evt; - peering_state.handle_event(evt, &rctx); - peering_state.write_if_dirty(rctx.transaction); - store->do_transaction( - coll_ref, - std::move(rctx.transaction)); + epoch_t epoch = peering_state.get_osdmap()->get_epoch(); + shard_services.start_operation( + this, + shard_services, + pg_whoami, + pgid, + epoch, + epoch, + PeeringState::Initialize()); return seastar::now(); }); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index 7fee356614546..6639dc9bcf0c8 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -205,11 +205,15 @@ public: ObjectStore::Transaction &t, PGPeeringEventRef on_commit) final { t.register_on_commit( - new LambdaContext([this, on_commit](){ - PeeringCtx rctx; - do_peering_event(*on_commit, rctx); - shard_services.dispatch_context(std::move(rctx)); - })); + new LambdaContext( + [this, on_commit=std::move(on_commit)] { + shard_services.start_operation( + this, + shard_services, + pg_whoami, + pgid, + std::move(*on_commit)); + })); } void update_heartbeat_peers(set peers) final { -- 2.39.5