linux-stable/net/sunrpc/xprtrdma
Chuck Lever 31e62d25b5 xprtrdma: Simplify RPC wake-ups on connect
Currently, when a connection is established, rpcrdma_conn_upcall
invokes rpcrdma_conn_func and then
wake_up_all(&ep->rep_connect_wait). The former wakes waiting RPCs,
but the connect worker is not done yet, and that leads to races,
double wakes, and difficulty understanding how this logic is
supposed to work.

Instead, collect all the "connection established" logic in the
connect worker (xprt_rdma_connect_worker). A disconnect worker is
retained to handle provider upcalls safely.

Fixes: 254f91e2fa ("xprtrdma: RPC/RDMA must invoke ... ")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2018-10-03 08:58:41 -04:00
..
backchannel.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
fmr_ops.c xprtrdma: Name MR trace events consistently 2018-10-02 15:55:36 -04:00
frwr_ops.c xprtrdma: Name MR trace events consistently 2018-10-02 15:55:36 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
rpc_rdma.c xprtrdma: Explicitly resetting MRs is no longer necessary 2018-10-02 15:48:12 -04:00
svc_rdma.c sunrpc: remove redundant variables 'checksumlen','blocksize' and 'data' 2018-08-09 16:11:21 -04:00
svc_rdma_backchannel.c xprtrdma: Reset credit grant properly after a disconnect 2018-10-02 15:45:09 -04:00
svc_rdma_recvfrom.c A mistake on my part caused me to tag my branch 6 commits too early, 2018-08-23 16:00:10 -07:00
svc_rdma_rw.c A mistake on my part caused me to tag my branch 6 commits too early, 2018-08-23 16:00:10 -07:00
svc_rdma_sendto.c A mistake on my part caused me to tag my branch 6 commits too early, 2018-08-23 16:00:10 -07:00
svc_rdma_transport.c A mistake on my part caused me to tag my branch 6 commits too early, 2018-08-23 16:00:10 -07:00
transport.c xprtrdma: Simplify RPC wake-ups on connect 2018-10-03 08:58:41 -04:00
verbs.c xprtrdma: Simplify RPC wake-ups on connect 2018-10-03 08:58:41 -04:00
xprt_rdma.h xprtrdma: Simplify RPC wake-ups on connect 2018-10-03 08:58:41 -04:00