diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-01-08 09:10:21 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-02-01 10:13:47 -0500 |
commit | a4f0835c604f80f945ab3e72ffd00547145c4b2b (patch) | |
tree | cd883841bad19e0ab7e7aa435bbcac572836ff9e /net/sunrpc/xprtsock.c | |
parent | 88b62b915b0b7e25870eb0604ed9a92ba4bfc9f7 (diff) | |
download | lwn-a4f0835c604f80f945ab3e72ffd00547145c4b2b.tar.gz lwn-a4f0835c604f80f945ab3e72ffd00547145c4b2b.zip |
SUNRPC: Eliminate task->tk_xprt accesses that bypass rcu_dereference()
tk_xprt is just a shortcut for tk_client->cl_xprt, however cl_xprt is
defined as an __rcu variable. Replace dereferences of tk_xprt with
non-rcu dereferences where it is safe to do so.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/xprtsock.c')
-rw-r--r-- | net/sunrpc/xprtsock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 68b0a81c31d5..25838901c97f 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -770,7 +770,7 @@ static void xs_tcp_release_xprt(struct rpc_xprt *xprt, struct rpc_task *task) goto out_release; if (req->rq_bytes_sent == req->rq_snd_buf.len) goto out_release; - set_bit(XPRT_CLOSE_WAIT, &task->tk_xprt->state); + set_bit(XPRT_CLOSE_WAIT, &xprt->state); out_release: xprt_release_xprt(xprt, task); } |