Message ID | 20090131215850.3dfc29fb@extreme |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Stephen Hemminger <shemminger@vyatta.com> Date: Sat, 31 Jan 2009 21:58:50 -0800 > Yes, this fixes the problem, not sure who wants the honors for > sending a signed off version. I'll sort it out. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, Jan 31, 2009 at 09:58:50PM -0800, Stephen Hemminger (shemminger@vyatta.com) wrote: > > I think it should be smallest_size != -1, since we really want to goto > > to the again label when hueristic is used, which in turn changes > > smallest_size. > > Yes, this fixes the problem, not sure who wants the honors for sending a signed off > version. Thanks for testing Stephen. David applied that version and cut the Gordian knot :)
--- a/net/ipv4/inet_connection_sock.c 2009-01-31 21:18:45.433239861 -0800 +++ b/net/ipv4/inet_connection_sock.c 2009-01-31 21:30:14.720825414 -0800 @@ -172,7 +172,8 @@ tb_found: } else { ret = 1; if (inet_csk(sk)->icsk_af_ops->bind_conflict(sk, tb)) { - if (sk->sk_reuse && sk->sk_state != TCP_LISTEN && --attempts >= 0) { + if (sk->sk_reuse && sk->sk_state != TCP_LISTEN && + smallest_size != -1 && --attempts >= 0) { spin_unlock(&head->lock); goto again; }