aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2007-09-12 05:58:02 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:49:05 -0400
commit07feaebfcc10cd35e745c7073667935246494bee (patch)
tree297f212ebca1c6916a8b82ba176ee4ee508ccb08
parent4a1c537113cdc688aabc3fb9bb6ed18ec821c779 (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.h1
-rw-r--r--include/net/sock.h3
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;