From: Sage Weil Date: Wed, 23 Nov 2011 00:02:28 +0000 (-0800) Subject: mon: calculate rank by addr, not name X-Git-Tag: v0.39~17^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=36978a632981b7c7a3bc80f968c1d66ca3c0b0b2;p=ceph.git mon: calculate rank by addr, not name Signed-off-by: Sage Weil --- diff --git a/src/mon/MonMap.h b/src/mon/MonMap.h index bc302f9ef142b..c46c0bda2c8dc 100644 --- a/src/mon/MonMap.h +++ b/src/mon/MonMap.h @@ -114,6 +114,12 @@ class MonMap { return i; return -1; } + int get_rank(entity_addr_t a) { + for (unsigned i=0; iget_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)); @@ -171,6 +171,8 @@ Monitor::~Monitor() void Monitor::init() { lock.Lock(); + + rank = monmap->get_rank(messenger->get_myaddr()); dout(1) << "init fsid " << monmap->fsid << dendl; @@ -234,7 +236,7 @@ void Monitor::bootstrap() 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);