From: Samuel Just Date: Thu, 27 Jun 2019 18:57:22 +0000 (-0700) Subject: crimson/osd/pg: start_operation for read_state, schedule_event_on_commit X-Git-Tag: v15.1.0~2356^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F28771%2Fhead;p=ceph.git 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 --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 64d6fc3e62ad..d4c25aedcc29 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 7fee35661454..6639dc9bcf0c 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 {