diff --git a/lnet/klnds/qswlnd/qswlnd.h b/lnet/klnds/qswlnd/qswlnd.h index a5d512465e44d815234bc2f23e1932afd23630c4..b1b9a4508789ceb117df09e53898eab83883ea0d 100644 --- a/lnet/klnds/qswlnd/qswlnd.h +++ b/lnet/klnds/qswlnd/qswlnd.h @@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx) } #if MULTIRAIL_EKC - -#ifndef EP_RAILMASK_ALL -# error "old (unsupported) version of EKC headers" -#endif - -static inline int -ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b) -{ - if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */ - return 0; - - if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */ - return 0; - - if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) { - if (merged != NULL) { - merged->nmd_addr = a->nmd_addr; - merged->nmd_len = a->nmd_len + b->nmd_len; - merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)); - } - return 1; - } - - if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) { - if (merged != NULL) { - merged->nmd_addr = b->nmd_addr; - merged->nmd_len = b->nmd_len + a->nmd_len; - merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)); - } - return 1; - } - - return 0; -} +# ifndef EP_RAILMASK_ALL +# error "old (unsupported) version of EKC headers" +# endif #else /* multirail defines these in <elan/epcomms.h> */ #define EP_MSG_SVC_PORTALS_SMALL (0x10) /* Portals over elan port number (large payloads) */ diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 49956a23de1dd4847d85e47ed263bb2a8eb51c78..d996341fd001669362b83a9ea6036ce1a79ab687 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock, peer->ksnp_last_alive = jiffies; peer->ksnp_error = 0; + /* Set the deadline for the outgoing HELLO to drain */ + conn->ksnc_tx_deadline = jiffies + + ksocknal_data.ksnd_io_timeout * HZ; + list_add (&conn->ksnc_list, &peer->ksnp_conns); atomic_inc (&conn->ksnc_refcount); diff --git a/lustre/portals/knals/qswnal/qswnal.h b/lustre/portals/knals/qswnal/qswnal.h index a5d512465e44d815234bc2f23e1932afd23630c4..b1b9a4508789ceb117df09e53898eab83883ea0d 100644 --- a/lustre/portals/knals/qswnal/qswnal.h +++ b/lustre/portals/knals/qswnal/qswnal.h @@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx) } #if MULTIRAIL_EKC - -#ifndef EP_RAILMASK_ALL -# error "old (unsupported) version of EKC headers" -#endif - -static inline int -ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b) -{ - if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */ - return 0; - - if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */ - return 0; - - if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) { - if (merged != NULL) { - merged->nmd_addr = a->nmd_addr; - merged->nmd_len = a->nmd_len + b->nmd_len; - merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)); - } - return 1; - } - - if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) { - if (merged != NULL) { - merged->nmd_addr = b->nmd_addr; - merged->nmd_len = b->nmd_len + a->nmd_len; - merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)); - } - return 1; - } - - return 0; -} +# ifndef EP_RAILMASK_ALL +# error "old (unsupported) version of EKC headers" +# endif #else /* multirail defines these in <elan/epcomms.h> */ #define EP_MSG_SVC_PORTALS_SMALL (0x10) /* Portals over elan port number (large payloads) */ diff --git a/lustre/portals/knals/socknal/socknal.c b/lustre/portals/knals/socknal/socknal.c index 49956a23de1dd4847d85e47ed263bb2a8eb51c78..d996341fd001669362b83a9ea6036ce1a79ab687 100644 --- a/lustre/portals/knals/socknal/socknal.c +++ b/lustre/portals/knals/socknal/socknal.c @@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock, peer->ksnp_last_alive = jiffies; peer->ksnp_error = 0; + /* Set the deadline for the outgoing HELLO to drain */ + conn->ksnc_tx_deadline = jiffies + + ksocknal_data.ksnd_io_timeout * HZ; + list_add (&conn->ksnc_list, &peer->ksnp_conns); atomic_inc (&conn->ksnc_refcount);