summaryrefslogtreecommitdiff
path: root/net/rds/tcp_connect.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-06-22 11:34:05 -0400
committerDavid S. Miller <davem@davemloft.net>2017-06-22 11:34:05 -0400
commit2de18105a8219bde0cc4947729d5f00ecb39179f (patch)
tree25b75d4ca8004759f2da15b26f2cc5700e51becf /net/rds/tcp_connect.c
parent6d659237657c64e9e2a930865da4c777239b678e (diff)
parentc14b0366813a8f6df7de181d8a333af7db6fb84e (diff)
downloadlinux-2de18105a8219bde0cc4947729d5f00ecb39179f.tar.gz
linux-2de18105a8219bde0cc4947729d5f00ecb39179f.tar.xz
Merge branch 'rds-tcp-fixes'
Sowmini Varadhan says: ==================== rds: tcp: fixes Patch1 is a bug fix for correct reconnect when a connection is restarted. Patch 2 accelerates cleanup by setting linger to 1 and sending a RST to the peer. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds/tcp_connect.c')
-rw-r--r--net/rds/tcp_connect.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rds/tcp_connect.c b/net/rds/tcp_connect.c
index 5a62a083bb5a..cbe08a1fa4c7 100644
--- a/net/rds/tcp_connect.c
+++ b/net/rds/tcp_connect.c
@@ -170,6 +170,8 @@ void rds_tcp_conn_path_shutdown(struct rds_conn_path *cp)
cp->cp_conn, tc, sock);
if (sock) {
+ if (cp->cp_conn->c_destroy_in_prog)
+ rds_tcp_set_linger(sock);
sock->ops->shutdown(sock, RCV_SHUTDOWN | SEND_SHUTDOWN);
lock_sock(sock->sk);
rds_tcp_restore_callbacks(sock, tc); /* tc->tc_sock = NULL */