Commit 53083773dcbd3c80477e2ace143e361e1e806745
Committed by
David S. Miller
1 parent
e56d8b8a2e
Exists in
master
and in
7 other branches
[INET]: Uninline the __inet_inherit_port call.
This deblats ~200 bytes when ipv6 and dccp are 'y'. Besides, this will ease compilation issues for patches I'm working on to make inet hash tables more scalable wrt net namespaces. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 2 changed files with 17 additions and 13 deletions Side-by-side Diff
include/net/inet_hashtables.h
... | ... | @@ -221,19 +221,7 @@ |
221 | 221 | } |
222 | 222 | |
223 | 223 | /* Caller must disable local BH processing. */ |
224 | -static inline void __inet_inherit_port(struct sock *sk, struct sock *child) | |
225 | -{ | |
226 | - struct inet_hashinfo *table = sk->sk_prot->h.hashinfo; | |
227 | - const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); | |
228 | - struct inet_bind_hashbucket *head = &table->bhash[bhash]; | |
229 | - struct inet_bind_bucket *tb; | |
230 | - | |
231 | - spin_lock(&head->lock); | |
232 | - tb = inet_csk(sk)->icsk_bind_hash; | |
233 | - sk_add_bind_node(child, &tb->owners); | |
234 | - inet_csk(child)->icsk_bind_hash = tb; | |
235 | - spin_unlock(&head->lock); | |
236 | -} | |
224 | +extern void __inet_inherit_port(struct sock *sk, struct sock *child); | |
237 | 225 | |
238 | 226 | extern void inet_put_port(struct sock *sk); |
239 | 227 |
net/ipv4/inet_hashtables.c
... | ... | @@ -92,6 +92,22 @@ |
92 | 92 | |
93 | 93 | EXPORT_SYMBOL(inet_put_port); |
94 | 94 | |
95 | +void __inet_inherit_port(struct sock *sk, struct sock *child) | |
96 | +{ | |
97 | + struct inet_hashinfo *table = sk->sk_prot->h.hashinfo; | |
98 | + const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); | |
99 | + struct inet_bind_hashbucket *head = &table->bhash[bhash]; | |
100 | + struct inet_bind_bucket *tb; | |
101 | + | |
102 | + spin_lock(&head->lock); | |
103 | + tb = inet_csk(sk)->icsk_bind_hash; | |
104 | + sk_add_bind_node(child, &tb->owners); | |
105 | + inet_csk(child)->icsk_bind_hash = tb; | |
106 | + spin_unlock(&head->lock); | |
107 | +} | |
108 | + | |
109 | +EXPORT_SYMBOL_GPL(__inet_inherit_port); | |
110 | + | |
95 | 111 | /* |
96 | 112 | * This lock without WQ_FLAG_EXCLUSIVE is good on UP and it can be very bad on SMP. |
97 | 113 | * Look, when several writers sleep and reader wakes them up, all but one |