X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=linux-2.6-595-vserver-new-netns.patch;h=f946b5037258c7034d57cb520d22637b8f0289e2;hb=refs%2Fheads%2Ftrellis-sapan;hp=81d4cffb6cbf2faac5d77a51174ff24e0bb7aec3;hpb=fc7cecf739fd8dd19a388c202bbe628ca2dce96c;p=linux-2.6.git diff --git a/linux-2.6-595-vserver-new-netns.patch b/linux-2.6-595-vserver-new-netns.patch index 81d4cffb6..f946b5037 100644 --- a/linux-2.6-595-vserver-new-netns.patch +++ b/linux-2.6-595-vserver-new-netns.patch @@ -1,6 +1,6 @@ ---- linux-i686-2.6.22/kernel/vserver/space.c.orig 2008-03-11 20:14:21.000000000 -0400 -+++ linux-i686-2.6.22/kernel/vserver/space.c 2008-03-11 20:13:53.000000000 -0400 -@@ -15,12 +15,15 @@ +--- linux-2.6.22-590/kernel/vserver/space.c.orig 2008-02-29 09:01:28.000000000 -0500 ++++ linux-2.6.22-590/kernel/vserver/space.c 2008-03-06 15:47:26.000000000 -0500 +@@ -15,6 +15,7 @@ #include #include #include @@ -8,37 +8,15 @@ #include #include - #include - #include - -+#include -+ - - atomic_t vs_global_nsproxy = ATOMIC_INIT(0); - atomic_t vs_global_fs = ATOMIC_INIT(0); -@@ -55,9 +58,21 @@ +@@ -54,6 +55,7 @@ struct mnt_namespace *old_ns; struct uts_namespace *old_uts; struct ipc_namespace *old_ipc; + struct net *old_net; struct nsproxy *nsproxy; -+ /* Dunno if task_lock is really needed */ -+ task_lock(current); -+ if (!cap_raised(current->cap_effective, CAP_SYS_ADMIN)) { -+ current->cap_effective = cap_raise(current->cap_effective, CAP_SYS_ADMIN); -+ } nsproxy = copy_nsproxy(old_nsproxy); -+ if (cap_raised(current->cap_effective, CAP_SYS_ADMIN)) { -+ current->cap_effective = cap_lower(current->cap_effective, CAP_SYS_ADMIN); -+ } -+ task_unlock(current); -+ /* <- */ -+ - if (!nsproxy) - goto out; - -@@ -84,6 +99,16 @@ +@@ -83,6 +85,17 @@ get_ipc_ns(nsproxy->ipc_ns); } else old_ipc = NULL; @@ -48,6 +26,7 @@ + nsproxy->net_ns = new_nsproxy->net_ns; + if (nsproxy->net_ns) { + get_net(nsproxy->net_ns); ++ printk(KERN_ALERT "Cloning network namespace\n"); + } + } else + old_net = NULL; @@ -55,7 +34,7 @@ if (old_ns) put_mnt_ns(old_ns); -@@ -91,6 +116,9 @@ +@@ -90,6 +101,9 @@ put_uts_ns(old_uts); if (old_ipc) put_ipc_ns(old_ipc); @@ -65,7 +44,7 @@ out: return nsproxy; } -@@ -251,7 +279,8 @@ +@@ -250,7 +264,8 @@ int vc_enter_space(struct vx_info *vxi, void __user *data) {