- kclient: retry alloc on ENOMEM when reading from connection?
- kill mon->osd
- - MRoute breaks if we bounce between multiple monitors
- - monitor may drop our request if cluster changes, but session doesn't reset
- kill shutdown msg
- kill mon->mds
- beacon reply
*/
}
- paxos->wait_for_commit(new C_Stats(this, ack, stats->get_orig_source_inst()));
- delete stats;
+ paxos->wait_for_commit(new C_Stats(this, stats, ack));
return true;
}
-void PGMonitor::_updated_stats(MPGStatsAck *ack, entity_inst_t who)
+void PGMonitor::_updated_stats(MPGStats *req, MPGStatsAck *ack)
{
- dout(7) << "_updated_stats for " << who << dendl;
- mon->messenger->send_message(ack, who);
+ dout(7) << "_updated_stats for " << req->get_orig_source_inst() << dendl;
+ mon->send_reply(req, ack);
+ delete req;
}
bool preprocess_pg_stats(MPGStats *stats);
bool prepare_pg_stats(MPGStats *stats);
- void _updated_stats(MPGStatsAck *ack, entity_inst_t who);
+ void _updated_stats(MPGStats *req, MPGStatsAck *ack);
struct C_Stats : public Context {
PGMonitor *pgmon;
+ MPGStats *req;
MPGStatsAck *ack;
entity_inst_t who;
- C_Stats(PGMonitor *p, MPGStatsAck *a, entity_inst_t w) : pgmon(p), ack(a), who(w) {}
+ C_Stats(PGMonitor *p, MPGStats *r, MPGStatsAck *a) : pgmon(p), req(r), ack(a) {}
void finish(int r) {
- pgmon->_updated_stats(ack, who);
+ pgmon->_updated_stats(req, ack);
}
};