OpenCloudOS-Kernel/include/linux/sunrpc
Benjamin Coddington af84537dbd SUNRPC: fix race to sk_err after xs_error_report
Since commit 4f8943f808 ("SUNRPC: Replace direct task wakeups from
softirq context") there has been a race to the value of the sk_err if both
XPRT_SOCK_WAKE_ERROR and XPRT_SOCK_WAKE_DISCONNECT are set.  In that case,
we may end up losing the sk_err value that existed when xs_error_report was
called.

Fix this by reverting to the previous behavior: instead of using SO_ERROR
to retrieve the value at a later time (which might also return sk_err_soft),
copy the sk_err value onto struct sock_xprt, and use that value to wake
pending tasks.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Fixes: 4f8943f808 ("SUNRPC: Replace direct task wakeups from softirq context")
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2019-10-10 16:14:28 -04:00
..
addr.h
auth.h SUNRPC: Add rpc_auth::au_ralign field 2019-02-14 11:48:36 -05:00
auth_gss.h SUNRPC: The transmitted message must lie in the RPCSEC window of validity 2018-09-30 15:35:13 -04:00
bc_xprt.h SUNRPC: Fix up backchannel slot table accounting 2019-07-18 01:12:59 -04:00
cache.h sunrpc: add a new cache_detail operation for when a cache is flushed 2019-08-19 11:00:39 -04:00
clnt.h SUNRPC: Fix up backchannel slot table accounting 2019-07-18 01:12:59 -04:00
debug.h
gss_api.h
gss_asn1.h
gss_err.h
gss_krb5.h NFS client bugfixes for Linux 4.20 2018-11-04 08:20:09 -08:00
gss_krb5_enctypes.h SUNRPC: Add build option to disable support for insecure enctypes 2019-02-13 13:33:12 -05:00
metrics.h SUNRPC: Count ops completing with tk_status < 0 2019-07-06 14:54:51 -04:00
msg_prot.h
rpc_pipe_fs.h
rpc_rdma.h
sched.h NFS Client Updates for Linux 5.3 2019-09-26 12:20:14 -07:00
stats.h
svc.h SUNRPC: Allow further customisation of RPC program registration 2019-04-24 09:46:35 -04:00
svc_rdma.h svcrdma: Use llist for managing cache of recv_ctxts 2019-08-19 10:59:28 -04:00
svc_xprt.h SUNRPC: Cache the process user cred in the RPC server listener 2019-04-24 09:46:35 -04:00
svcauth.h SUNRPC: Add lockless lookup of the server's auth domain 2018-10-03 11:32:59 -04:00
svcauth_gss.h
svcsock.h SUNRPC: Cache the process user cred in the RPC server listener 2019-04-24 09:46:35 -04:00
timer.h
types.h
xdr.h SUNRPC: Rename xdr_buf_read_netobj to xdr_buf_read_mic 2019-09-20 15:15:24 -04:00
xprt.h SUNRPC: Dequeue the request from the receive queue while we're re-encoding 2019-09-17 15:14:11 -04:00
xprtmultipath.h SUNRPC: Add basic load balancing to the transport switch 2019-07-06 14:54:49 -04:00
xprtrdma.h xprtrdma: Boost client's max slot table size to match Linux server 2019-08-20 11:17:16 -04:00
xprtsock.h SUNRPC: fix race to sk_err after xs_error_report 2019-10-10 16:14:28 -04:00