From: Joao Eduardo Luis Date: Tue, 17 Jun 2014 16:19:34 +0000 (+0100) Subject: mon: Monitor: rework tick() so we don't calculate the same thing over and again X-Git-Tag: v0.83~66^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0ed1fe642219395ef7f34475bb99a6a101227b2b;p=ceph.git mon: Monitor: rework tick() so we don't calculate the same thing over and again Signed-off-by: Joao Eduardo Luis --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 036c2f6712bb..ca55a93e3513 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -3822,6 +3822,10 @@ void Monitor::tick() // trim sessions utime_t now = ceph_clock_now(g_ceph_context); xlist::iterator p = session_map.sessions.begin(); + + bool out_for_too_long = (!exited_quorum.is_zero() + && now > (exited_quorum + 2*g_conf->mon_lease)); + while (!p.end()) { MonSession *s = *p; ++p; @@ -3835,14 +3839,12 @@ void Monitor::tick() << " (until " << s->until << " < now " << now << ")" << dendl; messenger->mark_down(s->con); remove_session(s); - } else if (!exited_quorum.is_zero()) { - if (now > (exited_quorum + 2 * g_conf->mon_lease)) { - // boot the client Session because we've taken too long getting back in - dout(10) << " trimming session " << s->con << " " << s->inst - << " because we've been out of quorum too long" << dendl; - messenger->mark_down(s->con); - remove_session(s); - } + } else if (out_for_too_long) { + // boot the client Session because we've taken too long getting back in + dout(10) << " trimming session " << s->con << " " << s->inst + << " because we've been out of quorum too long" << dendl; + messenger->mark_down(s->con); + remove_session(s); } }