return i;
return -1;
}
+ int get_rank(entity_addr_t a) {
+ for (unsigned i=0; i<rank_addr.size(); i++)
+ if (rank_addr[i] == a)
+ return i;
+ return -1;
+ }
bool get_addr_name(entity_addr_t a, string& name) {
if (addr_name.count(a) == 0)
return false;
paxos(PAXOS_NUM), paxos_service(PAXOS_NUM),
routed_request_tid(0)
{
- rank = map->get_rank(name);
+ rank = -1;
paxos_service[PAXOS_MDSMAP] = new MDSMonitor(this, add_paxos(PAXOS_MDSMAP));
paxos_service[PAXOS_MONMAP] = new MonmapMonitor(this, add_paxos(PAXOS_MONMAP));
void Monitor::init()
{
lock.Lock();
+
+ rank = monmap->get_rank(messenger->get_myaddr());
dout(1) << "init fsid " << monmap->fsid << dendl;
cancel_probe_timeout();
// note my rank
- int newrank = monmap->get_rank(name);
+ int newrank = monmap->get_rank(messenger->get_myaddr());
if (newrank < 0 && rank >= 0) {
dout(0) << " removed from monmap, suicide." << dendl;
exit(0);