diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2007-09-12 05:58:02 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:49:05 -0400 |
commit | 07feaebfcc10cd35e745c7073667935246494bee (patch) | |
tree | 297f212ebca1c6916a8b82ba176ee4ee508ccb08 | |
parent | 4a1c537113cdc688aabc3fb9bb6ed18ec821c779 (diff) |
[NET]: Add a network namespace parameter to struct sock
Sockets need to get a reference to their network namespace,
or possibly a simple hold if someone registers on the network
namespace notifier and will free the sockets when the namespace
is going to be destroyed.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/inet_timewait_sock.h | 1 | ||||
-rw-r--r-- | include/net/sock.h | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index 47d52b2414db..abaff0597270 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h | |||
@@ -115,6 +115,7 @@ struct inet_timewait_sock { | |||
115 | #define tw_refcnt __tw_common.skc_refcnt | 115 | #define tw_refcnt __tw_common.skc_refcnt |
116 | #define tw_hash __tw_common.skc_hash | 116 | #define tw_hash __tw_common.skc_hash |
117 | #define tw_prot __tw_common.skc_prot | 117 | #define tw_prot __tw_common.skc_prot |
118 | #define tw_net __tw_common.skc_net | ||
118 | volatile unsigned char tw_substate; | 119 | volatile unsigned char tw_substate; |
119 | /* 3 bits hole, try to pack */ | 120 | /* 3 bits hole, try to pack */ |
120 | unsigned char tw_rcv_wscale; | 121 | unsigned char tw_rcv_wscale; |
diff --git a/include/net/sock.h b/include/net/sock.h index 5ed9fa42b6e8..9ef8b5fb7936 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -105,6 +105,7 @@ struct proto; | |||
105 | * @skc_refcnt: reference count | 105 | * @skc_refcnt: reference count |
106 | * @skc_hash: hash value used with various protocol lookup tables | 106 | * @skc_hash: hash value used with various protocol lookup tables |
107 | * @skc_prot: protocol handlers inside a network family | 107 | * @skc_prot: protocol handlers inside a network family |
108 | * @skc_net: reference to the network namespace of this socket | ||
108 | * | 109 | * |
109 | * This is the minimal network layer representation of sockets, the header | 110 | * This is the minimal network layer representation of sockets, the header |
110 | * for struct sock and struct inet_timewait_sock. | 111 | * for struct sock and struct inet_timewait_sock. |
@@ -119,6 +120,7 @@ struct sock_common { | |||
119 | atomic_t skc_refcnt; | 120 | atomic_t skc_refcnt; |
120 | unsigned int skc_hash; | 121 | unsigned int skc_hash; |
121 | struct proto *skc_prot; | 122 | struct proto *skc_prot; |
123 | struct net *skc_net; | ||
122 | }; | 124 | }; |
123 | 125 | ||
124 | /** | 126 | /** |
@@ -195,6 +197,7 @@ struct sock { | |||
195 | #define sk_refcnt __sk_common.skc_refcnt | 197 | #define sk_refcnt __sk_common.skc_refcnt |
196 | #define sk_hash __sk_common.skc_hash | 198 | #define sk_hash __sk_common.skc_hash |
197 | #define sk_prot __sk_common.skc_prot | 199 | #define sk_prot __sk_common.skc_prot |
200 | #define sk_net __sk_common.skc_net | ||
198 | unsigned char sk_shutdown : 2, | 201 | unsigned char sk_shutdown : 2, |
199 | sk_no_check : 2, | 202 | sk_no_check : 2, |
200 | sk_userlocks : 4; | 203 | sk_userlocks : 4; |