linux/net/sunrpc
Trond Myklebust 910e425b29 SUNRPC: Prevent races in xs_abort_connection()
commit 4bc1e68ed6 upstream.

The call to xprt_disconnect_done() that is triggered by a successful
connection reset will trigger another automatic wakeup of all tasks
on the xprt->pending rpc_wait_queue. In particular it will cause an
early wake up of the task that called xprt_connect().

All we really want to do here is clear all the socket-specific state
flags, so we split that functionality out of xs_sock_mark_closed()
into a helper that can be called by xs_abort_connection()

Reported-by: Chris Perl <chris.perl@gmail.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: Chris Perl <chris.perl@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-31 09:51:34 -07:00
..
auth_gss Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 2011-06-21 18:20:55 -07:00
xprtrdma nfs: skip commit in releasepage if we're freeing memory for fs-related reasons 2012-08-09 08:27:51 -07:00
addr.c treewide: remove extra semicolons 2011-04-10 17:01:05 +02:00
auth_generic.c sunrpc: fix up rpcauth_remove_module section mismatch 2010-09-29 12:27:37 -04:00
auth_null.c SUNRPC: Move the bound cred to struct rpc_rqst 2010-08-04 08:54:09 -04:00
auth_unix.c NFS/sunrpc: don't use a credential with extra groups. 2011-11-11 09:37:07 -08:00
auth.c vmscan: change shrinker API by passing shrink_control struct 2011-05-25 08:39:26 -07:00
backchannel_rqst.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
bc_svc.c SUNRPC fix bc_send print 2011-01-06 14:46:23 -05:00
cache.c SUNRPC: Prevent kernel stack corruption on long values of flush 2012-10-28 10:02:11 -07:00
clnt.c SUNRPC: Ensure the RPC client only quits on fatal signals 2011-06-17 10:17:19 -04:00
Kconfig SUNRPC: Fix the SUNRPC Kerberos V RPCSEC_GSS module dependencies 2011-04-15 18:28:18 -04:00
Makefile
netns.h sunrpc: Make the ip_map_cache be per-net 2010-09-27 10:16:12 -04:00
rpc_pipe.c Merge branch 'nfs-for-2.6.38' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 2011-01-11 15:11:56 -08:00
rpcb_clnt.c SUNRPC: return negative value in case rpcbind client creation error 2012-08-15 12:04:09 -07:00
sched.c nfs: skip commit in releasepage if we're freeing memory for fs-related reasons 2012-08-09 08:27:51 -07:00
socklib.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stats.c SUNRPC: Simplify rpc_alloc_iostats by removing pointless local variable 2010-11-16 11:58:51 -05:00
sunrpc_syms.c sunrpc: Make the ip_map_cache be per-net 2010-09-27 10:16:12 -04:00
sunrpc.h
svc_xprt.c svcrpc: sends on closed socket should stop immediately 2012-09-14 10:00:39 -07:00
svc.c NFSv4.1: Fix a request leak on the back channel 2012-06-22 11:34:13 -07:00
svcauth_unix.c svcrpc: fix bad argument in unix_domain_find 2011-03-09 22:40:30 -05:00
svcauth.c net: sunrpc: kill unused macros 2010-12-17 15:48:21 -05:00
svcsock.c svcrpc: fix BUG() in svc_tcp_clear_pages 2012-09-14 10:00:38 -07:00
sysctl.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
timer.c
xdr.c SUNRPC: introduce xdr_init_decode_pages 2011-05-29 20:52:32 +03:00
xprt.c NFSv4.1: Don't update sequence number if rpc_task is not sent 2011-04-18 17:05:48 -04:00
xprtsock.c SUNRPC: Prevent races in xs_abort_connection() 2012-10-31 09:51:34 -07:00