linux/net/sunrpc
J. Bruce Fields 31f7aa65f5 svcrpc: modifying valid sunrpc cache entries is racy
Once a sunrpc cache entry is VALID, we should be replacing it (and
allowing any concurrent users to destroy it on last put) instead of
trying to update it in place.

Otherwise someone referencing the ip_map we're modifying here could try
to use the m_client just as we're putting the last reference.

The bug should only be seen by users of the legacy nfsd interfaces.

(Thanks to Neil for suggestion to use sunrpc_invalidate.)

Reviewed-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2011-01-04 16:47:29 -05:00
..
auth_gss net/sunrpc/auth_gss/gss_krb5_crypto.c: Use normal negative error value return 2010-12-17 15:48:22 -05:00
xprtrdma sunrpc/xprtrdma: clean up workqueue usage 2010-10-21 10:11:45 -04:00
addr.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
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 Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux 2010-10-26 09:55:25 -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 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
cache.c Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux 2010-10-26 09:55:25 -07:00
clnt.c SUNRPC: Fix an infinite loop in call_refresh/call_refreshresult 2010-11-22 13:22:39 -05:00
Kconfig nfsd4: remove spkm3 2010-10-01 18:09:55 -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 convert get_sb_single() users 2010-10-29 04:16:28 -04:00
rpcb_clnt.c Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux 2010-10-26 09:55:25 -07:00
sched.c Merge branch 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 2010-10-25 13:48:29 -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 nfsd41: sunrpc: Added rpc server-side backchannel handling 2009-09-11 15:04:16 -04:00
svc_xprt.c sunrpc: remove xpt_pool 2010-12-17 15:48:18 -05:00
svc.c sunrpc: close connection when a request is irretrievably lost. 2010-09-21 16:57:49 -04:00
svcauth_unix.c svcrpc: modifying valid sunrpc cache entries is racy 2011-01-04 16:47:29 -05:00
svcauth.c net: sunrpc: kill unused macros 2010-12-17 15:48:21 -05:00
svcsock.c sunrpc: svc_sock_names should hold ref to socket being closed. 2010-12-17 15:48:19 -05: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: Add a helper function xdr_inline_peek 2010-10-23 15:27:32 -04:00
xprt.c sunrpc: Turn list_for_each-s into the ..._entry-s 2010-10-19 10:48:16 -04:00
xprtsock.c Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux 2010-10-26 09:55:25 -07:00