summaryrefslogtreecommitdiffstats
path: root/net/rds/rds.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/rds.h')
-rw-r--r--net/rds/rds.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/net/rds/rds.h b/net/rds/rds.h
index 6bfaf05b63b2..02ec4a3b2799 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -386,6 +386,18 @@ static inline void rds_message_zcopy_queue_init(struct rds_msg_zcopy_queue *q)
386 INIT_LIST_HEAD(&q->zcookie_head); 386 INIT_LIST_HEAD(&q->zcookie_head);
387} 387}
388 388
389struct rds_iov_vector {
390 struct rds_iovec *iov;
391 int len;
392};
393
394struct rds_iov_vector_arr {
395 struct rds_iov_vector *vec;
396 int len;
397 int indx;
398 int incr;
399};
400
389struct rds_message { 401struct rds_message {
390 refcount_t m_refcount; 402 refcount_t m_refcount;
391 struct list_head m_sock_item; 403 struct list_head m_sock_item;
@@ -827,7 +839,8 @@ rds_conn_connecting(struct rds_connection *conn)
827 839
828/* message.c */ 840/* message.c */
829struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp); 841struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp);
830struct scatterlist *rds_message_alloc_sgs(struct rds_message *rm, int nents); 842struct scatterlist *rds_message_alloc_sgs(struct rds_message *rm, int nents,
843 int *ret);
831int rds_message_copy_from_user(struct rds_message *rm, struct iov_iter *from, 844int rds_message_copy_from_user(struct rds_message *rm, struct iov_iter *from,
832 bool zcopy); 845 bool zcopy);
833struct rds_message *rds_message_map_pages(unsigned long *page_addrs, unsigned int total_len); 846struct rds_message *rds_message_map_pages(unsigned long *page_addrs, unsigned int total_len);
@@ -904,13 +917,13 @@ int rds_get_mr(struct rds_sock *rs, char __user *optval, int optlen);
904int rds_get_mr_for_dest(struct rds_sock *rs, char __user *optval, int optlen); 917int rds_get_mr_for_dest(struct rds_sock *rs, char __user *optval, int optlen);
905int rds_free_mr(struct rds_sock *rs, char __user *optval, int optlen); 918int rds_free_mr(struct rds_sock *rs, char __user *optval, int optlen);
906void rds_rdma_drop_keys(struct rds_sock *rs); 919void rds_rdma_drop_keys(struct rds_sock *rs);
907int rds_rdma_extra_size(struct rds_rdma_args *args); 920int rds_rdma_extra_size(struct rds_rdma_args *args,
908int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm, 921 struct rds_iov_vector *iov);
909 struct cmsghdr *cmsg);
910int rds_cmsg_rdma_dest(struct rds_sock *rs, struct rds_message *rm, 922int rds_cmsg_rdma_dest(struct rds_sock *rs, struct rds_message *rm,
911 struct cmsghdr *cmsg); 923 struct cmsghdr *cmsg);
912int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm, 924int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
913 struct cmsghdr *cmsg); 925 struct cmsghdr *cmsg,
926 struct rds_iov_vector *vec);
914int rds_cmsg_rdma_map(struct rds_sock *rs, struct rds_message *rm, 927int rds_cmsg_rdma_map(struct rds_sock *rs, struct rds_message *rm,
915 struct cmsghdr *cmsg); 928 struct cmsghdr *cmsg);
916void rds_rdma_free_op(struct rm_rdma_op *ro); 929void rds_rdma_free_op(struct rm_rdma_op *ro);