浏览代码

SUNRPC: Prevent SYN+SYNACK+RST storms

Add a shutdown() call before we release the socket in order to ensure the
reset is sent before we try to reconnect.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Trond Myklebust 10 年之前
父节点
当前提交
099392048c
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      net/sunrpc/xprtsock.c

+ 2 - 0
net/sunrpc/xprtsock.c

@@ -822,6 +822,8 @@ static void xs_reset_transport(struct sock_xprt *transport)
 	if (atomic_read(&transport->xprt.swapper))
 	if (atomic_read(&transport->xprt.swapper))
 		sk_clear_memalloc(sk);
 		sk_clear_memalloc(sk);
 
 
+	kernel_sock_shutdown(sock, SHUT_RDWR);
+
 	write_lock_bh(&sk->sk_callback_lock);
 	write_lock_bh(&sk->sk_callback_lock);
 	transport->inet = NULL;
 	transport->inet = NULL;
 	transport->sock = NULL;
 	transport->sock = NULL;