From 36978a632981b7c7a3bc80f968c1d66ca3c0b0b2 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 22 Nov 2011 16:02:28 -0800 Subject: [PATCH] mon: calculate rank by addr, not name Signed-off-by: Sage Weil --- src/mon/MonMap.h | 6 ++++++ src/mon/Monitor.cc | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) 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); -- 2.39.5