]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/: pass merge state control through PeeringListener
authorSamuel Just <sjust@redhat.com>
Wed, 3 Apr 2019 00:45:23 +0000 (17:45 -0700)
committersjust@redhat.com <sjust@redhat.com>
Wed, 1 May 2019 18:22:23 +0000 (11:22 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/PG.cc
src/osd/PG.h
src/osd/PeeringState.cc
src/osd/PeeringState.h

index a5816ef6893f2c22e5fcaffebbdff90fa71f162b..d1e1196cf042b183bb8314e786fe130a02719537 100644 (file)
@@ -2629,6 +2629,21 @@ void PG::on_recovery_reserved()
   queue_recovery();
 }
 
+void PG::set_not_ready_to_merge_target(pg_t pgid, pg_t src)
+{
+  osd->set_not_ready_to_merge_target(pgid, src);
+}
+
+void PG::set_not_ready_to_merge_source(pg_t pgid)
+{
+  osd->set_not_ready_to_merge_source(pgid);
+}
+
+void PG::send_pg_created(pg_t pgid)
+{
+  osd->send_pg_created(pgid);
+}
+
 void PG::on_activate_committed()
 {
   if (!is_primary()) {
index ecc2a3ad80055b2807e2fa368156dda7e2313c52..48b57cef055ce6cf6626c26e9a54e0efc0f60d28 100644 (file)
@@ -487,6 +487,10 @@ public:
 
   void do_delete_work(ObjectStore::Transaction *t) override;
 
+  void set_not_ready_to_merge_target(pg_t pgid, pg_t src) override;
+  void set_not_ready_to_merge_source(pg_t pgid) override;
+  void send_pg_created(pg_t pgid) override;
+
   void queue_peering_event(PGPeeringEventRef evt);
   void do_peering_event(PGPeeringEventRef evt, PeeringCtx *rcx);
   void queue_null(epoch_t msg_epoch, epoch_t query_epoch);
index c45da33c537ce03a02624bfe331e925314a810ae..395e304adaed4712133635e90dbfe082437d4f95 100644 (file)
@@ -4172,9 +4172,9 @@ boost::statechart::result PeeringState::Active::react(const AllReplicasActivated
        pg_t src = pgid;
        src.set_ps(ps->pool.info.get_pg_num_pending());
        assert(src.get_parent() == pgid);
-       pg->osd->set_not_ready_to_merge_target(pgid, src);
+       pl->set_not_ready_to_merge_target(pgid, src);
       } else {
-       pg->osd->set_not_ready_to_merge_source(pgid);
+       pl->set_not_ready_to_merge_source(pgid);
       }
     }
   } else if (ps->acting.size() < ps->pool.info.min_size) {
@@ -4184,7 +4184,7 @@ boost::statechart::result PeeringState::Active::react(const AllReplicasActivated
   }
 
   if (ps->pool.info.has_flag(pg_pool_t::FLAG_CREATING)) {
-    pg->osd->send_pg_created(pgid);
+    pl->send_pg_created(pgid);
   }
 
   ps->info.history.last_epoch_started = ps->info.last_epoch_started;
index f24139b2d2961ad26fc14a9ba8cc28a127e10558..52c88711aea132587590cefa10ea4384a65a1814 100644 (file)
@@ -71,6 +71,7 @@ public:
 
     virtual void send_cluster_message(
       int osd, Message *m, epoch_t epoch, bool share_map_update=false) = 0;
+    virtual void send_pg_created(pg_t pgid) = 0;
 
     // Flush state
     virtual bool try_flush_or_schedule_async() = 0;
@@ -134,6 +135,10 @@ public:
     virtual void on_removal(ObjectStore::Transaction *t) = 0;
     virtual void do_delete_work(ObjectStore::Transaction *t) = 0;
 
+    // PG Merge
+    virtual void set_not_ready_to_merge_target(pg_t pgid, pg_t src) = 0;
+    virtual void set_not_ready_to_merge_source(pg_t pgid) = 0;
+
     // active map notifications
     virtual void on_active_actmap() = 0;
     virtual void on_active_advmap(const OSDMapRef &osdmap) = 0;