]> git.proxmox.com Git - mirror_corosync.git/commitdiff
corosync to start in infiniband + redundant ring active/passive mode
authorEvgeny Barskiy <barskiy@rts.ru>
Mon, 19 Nov 2012 11:24:49 +0000 (11:24 +0000)
committerJan Friesse <jfriesse@redhat.com>
Wed, 21 Nov 2012 09:28:57 +0000 (10:28 +0100)
Corosync now works with infiniband transport in any redundant ring mode

Signed-off-by: Evgeny Barskiy <barskiy@rts.ru>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
exec/totemiba.c

index 189eb003d96014bbf69db88672e65dc6ec9a18c3..5d47d6b50aee468344d5ca97e11a117acfd7916d 100644 (file)
@@ -536,6 +536,7 @@ static int mcast_rdma_event_fn (int events,  int suck,  void *context)
         */
        case RDMA_CM_EVENT_ADDR_RESOLVED:
                rdma_join_multicast (instance->mcast_cma_id, &instance->mcast_addr, instance);
+               usleep(1000);
                break;
        /*
         * occurs when the CM joins the multicast group
@@ -1029,6 +1030,12 @@ static int send_token_unbind (struct totemiba_instance *instance)
                instance->totemiba_poll_handle,
                instance->send_token_channel->fd);
 
+       if(instance->send_token_ah)
+       {
+               ibv_destroy_ah(instance->send_token_ah);
+               instance->send_token_ah = 0;
+       }
+
        rdma_destroy_qp (instance->send_token_cma_id);
        ibv_destroy_cq (instance->send_token_send_cq);
        ibv_destroy_cq (instance->send_token_recv_cq);
@@ -1417,7 +1424,8 @@ int totemiba_token_send (
        sge.lkey = send_buf->mr->lkey;
        sge.addr = (uintptr_t)msg;
 
-       res = ibv_post_send (instance->send_token_cma_id->qp, &send_wr, &failed_send_wr);
+       if(instance->send_token_ah != 0 && instance->send_token_bound)
+               res = ibv_post_send (instance->send_token_cma_id->qp, &send_wr, &failed_send_wr);
 
        return (res);
 }