aboutsummaryrefslogtreecommitdiffstats
path: root/net/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-07-30 19:22:05 -0400
committerSage Weil <sage@inktank.com>2012-07-30 21:15:34 -0400
commit85effe183dd45854d1ad1a370b88cddb403c4c91 (patch)
treea824f3e030171ad81c7c372ab00bba657d62ae9e /net/ceph
parent5469155f2bc83bb2c88b0a0370c3d54d87eed06e (diff)
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.c2
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)
1629 if (con->in_reply.flags & CEPH_MSG_CONNECT_LOSSY) 1629 if (con->in_reply.flags & CEPH_MSG_CONNECT_LOSSY)
1630 set_bit(LOSSYTX, &con->flags); 1630 set_bit(LOSSYTX, &con->flags);
1631 1631
1632 con->delay = 0; /* reset backoff memory */
1633
1632 prepare_read_tag(con); 1634 prepare_read_tag(con);
1633 break; 1635 break;
1634 1636