From: Sapan Bhatia Date: Wed, 12 Mar 2008 00:15:53 +0000 (+0000) Subject: Hopefully this one is fixed. X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;ds=sidebyside;h=fc7cecf739fd8dd19a388c202bbe628ca2dce96c;p=linux-2.6.git Hopefully this one is fixed. --- diff --git a/linux-2.6-595-vserver-new-netns.patch b/linux-2.6-595-vserver-new-netns.patch index f946b5037..81d4cffb6 100644 --- a/linux-2.6-595-vserver-new-netns.patch +++ b/linux-2.6-595-vserver-new-netns.patch @@ -1,6 +1,6 @@ ---- 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 @@ +--- 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 @@ #include #include #include @@ -8,15 +8,37 @@ #include #include -@@ -54,6 +55,7 @@ + #include + #include + ++#include ++ + + atomic_t vs_global_nsproxy = ATOMIC_INIT(0); + atomic_t vs_global_fs = ATOMIC_INIT(0); +@@ -55,9 +58,21 @@ 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); -@@ -83,6 +85,17 @@ ++ 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 @@ get_ipc_ns(nsproxy->ipc_ns); } else old_ipc = NULL; @@ -26,7 +48,6 @@ + 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; @@ -34,7 +55,7 @@ if (old_ns) put_mnt_ns(old_ns); -@@ -90,6 +101,9 @@ +@@ -91,6 +116,9 @@ put_uts_ns(old_uts); if (old_ipc) put_ipc_ns(old_ipc); @@ -44,7 +65,7 @@ out: return nsproxy; } -@@ -250,7 +264,8 @@ +@@ -251,7 +279,8 @@ int vc_enter_space(struct vx_info *vxi, void __user *data) {