summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-07-18 19:25:14 -0700
committerSage Weil <sage@inktank.com>2013-07-24 16:20:35 -0700
commitc7e2945a42541f966017180684dd969389eef3ac (patch)
tree0d2151924dbee2f9af751c07fb52d813c81d582b
parent7ffc65fc4d7d842954cf791c016fd2711f644a9c (diff)
downloadceph-c7e2945a42541f966017180684dd969389eef3ac.tar.gz
PG, ReplicatedPG: pass a transaction down to ReplicatedPG::on_change
Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com> (cherry picked from commit 9f56a7b8bfcb63cb4fbbc0c9b8ff01de9e518c57)
-rw-r--r--src/osd/PG.cc8
-rw-r--r--src/osd/PG.h5
-rw-r--r--src/osd/ReplicatedPG.cc2
-rw-r--r--src/osd/ReplicatedPG.h2
4 files changed, 10 insertions, 7 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index 935ebe7f42c..442795015f6 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -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();
}
diff --git a/src/osd/PG.h b/src/osd/PG.h
index b959a9f8490..f56d96d0198 100644
--- a/src/osd/PG.h
+++ b/src/osd/PG.h
@@ -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;
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 370830e200b..736da8b3bbb 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -6330,7 +6330,7 @@ void ReplicatedPG::on_activate()
}
}
-void ReplicatedPG::on_change()
+void ReplicatedPG::on_change(ObjectStore::Transaction *t)
{
dout(10) << "on_change" << dendl;
diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h
index e70dd0a84f1..6bba4c57595 100644
--- a/src/osd/ReplicatedPG.h
+++ b/src/osd/ReplicatedPG.h
@@ -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);