From c8e8f42fe2a43dd8f13286cb2a4cb5d204d7b0c4 Mon Sep 17 00:00:00 2001
From: =?utf8?q?S=2E=C3=87a=C4=9Flar=20Onur?= <caglar@cs.princeton.edu>
Date: Tue, 4 May 2010 15:38:08 +0000
Subject: [PATCH] Rolling back to version 2.3.0.36.4

---
 delta-pivot-fix01.diff | 16 ++++++++++++++++
 kernel-2.6.spec        |  4 +++-
 sources                |  2 +-
 3 files changed, 20 insertions(+), 2 deletions(-)
 create mode 100644 delta-pivot-fix01.diff

diff --git a/delta-pivot-fix01.diff b/delta-pivot-fix01.diff
new file mode 100644
index 000000000..38216c361
--- /dev/null
+++ b/delta-pivot-fix01.diff
@@ -0,0 +1,16 @@
+diff -NurpP --minimal linux-2.6.29-vs2.3.0.36.9-pre4/fs/namespace.c linux-2.6.29-vs2.3.0.36.9-pre5/fs/namespace.c
+--- linux-2.6.29-vs2.3.0.36.9-pre4/fs/namespace.c	2009-03-24 14:48:35.000000000 +0100
++++ linux-2.6.29-vs2.3.0.36.9-pre5/fs/namespace.c	2009-04-10 23:15:11.000000000 +0200
+@@ -2278,9 +2278,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+ 	down_write(&namespace_sem);
+ 	mutex_lock(&old.dentry->d_inode->i_mutex);
+ 	error = -EINVAL;
+-	if (IS_MNT_SHARED(old.mnt) ||
++	if ((IS_MNT_SHARED(old.mnt) ||
+ 		IS_MNT_SHARED(new.mnt->mnt_parent) ||
+-		IS_MNT_SHARED(root.mnt->mnt_parent))
++		IS_MNT_SHARED(root.mnt->mnt_parent)) &&
++		!vx_flags(VXF_STATE_SETUP, 0))
+ 		goto out2;
+ 	if (!check_mnt(root.mnt))
+ 		goto out2;
diff --git a/kernel-2.6.spec b/kernel-2.6.spec
index 9a6291fa5..9d370fe24 100644
--- a/kernel-2.6.spec
+++ b/kernel-2.6.spec
@@ -41,7 +41,7 @@ Summary: The Linux kernel (the core of the Linux operating system)
 %define kversion 2.6.%{sublevel}
 %define rpmversion 2.6.%{sublevel}%{?patchlevel:.%{patchlevel}}
 
-%define vsversion 2.3.0.36.8
+%define vsversion 2.3.0.36.4
 
 # Will go away when VServer supports NetNS in mainline. Currently, it must be 
 # updated every time the PL kernel is updated.
@@ -150,6 +150,7 @@ Patch100: linux-2.6-100-build-nonintconfig.patch
 # Linux-VServer
 Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
 Patch220: delta-ptrace-fix01.diff
+Patch230: delta-pivot-fix01.diff
 
 # IP sets
 Patch250: linux-2.6-250-ipsets.patch
@@ -352,6 +353,7 @@ KERNEL_PREVIOUS=vanilla
 # vserver patch
 %ApplyPatch 200
 %ApplyPatch 220
+%ApplyPatch 230
 
 %ApplyPatch 250
 
diff --git a/sources b/sources
index e865390eb..691a336b6 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
 b3e78977aa79d3754cb7f8143d7ddabd  http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
 9ba438c8ab695b92fed5c170e257bebd  http://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.27.46.bz2
-ec66267a908ede0a3fed802d649fc444  http://www.cs.princeton.edu/~caglar/patch-2.6.27.46-vs2.3.0.36.8.diff
+f5fdebad83fcfaf555725ee8dcdf95e6  http://www.cs.princeton.edu/~caglar/patch-2.6.27.46-vs2.3.0.36.4.diff
-- 
2.47.0