Whamcloud - gitweb
LU-13501 lnet: Skip health and resends for single rail configs
[fs/lustre-release.git] / lnet / klnds / socklnd / socklnd_proto.c
index c5cc07b..c60393f 100644 (file)
@@ -146,11 +146,10 @@ ksocknal_queue_tx_msg_v2(struct ksock_conn *conn, struct ksock_tx *tx_msg)
         tx_msg->tx_msg.ksm_zc_cookies[1] = tx->tx_msg.ksm_zc_cookies[1];
         ksocknal_next_tx_carrier(conn);
 
-        /* use new_tx to replace the noop zc-ack packet */
-       list_add(&tx_msg->tx_list, &tx->tx_list);
-       list_del(&tx->tx_list);
+       /* use new_tx to replace the noop zc-ack packet */
+       list_splice(&tx->tx_list, &tx_msg->tx_list);
 
-        return tx;
+       return tx;
 }
 
 static int
@@ -707,8 +706,8 @@ ksocknal_pack_msg_v1(struct ksock_tx *tx)
        LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP);
        LASSERT(tx->tx_lnetmsg != NULL);
 
-       tx->tx_iov[0].iov_base = (void *)&tx->tx_lnetmsg->msg_hdr;
-       tx->tx_iov[0].iov_len  = sizeof(struct lnet_hdr);
+       tx->tx_hdr.iov_base = (void *)&tx->tx_lnetmsg->msg_hdr;
+       tx->tx_hdr.iov_len  = sizeof(struct lnet_hdr);
 
        tx->tx_nob = tx->tx_lnetmsg->msg_len + sizeof(struct lnet_hdr);
        tx->tx_resid = tx->tx_nob;
@@ -717,18 +716,19 @@ ksocknal_pack_msg_v1(struct ksock_tx *tx)
 static void
 ksocknal_pack_msg_v2(struct ksock_tx *tx)
 {
-        tx->tx_iov[0].iov_base = (void *)&tx->tx_msg;
+       tx->tx_hdr.iov_base = (void *)&tx->tx_msg;
 
         if (tx->tx_lnetmsg != NULL) {
                 LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP);
 
                 tx->tx_msg.ksm_u.lnetmsg.ksnm_hdr = tx->tx_lnetmsg->msg_hdr;
-               tx->tx_iov[0].iov_len = sizeof(struct ksock_msg);
+               tx->tx_hdr.iov_len = sizeof(struct ksock_msg);
                tx->tx_resid = tx->tx_nob = sizeof(struct ksock_msg) + tx->tx_lnetmsg->msg_len;
         } else {
                 LASSERT(tx->tx_msg.ksm_type == KSOCK_MSG_NOOP);
 
-               tx->tx_iov[0].iov_len = offsetof(struct ksock_msg, ksm_u.lnetmsg.ksnm_hdr);
+               tx->tx_hdr.iov_len = offsetof(struct ksock_msg,
+                                             ksm_u.lnetmsg.ksnm_hdr);
                tx->tx_resid = tx->tx_nob = offsetof(struct ksock_msg,  ksm_u.lnetmsg.ksnm_hdr);
         }
         /* Don't checksum before start sending, because packet can be piggybacked with ACK */
@@ -748,7 +748,7 @@ ksocknal_unpack_msg_v2(struct ksock_msg *msg)
         return;  /* Do nothing */
 }
 
-struct ksock_proto  ksocknal_protocol_v1x =
+const struct ksock_proto ksocknal_protocol_v1x =
 {
         .pro_version            = KSOCK_PROTO_V1,
         .pro_send_hello         = ksocknal_send_hello_v1,
@@ -762,7 +762,7 @@ struct ksock_proto  ksocknal_protocol_v1x =
         .pro_match_tx           = ksocknal_match_tx
 };
 
-struct ksock_proto  ksocknal_protocol_v2x =
+const struct ksock_proto ksocknal_protocol_v2x =
 {
         .pro_version            = KSOCK_PROTO_V2,
         .pro_send_hello         = ksocknal_send_hello_v2,
@@ -776,7 +776,7 @@ struct ksock_proto  ksocknal_protocol_v2x =
         .pro_match_tx           = ksocknal_match_tx
 };
 
-struct ksock_proto  ksocknal_protocol_v3x =
+const struct ksock_proto ksocknal_protocol_v3x =
 {
         .pro_version            = KSOCK_PROTO_V3,
         .pro_send_hello         = ksocknal_send_hello_v2,