linux/net/sunrpc
Trond Myklebust 540a0f7584 SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
The problem is that for the case of priority queues, we
have to assume that __rpc_remove_wait_queue_priority will move new
elements from the tk_wait.links lists into the queue->tasks[] list.
We therefore cannot use list_for_each_entry_safe() on queue->tasks[],
since that will skip these new tasks that __rpc_remove_wait_queue_priority
is adding.

Without this fix, rpc_wake_up and rpc_wake_up_status will both fail
to wake up all functions on priority wait queues, which can result
in some nasty hangs.

Reported-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
2012-03-19 14:15:02 -04:00
..
auth_gss SUNRPC: Don't use variable length automatic arrays in kernel code 2012-03-12 13:37:16 -04:00
xprtrdma SUNRPC: create svc_xprt in proper network namespace 2011-12-06 16:20:42 -05:00
addr.c SUNRPC: parametrize rpc_uaddr2sockaddr() by network context 2012-01-31 19:28:12 -05:00
auth.c net: Remove unnecessary semicolons 2011-06-05 14:33:39 -07:00
auth_generic.c SUNRPC: Fix machine creds in generic_create_cred and generic_match 2012-01-23 14:03:46 -08: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-10-25 11:20:58 +02:00
backchannel_rqst.c SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04: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: generic cache register routines removed 2012-01-31 19:28:16 -05:00
clnt.c SUNRPC: Add API to acquire source address 2012-03-02 15:36:53 -05:00
Kconfig SUNRPC: sunrpc should not explicitly depend on NFS config options 2011-07-15 09:12:23 -04: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 SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04:00
rpcb_clnt.c SUNRPC: Move clnt->cl_server into struct rpc_xprt 2012-03-02 15:36:41 -05:00
sched.c SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() 2012-03-19 14:15:02 -04:00
socklib.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
stats.c SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field 2012-03-02 15:36:38 -05:00
sunrpc.h SUNRPC: subscribe RPC clients to pipefs notifications 2012-01-31 18:20:25 -05:00
sunrpc_syms.c SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04:00
svc.c Lockd: per-net up and down routines introduced 2012-02-15 00:19:47 -05:00
svc_xprt.c SUNRPC: service destruction in network namespace context 2012-02-15 00:19:45 -05:00
svcauth.c net: sunrpc: kill unused macros 2010-12-17 15:48:21 -05:00
svcauth_unix.c SUNRPC: ip map cache per network namespace cleanup 2012-01-31 19:28:16 -05:00
svcsock.c SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04:00
sysctl.c SUNRPC: make SUNPRC clients list per network namespace context 2012-01-31 18:20:25 -05:00
timer.c SUNRPC: Add documenting comments in net/sunrpc/timer.c 2009-08-09 15:09:47 -04:00
xdr.c NFSv4: include bitmap in nfsv4 get acl data 2012-01-05 10:42:42 -05:00
xprt.c SUNRPC: Move clnt->cl_server into struct rpc_xprt 2012-03-02 15:36:41 -05:00
xprtsock.c SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04:00