android_kernel_samsung_msm8976/net/sunrpc/xprtrdma
Chuck Lever c73df6f73c svcrdma: Select NFSv4.1 backchannel transport based on forward channel
commit 3c45ddf823d679a820adddd53b52c6699c9a05ac upstream.

The current code always selects XPRT_TRANSPORT_BC_TCP for the back
channel, even when the forward channel was not TCP (eg, RDMA). When
a 4.1 mount is attempted with RDMA, the server panics in the TCP BC
code when trying to send CB_NULL.

Instead, construct the transport protocol number from the forward
channel transport or'd with XPRT_TRANSPORT_BC. Transports that do
not support bi-directional RPC will not have registered a "BC"
transport, causing create_backchannel_client() to fail immediately.

Fixes: https://bugzilla.linux-nfs.org/show_bug.cgi?id=265
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-05 16:28:37 -07:00
..
Makefile
rpc_rdma.c SUNRPC: Eliminate task->tk_xprt accesses that bypass rcu_dereference() 2013-02-01 10:13:47 -05:00
svc_rdma.c
svc_rdma_marshal.c svcrdma: underflow issue in decode_write_list() 2013-08-04 16:50:57 +08:00
svc_rdma_recvfrom.c nfsd4: cleanup: replace rq_resused count by rq_next_page pointer 2012-12-17 22:00:16 -05:00
svc_rdma_sendto.c nfsd4: cleanup: replace rq_resused count by rq_next_page pointer 2012-12-17 22:00:16 -05:00
svc_rdma_transport.c svcrdma: Select NFSv4.1 backchannel transport based on forward channel 2014-09-05 16:28:37 -07:00
transport.c Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
verbs.c IB/core: Add "type 2" memory windows support 2013-02-21 11:51:45 -08:00
xprt_rdma.h SUNRPC: Eliminate task->tk_xprt accesses that bypass rcu_dereference() 2013-02-01 10:13:47 -05:00