From 62088ee6a8d2413c828409dec09e31d600987110 Mon Sep 17 00:00:00 2001 From: Raghavendra G Date: Wed, 9 Nov 2011 14:40:02 +0530 Subject: rpc-transport/rdma: send correct vector count when both rpc-header and program-header are received through rdma-reads. Change-Id: I1b0b91eb7216f32a5748325d6dda37f3998302c7 BUG: 3754 Reviewed-on: http://review.gluster.com/697 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Vijay Bellur --- rpc/rpc-transport/rdma/src/rdma.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'rpc/rpc-transport') diff --git a/rpc/rpc-transport/rdma/src/rdma.c b/rpc/rpc-transport/rdma/src/rdma.c index b88b884d5..a3f6e3f59 100644 --- a/rpc/rpc-transport/rdma/src/rdma.c +++ b/rpc/rpc-transport/rdma/src/rdma.c @@ -3415,8 +3415,9 @@ rdma_handle_failed_send_completion (rdma_peer_t *peer, struct ibv_wc *wc) void rdma_handle_successful_send_completion (rdma_peer_t *peer, struct ibv_wc *wc) { - rdma_post_t *post = NULL; - int reads = 0, ret = 0; + rdma_post_t *post = NULL; + int reads = 0, ret = 0; + rdma_header_t *header = NULL; if (wc->opcode != IBV_WC_RDMA_READ) { goto out; @@ -3435,6 +3436,13 @@ rdma_handle_successful_send_completion (rdma_peer_t *peer, struct ibv_wc *wc) goto out; } + header = (rdma_header_t *)post->buf; + + if (header->rm_type == RDMA_NOMSG) { + post->ctx.count = 1; + post->ctx.vector[0].iov_len += post->ctx.vector[1].iov_len; + } + ret = rdma_pollin_notify (peer, post); if ((ret == -1) && (peer != NULL)) { rpc_transport_disconnect (peer->trans); -- cgit