From: Sergey Vlasov Subject: Fix ve_accessible_strict() check in inet_csk_bind_conflict() The condition was inverted, causing bind() to not return EADDRINUSE error when it should (instead of checking sockets in the same VE for conflicts, it ignored them and checked only sockets in other VEs). Signed-off-by: Sergey Vlasov --- linux-2.6.16/net/ipv4/inet_connection_sock.c.bind-fix 2006-10-26 14:54:00 +0400 +++ linux-2.6.16/net/ipv4/inet_connection_sock.c 2006-10-26 15:08:55 +0400 @@ -53,7 +53,7 @@ int inet_csk_bind_conflict(const struct sk_for_each_bound(sk2, node, &tb->owners) { if (sk != sk2 && !inet_v6_ipv6only(sk2) && - !ve_accessible_strict(VE_OWNER_SK(sk), VE_OWNER_SK(sk2)) && + ve_accessible_strict(VE_OWNER_SK(sk), VE_OWNER_SK(sk2)) && (!sk->sk_bound_dev_if || !sk2->sk_bound_dev_if || sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {