]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG: on_shutdown -> shutdown in public interface
authorSage Weil <sage@redhat.com>
Sat, 16 Sep 2017 03:11:34 +0000 (23:11 -0400)
committerSage Weil <sage@redhat.com>
Fri, 6 Oct 2017 18:08:17 +0000 (13:08 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/PG.h
src/osd/PrimaryLogPG.cc
src/osd/PrimaryLogPG.h

index 8290c011762933dbd56c1c4def92ec5e131e381a..c38fd8009f00e79b81e93b11606d926916633231 100644 (file)
@@ -3257,14 +3257,8 @@ int OSD::shutdown()
   // Shutdown PGs
   {
     RWLock::RLocker l(pg_map_lock);
-    for (ceph::unordered_map<spg_t, PG*>::iterator p = pg_map.begin();
-        p != pg_map.end();
-        ++p) {
-      dout(20) << " kicking pg " << p->first << dendl;
-      p->second->lock();
-      p->second->on_shutdown();
-      p->second->unlock();
-      p->second->osr->flush();
+    for (auto& p : pg_map) {
+      p.second->shutdown();
     }
   }
 
index fa01d21ec8047d06c1ad6dd1c268842173aba663..5bb432615ff37ac36a347abe20d2e0cec7409025 100644 (file)
@@ -386,6 +386,8 @@ public:
 
   void get_pg_stats(std::function<void(const pg_stat_t&, epoch_t lec)> f);
 
+  virtual void shutdown() = 0;
+
   virtual void do_request(
     OpRequestRef& op,
     ThreadPool::TPHandle &handle
@@ -2684,7 +2686,6 @@ protected:
   virtual void on_change(ObjectStore::Transaction *t) = 0;
   virtual void on_activate() = 0;
   virtual void on_flushed() = 0;
-  virtual void on_shutdown() = 0;
   virtual void check_blacklisted_watchers() = 0;
 
   friend ostream& operator<<(ostream& out, const PG& pg);
index c2ed9c4ce6b3827547678cb18af6c972b2a8610f..45ed663e73432c92355ce1a91d4f8e5277b51dbd 100644 (file)
@@ -10698,9 +10698,17 @@ void PrimaryLogPG::clear_async_reads()
   }
 }
 
+void PrimaryLogPG::shutdown()
+{
+  lock();
+  on_shutdown();
+  unlock();
+  osr->flush();
+}
+
 void PrimaryLogPG::on_shutdown()
 {
-  dout(10) << "on_shutdown" << dendl;
+  dout(10) << __func__ << dendl;
 
   // remove from queues
   osd->peering_wq.dequeue(this);
index 5c95c34ff33403fff8b61a7649e5bac1dc0b66eb..c70e44b4108b365bc0611c174fe123b70dd316cc 100644 (file)
@@ -1784,7 +1784,8 @@ public:
   void on_activate() override;
   void on_flushed() override;
   void on_removal(ObjectStore::Transaction *t) override;
-  void on_shutdown() override;
+  void shutdown() override;
+  void on_shutdown();
   bool check_failsafe_full(ostream &ss) override;
   bool check_osdmap_full(const set<pg_shard_t> &missing_on) override;
   int rep_repair_primary_object(const hobject_t& soid, OpRequestRef op);