]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/.../pg: factor out PG::complete_rctx
authorSamuel Just <sjust@redhat.com>
Tue, 2 Jul 2024 22:50:47 +0000 (22:50 +0000)
committerSamuel Just <sjust@redhat.com>
Wed, 10 Jul 2024 17:08:07 +0000 (17:08 +0000)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/osd_operations/peering_event.cc
src/crimson/osd/osd_operations/pg_advance_map.cc
src/crimson/osd/pg.h

index 2190f5fa2d89a986478744cedaf7c0a968cf43d4..8e7a41a8fd9e69d3cff5723cdf3a37619681e26c 100644 (file)
@@ -109,14 +109,6 @@ seastar::future<> PeeringEvent<T>::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<T>::with_pg);
@@ -142,9 +134,7 @@ PeeringEvent<T>::complete_rctx(ShardServices &shard_services, Ref<PG> pg)
   using interruptor = typename T::interruptor;
   LOG_PREFIX(PeeringEvent<T>::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()
index c6c6b5cdabf3f347aaafdf3f564e910d06b7a810..abfd56a7d7b59942c196970c8c03330c9ac48873 100644 (file)
@@ -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);
index b17940c0ed49c084dbf85ab0aadbe7e7d94c8694..75884e453d37252bb5a854ec16e41d1f6ad84101 100644 (file)
@@ -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 {