Page MenuHomeFreeBSD

D30885.diff
No OneTemporary

D30885.diff

diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -12491,6 +12491,9 @@
static void
rack_set_state(struct tcpcb *tp, struct tcp_rack *rack)
{
+ if ((rack->r_state == TCPS_CLOSED) && (tp->t_state != TCPS_CLOSED)) {
+ rack->r_is_v6 = (tp->t_inpcb->inp_vflag & INP_IPV6) != 0;
+ }
switch (tp->t_state) {
case TCPS_SYN_SENT:
rack->r_state = TCPS_SYN_SENT;
@@ -16215,7 +16218,7 @@
}
idle = 0;
}
- if (rack_use_fsb && (rack->r_fsb_inited == 0))
+ if (rack_use_fsb && (rack->r_fsb_inited == 0) && (rack->r_state != TCPS_CLOSED))
rack_init_fsb_block(tp, rack);
again:
/*

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 5:29 AM (20 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14653690
Default Alt Text
D30885.diff (688 B)

Event Timeline