diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2023-12-12 15:34:08 +0100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2024-02-28 15:00:14 -0500 |
commit | 0c14584cdbdb58ecc14d149a81ca6c3d42cd38ec (patch) | |
tree | 493e5306886008506675910012ec43b8f73cfd26 /net/sunrpc | |
parent | 31d90deb653a5c34d8d648b8a1b459b929be1a73 (diff) |
SUNRPC: Don't try to send when the connection is shutting down
If the connection has been scheduled to shut down, we must assume that
the socket is not in a state to accept further transmissions until the
connection has been re-established.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/xprt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index af13fdfa6672..db3754a3298f 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -1541,6 +1541,9 @@ xprt_request_transmit(struct rpc_rqst *req, struct rpc_task *snd_task) int is_retrans = RPC_WAS_SENT(task); int status; + if (test_bit(XPRT_CLOSE_WAIT, &xprt->state)) + return -ENOTCONN; + if (!req->rq_bytes_sent) { if (xprt_request_data_received(task)) { status = 0; |