// Did I previously not hold a rank? Initialize!
if (mds_rank == NULL) {
- mds_rank = new MDSRankDispatcher(whoami, incarnation, mds_lock, clog,
+ mds_rank = new MDSRankDispatcher(whoami, mds_lock, clog,
timer, beacon, mdsmap, messenger, monc, objecter,
new C_VoidFn(this, &MDSDaemon::respawn),
new C_VoidFn(this, &MDSDaemon::suicide));
MDSRank::MDSRank(
mds_rank_t whoami_,
- int incarnation_,
Mutex &mds_lock_,
LogChannelRef &clog_,
SafeTimer &timer_,
Context *respawn_hook_,
Context *suicide_hook_)
:
- whoami(whoami_),
- incarnation(incarnation_),
+ whoami(whoami_), incarnation(0),
mds_lock(mds_lock_), clog(clog_), timer(timer_),
mdsmap(mdsmap_),
objecter(objecter_),
assert(whoami != MDS_RANK_NONE);
MDSMap::DaemonState oldstate = state;
- state = mdsmap->get_state_gid(mds_gid_t(
- monc->get_global_id()));
+ mds_gid_t mds_gid = mds_gid_t(monc->get_global_id());
+ state = mdsmap->get_state_gid(mds_gid);
if (state != oldstate) {
last_state = oldstate;
+ incarnation = mdsmap->get_inc_gid(mds_gid);
}
version_t epoch = m->get_epoch();
if (oldstate != state) {
// update messenger.
if (state == MDSMap::STATE_STANDBY_REPLAY || state == MDSMap::STATE_ONESHOT_REPLAY) {
- dout(1) << "handle_mds_map i am now mds." << monc->get_global_id() << "." << incarnation
- << "replaying mds." << whoami << "." << incarnation << dendl;
- messenger->set_myname(entity_name_t::MDS(monc->get_global_id()));
+ dout(1) << "handle_mds_map i am now mds." << mds_gid << "." << incarnation
+ << " replaying mds." << whoami << "." << incarnation << dendl;
+ messenger->set_myname(entity_name_t::MDS(mds_gid));
} else {
dout(1) << "handle_mds_map i am now mds." << whoami << "." << incarnation << dendl;
messenger->set_myname(entity_name_t::MDS(whoami));
MDSRankDispatcher::MDSRankDispatcher(
mds_rank_t whoami_,
- int incarnation_,
Mutex &mds_lock_,
LogChannelRef &clog_,
SafeTimer &timer_,
Objecter *objecter_,
Context *respawn_hook_,
Context *suicide_hook_)
- : MDSRank(whoami_, incarnation_, mds_lock_, clog_, timer_, beacon_, mdsmap_,
+ : MDSRank(whoami_, mds_lock_, clog_, timer_, beacon_, mdsmap_,
msgr, monc_, objecter_, respawn_hook_, suicide_hook_)
{}