.. | .. |
---|
747 | 747 | u32 index; |
---|
748 | 748 | |
---|
749 | 749 | if (port) { |
---|
750 | | - head = &hinfo->bhash[inet_bhashfn(net, port, |
---|
751 | | - hinfo->bhash_size)]; |
---|
752 | | - tb = inet_csk(sk)->icsk_bind_hash; |
---|
753 | | - spin_lock_bh(&head->lock); |
---|
754 | | - if (sk_head(&tb->owners) == sk && !sk->sk_bind_node.next) { |
---|
755 | | - inet_ehash_nolisten(sk, NULL, NULL); |
---|
756 | | - spin_unlock_bh(&head->lock); |
---|
757 | | - return 0; |
---|
758 | | - } |
---|
759 | | - spin_unlock(&head->lock); |
---|
760 | | - /* No definite answer... Walk to established hash table */ |
---|
| 750 | + local_bh_disable(); |
---|
761 | 751 | ret = check_established(death_row, sk, port, NULL); |
---|
762 | 752 | local_bh_enable(); |
---|
763 | 753 | return ret; |
---|