libceph: reset connection retry on successfully negotiation

(cherry picked from commit 85effe183d)

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Sage Weil 2012-07-30 16:22:05 -07:00 committed by Greg Kroah-Hartman
parent eea8ed9762
commit ed447f04ee

View File

@ -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;