| .. | .. |
|---|
| 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; |
|---|