]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: move osdmap_gate to CoreState
authorSamuel Just <sjust@redhat.com>
Tue, 12 Jul 2022 23:51:01 +0000 (16:51 -0700)
committerSamuel Just <sjust@redhat.com>
Thu, 14 Jul 2022 00:58:29 +0000 (00:58 +0000)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/osd.cc
src/crimson/osd/osd.h
src/crimson/osd/pg_shard_manager.h
src/crimson/osd/shard_services.cc
src/crimson/osd/shard_services.h

index 4c9d92fbfe3dfd14a7ec0cc31db4f33a511059c6..2fa8511401e69f1b1dc5a48149967ca40d722113 100644 (file)
@@ -101,7 +101,6 @@ OSD::OSD(int id, uint32_t nonce,
       update_stats();
     }},
     asok{seastar::make_lw_shared<crimson::admin::AdminSocket>()},
-    osdmap_gate("OSD::osdmap_gate"),
     log_client(cluster_msgr.get(), LogClient::NO_FLAGS),
     clog(log_client.create_channel())
 {
@@ -332,8 +331,8 @@ seastar::future<> OSD::start()
     superblock = std::move(sb);
     return get_map(superblock.current_epoch);
   }).then([this](cached_map_t&& map) {
-    osdmap_gate.got_map(map->get_epoch());
     pg_shard_manager.update_map(map);
+    pg_shard_manager.got_map(map->get_epoch());
     osdmap = std::move(map);
     bind_epoch = osdmap->get_epoch();
     return load_pgs();
@@ -1446,7 +1445,7 @@ seastar::future<> OSD::consume_map(epoch_t epoch)
       *this, pg.second, pg.second->get_osdmap_epoch(), epoch,
       PeeringCtx{}, false).second;
   }).then([epoch, this] {
-    osdmap_gate.got_map(epoch);
+    pg_shard_manager.got_map(epoch);
     return seastar::make_ready_future();
   });
 }
index a6030e2ac91ec55874a171f2439963a1bce7ba3a..3f38e28aed05c356565d563e7647e6da2ecabb3c 100644 (file)
@@ -215,8 +215,6 @@ private:
     crimson::net::ConnectionRef conn,
     Ref<MOSDPGUpdateLogMissingReply> m);
 public:
-  OSD_OSDMapGate osdmap_gate;
-
   ShardServices &get_shard_services() {
     return pg_shard_manager.get_shard_services();
   }
@@ -273,7 +271,7 @@ public:
        OSD_OSDMapGate::OSDMapBlocker::BlockingEvent;
       return opref.template with_blocking_event<OSDMapBlockingEvent>(
        [this, &opref](auto &&trigger) {
-         return osdmap_gate.wait_for_map(
+         return pg_shard_manager.wait_for_map(
            std::move(trigger),
            opref.get_epoch(),
            &shard_services
index 571f5cdb47e84340c5bbce8edabb48046049e60b..bb0d5c7a8abc3b52525d9b871a678216601b0d55 100644 (file)
@@ -47,6 +47,8 @@ public:
   }
 
   FORWARD_TO_CORE(send_pg_created)
-};
+  FORWARD(got_map, got_map, core_state.osdmap_gate)
+  FORWARD(wait_for_map, wait_for_map, core_state.osdmap_gate)
+}
 
 }
index 71c3c96ab852011101103de6bf5cd94a75c56d34..26a758464d6f09e964976d5f903d3d44537d440a 100644 (file)
@@ -50,6 +50,7 @@ CoreState::CoreState(
   crimson::os::FuturizedStore &store)
   : whoami(whoami),
     osdmap_service(osdmap_service),
+    osdmap_gate("CoreState::osdmap_gate"),
     cluster_msgr(cluster_msgr),
     public_msgr(public_msgr),
     monc(monc),
index d3df2c8f794c5f496ffcd25dc2f0eae961cee911..85d7f4a5fae2d13949de4c429fcd870a711f281a 100644 (file)
@@ -126,6 +126,7 @@ class CoreState : public md_config_obs_t {
   void update_map(OSDMapService::cached_map_t new_osdmap) {
     osdmap = std::move(new_osdmap);
   }
+  OSD_OSDMapGate osdmap_gate;
 
   crimson::net::Messenger &cluster_msgr;
   crimson::net::Messenger &public_msgr;