aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/tcp_connect.c
diff options
context:
space:
mode:
authorSowmini Varadhan <sowmini.varadhan@oracle.com>2017-06-21 16:40:13 -0400
committerDavid S. Miller <davem@davemloft.net>2017-06-22 11:34:04 -0400
commitc14b0366813a8f6df7de181d8a333af7db6fb84e (patch)
tree25b75d4ca8004759f2da15b26f2cc5700e51becf /net/rds/tcp_connect.c
parent69b92b5b7419846e2a0d61a097b11b17a089e046 (diff)
rds: tcp: set linger to 1 when unloading a rds-tcp
If we are unloading the rds_tcp module, we can set linger to 1 and drop pending packets to accelerate reconnect. The peer will end up resetting the connection based on new generation numbers of the new incarnation, so hanging on to unsent TCP packets via linger is mostly pointless in this case. Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Tested-by: Jenny Xu <jenny.x.xu@oracle.com> 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)
170 cp->cp_conn, tc, sock); 170 cp->cp_conn, tc, sock);
171 171
172 if (sock) { 172 if (sock) {
173 if (cp->cp_conn->c_destroy_in_prog)
174 rds_tcp_set_linger(sock);
173 sock->ops->shutdown(sock, RCV_SHUTDOWN | SEND_SHUTDOWN); 175 sock->ops->shutdown(sock, RCV_SHUTDOWN | SEND_SHUTDOWN);
174 lock_sock(sock->sk); 176 lock_sock(sock->sk);
175 rds_tcp_restore_callbacks(sock, tc); /* tc->tc_sock = NULL */ 177 rds_tcp_restore_callbacks(sock, tc); /* tc->tc_sock = NULL */