/* 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();
// pg->on_*
- on_change();
+ on_change(t);
assert(!deleting);
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();
}
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);
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;
}
}
-void ReplicatedPG::on_change()
+void ReplicatedPG::on_change(ObjectStore::Transaction *t)
{
dout(10) << "on_change" << dendl;
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);