diff options
author | Sage Weil <sage@inktank.com> | 2012-07-31 01:22:05 +0200 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-07-31 03:15:34 +0200 |
commit | 85effe183dd45854d1ad1a370b88cddb403c4c91 (patch) | |
tree | a824f3e030171ad81c7c372ab00bba657d62ae9e /net/ceph | |
parent | libceph: protect ceph_con_open() with mutex (diff) | |
download | linux-85effe183dd45854d1ad1a370b88cddb403c4c91.tar.xz linux-85effe183dd45854d1ad1a370b88cddb403c4c91.zip |
libceph: reset connection retry on successfully negotiation
We exponentially back off when we encounter connection errors. If several
errors accumulate, we will eventually wait ages before even trying to
reconnect.
Fix this by resetting the backoff counter after a successful negotiation/
connection with the remote node. Fixes ceph issue #2802.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Diffstat (limited to 'net/ceph')
-rw-r--r-- | net/ceph/messenger.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index a4779988c847..07204f19e856 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -1629,6 +1629,8 @@ static int process_connect(struct ceph_connection *con) if (con->in_reply.flags & CEPH_MSG_CONNECT_LOSSY) set_bit(LOSSYTX, &con->flags); + con->delay = 0; /* reset backoff memory */ + prepare_read_tag(con); break; |