]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
libceph: reset connection retry on successfully negotiation
authorSage Weil <sage@inktank.com>
Mon, 30 Jul 2012 23:22:05 +0000 (16:22 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Nov 2012 19:38:39 +0000 (11:38 -0800)
(cherry picked from commit 85effe183dd45854d1ad1a370b88cddb403c4c91)

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>
net/ceph/messenger.c

index b59e64a7b24bfb22bbe1f5f70a8fcfb4c79e9b09..9da18929c588f6b82d08faaffa37f94aab8582f6 100644 (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;