diff options
author | Chuck Lever | 2015-01-13 17:03:20 +0100 |
---|---|---|
committer | J. Bruce Fields | 2015-01-15 21:01:46 +0100 |
commit | e54524111f51eac1900cf91aca3d38a92a6b11c0 (patch) | |
tree | 9c743ddc7d54a9aaf35b66d3cfa727ecac00f749 /net/sunrpc/xprtrdma/svc_rdma_transport.c | |
parent | svcrdma: Find rmsgp more reliably (diff) | |
download | kernel-qcow2-linux-e54524111f51eac1900cf91aca3d38a92a6b11c0.tar.gz kernel-qcow2-linux-e54524111f51eac1900cf91aca3d38a92a6b11c0.tar.xz kernel-qcow2-linux-e54524111f51eac1900cf91aca3d38a92a6b11c0.zip |
svcrdma: Plant reader function in struct svcxprt_rdma
The RDMA reader function doesn't change once an svcxprt_rdma is
instantiated. Instead of checking sc_devcap during every incoming
RPC, set the reader function once when the connection is accepted.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_transport.c')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index f2e059bbab42..f609c1c2d38d 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c @@ -974,10 +974,12 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt) * NB: iWARP requires remote write access for the data sink * of an RDMA_READ. IB does not. */ + newxprt->sc_reader = rdma_read_chunk_lcl; if (devattr.device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) { newxprt->sc_frmr_pg_list_len = devattr.max_fast_reg_page_list_len; newxprt->sc_dev_caps |= SVCRDMA_DEVCAP_FAST_REG; + newxprt->sc_reader = rdma_read_chunk_frmr; } /* |