Commit 480179a1 authored by Ilya Dryomov's avatar Ilya Dryomov Committed by Greg Kroah-Hartman

libceph: un-backoff on tick when we have a authenticated session

commit facb9f6e upstream.

This means that if we do some backoff, then authenticate, and are
healthy for an extended period of time, a subsequent failure won't
leave us starting our hunting sequence with a large backoff.

Mirrors ceph.git commit d466bc6e66abba9b464b0b69687cf45c9dccf383.

Cc: stable@vger.kernel.org # 4.7+
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
Reviewed-by: default avatarJason Dillaman <dillaman@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ddf02dbc
...@@ -209,6 +209,14 @@ static void reopen_session(struct ceph_mon_client *monc) ...@@ -209,6 +209,14 @@ static void reopen_session(struct ceph_mon_client *monc)
__open_session(monc); __open_session(monc);
} }
static void un_backoff(struct ceph_mon_client *monc)
{
monc->hunt_mult /= 2; /* reduce by 50% */
if (monc->hunt_mult < 1)
monc->hunt_mult = 1;
dout("%s hunt_mult now %d\n", __func__, monc->hunt_mult);
}
/* /*
* Reschedule delayed work timer. * Reschedule delayed work timer.
*/ */
...@@ -955,6 +963,7 @@ static void delayed_work(struct work_struct *work) ...@@ -955,6 +963,7 @@ static void delayed_work(struct work_struct *work)
if (!monc->hunting) { if (!monc->hunting) {
ceph_con_keepalive(&monc->con); ceph_con_keepalive(&monc->con);
__validate_auth(monc); __validate_auth(monc);
un_backoff(monc);
} }
if (is_auth) { if (is_auth) {
...@@ -1114,9 +1123,7 @@ static void finish_hunting(struct ceph_mon_client *monc) ...@@ -1114,9 +1123,7 @@ static void finish_hunting(struct ceph_mon_client *monc)
dout("%s found mon%d\n", __func__, monc->cur_mon); dout("%s found mon%d\n", __func__, monc->cur_mon);
monc->hunting = false; monc->hunting = false;
monc->had_a_connection = true; monc->had_a_connection = true;
monc->hunt_mult /= 2; /* reduce by 50% */ un_backoff(monc);
if (monc->hunt_mult < 1)
monc->hunt_mult = 1;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment