|
@@ -209,6 +209,14 @@ static void reopen_session(struct ceph_mon_client *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.
|
|
|
*/
|
|
@@ -963,6 +971,7 @@ static void delayed_work(struct work_struct *work)
|
|
|
if (!monc->hunting) {
|
|
|
ceph_con_keepalive(&monc->con);
|
|
|
__validate_auth(monc);
|
|
|
+ un_backoff(monc);
|
|
|
}
|
|
|
|
|
|
if (is_auth &&
|
|
@@ -1123,9 +1132,7 @@ static void finish_hunting(struct ceph_mon_client *monc)
|
|
|
dout("%s found mon%d\n", __func__, monc->cur_mon);
|
|
|
monc->hunting = false;
|
|
|
monc->had_a_connection = true;
|
|
|
- monc->hunt_mult /= 2; /* reduce by 50% */
|
|
|
- if (monc->hunt_mult < 1)
|
|
|
- monc->hunt_mult = 1;
|
|
|
+ un_backoff(monc);
|
|
|
}
|
|
|
}
|
|
|
|