Blame patches.suse/SUNRPC-Simplify-socket-shutdown-when-not-reusing-TCP.patch
|
NeilBrown |
a1a975 |
From: Trond Myklebust <trond.myklebust@hammerspace.com>
|
|
NeilBrown |
a1a975 |
Date: Tue, 24 Aug 2021 11:38:17 -0400
|
|
NeilBrown |
a1a975 |
Subject: [PATCH] SUNRPC: Simplify socket shutdown when not reusing TCP ports
|
|
NeilBrown |
a1a975 |
Git-commit: 0a6ff58edbfb26469a095ab964095506352fc960
|
|
NeilBrown |
a1a975 |
Patch-mainline: v5.15-rc1
|
|
NeilBrown |
a1a975 |
References: git-fixes
|
|
NeilBrown |
a1a975 |
|
|
NeilBrown |
a1a975 |
If we're not required to reuse the TCP port, then we can just
|
|
NeilBrown |
a1a975 |
immediately close the socket, and leave the cleanup details to the TCP
|
|
NeilBrown |
a1a975 |
layer.
|
|
NeilBrown |
a1a975 |
|
|
NeilBrown |
a1a975 |
Fixes: e6237b6feb37 ("NFSv4.1: Don't rebind to the same source port when reconnecting to the server")
|
|
NeilBrown |
a1a975 |
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
|
|
NeilBrown |
a1a975 |
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
|
|
NeilBrown |
a1a975 |
Acked-by: NeilBrown <neilb@suse.com>
|
|
NeilBrown |
a1a975 |
|
|
NeilBrown |
a1a975 |
---
|
|
NeilBrown |
a1a975 |
net/sunrpc/xprtsock.c | 4 ++++
|
|
NeilBrown |
a1a975 |
1 file changed, 4 insertions(+)
|
|
NeilBrown |
a1a975 |
|
|
NeilBrown |
a1a975 |
--- a/net/sunrpc/xprtsock.c
|
|
NeilBrown |
a1a975 |
+++ b/net/sunrpc/xprtsock.c
|
|
NeilBrown |
a1a975 |
@@ -2260,6 +2260,10 @@ static void xs_tcp_shutdown(struct rpc_x
|
|
NeilBrown |
a1a975 |
|
|
NeilBrown |
a1a975 |
if (sock == NULL)
|
|
NeilBrown |
a1a975 |
return;
|
|
NeilBrown |
a1a975 |
+ if (!xprt->reuseport) {
|
|
NeilBrown |
a1a975 |
+ xs_close(xprt);
|
|
NeilBrown |
a1a975 |
+ return;
|
|
NeilBrown |
a1a975 |
+ }
|
|
NeilBrown |
a1a975 |
if (xprt_connected(xprt)) {
|
|
NeilBrown |
a1a975 |
kernel_sock_shutdown(sock, SHUT_RDWR);
|
|
NeilBrown |
a1a975 |
trace_rpc_socket_shutdown(xprt, sock);
|