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 /include | |
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 'include')
-rw-r--r-- | include/net/inet_hashtables.h | 2 | ||||
-rw-r--r-- | include/net/sock.h | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h index 97dc35ad09be..d99c1ba2ece0 100644 --- a/include/net/inet_hashtables.h +++ b/include/net/inet_hashtables.h | |||
@@ -223,7 +223,7 @@ static inline int inet_sk_listen_hashfn(const struct sock *sk) | |||
223 | /* Caller must disable local BH processing. */ | 223 | /* Caller must disable local BH processing. */ |
224 | static inline void __inet_inherit_port(struct sock *sk, struct sock *child) | 224 | static inline void __inet_inherit_port(struct sock *sk, struct sock *child) |
225 | { | 225 | { |
226 | struct inet_hashinfo *table = sk->sk_prot->hashinfo; | 226 | struct inet_hashinfo *table = sk->sk_prot->h.hashinfo; |
227 | const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); | 227 | const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); |
228 | struct inet_bind_hashbucket *head = &table->bhash[bhash]; | 228 | struct inet_bind_hashbucket *head = &table->bhash[bhash]; |
229 | struct inet_bind_bucket *tb; | 229 | struct inet_bind_bucket *tb; |
diff --git a/include/net/sock.h b/include/net/sock.h index b89680d2693b..c3175c400b79 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -586,7 +586,10 @@ struct proto { | |||
586 | struct request_sock_ops *rsk_prot; | 586 | struct request_sock_ops *rsk_prot; |
587 | struct timewait_sock_ops *twsk_prot; | 587 | struct timewait_sock_ops *twsk_prot; |
588 | 588 | ||
589 | struct inet_hashinfo *hashinfo; | 589 | union { |
590 | struct inet_hashinfo *hashinfo; | ||
591 | struct hlist_head *udp_hash; | ||
592 | } h; | ||
590 | 593 | ||
591 | struct module *owner; | 594 | struct module *owner; |
592 | 595 | ||