I found a number of crashers and other problems in and around the xprtrdma logic for managing the Receive Queue during connect and disconnect events. Changes since v1: - Reworked 2/8 based on review comments - Clarified code comments and patch descriptions - Added Reviewed-by tags where appropriate --- Chuck Lever (8): xprtrdma: Avoid Receive Queue wrapping xprtrdma: Do not refresh Receive Queue while it is draining xprtrdma: Put flushed Receives on free list instead of destroying them xprtrdma: Improve locking around rpcrdma_rep destruction xprtrdma: Improve commentary around rpcrdma_reps_unmap() xprtrdma: Improve locking around rpcrdma_rep creation xprtrdma: Fix cwnd update ordering xprtrdma: Delete rpcrdma_recv_buffer_put() net/sunrpc/xprtrdma/backchannel.c | 4 +- net/sunrpc/xprtrdma/rpc_rdma.c | 7 ++- net/sunrpc/xprtrdma/verbs.c | 93 ++++++++++++++++++++----------- net/sunrpc/xprtrdma/xprt_rdma.h | 5 +- 4 files changed, 71 insertions(+), 38 deletions(-) -- Chuck Lever