]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/sunrpc/svc_rdma.h
Merge branch 'for-3.20' of git://linux-nfs.org/~bfields/linux
[karo-tx-linux.git] / include / linux / sunrpc / svc_rdma.h
index ddfe88f522199cefb328d2d07df319c4e07622c1..df8edf8ec914d9b5c8e372d2256ff8c49156b6f3 100644 (file)
@@ -77,6 +77,7 @@ struct svc_rdma_op_ctxt {
        enum ib_wr_opcode wr_op;
        enum ib_wc_status wc_status;
        u32 byte_len;
+       u32 position;
        struct svcxprt_rdma *xprt;
        unsigned long flags;
        enum dma_data_direction direction;
@@ -148,6 +149,10 @@ struct svcxprt_rdma {
        struct ib_cq         *sc_rq_cq;
        struct ib_cq         *sc_sq_cq;
        struct ib_mr         *sc_phys_mr;       /* MR for server memory */
+       int                  (*sc_reader)(struct svcxprt_rdma *,
+                                         struct svc_rqst *,
+                                         struct svc_rdma_op_ctxt *,
+                                         int *, u32 *, u32, u32, u64, bool);
        u32                  sc_dev_caps;       /* distilled device caps */
        u32                  sc_dma_lkey;       /* local dma key */
        unsigned int         sc_frmr_pg_list_len;
@@ -176,8 +181,6 @@ struct svcxprt_rdma {
 #define RPCRDMA_MAX_REQ_SIZE    4096
 
 /* svc_rdma_marshal.c */
-extern void svc_rdma_rcl_chunk_counts(struct rpcrdma_read_chunk *,
-                                     int *, int *);
 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 *,
@@ -195,6 +198,12 @@ extern int svc_rdma_xdr_get_reply_hdr_len(struct rpcrdma_msg *);
 
 /* svc_rdma_recvfrom.c */
 extern int svc_rdma_recvfrom(struct svc_rqst *);
+extern int rdma_read_chunk_lcl(struct svcxprt_rdma *, struct svc_rqst *,
+                              struct svc_rdma_op_ctxt *, int *, u32 *,
+                              u32, u32, u64, bool);
+extern int rdma_read_chunk_frmr(struct svcxprt_rdma *, struct svc_rqst *,
+                               struct svc_rdma_op_ctxt *, int *, u32 *,
+                               u32, u32, u64, bool);
 
 /* svc_rdma_sendto.c */
 extern int svc_rdma_sendto(struct svc_rqst *);