linux/net/sunrpc
Trond Myklebust f39c1bfb5a SUNRPC: Fix a UDP transport regression
Commit 43cedbf0e8 (SUNRPC: Ensure that
we grab the XPRT_LOCK before calling xprt_alloc_slot) is causing
hangs in the case of NFS over UDP mounts.

Since neither the UDP or the RDMA transport mechanism use dynamic slot
allocation, we can skip grabbing the socket lock for those transports.
Add a new rpc_xprt_op to allow switching between the TCP and UDP/RDMA
case.

Note that the NFSv4.1 back channel assigns the slot directly
through rpc_run_bc_task, so we can ignore that case.

Reported-by: Dick Streefland <dick.streefland@altium.nl>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org [>= 3.1]
2012-09-07 11:43:49 -04:00
..
auth_gss SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors 2012-07-17 17:02:57 -04:00
xprtrdma SUNRPC: Fix a UDP transport regression 2012-09-07 11:43:49 -04:00
addr.c SUNRPC: parametrize rpc_uaddr2sockaddr() by network context 2012-01-31 19:28:12 -05:00
auth_generic.c userns: Convert group_info values from gid_t to kgid_t. 2012-05-03 03:27:21 -07:00
auth_null.c SUNRPC: Move the bound cred to struct rpc_rqst 2010-08-04 08:54:09 -04:00
auth_unix.c userns: Convert group_info values from gid_t to kgid_t. 2012-05-03 03:27:21 -07:00
auth.c SUNRPC: Add rpcauth_list_flavors() 2012-07-16 15:12:15 -04:00
backchannel_rqst.c net: Fix (nearly-)kernel-doc comments for various functions 2012-07-10 23:13:45 -07:00
bc_svc.c SUNRPC: sunrpc should not explicitly depend on NFS config options 2011-07-15 09:12:23 -04:00
cache.c SUNRPC/cache: fix reporting of expired cache entries in 'content' file. 2012-07-12 11:20:28 -04:00
clnt.c nfs: enable swap on NFS 2012-07-31 18:42:48 -07:00
Kconfig nfs: enable swap on NFS 2012-07-31 18:42:48 -07:00
Makefile SUNRPC: sunrpc should not explicitly depend on NFS config options 2011-07-15 09:12:23 -04:00
netns.h SUNRPC: create GSS auth cache per network namespace 2012-01-31 19:28:15 -05:00
rpc_pipe.c rpc_pipefs: allow rpc_purge_list to take a NULL waitq pointer 2012-06-11 17:27:07 -04:00
rpcb_clnt.c SUNRPC: return negative value in case rpcbind client creation error 2012-07-30 20:39:05 -04:00
sched.c Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-31 19:25:39 -07:00
socklib.c sunrpc: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:28 +08:00
stats.c SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field 2012-03-02 15:36:38 -05:00
sunrpc_syms.c SUNRPC: register PipeFS file system after pernet sybsystem 2012-04-18 11:05:48 -04:00
sunrpc.h SUNRPC: subscribe RPC clients to pipefs notifications 2012-01-31 18:20:25 -05:00
svc_xprt.c Merge branch 'for-3.5' of git://linux-nfs.org/~bfields/linux 2012-06-01 08:32:58 -07:00
svc.c NFS client bugfixes for Linux 3.5 2012-06-15 17:37:23 -07:00
svcauth_unix.c ipv6: add ipv6_addr_hash() helper 2012-07-18 11:28:46 -07:00
svcauth.c net: sunrpc: kill unused macros 2010-12-17 15:48:21 -05:00
svcsock.c net: skb_free_datagram_locked() doesnt drop all packets 2012-06-27 15:40:57 -07:00
sysctl.c SUNRPC: make SUNPRC clients list per network namespace context 2012-01-31 18:20:25 -05:00
timer.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
xdr.c NFS client updates for Linux 3.6 2012-07-30 19:16:57 -07:00
xprt.c SUNRPC: Fix a UDP transport regression 2012-09-07 11:43:49 -04:00
xprtsock.c SUNRPC: Fix a UDP transport regression 2012-09-07 11:43:49 -04:00