linux/net/sunrpc
Trond Myklebust 0ffe86f480 SUNRPC: Use poll() to fix up the socket requeue races
Because we clear XPRT_SOCK_DATA_READY before reading, we can end up
with a situation where new data arrives, causing xs_data_ready() to
queue up a second receive worker job for the same socket, which then
immediately gets stuck waiting on the transport receive mutex.
The fix is to only clear XPRT_SOCK_DATA_READY once we're done reading,
and then to use poll() to check if we might need to queue up a new
job in order to deal with any new data.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2019-02-20 17:33:54 -05:00
..
auth_gss sunrpc: fix 4 more call sites that were using stack memory with a scatterlist 2019-02-15 14:56:51 -05:00
xprtrdma More NFS client fixes for Linux 5.0 2019-02-16 17:33:39 -08:00
addr.c replace strict_strto calls 2014-07-12 18:45:49 -04:00
auth_null.c SUNRPC: remove crbind rpc_cred operation 2018-12-19 13:52:46 -05:00
auth_unix.c SUNRPC: simplify auth_unix. 2018-12-19 13:52:46 -05:00
auth.c sunrpc: kernel BUG at kernel/cred.c:825! 2019-01-09 16:54:23 -05:00
backchannel_rqst.c SUNRPC: Fix some kernel doc complaints 2019-01-02 12:05:18 -05:00
cache.c sunrpc: fix cache_head leak due to queued request 2018-12-04 15:42:08 -05:00
clnt.c SUNRPC: Ensure we respect the RPCSEC_GSS sequence number limit 2019-01-15 15:32:21 -05:00
debugfs.c rpc: properly check debugfs dentry before using it 2019-02-12 15:51:39 -05:00
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
Makefile SUNRPC: remove generic cred code. 2018-12-19 13:52:46 -05:00
netns.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rpc_pipe.c sunrpc: convert to DEFINE_SHOW_ATTRIBUTE 2019-01-02 12:05:49 -05:00
rpcb_clnt.c sunrpc: convert unnecessary GFP_ATOMIC to GFP_NOFS 2019-01-02 12:05:19 -05:00
sched.c SUNRPC: Set memalloc_nofs_save() on all rpciod/xprtiod jobs 2019-02-20 15:14:21 -05:00
socklib.c net: dump more useful information in netdev_rx_csum_fault() 2018-11-15 11:37:04 -08:00
stats.c sunrpc: whitespace fixes 2018-07-31 12:53:40 -04:00
sunrpc_syms.c net: Drop pernet_operations::async 2018-03-27 13:18:09 -04:00
sunrpc.h sunrpc: whitespace fixes 2018-07-31 12:53:40 -04:00
svc_xprt.c sunrpc: fix debug message in svc_create_xprt() 2018-12-27 21:01:41 -05:00
svc.c sunrpc: make visible processing error in bc_svc_process() 2018-12-27 21:01:41 -05:00
svcauth_unix.c SUNRPC: Make server side AUTH_UNIX use lockless lookups 2018-10-29 16:58:04 -04:00
svcauth.c SUNRPC: Add lockless lookup of the server's auth domain 2018-10-03 11:32:59 -04:00
svcsock.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-01-03 12:53:47 -08:00
sysctl.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
timer.c
xdr.c SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer() 2018-11-08 12:12:23 -05:00
xprt.c SUNRPC: Set memalloc_nofs_save() on all rpciod/xprtiod jobs 2019-02-20 15:14:21 -05:00
xprtmultipath.c SUNRPC: Fix some kernel doc complaints 2019-01-02 12:05:18 -05:00
xprtsock.c SUNRPC: Use poll() to fix up the socket requeue races 2019-02-20 17:33:54 -05:00