kernel_optimize_test/net/sunrpc
NeilBrown 013920eb5d sunrpc/cache: ensure items removed from cache do not have pending upcalls.
It is possible for a race to set CACHE_PENDING after cache_clean()
has removed a cache entry from the cache.
If CACHE_PENDING is still set when the entry is finally 'put',
the cache_dequeue() will never happen and we can leak memory.

So set a new flag 'CACHE_CLEANED' when we remove something from
the cache, and don't queue any upcall if it is set.

If CACHE_PENDING is set before CACHE_CLEANED, the call that
cache_clean() makes to cache_fresh_unlocked() will free memory
as needed.  If CACHE_PENDING is set after CACHE_CLEANED, the
test in sunrpc_cache_pipe_upcall will ensure that the memory
is not allocated.

Reported-by: <bstroesser@ts.fujitsu.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2013-07-01 17:53:28 -04:00
..
auth_gss svcrpc: store gss mech in svc_cred 2013-07-01 17:23:06 -04:00
xprtrdma
addr.c
auth_generic.c
auth_null.c
auth_unix.c
auth.c
backchannel_rqst.c
bc_svc.c
cache.c sunrpc/cache: ensure items removed from cache do not have pending upcalls. 2013-07-01 17:53:28 -04:00
clnt.c More NFS client bugfixes for 3.10 2013-05-09 10:24:54 -07:00
Kconfig
Makefile
netns.h
rpc_pipe.c
rpcb_clnt.c
sched.c
socklib.c
stats.c
sunrpc_syms.c
sunrpc.h
svc_xprt.c
svc.c
svcauth_unix.c svcrpc: fix failures to handle -1 uid's and gid's 2013-05-29 10:37:47 -04:00
svcauth.c
svcsock.c svcrpc: don't error out on small tcp fragment 2013-07-01 17:32:04 -04:00
sysctl.c
timer.c
xdr.c
xprt.c
xprtsock.c sunrpc: server back channel needs no rpcbind method 2013-05-15 09:27:02 -04:00