[ 145/171] libceph: reset connection retry on successfully negotiation

From: Greg Kroah-Hartman
Date: Thu Nov 22 2012 - 16:43:47 EST


3.4-stable review patch. If anyone has any objections, please let me know.

------------------

From: Sage Weil <sage@xxxxxxxxxxx>

(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@xxxxxxxxxxx>
Reviewed-by: Yehuda Sadeh <yehuda@xxxxxxxxxxx>
Reviewed-by: Alex Elder <elder@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
net/ceph/messenger.c | 2 ++
1 file changed, 2 insertions(+)

--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -1629,6 +1629,8 @@ static int process_connect(struct ceph_c
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;



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/