linux/net/sunrpc/xprtrdma
Chuck Lever 91ca18660e xprtrdma: xprt_release_rqst_cong is called outside of transport_lock
Since commit ce7c252a8c ("SUNRPC: Add a separate spinlock to
protect the RPC request receive list") the RPC/RDMA reply handler
has been calling xprt_release_rqst_cong without holding
xprt->transport_lock.

I think the only way this call is ever made is if the credit grant
increases and there are RPCs pending. Current server implementations
do not change their credit grant during operation (except at
connect time).

Commit e7ce710a88 ("xprtrdma: Avoid deadlock when credit window is
reset") added the ->release_rqst call because UDP invokes
xprt_adjust_cwnd(), which calls __xprt_put_cong() after adjusting
xprt->cwnd. Both xprt_release() and ->xprt_release_xprt already wake
another task in this case, so it is safe to remove this call from
the reply handler.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2018-10-02 15:26:30 -04:00
..
backchannel.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
fmr_ops.c net/xprtrdma: Simplify ib_post_(send|recv|srq_recv)() calls 2018-07-24 16:06:37 -06:00
frwr_ops.c RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const 2018-07-30 20:09:34 -06: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: xprt_release_rqst_cong is called outside of transport_lock 2018-10-02 15:26:30 -04:00
svc_rdma_backchannel.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07: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
svc_rdma.c sunrpc: remove redundant variables 'checksumlen','blocksize' and 'data' 2018-08-09 16:11:21 -04:00
transport.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
verbs.c NFS client updates for Linux 4.19 2018-08-23 16:03:58 -07:00
xprt_rdma.h NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00