summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaghavendra G <raghavendra@gluster.com>2011-03-12 01:08:34 +0000
committerVijay Bellur <vijay@dev.gluster.com>2011-03-12 05:10:29 -0800
commit5a8edf3fc4deb4713d390690b144342e24659f8c (patch)
treeb2265879e0c6d5abb38eac430982deff2146127f
parent40a5e452bea79d1c7c78af480354e16ef970ca63 (diff)
rpc-transport/rdma: handle cases where peer is NULL in send_completion.
- There can be valid cases where peer is NULL - For eg., race b/w pollin received on handshake socket and as a result transport getting disconnected and handling of a send/recv completion on the same qp for some previous read/write - in send/recv_completion_process. Hence we should be checking for a valid peer pointer before accessing it. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2514 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2514
-rw-r--r--rpc/rpc-transport/rdma/src/rdma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rpc/rpc-transport/rdma/src/rdma.c b/rpc/rpc-transport/rdma/src/rdma.c
index 8084a86e9..633f57db5 100644
--- a/rpc/rpc-transport/rdma/src/rdma.c
+++ b/rpc/rpc-transport/rdma/src/rdma.c
@@ -3463,7 +3463,7 @@ rdma_handle_successful_send_completion (rdma_peer_t *peer, struct ibv_wc *wc)
}
ret = rdma_pollin_notify (peer, post);
- if (ret == -1) {
+ if ((ret == -1) && (peer != NULL)) {
rpc_transport_disconnect (peer->trans);
}