epoch_t epoch; // what epoch/version of the monmap
ceph_fsid_t fsid;
vector<entity_inst_t> mon_inst;
+ utime_t last_changed;
int last_mon; // last mon i talked to
MonMap() : epoch(0), last_mon(-1) {
memset(&fsid, 0, sizeof(fsid));
+ last_changed = g_clock.now();
}
ceph_fsid_t& get_fsid() { return fsid; }
::encode_raw(fsid, blist);
::encode(epoch, blist);
::encode(mon_inst, blist);
+ ::encode(last_changed, blist);
}
void decode(bufferlist& blist) {
bufferlist::iterator p = blist.begin();
::decode_raw(fsid, p);
::decode(epoch, p);
::decode(mon_inst, p);
+ ::decode(last_changed, p);
}
{
pending_map = *mon->monmap;
pending_map.epoch++;
+ pending_map.last_changed = g_clock.now();
dout(10) << "create_pending monmap epoch " << pending_map.epoch << dendl;
}
{
MMonAdd *m = (MMonAdd *) message;
pending_map.add(m->address);
+ pending_map.last_changed = g_clock.now();
return true;
}