]> git-server-git.apps.pok.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)
committerSamuel Just <sam.just@inktank.com>
Fri, 19 Jul 2013 17:39:02 +0000 (10:39 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 2a07887a2a314e3346ccb92eacc0e8a6a079186e..0420665363a445dc7ee0d6dcc759b8731b2a57a0 100644 (file)
@@ -4511,7 +4511,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();
 
@@ -4600,7 +4601,7 @@ void PG::start_peering_interval(const OSDMapRef lastmap,
 
     
   // pg->on_*
-  on_change();
+  on_change(t);
 
   assert(!deleting);
 
@@ -5237,7 +5238,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 e1f64dbc9fb6ce2631d69c09f1d5d89da0cc4aaa..819c9c62f62e380e81e84a72e924eae61de01451 100644 (file)
@@ -1703,7 +1703,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);
@@ -1793,7 +1794,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 453fdacfb760de49626c7dfd135e9121cd74d33a..60b59738d533f06fa8b9a5502dfa21b802e52810 100644 (file)
@@ -6717,7 +6717,7 @@ void ReplicatedPG::on_activate()
   }
 }
 
-void ReplicatedPG::on_change()
+void ReplicatedPG::on_change(ObjectStore::Transaction *t)
 {
   dout(10) << "on_change" << dendl;
 
index 8f0cf6ec31c2d8cf7040714ba7fd56b9ead66610..8fc21a8806806b753d6c8b589ddecdfd43f0344a 100644 (file)
@@ -1042,7 +1042,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);