]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG, ReplicatedPG: pass a transaction down to ReplicatedPG::on_change
authorSamuel Just <sam.just@inktank.com>
Fri, 19 Jul 2013 02:25:14 +0000 (19:25 -0700)
committerSage Weil <sage@inktank.com>
Wed, 24 Jul 2013 23:20:35 +0000 (16:20 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 9f56a7b8bfcb63cb4fbbc0c9b8ff01de9e518c57)

src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 935ebe7f42c7aff422b04ccbb354cc48b5679f7a..442795015f606f8c6d139bf5052f1e9d128bfa01 100644 (file)
@@ -5014,7 +5014,8 @@ void PG::start_flush(ObjectStore::Transaction *t,
 /* Called before initializing peering during advance_map */
 void PG::start_peering_interval(const OSDMapRef lastmap,
                                const vector<int>& newup,
-                               const vector<int>& newacting)
+                               const vector<int>& newacting,
+                               ObjectStore::Transaction *t)
 {
   const OSDMapRef osdmap = get_osdmap();
 
@@ -5103,7 +5104,7 @@ void PG::start_peering_interval(const OSDMapRef lastmap,
 
     
   // pg->on_*
-  on_change();
+  on_change(t);
 
   assert(!deleting);
 
@@ -5978,7 +5979,8 @@ boost::statechart::result PG::RecoveryState::Reset::react(const AdvMap& advmap)
     pg->is_split(advmap.lastmap, advmap.osdmap)) {
     dout(10) << "up or acting affected, calling start_peering_interval again"
             << dendl;
-    pg->start_peering_interval(advmap.lastmap, advmap.newup, advmap.newacting);
+    pg->start_peering_interval(advmap.lastmap, advmap.newup, advmap.newacting,
+                              context< RecoveryMachine >().get_cur_transaction());
   }
   return discard_event();
 }
index b959a9f849082677aa54170d12eaaba62b7455de..f56d96d019850ae5458e00cb43b6e8d044a06463 100644 (file)
@@ -1927,7 +1927,8 @@ public:
 
   void start_peering_interval(const OSDMapRef lastmap,
                              const vector<int>& newup,
-                             const vector<int>& newacting);
+                             const vector<int>& newacting,
+                             ObjectStore::Transaction *t);
   void start_flush(ObjectStore::Transaction *t,
                   list<Context *> *on_applied,
                   list<Context *> *on_safe);
@@ -2009,7 +2010,7 @@ public:
   virtual bool same_for_rep_modify_since(epoch_t e) = 0;
 
   virtual void on_role_change() = 0;
-  virtual void on_change() = 0;
+  virtual void on_change(ObjectStore::Transaction *t) = 0;
   virtual void on_activate() = 0;
   virtual void on_flushed() = 0;
   virtual void on_shutdown() = 0;
index 370830e200b6b0b74d737bd6fd9310ea54ffe381..736da8b3bbb96673ef2c0ee792c7d3c5bd862bd9 100644 (file)
@@ -6330,7 +6330,7 @@ void ReplicatedPG::on_activate()
   }
 }
 
-void ReplicatedPG::on_change()
+void ReplicatedPG::on_change(ObjectStore::Transaction *t)
 {
   dout(10) << "on_change" << dendl;
 
index e70dd0a84f10ad7a7b8e9099199fba7f9f6117ad..6bba4c5759587090fe5f438045b8eb3422466a11 100644 (file)
@@ -1001,7 +1001,7 @@ public:
   void _finish_mark_all_unfound_lost(list<ObjectContext*>& obcs);
 
   void on_role_change();
-  void on_change();
+  void on_change(ObjectStore::Transaction *t);
   void on_activate();
   void on_flushed();
   void on_removal(ObjectStore::Transaction *t);