From: Samuel Just Date: Fri, 19 Jul 2013 02:25:14 +0000 (-0700) Subject: PG, ReplicatedPG: pass a transaction down to ReplicatedPG::on_change X-Git-Tag: v0.67-rc1~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9f56a7b8bfcb63cb4fbbc0c9b8ff01de9e518c57;p=ceph.git PG, ReplicatedPG: pass a transaction down to ReplicatedPG::on_change Signed-off-by: Samuel Just Reviewed-by: Sage Weil --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 2a07887a2a31..0420665363a4 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -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& newup, - const vector& newacting) + const vector& 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(); } diff --git a/src/osd/PG.h b/src/osd/PG.h index e1f64dbc9fb6..819c9c62f62e 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -1703,7 +1703,8 @@ public: void start_peering_interval(const OSDMapRef lastmap, const vector& newup, - const vector& newacting); + const vector& newacting, + ObjectStore::Transaction *t); void start_flush(ObjectStore::Transaction *t, list *on_applied, list *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; diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 453fdacfb760..60b59738d533 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -6717,7 +6717,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 8f0cf6ec31c2..8fc21a880680 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1042,7 +1042,7 @@ public: void _finish_mark_all_unfound_lost(list& 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);