[INET]: Generalise the TCP sock ID lookup routines
And also some TIME_WAIT functions. [acme@toy net-2.6.14]$ grep built-in /tmp/before.size /tmp/after.size /tmp/before.size: 282955 13122 9312 305389 4a8ed net/ipv4/built-in.o /tmp/after.size: 281566 13122 9312 304000 4a380 net/ipv4/built-in.o [acme@toy net-2.6.14]$ I kept them still inlined, will uninline at some point to see what would be the performance difference. Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
8feaf0c0a5
commit
e48c414ee6
@@ -255,28 +255,28 @@ struct sock {
|
||||
/*
|
||||
* Hashed lists helper routines
|
||||
*/
|
||||
static inline struct sock *__sk_head(struct hlist_head *head)
|
||||
static inline struct sock *__sk_head(const struct hlist_head *head)
|
||||
{
|
||||
return hlist_entry(head->first, struct sock, sk_node);
|
||||
}
|
||||
|
||||
static inline struct sock *sk_head(struct hlist_head *head)
|
||||
static inline struct sock *sk_head(const struct hlist_head *head)
|
||||
{
|
||||
return hlist_empty(head) ? NULL : __sk_head(head);
|
||||
}
|
||||
|
||||
static inline struct sock *sk_next(struct sock *sk)
|
||||
static inline struct sock *sk_next(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_node.next ?
|
||||
hlist_entry(sk->sk_node.next, struct sock, sk_node) : NULL;
|
||||
}
|
||||
|
||||
static inline int sk_unhashed(struct sock *sk)
|
||||
static inline int sk_unhashed(const struct sock *sk)
|
||||
{
|
||||
return hlist_unhashed(&sk->sk_node);
|
||||
}
|
||||
|
||||
static inline int sk_hashed(struct sock *sk)
|
||||
static inline int sk_hashed(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_node.pprev != NULL;
|
||||
}
|
||||
@@ -494,7 +494,7 @@ extern int sk_wait_data(struct sock *sk, long *timeo);
|
||||
struct request_sock_ops;
|
||||
|
||||
/* Here is the right place to enable sock refcounting debugging */
|
||||
#define SOCK_REFCNT_DEBUG
|
||||
//#define SOCK_REFCNT_DEBUG
|
||||
|
||||
/* Networking protocol blocks we attach to sockets.
|
||||
* socket layer -> transport layer interface
|
||||
|
Reference in New Issue
Block a user