linux/net/sunrpc
J. Bruce Fields ebc63e531c svcrpc: fix list-corrupting race on nfsd shutdown
After commit 3262c816a3 "[PATCH] knfsd:
split svc_serv into pools", svc_delete_xprt (then svc_delete_socket) no
longer removed its xpt_ready (then sk_ready) field from whatever list it
was on, noting that there was no point since the whole list was about to
be destroyed anyway.

That was mostly true, but forgot that a few svc_xprt_enqueue()'s might
still be hanging around playing with the about-to-be-destroyed list, and
could get themselves into trouble writing to freed memory if we left
this xprt on the list after freeing it.

(This is actually functionally identical to a patch made first by Ben
Greear, but with more comments.)

Cc: stable@kernel.org
Cc: gnb@fmeh.org
Reported-by: Ben Greear <greearb@candelatech.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2011-07-15 18:58:46 -04:00
..
auth_gss rpc: allow autoloading of gss mechanisms 2011-07-15 18:58:45 -04:00
xprtrdma Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-05-26 12:13:57 -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 SUNRPC: Move the bound cred to struct rpc_rqst 2010-08-04 08:54:09 -04: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 svcrpc: ensure cache_check caller sees updated entry 2011-01-04 16:49:25 -05: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 SUNRPC: Provide functions for managing universal addresses 2009-08-09 15:09:34 -04:00
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: Fix use of static variable in rpcb_getport_async 2011-07-12 13:40:13 -04:00
sched.c SUNRPC: Fix a race between work-queue and rpc_killall_tasks 2011-07-07 20:45:37 -04: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 nfsd41: sunrpc: Added rpc server-side backchannel handling 2009-09-11 15:04:16 -04:00
svc_xprt.c svcrpc: fix list-corrupting race on nfsd shutdown 2011-07-15 18:58:46 -04:00
svc.c SUNRPC: Use AF_LOCAL for rpcbind upcalls 2011-05-27 17:42:47 -04:00
svcauth_unix.c svcauth_unix.c: quiet sparse noise 2011-07-15 18:58:44 -04:00
svcauth.c net: sunrpc: kill unused macros 2010-12-17 15:48:21 -05:00
svcsock.c svcsock.c: include sunrpc.h to quiet sparse noise 2011-07-15 18:58:43 -04:00
sysctl.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
timer.c SUNRPC: Add documenting comments in net/sunrpc/timer.c 2009-08-09 15:09:47 -04:00
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: Support for RPC over AF_LOCAL transports 2011-05-27 17:42:47 -04:00