diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-03-22 19:50:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-03-22 19:50:58 -0400 |
commit | 39d8cda76cfb1178455f9d196b39e773878e6c05 (patch) | |
tree | b58af892ccb3fd232078a87148c1dc9622be0c84 /net/ipv4/inet_hashtables.c | |
parent | 22aba383ce52f8ca8740f9a74dc66b1b68138813 (diff) |
[SOCK]: Add udp_hash member to struct proto.
Inspired by the commit ab1e0a13 ([SOCK] proto: Add hashinfo member to
struct proto) from Arnaldo, I made similar thing for UDP/-Lite IPv4
and -v6 protocols.
The result is not that exciting, but it removes some levels of
indirection in udpxxx_get_port and saves some space in code and text.
The first step is to union existing hashinfo and new udp_hash on the
struct proto and give a name to this union, since future initialization
of tcpxxx_prot, dccp_vx_protinfo and udpxxx_protinfo will cause gcc
warning about inability to initialize anonymous member this way.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/inet_hashtables.c')
-rw-r--r-- | net/ipv4/inet_hashtables.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c index 1aba606f6bbb..8cd1ad9b9111 100644 --- a/net/ipv4/inet_hashtables.c +++ b/net/ipv4/inet_hashtables.c | |||
@@ -68,7 +68,7 @@ void inet_bind_hash(struct sock *sk, struct inet_bind_bucket *tb, | |||
68 | */ | 68 | */ |
69 | static void __inet_put_port(struct sock *sk) | 69 | static void __inet_put_port(struct sock *sk) |
70 | { | 70 | { |
71 | struct inet_hashinfo *hashinfo = sk->sk_prot->hashinfo; | 71 | struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo; |
72 | const int bhash = inet_bhashfn(inet_sk(sk)->num, hashinfo->bhash_size); | 72 | const int bhash = inet_bhashfn(inet_sk(sk)->num, hashinfo->bhash_size); |
73 | struct inet_bind_hashbucket *head = &hashinfo->bhash[bhash]; | 73 | struct inet_bind_hashbucket *head = &hashinfo->bhash[bhash]; |
74 | struct inet_bind_bucket *tb; | 74 | struct inet_bind_bucket *tb; |
@@ -318,7 +318,7 @@ static inline u32 inet_sk_port_offset(const struct sock *sk) | |||
318 | 318 | ||
319 | void __inet_hash_nolisten(struct sock *sk) | 319 | void __inet_hash_nolisten(struct sock *sk) |
320 | { | 320 | { |
321 | struct inet_hashinfo *hashinfo = sk->sk_prot->hashinfo; | 321 | struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo; |
322 | struct hlist_head *list; | 322 | struct hlist_head *list; |
323 | rwlock_t *lock; | 323 | rwlock_t *lock; |
324 | struct inet_ehash_bucket *head; | 324 | struct inet_ehash_bucket *head; |
@@ -339,7 +339,7 @@ EXPORT_SYMBOL_GPL(__inet_hash_nolisten); | |||
339 | 339 | ||
340 | static void __inet_hash(struct sock *sk) | 340 | static void __inet_hash(struct sock *sk) |
341 | { | 341 | { |
342 | struct inet_hashinfo *hashinfo = sk->sk_prot->hashinfo; | 342 | struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo; |
343 | struct hlist_head *list; | 343 | struct hlist_head *list; |
344 | rwlock_t *lock; | 344 | rwlock_t *lock; |
345 | 345 | ||
@@ -372,7 +372,7 @@ EXPORT_SYMBOL_GPL(inet_hash); | |||
372 | void inet_unhash(struct sock *sk) | 372 | void inet_unhash(struct sock *sk) |
373 | { | 373 | { |
374 | rwlock_t *lock; | 374 | rwlock_t *lock; |
375 | struct inet_hashinfo *hashinfo = sk->sk_prot->hashinfo; | 375 | struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo; |
376 | 376 | ||
377 | if (sk_unhashed(sk)) | 377 | if (sk_unhashed(sk)) |
378 | goto out; | 378 | goto out; |