@@ -110,7 +110,8 @@ static int kiblnd_init_rdma(struct kib_conn *conn, struct kib_tx *tx, int type,
/* complete now */
tx->tx_waiting = 0;
tx->tx_status = status;
- tx->tx_hstatus = hstatus;
+ if (hstatus != LNET_MSG_STATUS_OK)
+ tx->tx_hstatus = hstatus;
kiblnd_tx_done(tx);
}
}
@@ -2108,9 +2109,11 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid,
spin_unlock(&conn->ibc_lock);
/* aborting transmits occurs when finalizing the connection.
- * The connection is finalized on error
+ * The connection is finalized on error.
+ * Passing LNET_MSG_STATUS_OK to txlist_done() will not
+ * override the value already set in tx->tx_hstatus above.
*/
- kiblnd_txlist_done(&zombies, -ECONNABORTED, -1);
+ kiblnd_txlist_done(&zombies, -ECONNABORTED, LNET_MSG_STATUS_OK);
}
static void