Index: sys/netinet/tcp_stacks/rack.c =================================================================== --- sys/netinet/tcp_stacks/rack.c +++ sys/netinet/tcp_stacks/rack.c @@ -6258,10 +6258,14 @@ rack_timeout_persist(struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) { struct tcptemp *t_template; +#ifdef INVARIANTS struct inpcb *inp; +#endif int32_t retval = 1; +#ifdef INVARIANTS inp = tp->t_inpcb; +#endif if (tp->t_timers->tt_flags & TT_STOPPED) { return (1); @@ -16219,7 +16223,8 @@ (len == rack->r_ctl.fsb.left_to_send)) { tcp_set_flags(th, flags | TH_PUSH); add_flag |= RACK_HAD_PUSH; - } + } else + tcp_set_flags(th, flags); if ((m->m_next == NULL) || (len <= 0)){ goto failed; } @@ -16249,7 +16254,6 @@ ip->ip_tos |= ect; } } - tcp_set_flags(th, flags); m->m_pkthdr.len = hdrlen + len; /* in6_cksum() need this */ #ifdef INET6 if (rack->r_is_v6) {