diff options
Diffstat (limited to 'include/linux/sunrpc/svc_rdma.h')
| -rw-r--r-- | include/linux/sunrpc/svc_rdma.h | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index df8edf8ec914..cb94ee4181d4 100644 --- a/include/linux/sunrpc/svc_rdma.h +++ b/include/linux/sunrpc/svc_rdma.h @@ -172,6 +172,13 @@ struct svcxprt_rdma {  #define RDMAXPRT_SQ_PENDING	2  #define RDMAXPRT_CONN_PENDING	3 +#define RPCRDMA_MAX_SVC_SEGS	(64)	/* server max scatter/gather */ +#if RPCSVC_MAXPAYLOAD < (RPCRDMA_MAX_SVC_SEGS << PAGE_SHIFT) +#define RPCRDMA_MAXPAYLOAD	RPCSVC_MAXPAYLOAD +#else +#define RPCRDMA_MAXPAYLOAD	(RPCRDMA_MAX_SVC_SEGS << PAGE_SHIFT) +#endif +  #define RPCRDMA_LISTEN_BACKLOG  10  /* The default ORD value is based on two outstanding full-size writes with a   * page size of 4k, or 32k * 2 ops / 4k = 16 outstanding RDMA_READ.  */ @@ -182,10 +189,9 @@ struct svcxprt_rdma {  /* svc_rdma_marshal.c */  extern int svc_rdma_xdr_decode_req(struct rpcrdma_msg **, struct svc_rqst *); -extern int svc_rdma_xdr_decode_deferred_req(struct svc_rqst *);  extern int svc_rdma_xdr_encode_error(struct svcxprt_rdma *,  				     struct rpcrdma_msg *, -				     enum rpcrdma_errcode, u32 *); +				     enum rpcrdma_errcode, __be32 *);  extern void svc_rdma_xdr_encode_write_list(struct rpcrdma_msg *, int);  extern void svc_rdma_xdr_encode_reply_array(struct rpcrdma_write_array *, int);  extern void svc_rdma_xdr_encode_array_chunk(struct rpcrdma_write_array *, int, @@ -212,7 +218,6 @@ extern int svc_rdma_sendto(struct svc_rqst *);  extern int svc_rdma_send(struct svcxprt_rdma *, struct ib_send_wr *);  extern void svc_rdma_send_error(struct svcxprt_rdma *, struct rpcrdma_msg *,  				enum rpcrdma_errcode); -struct page *svc_rdma_get_page(void);  extern int svc_rdma_post_recv(struct svcxprt_rdma *);  extern int svc_rdma_create_listen(struct svc_serv *, int, struct sockaddr *);  extern struct svc_rdma_op_ctxt *svc_rdma_get_context(struct svcxprt_rdma *);  |