linux/fs/nfsd
Chuck Lever 96a93162e2 svcrdma: Select NFSv4.1 backchannel transport based on forward channel
commit 3c45ddf823 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:34:18 -07:00
..
Kconfig nfsd: fix Kconfig syntax 2013-10-26 15:37:26 -04:00
Makefile
acl.h Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux 2014-01-30 10:18:43 -08:00
auth.c nfsd: Properly compare and initialize kuids and kgids 2013-02-13 06:16:09 -08:00
auth.h nfsd: Remove nfsd_luid, nfsd_lgid, nfsd_ruid and nfsd_rgid 2013-02-13 06:15:51 -08:00
cache.h nfsd: get rid of unused function definition 2014-01-02 17:53:23 -05:00
current_stateid.h
export.c nfsd: -EINVAL on invalid anonuid/gid instead of silent failure 2013-10-29 17:46:14 -04:00
fault_inject.c Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
idmap.h nfsd4: simplify xdr encoding of nfsv4 names 2014-01-08 12:18:53 -05:00
lockd.c
netns.h NFSD: Don't start lockd when only NFSv4 is running 2014-01-03 18:18:50 -05:00
nfs2acl.c nfsd: use get_acl and ->set_acl 2014-01-26 08:26:41 -05:00
nfs3acl.c nfsd: use get_acl and ->set_acl 2014-01-26 08:26:41 -05:00
nfs3proc.c switch vfs_getattr() to struct path 2013-02-26 02:46:08 -05:00
nfs3xdr.c nfsd: fix encode_entryplus_baggage stack usage 2014-01-23 13:50:27 -05:00
nfs4acl.c NFSD: Call ->set_acl with a NULL ACL structure if no entries 2014-06-07 10:28:21 -07:00
nfs4callback.c svcrdma: Select NFSv4.1 backchannel transport based on forward channel 2014-09-05 16:34:18 -07:00
nfs4idmap.c nfsd4: simplify xdr encoding of nfsv4 names 2014-01-08 12:18:53 -05:00
nfs4proc.c nfsd: fix rare symlink decoding bug 2014-07-09 11:18:27 -07:00
nfs4recover.c nfsd: switch to %p[dD] 2013-10-24 23:34:51 -04:00
nfs4state.c nfsd4: fix FREE_STATEID lockowner leak 2014-07-06 18:57:27 -07:00
nfs4xdr.c nfsd: fix rare symlink decoding bug 2014-07-09 11:18:27 -07:00
nfscache.c nfsd: don't try to reuse an expired DRC entry off the list 2013-12-11 11:27:04 -05:00
nfsctl.c nfsd: check passed socket's net matches NFSd superblock's one 2014-05-06 07:59:28 -07:00
nfsd.h nfsd4: leave reply buffer space for failed setattr 2014-05-06 07:59:27 -07:00
nfsfh.c nfsd: fh_update should error out in unexpected cases 2013-10-29 17:43:52 -04:00
nfsfh.h nfsd: switch to %p[dD] 2013-10-24 23:34:51 -04:00
nfsproc.c switch vfs_getattr() to struct path 2013-02-26 02:46:08 -05:00
nfssvc.c NFSD: Decrease nfsd_users in nfsd_startup_generic fail 2014-09-05 16:34:18 -07:00
nfsxdr.c nfsd: revert v2 half of "nfsd: don't return high mode bits" 2014-05-06 07:59:27 -07:00
state.h nfsd4: implement minimal SP4_MACH_CRED 2013-07-01 17:23:06 -04:00
stats.c
vfs.c nfsd: notify_change needs elevated write count 2014-05-06 07:59:27 -07:00
vfs.h Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux 2014-01-30 10:18:43 -08:00
xdr.h nfsd: handle vfs_getattr errors in acl protocol 2013-02-26 02:46:09 -05:00
xdr3.h nfsd: fix encode_entryplus_baggage stack usage 2014-01-23 13:50:27 -05:00
xdr4.h Define op_iattr for nfsd4_open instead using macro 2014-01-06 12:23:32 -05:00
xdr4cb.h nfsd4: check backchannel attributes on create_session 2013-04-09 16:53:56 -04:00