Commit 0656d11b authored by Sage Weil's avatar Sage Weil

ceph: renew mon subscription before it expires

Be conservative: renew subscription once half the interval has expired.

Do not reuse sub expiration to control hunting.
Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent e251e288
...@@ -213,7 +213,7 @@ static void handle_subscribe_ack(struct ceph_mon_client *monc, ...@@ -213,7 +213,7 @@ static void handle_subscribe_ack(struct ceph_mon_client *monc,
monc->hunting = false; monc->hunting = false;
} }
dout("handle_subscribe_ack after %d seconds\n", seconds); dout("handle_subscribe_ack after %d seconds\n", seconds);
monc->sub_renew_after = monc->sub_sent + seconds*HZ - 1; monc->sub_renew_after = monc->sub_sent + (seconds >> 1)*HZ - 1;
monc->sub_sent = 0; monc->sub_sent = 0;
mutex_unlock(&monc->mutex); mutex_unlock(&monc->mutex);
return; return;
...@@ -512,7 +512,7 @@ static void delayed_work(struct work_struct *work) ...@@ -512,7 +512,7 @@ static void delayed_work(struct work_struct *work)
if (monc->want_mount) { if (monc->want_mount) {
__request_mount(monc); __request_mount(monc);
} else { } else {
if (__sub_expired(monc)) { if (monc->hunting) {
__close_session(monc); __close_session(monc);
__open_session(monc); /* continue hunting */ __open_session(monc); /* continue hunting */
} else { } else {
......
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