Patch593: linux-2.6-593-egre.patch
Patch594: linux-2.6-594-new_ns_pid.patch
Patch595: linux-2.6-595-vserver-new-netns.patch
-Patch596: linux-2.6-596-debug.patch
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
%description
%ApplyPatch 593
%ApplyPatch 594
%ApplyPatch 595
-%ApplyPatch 596
%endif
# NetNS conflict-resolving patch for VINI. Will work with patch vini_pl_patch-1 but may
---- 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 <linux/utsname.h>
#include <linux/nsproxy.h>
#include <linux/err.h>
#include <asm/uaccess.h>
#include <linux/vs_context.h>
- #include <linux/vserver/space.h>
- #include <linux/vserver/space_cmd.h>
-
-+#include <linux/capability.h>
-+
-
- 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;
+ 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;
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);
out:
return nsproxy;
}
-@@ -251,7 +279,8 @@
+@@ -250,7 +264,8 @@
int vc_enter_space(struct vx_info *vxi, void __user *data)
{
+++ /dev/null
---- linux-2.6.22-596/kernel/vserver/space.c.orig 2008-03-11 16:13:48.000000000 -0400
-+++ linux-2.6.22-596/kernel/vserver/space.c 2008-03-11 16:26:08.000000000 -0400
-@@ -195,7 +195,9 @@
- }
-
- fs_new = xchg(¤t->fs, fs_new);
-+ printk(KERN_ALERT "Xchg-ing %x with %x\n", ¤t->nsproxy, proxy_new);
- proxy_new = xchg(¤t->nsproxy, proxy_new);
-+ printk(KERN_ALERT "current->nsproxy: %x\n", ¤t->nsproxy);
- ret = 0;
-
- if (proxy_new)