1
0
Fork 0
remarkable-linux/net/sunrpc
NeilBrown e28574abf3 sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects a race
[ Upstream commit a6ab1e8126 ]

sunrpc_cache_pipe_upcall() can detect a race if CACHE_PENDING is no longer
set.  In this case it aborts the queuing of the upcall.
However it has already taken a new counted reference on "h" and
doesn't "put" it, even though it frees the data structure holding the reference.

So let's delay the "cache_get" until we know we need it.

Fixes: f9e1aedc6c ("sunrpc/cache: remove races with queuing an upcall.")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
2016-07-10 23:07:16 -04:00
..
auth_gss sunrpc: fix stripping of padded MIC tokens 2016-06-06 19:12:33 -04:00
xprtrdma svcrdma: handle rdma read with a non-zero initial page offset 2015-10-27 09:51:59 +09:00
Kconfig kernel: conditionally support non-root users, groups and capabilities 2015-04-15 16:35:22 -07:00
Makefile sunrpc: add debugfs file for displaying client rpc_task queue 2014-11-27 13:14:51 -05:00
addr.c replace strict_strto calls 2014-07-12 18:45:49 -04:00
auth.c sunrpc: eliminate RPC_DEBUG 2014-11-24 17:31:46 -05:00
auth_generic.c sunrpc: eliminate RPC_DEBUG 2014-11-24 17:31:46 -05:00
auth_null.c sunrpc: eliminate RPC_DEBUG 2014-11-24 17:31:46 -05:00
auth_unix.c sunrpc: eliminate RPC_DEBUG 2014-11-24 17:31:46 -05:00
backchannel_rqst.c SUNRPC: Fix a memory leak in the backchannel code 2015-08-03 09:29:17 -07:00
bc_svc.c SUNRPC: remove BUG_ON from bc_send 2012-11-04 14:43:41 -05:00
cache.c sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects a race 2016-07-10 23:07:16 -04:00
clnt.c nfsd4/rpc: move backchannel create logic into rpc code 2016-07-10 20:19:57 -04:00
debugfs.c sunrpc: make debugfs file creation failure non-fatal 2015-04-23 14:42:27 -04:00
netns.h Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux 2014-01-30 10:18:43 -08:00
rpc_pipe.c VFS: net/: d_inode() annotations 2015-04-15 15:06:56 -04:00
rpcb_clnt.c SUNRPC: NULL utsname dereference on NFS umount during namespace cleanup 2015-02-03 16:40:17 -05:00
sched.c SUNRPC: fix build-warning due to format missmatch 2015-03-13 09:05:20 -04:00
socklib.c net: Save software checksum complete 2014-06-11 15:46:13 -07:00
stats.c sunrpc: add rpc_count_iostats_idx 2015-02-03 11:06:38 -08:00
sunrpc.h SUNRPC: track whether a request is coming from a loop-back interface. 2014-05-22 15:59:18 -04:00
sunrpc_syms.c sunrpc: make debugfs file creation failure non-fatal 2015-04-23 14:42:27 -04:00
svc.c sunrpc/lockd: fix references to the BKL 2015-01-23 10:29:12 -05:00
svc_xprt.c sunrpc/lockd: fix references to the BKL 2015-01-23 10:29:12 -05:00
svcauth.c nfsd4: better reservation of head space for krb5 2014-05-30 17:32:17 -04:00
svcauth_unix.c svcrpc: fix failures to handle -1 uid's 2013-07-08 17:27:23 -04:00
svcsock.c get rid of the size argument of sock_sendmsg() 2015-04-11 15:27:37 -04:00
sysctl.c sunrpc: eliminate RPC_DEBUG 2014-11-24 17:31:46 -05:00
timer.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
xdr.c rpc: fix xdr_truncate_encode to handle buffer ending on page boundary 2015-01-07 14:03:58 -05:00
xprt.c SUNRPC: Lock the transport layer on shutdown 2015-09-29 19:26:11 +02:00
xprtsock.c SUNRPC: Ensure that we wait for connections to complete before retrying 2015-09-29 19:26:10 +02:00