[patch 1/1][NETNS49] Make af_unix autobind per network namespace

Daniel Lezcano dlezcano at fr.ibm.com
Tue Oct 2 08:18:47 PDT 2007


This patch change the static ordernum variable to be relative to the
network namespace.

Signed-off-by: Daniel Lezcano <dlezcano at fr.ibm.com>
---
 include/net/net_namespace.h |    1 +
 net/unix/af_unix.c          |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

Index: linux-2.6-netns/include/net/net_namespace.h
===================================================================
--- linux-2.6-netns.orig/include/net/net_namespace.h
+++ linux-2.6-netns/include/net/net_namespace.h
@@ -60,6 +60,7 @@ struct net {
 	/* AF_UNIX */
 	int			sysctl_unix_max_dgram_qlen;
 	void			*unix_sysctl;
+	u32                     ordernum;
 
 	/* XFRM */
 	u32			sysctl_xfrm_aevent_etime;
Index: linux-2.6-netns/net/unix/af_unix.c
===================================================================
--- linux-2.6-netns.orig/net/unix/af_unix.c
+++ linux-2.6-netns/net/unix/af_unix.c
@@ -681,8 +681,8 @@ static int unix_autobind(struct socket *
 	struct sock *sk = sock->sk;
 	struct net *net = sk->sk_net;
 	struct unix_sock *u = unix_sk(sk);
-	static u32 ordernum = 1;
 	struct unix_address * addr;
+	u32 ordernum = net->ordernum;
 	int err;
 
 	mutex_lock(&u->readlock);
@@ -720,6 +720,7 @@ retry:
 	u->addr = addr;
 	__unix_insert_socket(&unix_socket_table[addr->hash], sk);
 	spin_unlock(&unix_table_lock);
+	net->ordernum = ordernum;
 	err = 0;
 
 out:	mutex_unlock(&u->readlock);
@@ -2164,6 +2165,8 @@ static int unix_net_init(struct net *net
 	int error = -ENOMEM;
 
 	net->sysctl_unix_max_dgram_qlen = 10;
+	net->ordernum = 1;
+
 #ifdef CONFIG_PROC_FS
 	if (!proc_net_fops_create(net, "unix", 0, &unix_seq_fops))
 		goto out;

-- 


More information about the Containers mailing list