linux-stable/net/sunrpc/xprtrdma
Chuck Lever 9f74660bcf xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len
Some NFSv4.1 OPEN requests were hanging waiting for the NFS server
to finish recalling delegations. Turns out that each NFSv4.1 CB
request on RDMA gets a GARBAGE_ARGS reply from the Linux client.

Commit 756b9b37cf added a line in bc_svc_process that
overwrites the incoming rq_rcv_buf's length with the value in
rq_private_buf.len. But rpcrdma_bc_receive_call() does not invoke
xprt_complete_bc_request(), thus rq_private_buf.len is not
initialized. svc_process_common() is invoked with a zero-length
RPC message, and fails.

Fixes: 756b9b37cf ('SUNRPC: Fix callback channel')
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2016-02-17 10:23:52 -05:00
..
backchannel.c xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len 2016-02-17 10:23:52 -05:00
fmr_ops.c xprtrdma: Add ro_unmap_sync method for FMR 2015-12-18 15:34:33 -05:00
frwr_ops.c xprtrdma: Add ro_unmap_sync method for FRWR 2015-12-18 15:34:33 -05:00
Makefile xprtrdma: Pre-allocate backward rpc_rqst and send/receive buffers 2015-11-02 13:45:15 -05:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Add ro_unmap_sync method for all-physical registration 2015-12-18 15:34:33 -05:00
rpc_rdma.c xprtrdma: Invalidate in the RPC reply handler 2015-12-18 15:34:33 -05:00
svc_rdma.c svcrdma: Add backward direction service for RPC/RDMA transport 2015-11-02 13:45:15 -05:00
svc_rdma_marshal.c svcrdma: Keep rpcrdma_msg fields in network byte-order 2015-06-04 16:55:59 -04:00
svc_rdma_recvfrom.c Initial 4.4 merge window submission 2015-11-07 13:33:07 -08:00
svc_rdma_sendto.c IB: split struct ib_send_wr 2015-10-08 11:09:10 +01:00
svc_rdma_transport.c NFS client updates for Linux 4.4 2015-11-09 18:11:22 -08:00
transport.c xprtrdma: xprt_rdma_free() must not release backchannel reqs 2015-12-18 15:34:33 -05:00
verbs.c xprtrdma: Revert commit e7104a2a96 ('xprtrdma: Cap req_cqinit'). 2015-12-18 15:34:33 -05:00
xprt_rdma.h xprtrdma: Revert commit e7104a2a96 ('xprtrdma: Cap req_cqinit'). 2015-12-18 15:34:33 -05:00