From: Samuel Just Date: Tue, 2 Jul 2024 22:50:47 +0000 (+0000) Subject: crimson/.../pg: factor out PG::complete_rctx X-Git-Tag: testing/wip-vshankar-testing-20240725.121331-debug~5^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=816c9e9e85024eb64aa9d6eccfb254b2d6556894;p=ceph-ci.git crimson/.../pg: factor out PG::complete_rctx Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/osd_operations/peering_event.cc b/src/crimson/osd/osd_operations/peering_event.cc index 2190f5fa2d8..8e7a41a8fd9 100644 --- a/src/crimson/osd/osd_operations/peering_event.cc +++ b/src/crimson/osd/osd_operations/peering_event.cc @@ -109,14 +109,6 @@ seastar::future<> PeeringEvent::with_pg( }).then_interruptible([this, pg, &shard_services] { return complete_rctx(shard_services, pg); }); - }).then_interruptible([pg, &shard_services]() - -> typename T::template interruptible_future<> { - if (!pg->get_need_up_thru()) { - return seastar::now(); - } - return shard_services.send_alive(pg->get_same_interval_since()); - }).then_interruptible([&shard_services] { - return shard_services.send_pg_temp(); }); }, [this](std::exception_ptr ep) { LOG_PREFIX(PeeringEvent::with_pg); @@ -142,9 +134,7 @@ PeeringEvent::complete_rctx(ShardServices &shard_services, Ref pg) using interruptor = typename T::interruptor; LOG_PREFIX(PeeringEvent::complete_rctx); DEBUGI("{}: submitting ctx", *this); - return shard_services.dispatch_context( - pg->get_collection_ref(), - std::move(ctx)); + return pg->complete_rctx(std::move(ctx)); } ConnectionPipeline &RemotePeeringEvent::get_connection_pipeline() diff --git a/src/crimson/osd/osd_operations/pg_advance_map.cc b/src/crimson/osd/osd_operations/pg_advance_map.cc index c6c6b5cdabf..abfd56a7d7b 100644 --- a/src/crimson/osd/osd_operations/pg_advance_map.cc +++ b/src/crimson/osd/osd_operations/pg_advance_map.cc @@ -105,17 +105,7 @@ seastar::future<> PGAdvanceMap::start() shard_services.pg_created(pg->get_pgid(), pg); logger().info("PGAdvanceMap::start new pg {}", *pg); } - return seastar::when_all_succeed( - pg->get_need_up_thru() - ? shard_services.send_alive( - pg->get_same_interval_since()) - : seastar::now(), - shard_services.dispatch_context( - pg->get_collection_ref(), - std::move(rctx))); - }).then_unpack([this] { - logger().debug("{}: sending pg temp", *this); - return shard_services.send_pg_temp(); + return pg->complete_rctx(std::move(rctx)); }); }).then([this] { logger().debug("{}: complete", *this); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index b17940c0ed4..75884e453d3 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -165,6 +165,19 @@ public: return std::size(snap_trimq); } + seastar::future<> complete_rctx(PeeringCtx &&rctx) { + return seastar::when_all_succeed( + get_need_up_thru() + ? shard_services.send_alive( + get_same_interval_since()) + : seastar::now(), + shard_services.dispatch_context( + get_collection_ref(), + std::move(rctx)), + shard_services.send_pg_temp() + ).then([](auto){}); + } + void send_cluster_message( int osd, MessageURef m, epoch_t epoch, bool share_map_update=false) final {