linux-hardened/net/sunrpc/xprtrdma
Chuck Lever 109b88ab9d xprtrdma: Address coverity complaint about wait_for_completion()
> ** CID 114101:  Error handling issues  (CHECKED_RETURN)
> /net/sunrpc/xprtrdma/verbs.c: 355 in rpcrdma_create_id()

Commit 5675add36e ("RPC/RDMA: harden connection logic against
missing/late rdma_cm upcalls.") replaced wait_for_completion() calls
with these two call sites.

The original wait_for_completion() calls were added in the initial
commit of verbs.c, which was commit c56c65fb67 ("RPCRDMA: rpc rdma
verbs interface implementation"), but these returned void.

rpcrdma_create_id() is called by the RDMA connect worker, which
probably won't ever be interrupted. It is also called by
rpcrdma_ia_open which is in the synchronous mount path, and ^C is
possible there.

Add a bit of logic at those two call sites to return if the waits
return ERESTARTSYS.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2016-11-29 16:45:44 -05:00
..
backchannel.c xprtrdma: Cap size of callback buffer resources 2016-11-29 16:45:44 -05:00
fmr_ops.c xprtrdma: Basic support for Remote Invalidation 2016-09-19 13:08:38 -04:00
frwr_ops.c xprtrdma: Support for SG_GAP devices 2016-11-29 16:45:44 -05:00
Makefile xprtrdma: Remove ALLPHYSICAL memory registration mode 2016-07-11 15:50:43 -04:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
rpc_rdma.c xprtrdma: Eliminate rpcrdma_receive_worker() 2016-09-19 13:08:38 -04:00
svc_rdma.c svcrdma: Define maximum number of backchannel requests 2016-01-19 15:30:48 -05:00
svc_rdma_backchannel.c svcrdma: backchannel cannot share a page for send and rcv buffers 2016-11-01 15:23:58 -04:00
svc_rdma_marshal.c svcrdma: Generalize svc_rdma_xdr_decode_req() 2016-05-13 15:53:06 -04:00
svc_rdma_recvfrom.c svcrdma: Tail iovec leaves an orphaned DMA mapping 2016-09-23 10:18:52 -04:00
svc_rdma_sendto.c svcrdma: support Remote Invalidation 2016-09-23 10:18:54 -04:00
svc_rdma_transport.c sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp transports 2016-11-14 10:30:58 -05:00
transport.c xprtrdma: Support larger inline thresholds 2016-09-19 13:08:38 -04:00
verbs.c xprtrdma: Address coverity complaint about wait_for_completion() 2016-11-29 16:45:44 -05:00
xprt_rdma.h xprtrdma: Support for SG_GAP devices 2016-11-29 16:45:44 -05:00