diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2018-12-04 00:49:00 +0100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2018-12-05 13:11:12 +0100 |
commit | 79462857eb547e5d17fc8445b9768615e02dc1cf (patch) | |
tree | 0f9dfe922df7ec9ca2160d6edda7eb1aac848e8b /net/sunrpc | |
parent | SUNRPC: Fix up socket polling (diff) | |
download | linux-79462857eb547e5d17fc8445b9768615e02dc1cf.tar.xz linux-79462857eb547e5d17fc8445b9768615e02dc1cf.zip |
SUNRPC: Don't force a redundant disconnection in xs_read_stream()
If the connection is broken, then xs_tcp_state_change() will take care
of scheduling the socket close as soon as appropriate. xs_read_stream()
just needs to report the error.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/xprtsock.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 92d08be2384d..8a5e823e0b33 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -634,13 +634,7 @@ xs_read_stream(struct sock_xprt *transport, int flags) transport->recv.len = 0; return read; out_err: - switch (ret) { - case 0: - case -ESHUTDOWN: - xprt_force_disconnect(&transport->xprt); - return -ESHUTDOWN; - } - return ret; + return ret != 0 ? ret : -ESHUTDOWN; } static void xs_stream_data_receive(struct sock_xprt *transport) |