summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/linux-vserver/APKBUILD14
-rw-r--r--main/linux-vserver/patch-3.4.56-vs2.3.3.9.diff (renamed from main/linux-vserver/patch-3.4.51-vs2.3.3.9.diff)4022
2 files changed, 2259 insertions, 1777 deletions
diff --git a/main/linux-vserver/APKBUILD b/main/linux-vserver/APKBUILD
index 3865e54bdea..d2b0be217d9 100644
--- a/main/linux-vserver/APKBUILD
+++ b/main/linux-vserver/APKBUILD
@@ -2,7 +2,7 @@
_flavor=vserver
pkgname=linux-${_flavor}
-pkgver=3.4.51
+pkgver=3.4.56
pkgrel=0
_vsver=vs2.3.3.9
@@ -136,17 +136,17 @@ dev() {
}
md5sums="967f72983655e2479f951195953e8480 linux-3.4.tar.xz
-c74052b5a413496d9182bcf8f9087403 patch-3.4.51.xz
-57bf6e2df90c55df27cb345232f75a59 patch-3.4.51-vs2.3.3.9.diff
+d13507089f1c81a5f00c510144ae4f2d patch-3.4.56.xz
+28aca79d0c947ca90d80d96f24a020f5 patch-3.4.56-vs2.3.3.9.diff
1fce2ef2e47d19c150ab0b2df3373a57 kernelconfig.x86
b6a18f4cb2523bbd2500809e61172f8f kernelconfig.x86_64"
sha256sums="ff3dee6a855873d12487a6f4070ec2f7996d073019171361c955639664baa0c6 linux-3.4.tar.xz
-693b3370e84f9612357b5ecf5272930a4dfbfb7674b4f257ece42c9d122c39f5 patch-3.4.51.xz
-15866fe9338fc9069ab1646149a5fb48ea1eada0d7616bd16ae5c77566ee94bc patch-3.4.51-vs2.3.3.9.diff
+71980cb04968fe5141be9f370d542deb767c8c2de8b68073c25035790900cd56 patch-3.4.56.xz
+9c44202e615937d338ed5be1dc2f517f3a48b9c100788a1d840aae2f98d196cd patch-3.4.56-vs2.3.3.9.diff
e97b45a117671c5a87a9ba4a1f946125053eac078d297f61f9c8d4594acbf830 kernelconfig.x86
d44d1a1be3402847f540cc0cfb201deec7084b4c516e592b92e115ab3f71d4b5 kernelconfig.x86_64"
sha512sums="1c49b336750c9c2b49d21e54126f22a800367296be0d57e6df28b1532cbeba7fc3bdf4cfe27d9810576e76c2db2e9c2493f0804451c915137cb78d7aa61f236c linux-3.4.tar.xz
-6daa4976c680a66f9d1c0f8b8be855057cad9744353b999ea51331db7056eb6705231cdfa7075c8cbcc4439aac6ff5de9c6ca336569026029560955a5fc70b06 patch-3.4.51.xz
-16bd974160323f49fe8590d3a99102f6d0f4bc34942cae6a3b0f239f96d52e51ba64435ef1e9c3ff118abc903f2e2b42ca126e29c97df9261c2623898bb955a1 patch-3.4.51-vs2.3.3.9.diff
+608e165b38e6fff0341369e3793edf8675cb5d0d4b123338f446424b4fe4c52050fce2a281a3ebb7d04f45e9fc5f5c9ec9d01c407261194385f60fc35a705726 patch-3.4.56.xz
+02a9cd3c7f7dd131e26a8d4512530b054d2b5c61e07995fd1fca5b1b76cbd96c4e12252866f52077626179e40040be5e8ede0af910a1915d2f64679e05e8c7e0 patch-3.4.56-vs2.3.3.9.diff
f12f999c84f724a4ac20a736c7f56671e23b2a9ddce4b0576dc17d0b3e8f319f5c4bc40b58992eba75ace44148018d85de24b2516d0a83240cd0ca3803606eae kernelconfig.x86
4cf43a7fc609e9822919e5706f38c03ef72deae2eae6b7d4c4ca7f9f29bccd1f01c0d65660a0c5234df6c2123a1d0c797dbdcb57ca5559e39644704426657f3e kernelconfig.x86_64"
diff --git a/main/linux-vserver/patch-3.4.51-vs2.3.3.9.diff b/main/linux-vserver/patch-3.4.56-vs2.3.3.9.diff
index 3d00861f87b..dead3708763 100644
--- a/main/linux-vserver/patch-3.4.51-vs2.3.3.9.diff
+++ b/main/linux-vserver/patch-3.4.56-vs2.3.3.9.diff
@@ -1,6 +1,8 @@
-diff -NurpP --minimal linux-3.4.48/Documentation/vserver/debug.txt linux-3.4.48-vs2.3.3.9/Documentation/vserver/debug.txt
---- linux-3.4.48/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/Documentation/vserver/debug.txt 2012-05-21 16:15:04.000000000 +0000
+diff --git a/Documentation/vserver/debug.txt b/Documentation/vserver/debug.txt
+new file mode 100644
+index 0000000..4464a0f
+--- /dev/null
++++ b/Documentation/vserver/debug.txt
@@ -0,0 +1,154 @@
+
+debug_cvirt:
@@ -156,22 +158,23 @@ diff -NurpP --minimal linux-3.4.48/Documentation/vserver/debug.txt linux-3.4.48-
+ m 2^m "vx_acc_page[%5d,%s,%2d]: %5d%s"
+ "vx_acc_pages[%5d,%s,%2d]: %5d += %5d"
+ "vx_pages_avail[%5d,%s,%2d]: %5ld > %5d + %5d"
-diff -NurpP --minimal linux-3.4.48/Makefile linux-3.4.48-vs2.3.3.9/Makefile
---- linux-3.4.48/Makefile 2013-06-13 08:59:13.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/Makefile 2013-06-13 13:08:07.000000000 +0000
+diff --git a/Makefile b/Makefile
+index 2fe1f6d..a34c518 100644
+--- a/Makefile
++++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 4
--SUBLEVEL = 51
+ SUBLEVEL = 56
-EXTRAVERSION =
-+SUBLEVEL = 51
+EXTRAVERSION = -vs2.3.3.9
NAME = Saber-toothed Squirrel
# *DOCUMENTATION*
-diff -NurpP --minimal linux-3.4.48/arch/alpha/Kconfig linux-3.4.48-vs2.3.3.9/arch/alpha/Kconfig
---- linux-3.4.48/arch/alpha/Kconfig 2012-05-21 16:06:12.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/alpha/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
+index 22e58a9..743b861 100644
+--- a/arch/alpha/Kconfig
++++ b/arch/alpha/Kconfig
@@ -662,6 +662,8 @@ config DUMMY_CONSOLE
depends on VGA_HOSE
default y
@@ -181,9 +184,10 @@ diff -NurpP --minimal linux-3.4.48/arch/alpha/Kconfig linux-3.4.48-vs2.3.3.9/arc
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/entry.S linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/entry.S
---- linux-3.4.48/arch/alpha/kernel/entry.S 2010-10-21 11:06:45.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/entry.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
+index 6d159ce..eecae79 100644
+--- a/arch/alpha/kernel/entry.S
++++ b/arch/alpha/kernel/entry.S
@@ -860,24 +860,15 @@ sys_getxgid:
.globl sys_getxpid
.ent sys_getxpid
@@ -216,9 +220,10 @@ diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/entry.S linux-3.4.48-vs2.3.
ret
.end sys_getxpid
-diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/ptrace.c
---- linux-3.4.48/arch/alpha/kernel/ptrace.c 2012-05-21 16:06:12.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/alpha/kernel/ptrace.c b/arch/alpha/kernel/ptrace.c
+index 54616f4..539720c 100644
+--- a/arch/alpha/kernel/ptrace.c
++++ b/arch/alpha/kernel/ptrace.c
@@ -13,6 +13,7 @@
#include <linux/user.h>
#include <linux/security.h>
@@ -227,9 +232,10 @@ diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/ptrace.c linux-3.4.48-vs2.3
#include <asm/uaccess.h>
#include <asm/pgtable.h>
-diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/systbls.S linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/systbls.S
---- linux-3.4.48/arch/alpha/kernel/systbls.S 2012-01-09 15:13:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/systbls.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
+index e534e1c..df045e4 100644
+--- a/arch/alpha/kernel/systbls.S
++++ b/arch/alpha/kernel/systbls.S
@@ -446,7 +446,7 @@ sys_call_table:
.quad sys_stat64 /* 425 */
.quad sys_lstat64
@@ -239,10 +245,11 @@ diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/systbls.S linux-3.4.48-vs2.
.quad sys_ni_syscall /* sys_mbind */
.quad sys_ni_syscall /* sys_get_mempolicy */
.quad sys_ni_syscall /* sys_set_mempolicy */
-diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/traps.c
---- linux-3.4.48/arch/alpha/kernel/traps.c 2012-05-21 16:06:12.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/alpha/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000
-@@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs
+diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c
+index 80d987c..83c8bbb 100644
+--- a/arch/alpha/kernel/traps.c
++++ b/arch/alpha/kernel/traps.c
+@@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs *regs, long err, unsigned long *r9_15)
#ifdef CONFIG_SMP
printk("CPU %d ", hard_smp_processor_id());
#endif
@@ -252,9 +259,10 @@ diff -NurpP --minimal linux-3.4.48/arch/alpha/kernel/traps.c linux-3.4.48-vs2.3.
dik_show_regs(regs, r9_15);
add_taint(TAINT_DIE);
dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-3.4.48/arch/arm/Kconfig linux-3.4.48-vs2.3.3.9/arch/arm/Kconfig
---- linux-3.4.48/arch/arm/Kconfig 2013-06-13 08:59:13.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/arm/Kconfig 2012-12-11 11:42:38.000000000 +0000
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 7fe19a3..58612a8 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
@@ -2311,6 +2311,8 @@ source "fs/Kconfig"
source "arch/arm/Kconfig.debug"
@@ -264,9 +272,10 @@ diff -NurpP --minimal linux-3.4.48/arch/arm/Kconfig linux-3.4.48-vs2.3.3.9/arch/
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/calls.S linux-3.4.48-vs2.3.3.9/arch/arm/kernel/calls.S
---- linux-3.4.48/arch/arm/kernel/calls.S 2012-01-09 15:13:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/arm/kernel/calls.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
+index 463ff4a..8913128 100644
+--- a/arch/arm/kernel/calls.S
++++ b/arch/arm/kernel/calls.S
@@ -322,7 +322,7 @@
/* 310 */ CALL(sys_request_key)
CALL(sys_keyctl)
@@ -276,9 +285,10 @@ diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/calls.S linux-3.4.48-vs2.3.3.
CALL(sys_ioprio_set)
/* 315 */ CALL(sys_ioprio_get)
CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/process.c linux-3.4.48-vs2.3.3.9/arch/arm/kernel/process.c
---- linux-3.4.48/arch/arm/kernel/process.c 2013-06-13 08:59:13.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/arm/kernel/process.c 2012-09-01 08:50:48.000000000 +0000
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index 48f3624..a2ca40e 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
@@ -357,7 +357,8 @@ void __show_regs(struct pt_regs *regs)
void show_regs(struct pt_regs * regs)
{
@@ -289,10 +299,11 @@ diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/process.c linux-3.4.48-vs2.3.
__show_regs(regs);
dump_stack();
}
-diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/arm/kernel/traps.c
---- linux-3.4.48/arch/arm/kernel/traps.c 2013-06-13 08:59:13.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/arm/kernel/traps.c 2012-10-22 13:09:53.000000000 +0000
-@@ -249,8 +249,8 @@ static int __die(const char *str, int er
+diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
+index a53a5a3..37938db 100644
+--- a/arch/arm/kernel/traps.c
++++ b/arch/arm/kernel/traps.c
+@@ -249,8 +249,8 @@ static int __die(const char *str, int err, struct thread_info *thread, struct pt
print_modules();
__show_regs(regs);
@@ -303,9 +314,10 @@ diff -NurpP --minimal linux-3.4.48/arch/arm/kernel/traps.c linux-3.4.48-vs2.3.3.
if (!user_mode(regs) || in_interrupt()) {
dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.4.48/arch/cris/Kconfig linux-3.4.48-vs2.3.3.9/arch/cris/Kconfig
---- linux-3.4.48/arch/cris/Kconfig 2012-03-19 18:46:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/cris/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
+index b3abfb0..397b82e 100644
+--- a/arch/cris/Kconfig
++++ b/arch/cris/Kconfig
@@ -675,6 +675,8 @@ source "drivers/staging/Kconfig"
source "arch/cris/Kconfig.debug"
@@ -315,9 +327,10 @@ diff -NurpP --minimal linux-3.4.48/arch/cris/Kconfig linux-3.4.48-vs2.3.3.9/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/frv/kernel/kernel_thread.S linux-3.4.48-vs2.3.3.9/arch/frv/kernel/kernel_thread.S
---- linux-3.4.48/arch/frv/kernel/kernel_thread.S 2008-12-24 23:26:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/frv/kernel/kernel_thread.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/frv/kernel/kernel_thread.S b/arch/frv/kernel/kernel_thread.S
+index 4531c83..fab3b42 100644
+--- a/arch/frv/kernel/kernel_thread.S
++++ b/arch/frv/kernel/kernel_thread.S
@@ -37,7 +37,7 @@ kernel_thread:
# start by forking the current process, but with shared VM
@@ -327,9 +340,10 @@ diff -NurpP --minimal linux-3.4.48/arch/frv/kernel/kernel_thread.S linux-3.4.48-
sethi.p #0xe4e4,gr9 ; second syscall arg [newsp]
setlo #0xe4e4,gr9
setlos.p #0,gr10 ; third syscall arg [parent_tidptr]
-diff -NurpP --minimal linux-3.4.48/arch/h8300/Kconfig linux-3.4.48-vs2.3.3.9/arch/h8300/Kconfig
---- linux-3.4.48/arch/h8300/Kconfig 2012-03-19 18:46:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/h8300/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
+index 56e890d..694dfb0 100644
+--- a/arch/h8300/Kconfig
++++ b/arch/h8300/Kconfig
@@ -214,6 +214,8 @@ source "fs/Kconfig"
source "arch/h8300/Kconfig.debug"
@@ -339,9 +353,10 @@ diff -NurpP --minimal linux-3.4.48/arch/h8300/Kconfig linux-3.4.48-vs2.3.3.9/arc
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/ia64/Kconfig linux-3.4.48-vs2.3.3.9/arch/ia64/Kconfig
---- linux-3.4.48/arch/ia64/Kconfig 2012-03-19 18:46:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/ia64/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
+index bd72669..bd9cfe2 100644
+--- a/arch/ia64/Kconfig
++++ b/arch/ia64/Kconfig
@@ -654,6 +654,8 @@ source "fs/Kconfig"
source "arch/ia64/Kconfig.debug"
@@ -351,9 +366,10 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/Kconfig linux-3.4.48-vs2.3.3.9/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/entry.S linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/entry.S
---- linux-3.4.48/arch/ia64/kernel/entry.S 2012-03-19 18:46:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/entry.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
+index 1ccbe12..8d2c517 100644
+--- a/arch/ia64/kernel/entry.S
++++ b/arch/ia64/kernel/entry.S
@@ -1714,7 +1714,7 @@ sys_call_table:
data8 sys_mq_notify
data8 sys_mq_getsetattr
@@ -363,9 +379,10 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/entry.S linux-3.4.48-vs2.3.3
data8 sys_waitid // 1270
data8 sys_add_key
data8 sys_request_key
-diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/process.c linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/process.c
---- linux-3.4.48/arch/ia64/kernel/process.c 2013-06-13 08:59:14.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/process.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
+index 86d74ab..3c74e03 100644
+--- a/arch/ia64/kernel/process.c
++++ b/arch/ia64/kernel/process.c
@@ -111,8 +111,8 @@ show_regs (struct pt_regs *regs)
unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
@@ -377,9 +394,10 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/process.c linux-3.4.48-vs2.3
printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n",
regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
init_utsname()->release);
-diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/ptrace.c
---- linux-3.4.48/arch/ia64/kernel/ptrace.c 2012-05-21 16:06:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c
+index 4265ff6..e58cc71 100644
+--- a/arch/ia64/kernel/ptrace.c
++++ b/arch/ia64/kernel/ptrace.c
@@ -21,6 +21,7 @@
#include <linux/regset.h>
#include <linux/elf.h>
@@ -388,10 +406,11 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/ptrace.c linux-3.4.48-vs2.3.
#include <asm/pgtable.h>
#include <asm/processor.h>
-diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/traps.c
---- linux-3.4.48/arch/ia64/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/ia64/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000
-@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
+diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c
+index bd42b76..1039099 100644
+--- a/arch/ia64/kernel/traps.c
++++ b/arch/ia64/kernel/traps.c
+@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *regs, long err)
put_cpu();
if (++die.lock_owner_depth < 3) {
@@ -403,7 +422,7 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/traps.c linux-3.4.48-vs2.3.3
if (notify_die(DIE_OOPS, str, regs, err, 255, SIGSEGV)
!= NOTIFY_STOP)
show_regs(regs);
-@@ -324,8 +325,9 @@ handle_fpu_swa (int fp_fault, struct pt_
+@@ -324,8 +325,9 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
if ((last.count & 15) < 5 && (ia64_fetchadd(1, &last.count, acq) & 15) < 5) {
last.time = current_jiffies + 5 * HZ;
printk(KERN_WARNING
@@ -415,10 +434,11 @@ diff -NurpP --minimal linux-3.4.48/arch/ia64/kernel/traps.c linux-3.4.48-vs2.3.3
}
}
}
-diff -NurpP --minimal linux-3.4.48/arch/m32r/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/m32r/kernel/traps.c
---- linux-3.4.48/arch/m32r/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/m32r/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000
-@@ -195,8 +195,9 @@ static void show_registers(struct pt_reg
+diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
+index 3bcb207..f962486 100644
+--- a/arch/m32r/kernel/traps.c
++++ b/arch/m32r/kernel/traps.c
+@@ -195,8 +195,9 @@ static void show_registers(struct pt_regs *regs)
} else {
printk("SPI: %08lx\n", sp);
}
@@ -430,9 +450,10 @@ diff -NurpP --minimal linux-3.4.48/arch/m32r/kernel/traps.c linux-3.4.48-vs2.3.3
/*
* When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.4.48/arch/m68k/Kconfig linux-3.4.48-vs2.3.3.9/arch/m68k/Kconfig
---- linux-3.4.48/arch/m68k/Kconfig 2012-05-21 16:06:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/m68k/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
+index d318c60..44485f6 100644
+--- a/arch/m68k/Kconfig
++++ b/arch/m68k/Kconfig
@@ -146,6 +146,8 @@ source "fs/Kconfig"
source "arch/m68k/Kconfig.debug"
@@ -442,9 +463,10 @@ diff -NurpP --minimal linux-3.4.48/arch/m68k/Kconfig linux-3.4.48-vs2.3.3.9/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/mips/Kconfig linux-3.4.48-vs2.3.3.9/arch/mips/Kconfig
---- linux-3.4.48/arch/mips/Kconfig 2012-05-21 16:06:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index ce30e2f..a8b4dab 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
@@ -2516,6 +2516,8 @@ source "fs/Kconfig"
source "arch/mips/Kconfig.debug"
@@ -454,9 +476,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/Kconfig linux-3.4.48-vs2.3.3.9/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/arch/mips/kernel/ptrace.c
---- linux-3.4.48/arch/mips/kernel/ptrace.c 2012-05-21 16:06:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
+index 7c24c29..794a5b0 100644
+--- a/arch/mips/kernel/ptrace.c
++++ b/arch/mips/kernel/ptrace.c
@@ -25,6 +25,7 @@
#include <linux/security.h>
#include <linux/audit.h>
@@ -465,7 +488,7 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/ptrace.c linux-3.4.48-vs2.3.
#include <asm/byteorder.h>
#include <asm/cpu.h>
-@@ -262,6 +263,9 @@ long arch_ptrace(struct task_struct *chi
+@@ -262,6 +263,9 @@ long arch_ptrace(struct task_struct *child, long request,
void __user *datavp = (void __user *) data;
unsigned long __user *datalp = (void __user *) data;
@@ -475,9 +498,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/ptrace.c linux-3.4.48-vs2.3.
switch (request) {
/* when I and D space are separate, these will need to be fixed. */
case PTRACE_PEEKTEXT: /* read word at location addr. */
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall32-o32.S linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall32-o32.S
---- linux-3.4.48/arch/mips/kernel/scall32-o32.S 2012-01-09 15:14:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall32-o32.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
+index a632bc1..b05626a 100644
+--- a/arch/mips/kernel/scall32-o32.S
++++ b/arch/mips/kernel/scall32-o32.S
@@ -523,7 +523,7 @@ einval: li v0, -ENOSYS
sys sys_mq_timedreceive 5
sys sys_mq_notify 2 /* 4275 */
@@ -487,9 +511,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall32-o32.S linux-3.4.48-v
sys sys_waitid 5
sys sys_ni_syscall 0 /* available, was setaltroot */
sys sys_add_key 5 /* 4280 */
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-64.S linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-64.S
---- linux-3.4.48/arch/mips/kernel/scall64-64.S 2012-01-09 15:14:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-64.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
+index 3b5a5e9..150ff87f 100644
+--- a/arch/mips/kernel/scall64-64.S
++++ b/arch/mips/kernel/scall64-64.S
@@ -362,7 +362,7 @@ sys_call_table:
PTR sys_mq_timedreceive
PTR sys_mq_notify
@@ -499,9 +524,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-64.S linux-3.4.48-vs
PTR sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-n32.S linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-n32.S
---- linux-3.4.48/arch/mips/kernel/scall64-n32.S 2012-01-09 15:14:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-n32.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
+index 6be6f70..e241470 100644
+--- a/arch/mips/kernel/scall64-n32.S
++++ b/arch/mips/kernel/scall64-n32.S
@@ -361,7 +361,7 @@ EXPORT(sysn32_call_table)
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify
@@ -511,9 +537,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-n32.S linux-3.4.48-v
PTR compat_sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-o32.S linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-o32.S
---- linux-3.4.48/arch/mips/kernel/scall64-o32.S 2012-01-09 15:14:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/scall64-o32.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
+index 5422855..316be5e 100644
+--- a/arch/mips/kernel/scall64-o32.S
++++ b/arch/mips/kernel/scall64-o32.S
@@ -480,7 +480,7 @@ sys_call_table:
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify /* 4275 */
@@ -523,10 +550,11 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/scall64-o32.S linux-3.4.48-v
PTR sys_32_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */
-diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/mips/kernel/traps.c
---- linux-3.4.48/arch/mips/kernel/traps.c 2012-05-21 16:06:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/mips/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000
-@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs
+diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
+index cfdaaa4..6de6d34 100644
+--- a/arch/mips/kernel/traps.c
++++ b/arch/mips/kernel/traps.c
+@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs)
__show_regs(regs);
print_modules();
@@ -540,9 +568,10 @@ diff -NurpP --minimal linux-3.4.48/arch/mips/kernel/traps.c linux-3.4.48-vs2.3.3
if (cpu_has_userlocal) {
unsigned long tls;
-diff -NurpP --minimal linux-3.4.48/arch/parisc/Kconfig linux-3.4.48-vs2.3.3.9/arch/parisc/Kconfig
---- linux-3.4.48/arch/parisc/Kconfig 2012-03-19 18:46:44.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/parisc/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
+index 242a1b7..8c2c34e 100644
+--- a/arch/parisc/Kconfig
++++ b/arch/parisc/Kconfig
@@ -279,6 +279,8 @@ source "fs/Kconfig"
source "arch/parisc/Kconfig.debug"
@@ -552,9 +581,10 @@ diff -NurpP --minimal linux-3.4.48/arch/parisc/Kconfig linux-3.4.48-vs2.3.3.9/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/parisc/kernel/syscall_table.S linux-3.4.48-vs2.3.3.9/arch/parisc/kernel/syscall_table.S
---- linux-3.4.48/arch/parisc/kernel/syscall_table.S 2011-10-24 16:45:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/parisc/kernel/syscall_table.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
+index 3735abd..3f4faa3 100644
+--- a/arch/parisc/kernel/syscall_table.S
++++ b/arch/parisc/kernel/syscall_table.S
@@ -361,7 +361,7 @@
ENTRY_COMP(mbind) /* 260 */
ENTRY_COMP(get_mempolicy)
@@ -564,10 +594,11 @@ diff -NurpP --minimal linux-3.4.48/arch/parisc/kernel/syscall_table.S linux-3.4.
ENTRY_SAME(add_key)
ENTRY_SAME(request_key) /* 265 */
ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-3.4.48/arch/parisc/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/parisc/kernel/traps.c
---- linux-3.4.48/arch/parisc/kernel/traps.c 2012-05-21 16:06:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/parisc/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000
-@@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_
+diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
+index 45ba99f..f380ca3 100644
+--- a/arch/parisc/kernel/traps.c
++++ b/arch/parisc/kernel/traps.c
+@@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err)
if (err == 0)
return; /* STFU */
@@ -579,7 +610,7 @@ diff -NurpP --minimal linux-3.4.48/arch/parisc/kernel/traps.c linux-3.4.48-vs2.3
#ifdef PRINT_USER_FAULTS
/* XXX for debugging only */
show_regs(regs);
-@@ -269,8 +270,8 @@ void die_if_kernel(char *str, struct pt_
+@@ -269,8 +270,8 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err)
pdc_console_restart();
if (err)
@@ -590,9 +621,10 @@ diff -NurpP --minimal linux-3.4.48/arch/parisc/kernel/traps.c linux-3.4.48-vs2.3
/* Wot's wrong wif bein' racy? */
if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.4.48/arch/parisc/mm/fault.c linux-3.4.48-vs2.3.3.9/arch/parisc/mm/fault.c
---- linux-3.4.48/arch/parisc/mm/fault.c 2010-08-02 14:52:06.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/parisc/mm/fault.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
+index 18162ce..41370f2 100644
+--- a/arch/parisc/mm/fault.c
++++ b/arch/parisc/mm/fault.c
@@ -237,8 +237,9 @@ bad_area:
#ifdef PRINT_USER_FAULTS
@@ -605,9 +637,10 @@ diff -NurpP --minimal linux-3.4.48/arch/parisc/mm/fault.c linux-3.4.48-vs2.3.3.9
if (vma) {
printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n",
vma->vm_start, vma->vm_end);
-diff -NurpP --minimal linux-3.4.48/arch/powerpc/Kconfig linux-3.4.48-vs2.3.3.9/arch/powerpc/Kconfig
---- linux-3.4.48/arch/powerpc/Kconfig 2012-05-21 16:06:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/powerpc/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index feab3ba..48c1e14 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
@@ -1002,6 +1002,8 @@ source "lib/Kconfig"
source "arch/powerpc/Kconfig.debug"
@@ -617,9 +650,10 @@ diff -NurpP --minimal linux-3.4.48/arch/powerpc/Kconfig linux-3.4.48-vs2.3.3.9/a
source "security/Kconfig"
config KEYS_COMPAT
-diff -NurpP --minimal linux-3.4.48/arch/powerpc/include/asm/unistd.h linux-3.4.48-vs2.3.3.9/arch/powerpc/include/asm/unistd.h
---- linux-3.4.48/arch/powerpc/include/asm/unistd.h 2012-01-09 15:14:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/powerpc/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/powerpc/include/asm/unistd.h b/arch/powerpc/include/asm/unistd.h
+index d3d1b5e..c43e77b 100644
+--- a/arch/powerpc/include/asm/unistd.h
++++ b/arch/powerpc/include/asm/unistd.h
@@ -275,7 +275,7 @@
#endif
#define __NR_rtas 255
@@ -629,9 +663,10 @@ diff -NurpP --minimal linux-3.4.48/arch/powerpc/include/asm/unistd.h linux-3.4.4
#define __NR_migrate_pages 258
#define __NR_mbind 259
#define __NR_get_mempolicy 260
-diff -NurpP --minimal linux-3.4.48/arch/powerpc/kernel/process.c linux-3.4.48-vs2.3.3.9/arch/powerpc/kernel/process.c
---- linux-3.4.48/arch/powerpc/kernel/process.c 2013-06-13 08:59:15.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/powerpc/kernel/process.c 2012-09-16 18:49:11.000000000 +0000
+diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
+index c1aef40..f3784c8 100644
+--- a/arch/powerpc/kernel/process.c
++++ b/arch/powerpc/kernel/process.c
@@ -661,8 +661,9 @@ void show_regs(struct pt_regs * regs)
#else
printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr);
@@ -644,10 +679,11 @@ diff -NurpP --minimal linux-3.4.48/arch/powerpc/kernel/process.c linux-3.4.48-vs
#ifdef CONFIG_SMP
printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-3.4.48/arch/powerpc/kernel/traps.c linux-3.4.48-vs2.3.3.9/arch/powerpc/kernel/traps.c
---- linux-3.4.48/arch/powerpc/kernel/traps.c 2013-06-13 08:59:15.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/powerpc/kernel/traps.c 2013-06-13 09:46:37.000000000 +0000
-@@ -1119,8 +1119,9 @@ void nonrecoverable_exception(struct pt_
+diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
+index 3bb7197..cef967d 100644
+--- a/arch/powerpc/kernel/traps.c
++++ b/arch/powerpc/kernel/traps.c
+@@ -1125,8 +1125,9 @@ void nonrecoverable_exception(struct pt_regs *regs)
void trace_syscall(struct pt_regs *regs)
{
@@ -659,9 +695,10 @@ diff -NurpP --minimal linux-3.4.48/arch/powerpc/kernel/traps.c linux-3.4.48-vs2.
regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
}
-diff -NurpP --minimal linux-3.4.48/arch/s390/Kconfig linux-3.4.48-vs2.3.3.9/arch/s390/Kconfig
---- linux-3.4.48/arch/s390/Kconfig 2012-05-21 16:06:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/s390/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
+index 9015060..4cf4f43 100644
+--- a/arch/s390/Kconfig
++++ b/arch/s390/Kconfig
@@ -639,6 +639,8 @@ source "fs/Kconfig"
source "arch/s390/Kconfig.debug"
@@ -671,9 +708,10 @@ diff -NurpP --minimal linux-3.4.48/arch/s390/Kconfig linux-3.4.48-vs2.3.3.9/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/s390/include/asm/tlb.h linux-3.4.48-vs2.3.3.9/arch/s390/include/asm/tlb.h
---- linux-3.4.48/arch/s390/include/asm/tlb.h 2012-05-21 16:06:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/s390/include/asm/tlb.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/s390/include/asm/tlb.h b/arch/s390/include/asm/tlb.h
+index 775a5ee..451d100 100644
+--- a/arch/s390/include/asm/tlb.h
++++ b/arch/s390/include/asm/tlb.h
@@ -24,6 +24,7 @@
#include <linux/mm.h>
#include <linux/pagemap.h>
@@ -682,9 +720,10 @@ diff -NurpP --minimal linux-3.4.48/arch/s390/include/asm/tlb.h linux-3.4.48-vs2.
#include <asm/processor.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.4.48/arch/s390/include/asm/unistd.h linux-3.4.48-vs2.3.3.9/arch/s390/include/asm/unistd.h
---- linux-3.4.48/arch/s390/include/asm/unistd.h 2012-03-19 18:46:48.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/s390/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
+index 8a8008f..7e960e3 100644
+--- a/arch/s390/include/asm/unistd.h
++++ b/arch/s390/include/asm/unistd.h
@@ -202,7 +202,7 @@
#define __NR_clock_gettime (__NR_timer_create+6)
#define __NR_clock_getres (__NR_timer_create+7)
@@ -694,9 +733,10 @@ diff -NurpP --minimal linux-3.4.48/arch/s390/include/asm/unistd.h linux-3.4.48-v
#define __NR_statfs64 265
#define __NR_fstatfs64 266
#define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-3.4.48/arch/s390/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/arch/s390/kernel/ptrace.c
---- linux-3.4.48/arch/s390/kernel/ptrace.c 2012-05-21 16:06:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/s390/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
+index 02f300f..cd5677e 100644
+--- a/arch/s390/kernel/ptrace.c
++++ b/arch/s390/kernel/ptrace.c
@@ -21,6 +21,7 @@
#include <linux/tracehook.h>
#include <linux/seccomp.h>
@@ -705,10 +745,11 @@ diff -NurpP --minimal linux-3.4.48/arch/s390/kernel/ptrace.c linux-3.4.48-vs2.3.
#include <trace/syscall.h>
#include <asm/segment.h>
#include <asm/page.h>
-diff -NurpP --minimal linux-3.4.48/arch/s390/kernel/syscalls.S linux-3.4.48-vs2.3.3.9/arch/s390/kernel/syscalls.S
---- linux-3.4.48/arch/s390/kernel/syscalls.S 2012-01-09 15:14:06.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/s390/kernel/syscalls.S 2012-05-21 16:15:04.000000000 +0000
-@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
+diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
+index bcab2f0..6aa93ca 100644
+--- a/arch/s390/kernel/syscalls.S
++++ b/arch/s390/kernel/syscalls.S
+@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_settime,sys32_clock_settime_wrapper)
SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */
SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
@@ -717,9 +758,10 @@ diff -NurpP --minimal linux-3.4.48/arch/s390/kernel/syscalls.S linux-3.4.48-vs2.
SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
-diff -NurpP --minimal linux-3.4.48/arch/sh/Kconfig linux-3.4.48-vs2.3.3.9/arch/sh/Kconfig
---- linux-3.4.48/arch/sh/Kconfig 2012-05-21 16:06:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sh/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
+index ff9e033..620d659 100644
+--- a/arch/sh/Kconfig
++++ b/arch/sh/Kconfig
@@ -905,6 +905,8 @@ source "fs/Kconfig"
source "arch/sh/Kconfig.debug"
@@ -729,9 +771,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sh/Kconfig linux-3.4.48-vs2.3.3.9/arch/s
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/sh/kernel/irq.c linux-3.4.48-vs2.3.3.9/arch/sh/kernel/irq.c
---- linux-3.4.48/arch/sh/kernel/irq.c 2011-07-22 09:17:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sh/kernel/irq.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c
+index a3ee919..370c557 100644
+--- a/arch/sh/kernel/irq.c
++++ b/arch/sh/kernel/irq.c
@@ -14,6 +14,7 @@
#include <linux/ftrace.h>
#include <linux/delay.h>
@@ -740,9 +783,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sh/kernel/irq.c linux-3.4.48-vs2.3.3.9/a
#include <asm/processor.h>
#include <asm/machvec.h>
#include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.4.48/arch/sparc/Kconfig linux-3.4.48-vs2.3.3.9/arch/sparc/Kconfig
---- linux-3.4.48/arch/sparc/Kconfig 2013-06-13 08:59:15.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sparc/Kconfig 2012-06-08 13:57:24.000000000 +0000
+diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
+index 76c7ccf..123bfcf 100644
+--- a/arch/sparc/Kconfig
++++ b/arch/sparc/Kconfig
@@ -599,6 +599,8 @@ source "fs/Kconfig"
source "arch/sparc/Kconfig.debug"
@@ -752,9 +796,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sparc/Kconfig linux-3.4.48-vs2.3.3.9/arc
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/sparc/include/asm/unistd.h linux-3.4.48-vs2.3.3.9/arch/sparc/include/asm/unistd.h
---- linux-3.4.48/arch/sparc/include/asm/unistd.h 2012-01-09 15:14:07.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sparc/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/sparc/include/asm/unistd.h b/arch/sparc/include/asm/unistd.h
+index c7cb0af..1f5c6d7 100644
+--- a/arch/sparc/include/asm/unistd.h
++++ b/arch/sparc/include/asm/unistd.h
@@ -335,7 +335,7 @@
#define __NR_timer_getoverrun 264
#define __NR_timer_delete 265
@@ -764,9 +809,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sparc/include/asm/unistd.h linux-3.4.48-
#define __NR_io_setup 268
#define __NR_io_destroy 269
#define __NR_io_submit 270
-diff -NurpP --minimal linux-3.4.48/arch/sparc/kernel/systbls_32.S linux-3.4.48-vs2.3.3.9/arch/sparc/kernel/systbls_32.S
---- linux-3.4.48/arch/sparc/kernel/systbls_32.S 2012-01-09 15:14:09.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sparc/kernel/systbls_32.S 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S
+index 63402f9..317e23c 100644
+--- a/arch/sparc/kernel/systbls_32.S
++++ b/arch/sparc/kernel/systbls_32.S
@@ -70,7 +70,7 @@ sys_call_table:
/*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall
/*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
@@ -776,9 +822,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sparc/kernel/systbls_32.S linux-3.4.48-v
/*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
/*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
/*280*/ .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
-diff -NurpP --minimal linux-3.4.48/arch/sparc/kernel/systbls_64.S linux-3.4.48-vs2.3.3.9/arch/sparc/kernel/systbls_64.S
---- linux-3.4.48/arch/sparc/kernel/systbls_64.S 2013-06-13 08:59:15.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/sparc/kernel/systbls_64.S 2012-06-08 13:57:24.000000000 +0000
+diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
+index 3a58e0d..a782653 100644
+--- a/arch/sparc/kernel/systbls_64.S
++++ b/arch/sparc/kernel/systbls_64.S
@@ -71,7 +71,7 @@ sys_call_table32:
/*250*/ .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys_nis_syscall
.word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
@@ -797,9 +844,10 @@ diff -NurpP --minimal linux-3.4.48/arch/sparc/kernel/systbls_64.S linux-3.4.48-v
/*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
.word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
/*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
-diff -NurpP --minimal linux-3.4.48/arch/um/Kconfig.rest linux-3.4.48-vs2.3.3.9/arch/um/Kconfig.rest
---- linux-3.4.48/arch/um/Kconfig.rest 2012-01-09 15:14:09.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/um/Kconfig.rest 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/um/Kconfig.rest b/arch/um/Kconfig.rest
+index 567eb5f..93eb92f 100644
+--- a/arch/um/Kconfig.rest
++++ b/arch/um/Kconfig.rest
@@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
source "fs/Kconfig"
@@ -809,9 +857,10 @@ diff -NurpP --minimal linux-3.4.48/arch/um/Kconfig.rest linux-3.4.48-vs2.3.3.9/a
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/x86/Kconfig linux-3.4.48-vs2.3.3.9/arch/x86/Kconfig
---- linux-3.4.48/arch/x86/Kconfig 2013-06-13 08:59:16.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/x86/Kconfig 2013-03-02 15:26:44.000000000 +0000
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index b1478f4..0784cf7 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
@@ -2221,6 +2221,8 @@ source "fs/Kconfig"
source "arch/x86/Kconfig.debug"
@@ -821,9 +870,10 @@ diff -NurpP --minimal linux-3.4.48/arch/x86/Kconfig linux-3.4.48-vs2.3.3.9/arch/
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.4.48/arch/x86/syscalls/syscall_32.tbl linux-3.4.48-vs2.3.3.9/arch/x86/syscalls/syscall_32.tbl
---- linux-3.4.48/arch/x86/syscalls/syscall_32.tbl 2012-05-21 16:06:42.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/x86/syscalls/syscall_32.tbl 2012-05-21 16:15:04.000000000 +0000
+diff --git a/arch/x86/syscalls/syscall_32.tbl b/arch/x86/syscalls/syscall_32.tbl
+index 29f9f05..60f2ef1 100644
+--- a/arch/x86/syscalls/syscall_32.tbl
++++ b/arch/x86/syscalls/syscall_32.tbl
@@ -279,7 +279,7 @@
270 i386 tgkill sys_tgkill
271 i386 utimes sys_utimes compat_sys_utimes
@@ -833,9 +883,10 @@ diff -NurpP --minimal linux-3.4.48/arch/x86/syscalls/syscall_32.tbl linux-3.4.48
274 i386 mbind sys_mbind
275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
276 i386 set_mempolicy sys_set_mempolicy
-diff -NurpP --minimal linux-3.4.48/arch/x86/syscalls/syscall_64.tbl linux-3.4.48-vs2.3.3.9/arch/x86/syscalls/syscall_64.tbl
---- linux-3.4.48/arch/x86/syscalls/syscall_64.tbl 2013-06-13 08:59:16.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/arch/x86/syscalls/syscall_64.tbl 2012-09-16 18:49:11.000000000 +0000
+diff --git a/arch/x86/syscalls/syscall_64.tbl b/arch/x86/syscalls/syscall_64.tbl
+index fd1f103..cd47b1e 100644
+--- a/arch/x86/syscalls/syscall_64.tbl
++++ b/arch/x86/syscalls/syscall_64.tbl
@@ -242,7 +242,7 @@
233 common epoll_ctl sys_epoll_ctl
234 common tgkill sys_tgkill
@@ -845,9 +896,10 @@ diff -NurpP --minimal linux-3.4.48/arch/x86/syscalls/syscall_64.tbl linux-3.4.48
237 common mbind sys_mbind
238 common set_mempolicy sys_set_mempolicy
239 common get_mempolicy sys_get_mempolicy
-diff -NurpP --minimal linux-3.4.48/drivers/block/Kconfig linux-3.4.48-vs2.3.3.9/drivers/block/Kconfig
---- linux-3.4.48/drivers/block/Kconfig 2012-05-21 16:06:43.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/block/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
+index a796407..9bbef0b 100644
+--- a/drivers/block/Kconfig
++++ b/drivers/block/Kconfig
@@ -290,6 +290,13 @@ config BLK_DEV_CRYPTOLOOP
source "drivers/block/drbd/Kconfig"
@@ -862,9 +914,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/Kconfig linux-3.4.48-vs2.3.3.9/
config BLK_DEV_NBD
tristate "Network block device support"
depends on NET
-diff -NurpP --minimal linux-3.4.48/drivers/block/Makefile linux-3.4.48-vs2.3.3.9/drivers/block/Makefile
---- linux-3.4.48/drivers/block/Makefile 2012-03-19 18:46:52.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/block/Makefile 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/block/Makefile b/drivers/block/Makefile
+index 5b79505..eb19a27 100644
+--- a/drivers/block/Makefile
++++ b/drivers/block/Makefile
@@ -35,6 +35,7 @@ obj-$(CONFIG_VIODASD) += viodasd.o
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
obj-$(CONFIG_BLK_DEV_UB) += ub.o
@@ -873,9 +926,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/Makefile linux-3.4.48-vs2.3.3.9
obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
-diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/drivers/block/loop.c
---- linux-3.4.48/drivers/block/loop.c 2013-06-13 08:59:17.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/block/loop.c 2013-06-13 09:46:37.000000000 +0000
+diff --git a/drivers/block/loop.c b/drivers/block/loop.c
+index 179b5b4..a718b5d 100644
+--- a/drivers/block/loop.c
++++ b/drivers/block/loop.c
@@ -76,6 +76,7 @@
#include <linux/sysfs.h>
#include <linux/miscdevice.h>
@@ -884,7 +938,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
#include <asm/uaccess.h>
-@@ -869,6 +870,7 @@ static int loop_set_fd(struct loop_devic
+@@ -869,6 +870,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
lo->lo_blocksize = lo_blocksize;
lo->lo_device = bdev;
lo->lo_flags = lo_flags;
@@ -892,7 +946,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
lo->lo_backing_file = file;
lo->transfer = transfer_none;
lo->ioctl = NULL;
-@@ -1001,6 +1003,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1006,6 +1008,7 @@ static int loop_clr_fd(struct loop_device *lo)
lo->lo_sizelimit = 0;
lo->lo_encrypt_key_size = 0;
lo->lo_thread = NULL;
@@ -900,7 +954,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
memset(lo->lo_file_name, 0, LO_NAME_SIZE);
-@@ -1042,7 +1045,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1049,7 +1052,7 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
if (lo->lo_encrypt_key_size &&
lo->lo_key_owner != uid &&
@@ -909,7 +963,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
return -EPERM;
if (lo->lo_state != Lo_bound)
return -ENXIO;
-@@ -1132,7 +1135,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1139,7 +1142,8 @@ loop_get_status(struct loop_device *lo, struct loop_info64 *info)
memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
info->lo_encrypt_type =
lo->lo_encryption ? lo->lo_encryption->number : 0;
@@ -919,7 +973,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
lo->lo_encrypt_key_size);
-@@ -1490,6 +1494,11 @@ static int lo_open(struct block_device *
+@@ -1497,6 +1501,11 @@ static int lo_open(struct block_device *bdev, fmode_t mode)
goto out;
}
@@ -931,9 +985,11 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/loop.c linux-3.4.48-vs2.3.3.9/d
mutex_lock(&lo->lo_ctl_mutex);
lo->lo_refcnt++;
mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.4.48/drivers/block/vroot.c linux-3.4.48-vs2.3.3.9/drivers/block/vroot.c
---- linux-3.4.48/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/block/vroot.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/block/vroot.c b/drivers/block/vroot.c
+new file mode 100644
+index 0000000..942ad53
+--- /dev/null
++++ b/drivers/block/vroot.c
@@ -0,0 +1,291 @@
+/*
+ * linux/drivers/block/vroot.c
@@ -1226,9 +1282,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/block/vroot.c linux-3.4.48-vs2.3.3.9/
+
+#endif
+
-diff -NurpP --minimal linux-3.4.48/drivers/infiniband/Kconfig linux-3.4.48-vs2.3.3.9/drivers/infiniband/Kconfig
---- linux-3.4.48/drivers/infiniband/Kconfig 2012-03-19 18:46:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/infiniband/Kconfig 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
+index eb0add3..bc760cb 100644
+--- a/drivers/infiniband/Kconfig
++++ b/drivers/infiniband/Kconfig
@@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
config INFINIBAND_ADDR_TRANS
bool
@@ -1238,10 +1295,11 @@ diff -NurpP --minimal linux-3.4.48/drivers/infiniband/Kconfig linux-3.4.48-vs2.3
default y
source "drivers/infiniband/hw/mthca/Kconfig"
-diff -NurpP --minimal linux-3.4.48/drivers/infiniband/core/addr.c linux-3.4.48-vs2.3.3.9/drivers/infiniband/core/addr.c
---- linux-3.4.48/drivers/infiniband/core/addr.c 2012-05-21 16:06:46.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/infiniband/core/addr.c 2012-05-21 16:15:04.000000000 +0000
-@@ -263,7 +263,7 @@ static int addr6_resolve(struct sockaddr
+diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
+index 6ef660c..409b035 100644
+--- a/drivers/infiniband/core/addr.c
++++ b/drivers/infiniband/core/addr.c
+@@ -263,7 +263,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
if (ipv6_addr_any(&fl6.saddr)) {
ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev,
@@ -1250,9 +1308,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/infiniband/core/addr.c linux-3.4.48-v
if (ret)
goto put;
-diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/drivers/md/dm-ioctl.c
---- linux-3.4.48/drivers/md/dm-ioctl.c 2013-06-13 08:59:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/md/dm-ioctl.c 2013-02-11 23:37:30.000000000 +0000
+diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
+index f011d4b..724cc20 100644
+--- a/drivers/md/dm-ioctl.c
++++ b/drivers/md/dm-ioctl.c
@@ -16,6 +16,7 @@
#include <linux/dm-ioctl.h>
#include <linux/hdreg.h>
@@ -1261,7 +1320,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
#include <asm/uaccess.h>
-@@ -106,7 +107,8 @@ static struct hash_cell *__get_name_cell
+@@ -106,7 +107,8 @@ static struct hash_cell *__get_name_cell(const char *str)
unsigned int h = hash_str(str);
list_for_each_entry (hc, _name_buckets + h, name_list)
@@ -1271,7 +1330,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
dm_get(hc->md);
return hc;
}
-@@ -120,7 +122,8 @@ static struct hash_cell *__get_uuid_cell
+@@ -120,7 +122,8 @@ static struct hash_cell *__get_uuid_cell(const char *str)
unsigned int h = hash_str(str);
list_for_each_entry (hc, _uuid_buckets + h, uuid_list)
@@ -1281,7 +1340,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
dm_get(hc->md);
return hc;
}
-@@ -131,13 +134,15 @@ static struct hash_cell *__get_uuid_cell
+@@ -131,13 +134,15 @@ static struct hash_cell *__get_uuid_cell(const char *str)
static struct hash_cell *__get_dev_cell(uint64_t dev)
{
struct mapped_device *md;
@@ -1299,7 +1358,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
if (!hc) {
dm_put(md);
return NULL;
-@@ -445,6 +450,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl
+@@ -445,6 +450,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl *param, size_t param_size);
static int remove_all(struct dm_ioctl *param, size_t param_size)
{
@@ -1309,7 +1368,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
dm_hash_remove_all(1);
param->data_size = 0;
return 0;
-@@ -492,6 +500,8 @@ static int list_devices(struct dm_ioctl
+@@ -492,6 +500,8 @@ static int list_devices(struct dm_ioctl *param, size_t param_size)
*/
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1318,7 +1377,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
needed += sizeof(struct dm_name_list);
needed += strlen(hc->name) + 1;
needed += ALIGN_MASK;
-@@ -515,6 +525,8 @@ static int list_devices(struct dm_ioctl
+@@ -515,6 +525,8 @@ static int list_devices(struct dm_ioctl *param, size_t param_size)
*/
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1327,7 +1386,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
if (old_nl)
old_nl->next = (uint32_t) ((void *) nl -
(void *) old_nl);
-@@ -1624,8 +1636,8 @@ static int ctl_ioctl(uint command, struc
+@@ -1624,8 +1636,8 @@ static int ctl_ioctl(uint command, struct dm_ioctl __user *user)
ioctl_fn fn = NULL;
size_t input_param_size;
@@ -1338,9 +1397,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm-ioctl.c linux-3.4.48-vs2.3.3.9/
return -EACCES;
if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/drivers/md/dm.c
---- linux-3.4.48/drivers/md/dm.c 2013-06-13 08:59:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/md/dm.c 2012-12-08 00:53:53.000000000 +0000
+diff --git a/drivers/md/dm.c b/drivers/md/dm.c
+index 32370ea..d700817 100644
+--- a/drivers/md/dm.c
++++ b/drivers/md/dm.c
@@ -19,6 +19,7 @@
#include <linux/idr.h>
#include <linux/hdreg.h>
@@ -1357,7 +1417,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/driver
unsigned long flags;
-@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device
+@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device *md)
static int dm_blk_open(struct block_device *bdev, fmode_t mode)
{
struct mapped_device *md;
@@ -1365,7 +1425,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/driver
spin_lock(&_minor_lock);
-@@ -351,18 +354,19 @@ static int dm_blk_open(struct block_devi
+@@ -351,18 +354,19 @@ static int dm_blk_open(struct block_device *bdev, fmode_t mode)
goto out;
if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1391,7 +1451,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/driver
}
static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -583,6 +587,14 @@ int dm_set_geometry(struct mapped_device
+@@ -583,6 +587,14 @@ int dm_set_geometry(struct mapped_device *md, struct hd_geometry *geo)
return 0;
}
@@ -1406,7 +1466,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/driver
/*-----------------------------------------------------------------
* CRUD START:
* A more elegant soln is in the works that uses the queue
-@@ -1876,6 +1888,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1876,6 +1888,7 @@ static struct mapped_device *alloc_dev(int minor)
INIT_LIST_HEAD(&md->uevent_list);
spin_lock_init(&md->uevent_lock);
@@ -1414,9 +1474,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.c linux-3.4.48-vs2.3.3.9/driver
md->queue = blk_alloc_queue(GFP_KERNEL);
if (!md->queue)
goto bad_queue;
-diff -NurpP --minimal linux-3.4.48/drivers/md/dm.h linux-3.4.48-vs2.3.3.9/drivers/md/dm.h
---- linux-3.4.48/drivers/md/dm.h 2012-01-09 15:14:21.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/md/dm.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/md/dm.h b/drivers/md/dm.h
+index b7dacd5..8afbf20 100644
+--- a/drivers/md/dm.h
++++ b/drivers/md/dm.h
@@ -41,6 +41,8 @@ struct dm_dev_internal {
struct dm_table;
struct dm_md_mempools;
@@ -1426,9 +1487,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/md/dm.h linux-3.4.48-vs2.3.3.9/driver
/*-----------------------------------------------------------------
* Internal table functions.
*---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/drivers/net/tun.c
---- linux-3.4.48/drivers/net/tun.c 2013-06-13 08:59:22.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/net/tun.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/drivers/net/tun.c b/drivers/net/tun.c
+index c896b8f..9766b23 100644
+--- a/drivers/net/tun.c
++++ b/drivers/net/tun.c
@@ -64,6 +64,7 @@
#include <linux/nsproxy.h>
#include <linux/virtio_net.h>
@@ -1445,7 +1507,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
struct net_device *dev;
netdev_features_t set_features;
-@@ -912,6 +914,7 @@ static void tun_setup(struct net_device
+@@ -912,6 +914,7 @@ static void tun_setup(struct net_device *dev)
tun->owner = -1;
tun->group = -1;
@@ -1453,7 +1515,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
dev->ethtool_ops = &tun_ethtool_ops;
dev->destructor = tun_free_netdev;
-@@ -1070,7 +1073,7 @@ static int tun_set_iff(struct net *net,
+@@ -1070,7 +1073,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
if (((tun->owner != -1 && cred->euid != tun->owner) ||
(tun->group != -1 && !in_egroup_p(tun->group))) &&
@@ -1462,7 +1524,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
return -EPERM;
err = security_tun_dev_attach(tun->socket.sk);
if (err < 0)
-@@ -1084,7 +1087,7 @@ static int tun_set_iff(struct net *net,
+@@ -1084,7 +1087,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
char *name;
unsigned long flags = 0;
@@ -1471,7 +1533,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
return -EPERM;
err = security_tun_dev_create();
if (err < 0)
-@@ -1154,6 +1157,9 @@ static int tun_set_iff(struct net *net,
+@@ -1154,6 +1157,9 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
sk->sk_destruct = tun_sock_destruct;
@@ -1481,7 +1543,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
err = tun_attach(tun, file);
if (err < 0)
goto failed;
-@@ -1337,6 +1343,16 @@ static long __tun_chr_ioctl(struct file
+@@ -1337,6 +1343,16 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group);
break;
@@ -1498,9 +1560,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/net/tun.c linux-3.4.48-vs2.3.3.9/driv
case TUNSETLINK:
/* Only allow setting the type when the interface is down */
if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.4.48/drivers/tty/sysrq.c linux-3.4.48-vs2.3.3.9/drivers/tty/sysrq.c
---- linux-3.4.48/drivers/tty/sysrq.c 2012-05-21 16:07:16.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/tty/sysrq.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
+index 05728894..00e0d96 100644
+--- a/drivers/tty/sysrq.c
++++ b/drivers/tty/sysrq.c
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/input.h>
@@ -1509,7 +1572,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/sysrq.c linux-3.4.48-vs2.3.3.9/dr
#include <asm/ptrace.h>
#include <asm/irq_regs.h>
-@@ -398,6 +399,21 @@ static struct sysrq_key_op sysrq_unrt_op
+@@ -398,6 +399,21 @@ static struct sysrq_key_op sysrq_unrt_op = {
.enable_mask = SYSRQ_ENABLE_RTNICE,
};
@@ -1531,7 +1594,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/sysrq.c linux-3.4.48-vs2.3.3.9/dr
/* Key Operations table and lock */
static DEFINE_SPINLOCK(sysrq_key_table_lock);
-@@ -452,7 +468,11 @@ static struct sysrq_key_op *sysrq_key_ta
+@@ -452,7 +468,11 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
NULL, /* v */
&sysrq_showstate_blocked_op, /* w */
/* x: May be registered on ppc/powerpc for xmon */
@@ -1543,7 +1606,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/sysrq.c linux-3.4.48-vs2.3.3.9/dr
/* y: May be registered on sparc64 for global register dump */
NULL, /* y */
&sysrq_ftrace_dump_op, /* z */
-@@ -467,6 +487,8 @@ static int sysrq_key_table_key2index(int
+@@ -467,6 +487,8 @@ static int sysrq_key_table_key2index(int key)
retval = key - '0';
else if ((key >= 'a') && (key <= 'z'))
retval = key + 10 - 'a';
@@ -1552,9 +1615,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/sysrq.c linux-3.4.48-vs2.3.3.9/dr
else
retval = -1;
return retval;
-diff -NurpP --minimal linux-3.4.48/drivers/tty/tty_io.c linux-3.4.48-vs2.3.3.9/drivers/tty/tty_io.c
---- linux-3.4.48/drivers/tty/tty_io.c 2012-05-21 16:07:16.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/drivers/tty/tty_io.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
+index b28d635..3cf9232 100644
+--- a/drivers/tty/tty_io.c
++++ b/drivers/tty/tty_io.c
@@ -104,6 +104,7 @@
#include <linux/kmod.h>
@@ -1563,7 +1627,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/tty_io.c linux-3.4.48-vs2.3.3.9/d
#undef TTY_DEBUG_HANGUP
-@@ -2118,7 +2119,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2128,7 +2129,8 @@ static int tiocsti(struct tty_struct *tty, char __user *p)
char ch, mbz = 0;
struct tty_ldisc *ld;
@@ -1573,7 +1637,7 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/tty_io.c linux-3.4.48-vs2.3.3.9/d
return -EPERM;
if (get_user(ch, p))
return -EFAULT;
-@@ -2406,6 +2408,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2416,6 +2418,7 @@ static int tiocspgrp(struct tty_struct *tty, struct tty_struct *real_tty, pid_t
return -ENOTTY;
if (get_user(pgrp_nr, p))
return -EFAULT;
@@ -1581,9 +1645,10 @@ diff -NurpP --minimal linux-3.4.48/drivers/tty/tty_io.c linux-3.4.48-vs2.3.3.9/d
if (pgrp_nr < 0)
return -EINVAL;
rcu_read_lock();
-diff -NurpP --minimal linux-3.4.48/fs/attr.c linux-3.4.48-vs2.3.3.9/fs/attr.c
---- linux-3.4.48/fs/attr.c 2013-06-13 08:59:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/attr.c 2012-06-28 14:45:07.000000000 +0000
+diff --git a/fs/attr.c b/fs/attr.c
+index d94d1b6..465c795 100644
+--- a/fs/attr.c
++++ b/fs/attr.c
@@ -14,6 +14,9 @@
#include <linux/fcntl.h>
#include <linux/security.h>
@@ -1594,7 +1659,7 @@ diff -NurpP --minimal linux-3.4.48/fs/attr.c linux-3.4.48-vs2.3.3.9/fs/attr.c
/**
* inode_change_ok - check if attribute changes to an inode are allowed
-@@ -74,6 +77,10 @@ int inode_change_ok(const struct inode *
+@@ -74,6 +77,10 @@ int inode_change_ok(const struct inode *inode, struct iattr *attr)
return -EPERM;
}
@@ -1605,7 +1670,7 @@ diff -NurpP --minimal linux-3.4.48/fs/attr.c linux-3.4.48-vs2.3.3.9/fs/attr.c
return 0;
}
EXPORT_SYMBOL(inode_change_ok);
-@@ -144,6 +151,8 @@ void setattr_copy(struct inode *inode, c
+@@ -144,6 +151,8 @@ void setattr_copy(struct inode *inode, const struct iattr *attr)
inode->i_uid = attr->ia_uid;
if (ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -1614,7 +1679,7 @@ diff -NurpP --minimal linux-3.4.48/fs/attr.c linux-3.4.48-vs2.3.3.9/fs/attr.c
if (ia_valid & ATTR_ATIME)
inode->i_atime = timespec_trunc(attr->ia_atime,
inode->i_sb->s_time_gran);
-@@ -171,7 +180,8 @@ int notify_change(struct dentry * dentry
+@@ -171,7 +180,8 @@ int notify_change(struct dentry * dentry, struct iattr * attr)
struct timespec now;
unsigned int ia_valid = attr->ia_valid;
@@ -1624,9 +1689,10 @@ diff -NurpP --minimal linux-3.4.48/fs/attr.c linux-3.4.48-vs2.3.3.9/fs/attr.c
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
return -EPERM;
}
-diff -NurpP --minimal linux-3.4.48/fs/block_dev.c linux-3.4.48-vs2.3.3.9/fs/block_dev.c
---- linux-3.4.48/fs/block_dev.c 2013-06-13 08:59:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/block_dev.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/block_dev.c b/fs/block_dev.c
+index 319d9c7..98a5360 100644
+--- a/fs/block_dev.c
++++ b/fs/block_dev.c
@@ -27,6 +27,7 @@
#include <linux/namei.h>
#include <linux/log2.h>
@@ -1635,7 +1701,7 @@ diff -NurpP --minimal linux-3.4.48/fs/block_dev.c linux-3.4.48-vs2.3.3.9/fs/bloc
#include <asm/uaccess.h>
#include "internal.h"
-@@ -581,6 +582,7 @@ struct block_device *bdget(dev_t dev)
+@@ -588,6 +589,7 @@ struct block_device *bdget(dev_t dev)
bdev->bd_invalidated = 0;
inode->i_mode = S_IFBLK;
inode->i_rdev = dev;
@@ -1643,7 +1709,7 @@ diff -NurpP --minimal linux-3.4.48/fs/block_dev.c linux-3.4.48-vs2.3.3.9/fs/bloc
inode->i_bdev = bdev;
inode->i_data.a_ops = &def_blk_aops;
mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -627,6 +629,11 @@ EXPORT_SYMBOL(bdput);
+@@ -635,6 +637,11 @@ EXPORT_SYMBOL(bdput);
static struct block_device *bd_acquire(struct inode *inode)
{
struct block_device *bdev;
@@ -1655,7 +1721,7 @@ diff -NurpP --minimal linux-3.4.48/fs/block_dev.c linux-3.4.48-vs2.3.3.9/fs/bloc
spin_lock(&bdev_lock);
bdev = inode->i_bdev;
-@@ -637,7 +644,7 @@ static struct block_device *bd_acquire(s
+@@ -645,7 +652,7 @@ static struct block_device *bd_acquire(struct inode *inode)
}
spin_unlock(&bdev_lock);
@@ -1664,9 +1730,10 @@ diff -NurpP --minimal linux-3.4.48/fs/block_dev.c linux-3.4.48-vs2.3.3.9/fs/bloc
if (bdev) {
spin_lock(&bdev_lock);
if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.4.48/fs/btrfs/ctree.h linux-3.4.48-vs2.3.3.9/fs/btrfs/ctree.h
---- linux-3.4.48/fs/btrfs/ctree.h 2012-05-21 16:07:18.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/btrfs/ctree.h 2012-05-21 16:15:04.000000000 +0000
+diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
+index 8fd7233..7094fc9 100644
+--- a/fs/btrfs/ctree.h
++++ b/fs/btrfs/ctree.h
@@ -668,11 +668,14 @@ struct btrfs_inode_item {
/* modification sequence number for NFS */
__le64 sequence;
@@ -1692,7 +1759,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ctree.h linux-3.4.48-vs2.3.3.9/fs/bt
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
#define btrfs_test_opt(root, opt) ((root)->fs_info->mount_opt & \
-@@ -1762,6 +1767,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -1762,6 +1767,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, struct btrfs_inode_item, block_group, 64);
BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32);
BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32);
BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32);
@@ -1700,7 +1767,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ctree.h linux-3.4.48-vs2.3.3.9/fs/bt
BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32);
BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
-@@ -1815,6 +1821,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -1815,6 +1821,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct btrfs_extent_item, flags, 64);
BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
@@ -1711,7 +1778,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ctree.h linux-3.4.48-vs2.3.3.9/fs/bt
BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
-@@ -2959,6 +2969,7 @@ extern const struct dentry_operations bt
+@@ -2959,6 +2969,7 @@ extern const struct dentry_operations btrfs_dentry_operations;
long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
void btrfs_update_iflags(struct inode *inode);
void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
@@ -1719,9 +1786,10 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ctree.h linux-3.4.48-vs2.3.3.9/fs/bt
int btrfs_defrag_file(struct inode *inode, struct file *file,
struct btrfs_ioctl_defrag_range_args *range,
u64 newer_than, unsigned long max_pages);
-diff -NurpP --minimal linux-3.4.48/fs/btrfs/disk-io.c linux-3.4.48-vs2.3.3.9/fs/btrfs/disk-io.c
---- linux-3.4.48/fs/btrfs/disk-io.c 2012-05-21 16:07:18.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/btrfs/disk-io.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
+index a7ffc88..e664ffd 100644
+--- a/fs/btrfs/disk-io.c
++++ b/fs/btrfs/disk-io.c
@@ -2083,6 +2083,9 @@ int open_ctree(struct super_block *sb,
goto fail_alloc;
}
@@ -1732,9 +1800,10 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/disk-io.c linux-3.4.48-vs2.3.3.9/fs/
features = btrfs_super_incompat_flags(disk_super) &
~BTRFS_FEATURE_INCOMPAT_SUPP;
if (features) {
-diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/btrfs/inode.c
---- linux-3.4.48/fs/btrfs/inode.c 2013-06-13 08:59:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/btrfs/inode.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
+index 9e51325..c144755 100644
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
@@ -39,6 +39,7 @@
#include <linux/slab.h>
#include <linux/ratelimit.h>
@@ -1743,7 +1812,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/bt
#include "compat.h"
#include "ctree.h"
#include "disk-io.h"
-@@ -2468,6 +2469,8 @@ static void btrfs_read_locked_inode(stru
+@@ -2482,6 +2483,8 @@ static void btrfs_read_locked_inode(struct inode *inode)
struct btrfs_key location;
int maybe_acls;
u32 rdev;
@@ -1752,7 +1821,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/bt
int ret;
bool filled = false;
-@@ -2495,8 +2498,13 @@ static void btrfs_read_locked_inode(stru
+@@ -2509,8 +2512,13 @@ static void btrfs_read_locked_inode(struct inode *inode)
struct btrfs_inode_item);
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
set_nlink(inode, btrfs_inode_nlink(leaf, inode_item));
@@ -1768,7 +1837,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/bt
btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
tspec = btrfs_inode_atime(inode_item);
-@@ -2574,8 +2582,14 @@ static void fill_inode_item(struct btrfs
+@@ -2588,8 +2596,14 @@ static void fill_inode_item(struct btrfs_trans_handle *trans,
struct btrfs_inode_item *item,
struct inode *inode)
{
@@ -1785,7 +1854,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/bt
btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size);
btrfs_set_inode_mode(leaf, item, inode->i_mode);
btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
-@@ -7576,11 +7590,13 @@ static const struct inode_operations btr
+@@ -7590,11 +7604,13 @@ static const struct inode_operations btrfs_dir_inode_operations = {
.listxattr = btrfs_listxattr,
.removexattr = btrfs_removexattr,
.permission = btrfs_permission,
@@ -1799,10 +1868,11 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/inode.c linux-3.4.48-vs2.3.3.9/fs/bt
.get_acl = btrfs_get_acl,
};
-diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/btrfs/ioctl.c
---- linux-3.4.48/fs/btrfs/ioctl.c 2012-05-21 16:07:19.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/btrfs/ioctl.c 2012-05-21 16:15:04.000000000 +0000
-@@ -71,10 +71,13 @@ static unsigned int btrfs_flags_to_ioctl
+diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
+index 3a65f43..4b171c2 100644
+--- a/fs/btrfs/ioctl.c
++++ b/fs/btrfs/ioctl.c
+@@ -71,10 +71,13 @@ static unsigned int btrfs_flags_to_ioctl(unsigned int flags)
{
unsigned int iflags = 0;
@@ -1818,7 +1888,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
if (flags & BTRFS_INODE_APPEND)
iflags |= FS_APPEND_FL;
if (flags & BTRFS_INODE_NODUMP)
-@@ -91,28 +94,78 @@ static unsigned int btrfs_flags_to_ioctl
+@@ -91,28 +94,78 @@ static unsigned int btrfs_flags_to_ioctl(unsigned int flags)
else if (flags & BTRFS_INODE_NOCOMPRESS)
iflags |= FS_NOCOMP_FL;
@@ -1901,7 +1971,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
}
/*
-@@ -128,6 +181,7 @@ void btrfs_inherit_iflags(struct inode *
+@@ -128,6 +181,7 @@ void btrfs_inherit_iflags(struct inode *inode, struct inode *dir)
return;
flags = BTRFS_I(dir)->flags;
@@ -1909,7 +1979,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
if (flags & BTRFS_INODE_NOCOMPRESS) {
BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS;
-@@ -143,6 +197,30 @@ void btrfs_inherit_iflags(struct inode *
+@@ -143,6 +197,30 @@ void btrfs_inherit_iflags(struct inode *inode, struct inode *dir)
btrfs_update_iflags(inode);
}
@@ -1940,7 +2010,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
{
struct btrfs_inode *ip = BTRFS_I(file->f_path.dentry->d_inode);
-@@ -199,7 +277,8 @@ static int btrfs_ioctl_setflags(struct f
+@@ -199,7 +277,8 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
flags = btrfs_mask_flags(inode->i_mode, flags);
oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1950,7 +2020,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
if (!capable(CAP_LINUX_IMMUTABLE)) {
ret = -EPERM;
goto out_unlock;
-@@ -210,14 +289,19 @@ static int btrfs_ioctl_setflags(struct f
+@@ -210,14 +289,19 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
if (ret)
goto out_unlock;
@@ -1974,9 +2044,10 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/bt
if (flags & FS_APPEND_FL)
ip->flags |= BTRFS_INODE_APPEND;
else
-diff -NurpP --minimal linux-3.4.48/fs/btrfs/super.c linux-3.4.48-vs2.3.3.9/fs/btrfs/super.c
---- linux-3.4.48/fs/btrfs/super.c 2012-05-21 16:07:19.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/btrfs/super.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
+index c5f8fca..847062b 100644
+--- a/fs/btrfs/super.c
++++ b/fs/btrfs/super.c
@@ -279,7 +279,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
Opt_check_integrity, Opt_check_integrity_including_extent_data,
@@ -1996,7 +2067,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/super.c linux-3.4.48-vs2.3.3.9/fs/bt
{Opt_err, NULL},
};
-@@ -564,6 +567,22 @@ int btrfs_parse_options(struct btrfs_roo
+@@ -564,6 +567,22 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
goto out;
}
break;
@@ -2019,7 +2090,7 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/super.c linux-3.4.48-vs2.3.3.9/fs/bt
case Opt_err:
printk(KERN_INFO "btrfs: unrecognized mount option "
"'%s'\n", p);
-@@ -1137,6 +1156,12 @@ static int btrfs_remount(struct super_bl
+@@ -1137,6 +1156,12 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data)
goto restore;
}
@@ -2032,9 +2103,10 @@ diff -NurpP --minimal linux-3.4.48/fs/btrfs/super.c linux-3.4.48-vs2.3.3.9/fs/bt
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
return 0;
-diff -NurpP --minimal linux-3.4.48/fs/char_dev.c linux-3.4.48-vs2.3.3.9/fs/char_dev.c
---- linux-3.4.48/fs/char_dev.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/char_dev.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/fs/char_dev.c b/fs/char_dev.c
+index 3f152b9..b103570 100644
+--- a/fs/char_dev.c
++++ b/fs/char_dev.c
@@ -21,6 +21,8 @@
#include <linux/mutex.h>
#include <linux/backing-dev.h>
@@ -2044,7 +2116,7 @@ diff -NurpP --minimal linux-3.4.48/fs/char_dev.c linux-3.4.48-vs2.3.3.9/fs/char_
#include "internal.h"
-@@ -371,14 +373,21 @@ static int chrdev_open(struct inode *ino
+@@ -371,14 +373,21 @@ static int chrdev_open(struct inode *inode, struct file *filp)
struct cdev *p;
struct cdev *new = NULL;
int ret = 0;
@@ -2067,9 +2139,10 @@ diff -NurpP --minimal linux-3.4.48/fs/char_dev.c linux-3.4.48-vs2.3.3.9/fs/char_
if (!kobj)
return -ENXIO;
new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.4.48/fs/dcache.c linux-3.4.48-vs2.3.3.9/fs/dcache.c
---- linux-3.4.48/fs/dcache.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/dcache.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/dcache.c b/fs/dcache.c
+index e498de2..fb162ec 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
@@ -37,6 +37,7 @@
#include <linux/rculist_bl.h>
#include <linux/prefetch.h>
@@ -2095,7 +2168,7 @@ diff -NurpP --minimal linux-3.4.48/fs/dcache.c linux-3.4.48-vs2.3.3.9/fs/dcache.
}
static inline void __dget(struct dentry *dentry)
-@@ -1258,6 +1262,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1260,6 +1264,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
struct dentry *dentry;
char *dname;
@@ -2105,7 +2178,7 @@ diff -NurpP --minimal linux-3.4.48/fs/dcache.c linux-3.4.48-vs2.3.3.9/fs/dcache.
dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
if (!dentry)
return NULL;
-@@ -1280,6 +1287,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1282,6 +1289,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
dentry->d_count = 1;
dentry->d_flags = 0;
@@ -2113,7 +2186,7 @@ diff -NurpP --minimal linux-3.4.48/fs/dcache.c linux-3.4.48-vs2.3.3.9/fs/dcache.
spin_lock_init(&dentry->d_lock);
seqcount_init(&dentry->d_seq);
dentry->d_inode = NULL;
-@@ -1941,6 +1949,7 @@ struct dentry *__d_lookup(struct dentry
+@@ -1943,6 +1951,7 @@ struct dentry *__d_lookup(struct dentry *parent, struct qstr *name)
}
dentry->d_count++;
@@ -2121,9 +2194,10 @@ diff -NurpP --minimal linux-3.4.48/fs/dcache.c linux-3.4.48-vs2.3.3.9/fs/dcache.
found = dentry;
spin_unlock(&dentry->d_lock);
break;
-diff -NurpP --minimal linux-3.4.48/fs/devpts/inode.c linux-3.4.48-vs2.3.3.9/fs/devpts/inode.c
---- linux-3.4.48/fs/devpts/inode.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/devpts/inode.c 2012-05-21 16:15:04.000000000 +0000
+diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
+index 10f5e0b..df81cf1 100644
+--- a/fs/devpts/inode.c
++++ b/fs/devpts/inode.c
@@ -25,6 +25,7 @@
#include <linux/parser.h>
#include <linux/fsnotify.h>
@@ -2154,7 +2228,7 @@ diff -NurpP --minimal linux-3.4.48/fs/devpts/inode.c linux-3.4.48-vs2.3.3.9/fs/d
/*
* sysctl support for setting limits on the number of Unix98 ptys allocated.
* Otherwise one can eat up all kernel memory by opening /dev/ptmx repeatedly.
-@@ -328,6 +344,34 @@ static int devpts_show_options(struct se
+@@ -328,6 +344,34 @@ static int devpts_show_options(struct seq_file *seq, struct dentry *root)
return 0;
}
@@ -2189,7 +2263,7 @@ diff -NurpP --minimal linux-3.4.48/fs/devpts/inode.c linux-3.4.48-vs2.3.3.9/fs/d
static const struct super_operations devpts_sops = {
.statfs = simple_statfs,
.remount_fs = devpts_remount,
-@@ -371,8 +415,10 @@ devpts_fill_super(struct super_block *s,
+@@ -371,8 +415,10 @@ devpts_fill_super(struct super_block *s, void *data, int silent)
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
inode->i_op = &simple_dir_inode_operations;
@@ -2201,7 +2275,7 @@ diff -NurpP --minimal linux-3.4.48/fs/devpts/inode.c linux-3.4.48-vs2.3.3.9/fs/d
s->s_root = d_make_root(inode);
if (s->s_root)
-@@ -564,6 +610,9 @@ int devpts_pty_new(struct inode *ptmx_in
+@@ -564,6 +610,9 @@ int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty)
inode->i_gid = opts->setgid ? opts->gid : current_fsgid();
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
init_special_inode(inode, S_IFCHR|opts->mode, device);
@@ -2211,10 +2285,11 @@ diff -NurpP --minimal linux-3.4.48/fs/devpts/inode.c linux-3.4.48-vs2.3.3.9/fs/d
inode->i_private = tty;
tty->driver_data = inode;
-diff -NurpP --minimal linux-3.4.48/fs/ext2/balloc.c linux-3.4.48-vs2.3.3.9/fs/ext2/balloc.c
---- linux-3.4.48/fs/ext2/balloc.c 2012-01-09 15:14:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/balloc.c 2012-05-21 16:15:04.000000000 +0000
-@@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block
+diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
+index a8cbe1b..1469e14 100644
+--- a/fs/ext2/balloc.c
++++ b/fs/ext2/balloc.c
+@@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block *sb, int group,
start = 0;
end = EXT2_BLOCKS_PER_GROUP(sb);
}
@@ -2222,9 +2297,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/balloc.c linux-3.4.48-vs2.3.3.9/fs/ex
BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
repeat:
-diff -NurpP --minimal linux-3.4.48/fs/ext2/ext2.h linux-3.4.48-vs2.3.3.9/fs/ext2/ext2.h
---- linux-3.4.48/fs/ext2/ext2.h 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/ext2.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h
+index 0b2b4db..0818565 100644
+--- a/fs/ext2/ext2.h
++++ b/fs/ext2/ext2.h
@@ -244,8 +244,12 @@ struct ext2_group_desc
#define EXT2_NOTAIL_FL FS_NOTAIL_FL /* file tail should not be merged */
#define EXT2_DIRSYNC_FL FS_DIRSYNC_FL /* dirsync behaviour (directories only) */
@@ -2264,7 +2340,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ext2.h linux-3.4.48-vs2.3.3.9/fs/ext2
#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
-@@ -757,6 +764,7 @@ extern void ext2_set_inode_flags(struct
+@@ -757,6 +764,7 @@ extern void ext2_set_inode_flags(struct inode *inode);
extern void ext2_get_inode_flags(struct ext2_inode_info *);
extern int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
u64 start, u64 len);
@@ -2272,18 +2348,20 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ext2.h linux-3.4.48-vs2.3.3.9/fs/ext2
/* ioctl.c */
extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.4.48/fs/ext2/file.c linux-3.4.48-vs2.3.3.9/fs/ext2/file.c
---- linux-3.4.48/fs/ext2/file.c 2011-10-24 16:45:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/file.c 2012-05-21 16:15:05.000000000 +0000
-@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_
+diff --git a/fs/ext2/file.c b/fs/ext2/file.c
+index a5b3a5d..e86e897 100644
+--- a/fs/ext2/file.c
++++ b/fs/ext2/file.c
+@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_inode_operations = {
.setattr = ext2_setattr,
.get_acl = ext2_get_acl,
.fiemap = ext2_fiemap,
+ .sync_flags = ext2_sync_flags,
};
-diff -NurpP --minimal linux-3.4.48/fs/ext2/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ext2/ialloc.c
---- linux-3.4.48/fs/ext2/ialloc.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/ialloc.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c
+index 8b15cf8..ae251a8 100644
+--- a/fs/ext2/ialloc.c
++++ b/fs/ext2/ialloc.c
@@ -17,6 +17,7 @@
#include <linux/backing-dev.h>
#include <linux/buffer_head.h>
@@ -2300,9 +2378,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ex
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext2/inode.c
---- linux-3.4.48/fs/ext2/inode.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/inode.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
+index 740cad8..24137f6 100644
+--- a/fs/ext2/inode.c
++++ b/fs/ext2/inode.c
@@ -31,6 +31,7 @@
#include <linux/mpage.h>
#include <linux/fiemap.h>
@@ -2311,7 +2390,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext2.h"
#include "acl.h"
#include "xip.h"
-@@ -1162,7 +1163,7 @@ static void ext2_truncate_blocks(struct
+@@ -1162,7 +1163,7 @@ static void ext2_truncate_blocks(struct inode *inode, loff_t offset)
return;
if (ext2_inode_is_fast_symlink(inode))
return;
@@ -2320,7 +2399,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
return;
__ext2_truncate_blocks(inode, offset);
}
-@@ -1253,36 +1254,61 @@ void ext2_set_inode_flags(struct inode *
+@@ -1253,36 +1254,61 @@ void ext2_set_inode_flags(struct inode *inode)
{
unsigned int flags = EXT2_I(inode)->i_flags;
@@ -2389,7 +2468,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
}
struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
-@@ -1292,6 +1318,8 @@ struct inode *ext2_iget (struct super_bl
+@@ -1292,6 +1318,8 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
struct ext2_inode *raw_inode;
struct inode *inode;
long ret = -EIO;
@@ -2398,7 +2477,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
int n;
inode = iget_locked(sb, ino);
-@@ -1310,12 +1338,16 @@ struct inode *ext2_iget (struct super_bl
+@@ -1310,12 +1338,16 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
}
inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2419,7 +2498,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
inode->i_size = le32_to_cpu(raw_inode->i_size);
inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
-@@ -1413,8 +1445,8 @@ static int __ext2_write_inode(struct ino
+@@ -1413,8 +1445,8 @@ static int __ext2_write_inode(struct inode *inode, int do_sync)
struct ext2_inode_info *ei = EXT2_I(inode);
struct super_block *sb = inode->i_sb;
ino_t ino = inode->i_ino;
@@ -2430,7 +2509,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
struct buffer_head * bh;
struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
int n;
-@@ -1450,6 +1482,9 @@ static int __ext2_write_inode(struct ino
+@@ -1450,6 +1482,9 @@ static int __ext2_write_inode(struct inode *inode, int do_sync)
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
@@ -2440,7 +2519,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
raw_inode->i_size = cpu_to_le32(inode->i_size);
raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
-@@ -1530,7 +1565,8 @@ int ext2_setattr(struct dentry *dentry,
+@@ -1530,7 +1565,8 @@ int ext2_setattr(struct dentry *dentry, struct iattr *iattr)
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
@@ -2450,9 +2529,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
error = dquot_transfer(inode, iattr);
if (error)
return error;
-diff -NurpP --minimal linux-3.4.48/fs/ext2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext2/ioctl.c
---- linux-3.4.48/fs/ext2/ioctl.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/ioctl.c b/fs/ext2/ioctl.c
+index 2de655f..f1534ec1 100644
+--- a/fs/ext2/ioctl.c
++++ b/fs/ext2/ioctl.c
@@ -17,6 +17,16 @@
#include <asm/uaccess.h>
@@ -2470,7 +2550,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_dentry->d_inode;
-@@ -51,6 +61,11 @@ long ext2_ioctl(struct file *filp, unsig
+@@ -51,6 +61,11 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
flags = ext2_mask_flags(inode->i_mode, flags);
@@ -2482,7 +2562,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
mutex_lock(&inode->i_mutex);
/* Is it quota file? Do not allow user to mess with it */
if (IS_NOQUOTA(inode)) {
-@@ -66,7 +81,9 @@ long ext2_ioctl(struct file *filp, unsig
+@@ -66,7 +81,9 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
*
* This test looks nicer. Thanks to Pauline Middelink
*/
@@ -2493,7 +2573,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
if (!capable(CAP_LINUX_IMMUTABLE)) {
mutex_unlock(&inode->i_mutex);
ret = -EPERM;
-@@ -74,7 +91,7 @@ long ext2_ioctl(struct file *filp, unsig
+@@ -74,7 +91,7 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
}
}
@@ -2502,9 +2582,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-3.4.48/fs/ext2/namei.c linux-3.4.48-vs2.3.3.9/fs/ext2/namei.c
---- linux-3.4.48/fs/ext2/namei.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c
+index dffb865..e0509e7 100644
+--- a/fs/ext2/namei.c
++++ b/fs/ext2/namei.c
@@ -32,6 +32,7 @@
#include <linux/pagemap.h>
@@ -2513,7 +2594,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext2.h"
#include "xattr.h"
#include "acl.h"
-@@ -73,6 +74,7 @@ static struct dentry *ext2_lookup(struct
+@@ -73,6 +74,7 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, str
(unsigned long) ino);
return ERR_PTR(-EIO);
}
@@ -2521,7 +2602,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
}
return d_splice_alias(inode, dentry);
}
-@@ -397,6 +399,7 @@ const struct inode_operations ext2_dir_i
+@@ -397,6 +399,7 @@ const struct inode_operations ext2_dir_inode_operations = {
.removexattr = generic_removexattr,
#endif
.setattr = ext2_setattr,
@@ -2529,9 +2610,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
.get_acl = ext2_get_acl,
};
-diff -NurpP --minimal linux-3.4.48/fs/ext2/super.c linux-3.4.48-vs2.3.3.9/fs/ext2/super.c
---- linux-3.4.48/fs/ext2/super.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext2/super.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext2/super.c b/fs/ext2/super.c
+index e1025c7..815078c 100644
+--- a/fs/ext2/super.c
++++ b/fs/ext2/super.c
@@ -393,7 +393,8 @@ enum {
Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
@@ -2552,7 +2634,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/super.c linux-3.4.48-vs2.3.3.9/fs/ext
{Opt_grpquota, "grpquota"},
{Opt_ignore, "noquota"},
{Opt_quota, "quota"},
-@@ -491,6 +495,20 @@ static int parse_options(char *options,
+@@ -491,6 +495,20 @@ static int parse_options(char *options, struct super_block *sb)
case Opt_nouid32:
set_opt (sbi->s_mount_opt, NO_UID32);
break;
@@ -2573,7 +2655,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/super.c linux-3.4.48-vs2.3.3.9/fs/ext
case Opt_nocheck:
clear_opt (sbi->s_mount_opt, CHECK);
break;
-@@ -849,6 +867,8 @@ static int ext2_fill_super(struct super_
+@@ -849,6 +867,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
if (!parse_options((char *) data, sb))
goto failed_mount;
@@ -2582,11 +2664,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/super.c linux-3.4.48-vs2.3.3.9/fs/ext
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
MS_POSIXACL : 0);
-@@ -1222,6 +1242,14 @@ static int ext2_remount (struct super_bl
- err = -EINVAL;
+@@ -1223,6 +1243,14 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
goto restore_opts;
}
-+
+
+ if ((sbi->s_mount_opt & EXT2_MOUNT_TAGGED) &&
+ !(sb->s_flags & MS_TAGGED)) {
+ printk("EXT2-fs: %s: tagging not permitted on remount.\n",
@@ -2594,12 +2675,14 @@ diff -NurpP --minimal linux-3.4.48/fs/ext2/super.c linux-3.4.48-vs2.3.3.9/fs/ext
+ err = -EINVAL;
+ goto restore_opts;
+ }
-
++
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.4.48/fs/ext3/ext3.h linux-3.4.48-vs2.3.3.9/fs/ext3/ext3.h
---- linux-3.4.48/fs/ext3/ext3.h 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/ext3.h 2012-05-21 17:13:31.000000000 +0000
+
+diff --git a/fs/ext3/ext3.h b/fs/ext3/ext3.h
+index b6515fd..c528674 100644
+--- a/fs/ext3/ext3.h
++++ b/fs/ext3/ext3.h
@@ -151,10 +151,14 @@ struct ext3_group_desc
#define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */
#define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */
@@ -2643,7 +2726,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ext3.h linux-3.4.48-vs2.3.3.9/fs/ext3
/* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
#ifndef _LINUX_EXT2_FS_H
-@@ -1057,6 +1064,7 @@ extern void ext3_get_inode_flags(struct
+@@ -1057,6 +1064,7 @@ extern void ext3_get_inode_flags(struct ext3_inode_info *);
extern void ext3_set_aops(struct inode *inode);
extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
u64 start, u64 len);
@@ -2651,19 +2734,21 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ext3.h linux-3.4.48-vs2.3.3.9/fs/ext3
/* ioctl.c */
extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.4.48/fs/ext3/file.c linux-3.4.48-vs2.3.3.9/fs/ext3/file.c
---- linux-3.4.48/fs/ext3/file.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/file.c 2012-05-21 16:15:05.000000000 +0000
-@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
+diff --git a/fs/ext3/file.c b/fs/ext3/file.c
+index 25cb413..85b15ad 100644
+--- a/fs/ext3/file.c
++++ b/fs/ext3/file.c
+@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_inode_operations = {
#endif
.get_acl = ext3_get_acl,
.fiemap = ext3_fiemap,
+ .sync_flags = ext3_sync_flags,
};
-diff -NurpP --minimal linux-3.4.48/fs/ext3/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ext3/ialloc.c
---- linux-3.4.48/fs/ext3/ialloc.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/ialloc.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c
+index e3c39e4..babbe82 100644
+--- a/fs/ext3/ialloc.c
++++ b/fs/ext3/ialloc.c
@@ -14,6 +14,7 @@
#include <linux/quotaops.h>
@@ -2680,9 +2765,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ex
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext3/inode.c
---- linux-3.4.48/fs/ext3/inode.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/inode.c 2012-09-16 18:49:11.000000000 +0000
+diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
+index aad0f39..b847ded 100644
+--- a/fs/ext3/inode.c
++++ b/fs/ext3/inode.c
@@ -27,6 +27,8 @@
#include <linux/writeback.h>
#include <linux/mpage.h>
@@ -2692,7 +2778,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext3.h"
#include "xattr.h"
#include "acl.h"
-@@ -2848,36 +2850,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2849,36 +2851,60 @@ void ext3_set_inode_flags(struct inode *inode)
{
unsigned int flags = EXT3_I(inode)->i_flags;
@@ -2760,7 +2846,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
}
struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2891,6 +2917,8 @@ struct inode *ext3_iget(struct super_blo
+@@ -2892,6 +2918,8 @@ struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
transaction_t *transaction;
long ret;
int block;
@@ -2769,7 +2855,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
inode = iget_locked(sb, ino);
if (!inode)
-@@ -2907,12 +2935,16 @@ struct inode *ext3_iget(struct super_blo
+@@ -2908,12 +2936,16 @@ struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
bh = iloc.bh;
raw_inode = ext3_raw_inode(&iloc);
inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2790,7 +2876,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
inode->i_size = le32_to_cpu(raw_inode->i_size);
inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
-@@ -3067,6 +3099,8 @@ static int ext3_do_update_inode(handle_t
+@@ -3068,6 +3100,8 @@ static int ext3_do_update_inode(handle_t *handle,
struct ext3_inode *raw_inode = ext3_raw_inode(iloc);
struct ext3_inode_info *ei = EXT3_I(inode);
struct buffer_head *bh = iloc->bh;
@@ -2799,7 +2885,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
int err = 0, rc, block;
int need_datasync = 0;
__le32 disksize;
-@@ -3083,29 +3117,32 @@ again:
+@@ -3084,29 +3118,32 @@ again:
ext3_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
if(!(test_opt(inode->i_sb, NO_UID32))) {
@@ -2838,7 +2924,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
disksize = cpu_to_le32(ei->i_disksize);
if (disksize != raw_inode->i_size) {
-@@ -3274,7 +3311,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3275,7 +3312,8 @@ int ext3_setattr(struct dentry *dentry, struct iattr *attr)
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -2848,7 +2934,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -3296,6 +3334,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3297,6 +3335,8 @@ int ext3_setattr(struct dentry *dentry, struct iattr *attr)
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -2857,9 +2943,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
error = ext3_mark_inode_dirty(handle, inode);
ext3_journal_stop(handle);
}
-diff -NurpP --minimal linux-3.4.48/fs/ext3/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext3/ioctl.c
---- linux-3.4.48/fs/ext3/ioctl.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c
+index 677a5c2..0af62fd 100644
+--- a/fs/ext3/ioctl.c
++++ b/fs/ext3/ioctl.c
@@ -12,6 +12,34 @@
#include <asm/uaccess.h>
#include "ext3.h"
@@ -2895,7 +2982,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_dentry->d_inode;
-@@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsig
+@@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
flags = ext3_mask_flags(inode->i_mode, flags);
@@ -2907,7 +2994,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
mutex_lock(&inode->i_mutex);
/* Is it quota file? Do not allow user to mess with it */
-@@ -63,7 +96,9 @@ long ext3_ioctl(struct file *filp, unsig
+@@ -63,7 +96,9 @@ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
*
* This test looks nicer. Thanks to Pauline Middelink
*/
@@ -2918,7 +3005,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
if (!capable(CAP_LINUX_IMMUTABLE))
goto flags_out;
}
-@@ -88,7 +123,7 @@ long ext3_ioctl(struct file *filp, unsig
+@@ -88,7 +123,7 @@ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if (err)
goto flags_err;
@@ -2927,9 +3014,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-3.4.48/fs/ext3/namei.c linux-3.4.48-vs2.3.3.9/fs/ext3/namei.c
---- linux-3.4.48/fs/ext3/namei.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c
+index fbb9b82..29ac470 100644
+--- a/fs/ext3/namei.c
++++ b/fs/ext3/namei.c
@@ -25,6 +25,8 @@
*/
@@ -2939,7 +3027,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext3.h"
#include "namei.h"
#include "xattr.h"
-@@ -915,6 +917,7 @@ restart:
+@@ -912,6 +914,7 @@ restart:
submit_bh(READ | REQ_META | REQ_PRIO,
bh);
}
@@ -2947,7 +3035,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
}
}
if ((bh = bh_use[ra_ptr++]) == NULL)
-@@ -2526,6 +2529,7 @@ const struct inode_operations ext3_dir_i
+@@ -2523,6 +2526,7 @@ const struct inode_operations ext3_dir_inode_operations = {
.listxattr = ext3_listxattr,
.removexattr = generic_removexattr,
#endif
@@ -2955,9 +3043,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
.get_acl = ext3_get_acl,
};
-diff -NurpP --minimal linux-3.4.48/fs/ext3/super.c linux-3.4.48-vs2.3.3.9/fs/ext3/super.c
---- linux-3.4.48/fs/ext3/super.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext3/super.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/fs/ext3/super.c b/fs/ext3/super.c
+index ef4c812..43de0b5 100644
+--- a/fs/ext3/super.c
++++ b/fs/ext3/super.c
@@ -820,7 +820,8 @@ enum {
Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
@@ -2978,7 +3067,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/super.c linux-3.4.48-vs2.3.3.9/fs/ext
{Opt_err, NULL},
};
-@@ -1029,6 +1033,20 @@ static int parse_options (char *options,
+@@ -1029,6 +1033,20 @@ static int parse_options (char *options, struct super_block *sb,
case Opt_nouid32:
set_opt (sbi->s_mount_opt, NO_UID32);
break;
@@ -2999,7 +3088,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/super.c linux-3.4.48-vs2.3.3.9/fs/ext
case Opt_nocheck:
clear_opt (sbi->s_mount_opt, CHECK);
break;
-@@ -1727,6 +1745,9 @@ static int ext3_fill_super (struct super
+@@ -1727,6 +1745,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
NULL, 0))
goto failed_mount;
@@ -3009,7 +3098,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/super.c linux-3.4.48-vs2.3.3.9/fs/ext
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -2608,6 +2629,14 @@ static int ext3_remount (struct super_bl
+@@ -2608,6 +2629,14 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data)
if (test_opt(sb, ABORT))
ext3_abort(sb, __func__, "Abort forced by user");
@@ -3024,9 +3113,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext3/super.c linux-3.4.48-vs2.3.3.9/fs/ext
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.4.48/fs/ext4/ext4.h linux-3.4.48-vs2.3.3.9/fs/ext4/ext4.h
---- linux-3.4.48/fs/ext4/ext4.h 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/ext4.h 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
+index d918b55..5c847c0 100644
+--- a/fs/ext4/ext4.h
++++ b/fs/ext4/ext4.h
@@ -380,8 +380,12 @@ struct flex_groups {
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
@@ -3066,7 +3156,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ext4.h linux-3.4.48-vs2.3.3.9/fs/ext4
#define EXT4_MOUNT_QUOTA 0x80000 /* Some quota option set */
#define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */
#define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */
-@@ -2294,6 +2301,7 @@ extern int ext4_map_blocks(handle_t *han
+@@ -2294,6 +2301,7 @@ extern int ext4_map_blocks(handle_t *handle, struct inode *inode,
struct ext4_map_blocks *map, int flags);
extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
__u64 start, __u64 len);
@@ -3074,19 +3164,21 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ext4.h linux-3.4.48-vs2.3.3.9/fs/ext4
/* move_extent.c */
extern int ext4_move_extents(struct file *o_filp, struct file *d_filp,
__u64 start_orig, __u64 start_donor,
-diff -NurpP --minimal linux-3.4.48/fs/ext4/file.c linux-3.4.48-vs2.3.3.9/fs/ext4/file.c
---- linux-3.4.48/fs/ext4/file.c 2012-01-09 15:14:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/file.c 2012-05-21 16:15:05.000000000 +0000
-@@ -258,5 +258,6 @@ const struct inode_operations ext4_file_
+diff --git a/fs/ext4/file.c b/fs/ext4/file.c
+index cb70f18..df67251 100644
+--- a/fs/ext4/file.c
++++ b/fs/ext4/file.c
+@@ -258,5 +258,6 @@ const struct inode_operations ext4_file_inode_operations = {
#endif
.get_acl = ext4_get_acl,
.fiemap = ext4_fiemap,
+ .sync_flags = ext4_sync_flags,
};
-diff -NurpP --minimal linux-3.4.48/fs/ext4/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ext4/ialloc.c
---- linux-3.4.48/fs/ext4/ialloc.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/ialloc.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
+index e42b468..d703d53 100644
+--- a/fs/ext4/ialloc.c
++++ b/fs/ext4/ialloc.c
@@ -22,6 +22,7 @@
#include <linux/random.h>
#include <linux/bitops.h>
@@ -3103,9 +3195,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ialloc.c linux-3.4.48-vs2.3.3.9/fs/ex
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext4/inode.c
---- linux-3.4.48/fs/ext4/inode.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/inode.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
+index 98bff01ee..6a1b0af 100644
+--- a/fs/ext4/inode.c
++++ b/fs/ext4/inode.c
@@ -37,6 +37,7 @@
#include <linux/printk.h>
#include <linux/slab.h>
@@ -3114,7 +3207,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext4_jbd2.h"
#include "xattr.h"
-@@ -3585,41 +3586,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -3585,41 +3586,64 @@ void ext4_set_inode_flags(struct inode *inode)
{
unsigned int flags = EXT4_I(inode)->i_flags;
@@ -3186,7 +3279,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
} while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
}
-@@ -3655,6 +3679,8 @@ struct inode *ext4_iget(struct super_blo
+@@ -3655,6 +3679,8 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
journal_t *journal = EXT4_SB(sb)->s_journal;
long ret;
int block;
@@ -3195,7 +3288,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
inode = iget_locked(sb, ino);
if (!inode)
-@@ -3670,12 +3696,16 @@ struct inode *ext4_iget(struct super_blo
+@@ -3670,12 +3696,16 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
goto bad_inode;
raw_inode = ext4_raw_inode(&iloc);
inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -3216,7 +3309,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */
-@@ -3894,6 +3924,8 @@ static int ext4_do_update_inode(handle_t
+@@ -3894,6 +3924,8 @@ static int ext4_do_update_inode(handle_t *handle,
struct ext4_inode *raw_inode = ext4_raw_inode(iloc);
struct ext4_inode_info *ei = EXT4_I(inode);
struct buffer_head *bh = iloc->bh;
@@ -3225,7 +3318,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
int err = 0, rc, block;
int need_datasync = 0;
-@@ -3905,29 +3937,32 @@ static int ext4_do_update_inode(handle_t
+@@ -3905,29 +3937,32 @@ static int ext4_do_update_inode(handle_t *handle,
ext4_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
if (!(test_opt(inode->i_sb, NO_UID32))) {
@@ -3264,7 +3357,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4114,7 +4149,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4114,7 +4149,8 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -3274,7 +3367,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -4136,6 +4172,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4136,6 +4172,8 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -3283,9 +3376,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/inode.c linux-3.4.48-vs2.3.3.9/fs/ext
error = ext4_mark_inode_dirty(handle, inode);
ext4_journal_stop(handle);
}
-diff -NurpP --minimal linux-3.4.48/fs/ext4/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext4/ioctl.c
---- linux-3.4.48/fs/ext4/ioctl.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/ioctl.c 2012-09-01 08:50:49.000000000 +0000
+diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
+index 9727522..5a219c7 100644
+--- a/fs/ext4/ioctl.c
++++ b/fs/ext4/ioctl.c
@@ -14,12 +14,40 @@
#include <linux/compat.h>
#include <linux/mount.h>
@@ -3327,7 +3421,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_dentry->d_inode;
-@@ -53,6 +81,11 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -53,6 +81,11 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
flags = ext4_mask_flags(inode->i_mode, flags);
@@ -3339,7 +3433,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
err = -EPERM;
mutex_lock(&inode->i_mutex);
/* Is it quota file? Do not allow user to mess with it */
-@@ -70,7 +103,9 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -70,7 +103,9 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
*
* This test looks nicer. Thanks to Pauline Middelink
*/
@@ -3350,9 +3444,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ext
if (!capable(CAP_LINUX_IMMUTABLE))
goto flags_out;
}
-diff -NurpP --minimal linux-3.4.48/fs/ext4/namei.c linux-3.4.48-vs2.3.3.9/fs/ext4/namei.c
---- linux-3.4.48/fs/ext4/namei.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/namei.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
+index 9fb3fae..1ea3cb2 100644
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
@@ -34,6 +34,7 @@
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
@@ -3361,7 +3456,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
#include "ext4.h"
#include "ext4_jbd2.h"
-@@ -925,6 +926,7 @@ restart:
+@@ -922,6 +923,7 @@ restart:
ll_rw_block(READ | REQ_META | REQ_PRIO,
1, &bh);
}
@@ -3369,7 +3464,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
}
if ((bh = bh_use[ra_ptr++]) == NULL)
goto next;
-@@ -2591,6 +2593,7 @@ const struct inode_operations ext4_dir_i
+@@ -2588,6 +2590,7 @@ const struct inode_operations ext4_dir_inode_operations = {
#endif
.get_acl = ext4_get_acl,
.fiemap = ext4_fiemap,
@@ -3377,10 +3472,11 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/namei.c linux-3.4.48-vs2.3.3.9/fs/ext
};
const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext4/super.c
---- linux-3.4.48/fs/ext4/super.c 2013-06-13 08:59:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ext4/super.c 2013-06-13 09:46:38.000000000 +0000
-@@ -1188,6 +1188,7 @@ enum {
+diff --git a/fs/ext4/super.c b/fs/ext4/super.c
+index b93de81..f1e1f91 100644
+--- a/fs/ext4/super.c
++++ b/fs/ext4/super.c
+@@ -1191,6 +1191,7 @@ enum {
Opt_inode_readahead_blks, Opt_journal_ioprio,
Opt_dioread_nolock, Opt_dioread_lock,
Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
@@ -3388,7 +3484,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext
};
static const match_table_t tokens = {
-@@ -1266,6 +1267,9 @@ static const match_table_t tokens = {
+@@ -1269,6 +1270,9 @@ static const match_table_t tokens = {
{Opt_removed, "reservation"}, /* mount option from ext2/3 */
{Opt_removed, "noreservation"}, /* mount option from ext2/3 */
{Opt_removed, "journal=%u"}, /* mount option from ext2/3 */
@@ -3398,7 +3494,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext
{Opt_err, NULL},
};
-@@ -1500,6 +1504,20 @@ static int handle_mount_opt(struct super
+@@ -1503,6 +1507,20 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
return -1;
*journal_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, arg);
return 1;
@@ -3419,7 +3515,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext
}
for (m = ext4_mount_opts; m->token != Opt_err; m++) {
-@@ -3236,6 +3254,9 @@ static int ext4_fill_super(struct super_
+@@ -3239,6 +3257,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
clear_opt(sb, DELALLOC);
}
@@ -3429,7 +3525,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -4397,6 +4418,14 @@ static int ext4_remount(struct super_blo
+@@ -4400,6 +4421,14 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
ext4_abort(sb, "Abort forced by user");
@@ -3444,9 +3540,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ext4/super.c linux-3.4.48-vs2.3.3.9/fs/ext
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.4.48/fs/fcntl.c linux-3.4.48-vs2.3.3.9/fs/fcntl.c
---- linux-3.4.48/fs/fcntl.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/fcntl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/fcntl.c b/fs/fcntl.c
+index 75e7c1f..3a725a0 100644
+--- a/fs/fcntl.c
++++ b/fs/fcntl.c
@@ -20,6 +20,7 @@
#include <linux/signal.h>
#include <linux/rcupdate.h>
@@ -3455,7 +3552,7 @@ diff -NurpP --minimal linux-3.4.48/fs/fcntl.c linux-3.4.48-vs2.3.3.9/fs/fcntl.c
#include <asm/poll.h>
#include <asm/siginfo.h>
-@@ -103,6 +104,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldf
+@@ -103,6 +104,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
if (tofree)
filp_close(tofree, files);
@@ -3464,7 +3561,7 @@ diff -NurpP --minimal linux-3.4.48/fs/fcntl.c linux-3.4.48-vs2.3.3.9/fs/fcntl.c
return newfd;
-@@ -447,6 +450,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd,
+@@ -447,6 +450,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
filp = fget_raw(fd);
if (!filp)
goto out;
@@ -3473,9 +3570,10 @@ diff -NurpP --minimal linux-3.4.48/fs/fcntl.c linux-3.4.48-vs2.3.3.9/fs/fcntl.c
if (unlikely(filp->f_mode & FMODE_PATH)) {
if (!check_fcntl_cmd(cmd)) {
-diff -NurpP --minimal linux-3.4.48/fs/file.c linux-3.4.48-vs2.3.3.9/fs/file.c
---- linux-3.4.48/fs/file.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/file.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/file.c b/fs/file.c
+index ba3f605..39007e7 100644
+--- a/fs/file.c
++++ b/fs/file.c
@@ -21,6 +21,7 @@
#include <linux/spinlock.h>
#include <linux/rcupdate.h>
@@ -3484,7 +3582,7 @@ diff -NurpP --minimal linux-3.4.48/fs/file.c linux-3.4.48-vs2.3.3.9/fs/file.c
struct fdtable_defer {
spinlock_t lock;
-@@ -358,6 +359,8 @@ struct files_struct *dup_fd(struct files
+@@ -358,6 +359,8 @@ struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
struct file *f = *old_fds++;
if (f) {
get_file(f);
@@ -3501,9 +3599,10 @@ diff -NurpP --minimal linux-3.4.48/fs/file.c linux-3.4.48-vs2.3.3.9/fs/file.c
#if 1
/* Sanity check */
if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-diff -NurpP --minimal linux-3.4.48/fs/file_table.c linux-3.4.48-vs2.3.3.9/fs/file_table.c
---- linux-3.4.48/fs/file_table.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/file_table.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/file_table.c b/fs/file_table.c
+index 70f2a0f..ba4daef 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
@@ -24,6 +24,8 @@
#include <linux/percpu_counter.h>
#include <linux/percpu.h>
@@ -3540,9 +3639,10 @@ diff -NurpP --minimal linux-3.4.48/fs/file_table.c linux-3.4.48-vs2.3.3.9/fs/fil
file_sb_list_del(file);
file_free(file);
}
-diff -NurpP --minimal linux-3.4.48/fs/fs_struct.c linux-3.4.48-vs2.3.3.9/fs/fs_struct.c
---- linux-3.4.48/fs/fs_struct.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/fs_struct.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/fs_struct.c b/fs/fs_struct.c
+index e159e68..35a252d 100644
+--- a/fs/fs_struct.c
++++ b/fs/fs_struct.c
@@ -4,6 +4,7 @@
#include <linux/path.h>
#include <linux/slab.h>
@@ -3551,7 +3651,7 @@ diff -NurpP --minimal linux-3.4.48/fs/fs_struct.c linux-3.4.48-vs2.3.3.9/fs/fs_s
#include "internal.h"
static inline void path_get_longterm(struct path *path)
-@@ -99,6 +100,7 @@ void free_fs_struct(struct fs_struct *fs
+@@ -99,6 +100,7 @@ void free_fs_struct(struct fs_struct *fs)
{
path_put_longterm(&fs->root);
path_put_longterm(&fs->pwd);
@@ -3559,7 +3659,7 @@ diff -NurpP --minimal linux-3.4.48/fs/fs_struct.c linux-3.4.48-vs2.3.3.9/fs/fs_s
kmem_cache_free(fs_cachep, fs);
}
-@@ -136,6 +138,7 @@ struct fs_struct *copy_fs_struct(struct
+@@ -136,6 +138,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
fs->pwd = old->pwd;
path_get_longterm(&fs->pwd);
spin_unlock(&old->lock);
@@ -3567,9 +3667,10 @@ diff -NurpP --minimal linux-3.4.48/fs/fs_struct.c linux-3.4.48-vs2.3.3.9/fs/fs_s
}
return fs;
}
-diff -NurpP --minimal linux-3.4.48/fs/gfs2/file.c linux-3.4.48-vs2.3.3.9/fs/gfs2/file.c
---- linux-3.4.48/fs/gfs2/file.c 2012-05-21 16:07:20.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/gfs2/file.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
+index a3d2c9e..b089632 100644
+--- a/fs/gfs2/file.c
++++ b/fs/gfs2/file.c
@@ -142,6 +142,9 @@ static const u32 fsflags_to_gfs2[32] = {
[7] = GFS2_DIF_NOATIME,
[12] = GFS2_DIF_EXHASH,
@@ -3590,7 +3691,7 @@ diff -NurpP --minimal linux-3.4.48/fs/gfs2/file.c linux-3.4.48-vs2.3.3.9/fs/gfs2
};
static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
-@@ -181,12 +187,18 @@ void gfs2_set_inode_flags(struct inode *
+@@ -181,12 +187,18 @@ void gfs2_set_inode_flags(struct inode *inode)
{
struct gfs2_inode *ip = GFS2_I(inode);
unsigned int flags = inode->i_flags;
@@ -3610,7 +3711,7 @@ diff -NurpP --minimal linux-3.4.48/fs/gfs2/file.c linux-3.4.48-vs2.3.3.9/fs/gfs2
if (ip->i_diskflags & GFS2_DIF_APPENDONLY)
flags |= S_APPEND;
if (ip->i_diskflags & GFS2_DIF_NOATIME)
-@@ -194,6 +206,43 @@ void gfs2_set_inode_flags(struct inode *
+@@ -194,6 +206,43 @@ void gfs2_set_inode_flags(struct inode *inode)
if (ip->i_diskflags & GFS2_DIF_SYNC)
flags |= S_SYNC;
inode->i_flags = flags;
@@ -3654,7 +3755,7 @@ diff -NurpP --minimal linux-3.4.48/fs/gfs2/file.c linux-3.4.48-vs2.3.3.9/fs/gfs2
}
/* Flags that can be set by user space */
-@@ -305,6 +354,37 @@ static int gfs2_set_flags(struct file *f
+@@ -305,6 +354,37 @@ static int gfs2_set_flags(struct file *filp, u32 __user *ptr)
return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA);
}
@@ -3692,10 +3793,11 @@ diff -NurpP --minimal linux-3.4.48/fs/gfs2/file.c linux-3.4.48-vs2.3.3.9/fs/gfs2
static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch(cmd) {
-diff -NurpP --minimal linux-3.4.48/fs/gfs2/inode.h linux-3.4.48-vs2.3.3.9/fs/gfs2/inode.h
---- linux-3.4.48/fs/gfs2/inode.h 2012-01-09 15:14:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/gfs2/inode.h 2012-05-21 16:15:05.000000000 +0000
-@@ -120,6 +120,7 @@ extern const struct file_operations gfs2
+diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h
+index 276e7b5..c43c053 100644
+--- a/fs/gfs2/inode.h
++++ b/fs/gfs2/inode.h
+@@ -120,6 +120,7 @@ extern const struct file_operations gfs2_file_fops_nolock;
extern const struct file_operations gfs2_dir_fops_nolock;
extern void gfs2_set_inode_flags(struct inode *inode);
@@ -3703,9 +3805,10 @@ diff -NurpP --minimal linux-3.4.48/fs/gfs2/inode.h linux-3.4.48-vs2.3.3.9/fs/gfs
#ifdef CONFIG_GFS2_FS_LOCKING_DLM
extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
---- linux-3.4.48/fs/inode.c 2012-05-21 16:07:24.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/inode.c 2013-06-13 09:46:38.000000000 +0000
+diff --git a/fs/inode.c b/fs/inode.c
+index 8de457e..3e643c3 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
@@ -17,6 +17,7 @@
#include <linux/prefetch.h>
#include <linux/buffer_head.h> /* for inode_has_buffers */
@@ -3714,7 +3817,7 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
#include "internal.h"
/*
-@@ -128,6 +129,9 @@ int inode_init_always(struct super_block
+@@ -128,6 +129,9 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
struct address_space *const mapping = &inode->i_data;
inode->i_sb = sb;
@@ -3724,7 +3827,7 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
inode->i_blkbits = sb->s_blocksize_bits;
inode->i_flags = 0;
atomic_set(&inode->i_count, 1);
-@@ -149,6 +153,7 @@ int inode_init_always(struct super_block
+@@ -149,6 +153,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
inode->i_bdev = NULL;
inode->i_cdev = NULL;
inode->i_rdev = 0;
@@ -3732,7 +3835,7 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
inode->dirtied_when = 0;
if (security_inode_alloc(inode))
-@@ -470,6 +475,8 @@ void __insert_inode_hash(struct inode *i
+@@ -470,6 +475,8 @@ void __insert_inode_hash(struct inode *inode, unsigned long hashval)
}
EXPORT_SYMBOL(__insert_inode_hash);
@@ -3741,7 +3844,7 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
/**
* __remove_inode_hash - remove an inode from the hash
* @inode: inode to unhash
-@@ -1689,9 +1696,11 @@ void init_special_inode(struct inode *in
+@@ -1689,9 +1696,11 @@ void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev)
if (S_ISCHR(mode)) {
inode->i_fop = &def_chr_fops;
inode->i_rdev = rdev;
@@ -3753,7 +3856,7 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
} else if (S_ISFIFO(mode))
inode->i_fop = &def_fifo_fops;
else if (S_ISSOCK(mode))
-@@ -1720,6 +1729,7 @@ void inode_init_owner(struct inode *inod
+@@ -1720,6 +1729,7 @@ void inode_init_owner(struct inode *inode, const struct inode *dir,
} else
inode->i_gid = current_fsgid();
inode->i_mode = mode;
@@ -3761,9 +3864,10 @@ diff -NurpP --minimal linux-3.4.48/fs/inode.c linux-3.4.48-vs2.3.3.9/fs/inode.c
}
EXPORT_SYMBOL(inode_init_owner);
-diff -NurpP --minimal linux-3.4.48/fs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ioctl.c
---- linux-3.4.48/fs/ioctl.c 2012-05-21 16:07:24.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ioctl.c b/fs/ioctl.c
+index 29167be..dcc2ab9 100644
+--- a/fs/ioctl.c
++++ b/fs/ioctl.c
@@ -15,6 +15,9 @@
#include <linux/writeback.h>
#include <linux/buffer_head.h>
@@ -3774,9 +3878,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ioctl.c
#include <asm/ioctls.h>
-diff -NurpP --minimal linux-3.4.48/fs/ioprio.c linux-3.4.48-vs2.3.3.9/fs/ioprio.c
---- linux-3.4.48/fs/ioprio.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ioprio.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ioprio.c b/fs/ioprio.c
+index 0f1b951..a90276f 100644
+--- a/fs/ioprio.c
++++ b/fs/ioprio.c
@@ -28,6 +28,7 @@
#include <linux/syscalls.h>
#include <linux/security.h>
@@ -3785,7 +3890,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ioprio.c linux-3.4.48-vs2.3.3.9/fs/ioprio.
int set_task_ioprio(struct task_struct *task, int ioprio)
{
-@@ -104,6 +105,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
+@@ -104,6 +105,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
else
pgrp = find_vpid(who);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3794,7 +3899,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ioprio.c linux-3.4.48-vs2.3.3.9/fs/ioprio.
ret = set_task_ioprio(p, ioprio);
if (ret)
break;
-@@ -193,6 +196,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
+@@ -193,6 +196,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
else
pgrp = find_vpid(who);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3803,10 +3908,11 @@ diff -NurpP --minimal linux-3.4.48/fs/ioprio.c linux-3.4.48-vs2.3.3.9/fs/ioprio.
tmpio = get_task_ioprio(p);
if (tmpio < 0)
continue;
-diff -NurpP --minimal linux-3.4.48/fs/jfs/file.c linux-3.4.48-vs2.3.3.9/fs/jfs/file.c
---- linux-3.4.48/fs/jfs/file.c 2011-10-24 16:45:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/file.c 2012-05-21 16:15:05.000000000 +0000
-@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
+diff --git a/fs/jfs/file.c b/fs/jfs/file.c
+index 844f946..8af7d86 100644
+--- a/fs/jfs/file.c
++++ b/fs/jfs/file.c
+@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr)
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
@@ -3816,7 +3922,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/file.c linux-3.4.48-vs2.3.3.9/fs/jfs/f
rc = dquot_transfer(inode, iattr);
if (rc)
return rc;
-@@ -142,6 +143,7 @@ const struct inode_operations jfs_file_i
+@@ -142,6 +143,7 @@ const struct inode_operations jfs_file_inode_operations = {
#ifdef CONFIG_JFS_POSIX_ACL
.get_acl = jfs_get_acl,
#endif
@@ -3824,9 +3930,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/file.c linux-3.4.48-vs2.3.3.9/fs/jfs/f
};
const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/ioctl.c
---- linux-3.4.48/fs/jfs/ioctl.c 2012-03-19 18:47:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/ioctl.c b/fs/jfs/ioctl.c
+index f19d1e0..db57624 100644
+--- a/fs/jfs/ioctl.c
++++ b/fs/jfs/ioctl.c
@@ -11,6 +11,7 @@
#include <linux/mount.h>
#include <linux/time.h>
@@ -3835,7 +3942,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/
#include <asm/current.h>
#include <asm/uaccess.h>
-@@ -52,6 +53,16 @@ static long jfs_map_ext2(unsigned long f
+@@ -52,6 +53,16 @@ static long jfs_map_ext2(unsigned long flags, int from)
}
@@ -3852,7 +3959,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/
long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_dentry->d_inode;
-@@ -85,6 +96,11 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -85,6 +96,11 @@ long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if (!S_ISDIR(inode->i_mode))
flags &= ~JFS_DIRSYNC_FL;
@@ -3864,7 +3971,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/
/* Is it quota file? Do not allow user to mess with it */
if (IS_NOQUOTA(inode)) {
err = -EPERM;
-@@ -102,8 +118,8 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -102,8 +118,8 @@ long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
* the relevant capability.
*/
if ((oldflags & JFS_IMMUTABLE_FL) ||
@@ -3875,7 +3982,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/
if (!capable(CAP_LINUX_IMMUTABLE)) {
mutex_unlock(&inode->i_mutex);
err = -EPERM;
-@@ -111,7 +127,7 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -111,7 +127,7 @@ long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
}
}
@@ -3884,9 +3991,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/jfs/
flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
jfs_inode->mode2 = flags;
-diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_dinode.h linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_dinode.h
---- linux-3.4.48/fs/jfs/jfs_dinode.h 2008-12-24 23:26:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_dinode.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/jfs_dinode.h b/fs/jfs/jfs_dinode.h
+index 395c4c0..c3dabc1 100644
+--- a/fs/jfs/jfs_dinode.h
++++ b/fs/jfs/jfs_dinode.h
@@ -161,9 +161,13 @@ struct dinode {
#define JFS_APPEND_FL 0x01000000 /* writes to file may only append */
@@ -3903,9 +4011,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_dinode.h linux-3.4.48-vs2.3.3.9/fs
#define JFS_FL_INHERIT 0x03C80000
/* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_filsys.h linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_filsys.h
---- linux-3.4.48/fs/jfs/jfs_filsys.h 2008-12-24 23:26:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_filsys.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/jfs_filsys.h b/fs/jfs/jfs_filsys.h
+index b3f5463..b8b38a7e 100644
+--- a/fs/jfs/jfs_filsys.h
++++ b/fs/jfs/jfs_filsys.h
@@ -263,6 +263,7 @@
#define JFS_NAME_MAX 255
#define JFS_PATH_MAX BPSIZE
@@ -3914,9 +4023,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_filsys.h linux-3.4.48-vs2.3.3.9/fs
/*
* file system state (superblock state)
-diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_imap.c linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_imap.c
---- linux-3.4.48/fs/jfs/jfs_imap.c 2012-01-09 15:14:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_imap.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
+index 1b6f15f..2d5a0b4 100644
+--- a/fs/jfs/jfs_imap.c
++++ b/fs/jfs/jfs_imap.c
@@ -46,6 +46,7 @@
#include <linux/pagemap.h>
#include <linux/quotaops.h>
@@ -3925,7 +4035,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_imap.c linux-3.4.48-vs2.3.3.9/fs/j
#include "jfs_incore.h"
#include "jfs_inode.h"
-@@ -3058,6 +3059,8 @@ static int copy_from_dinode(struct dinod
+@@ -3058,6 +3059,8 @@ static int copy_from_dinode(struct dinode * dip, struct inode *ip)
{
struct jfs_inode_info *jfs_ip = JFS_IP(ip);
struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
@@ -3934,7 +4044,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_imap.c linux-3.4.48-vs2.3.3.9/fs/j
jfs_ip->fileset = le32_to_cpu(dip->di_fileset);
jfs_ip->mode2 = le32_to_cpu(dip->di_mode);
-@@ -3078,14 +3081,18 @@ static int copy_from_dinode(struct dinod
+@@ -3078,14 +3081,18 @@ static int copy_from_dinode(struct dinode * dip, struct inode *ip)
}
set_nlink(ip, le32_to_cpu(dip->di_nlink));
@@ -3955,7 +4065,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_imap.c linux-3.4.48-vs2.3.3.9/fs/j
if (sbi->gid == -1)
ip->i_gid = jfs_ip->saved_gid;
else {
-@@ -3150,14 +3157,12 @@ static void copy_to_dinode(struct dinode
+@@ -3150,14 +3157,12 @@ static void copy_to_dinode(struct dinode * dip, struct inode *ip)
dip->di_size = cpu_to_le64(ip->i_size);
dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks));
dip->di_nlink = cpu_to_le32(ip->i_nlink);
@@ -3976,9 +4086,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_imap.c linux-3.4.48-vs2.3.3.9/fs/j
jfs_get_inode_flags(jfs_ip);
/*
* mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.c linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_inode.c
---- linux-3.4.48/fs/jfs/jfs_inode.c 2012-01-09 15:14:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_inode.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c
+index c1a3e60..3f86fe5 100644
+--- a/fs/jfs/jfs_inode.c
++++ b/fs/jfs/jfs_inode.c
@@ -18,6 +18,7 @@
#include <linux/fs.h>
@@ -3987,7 +4098,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.c linux-3.4.48-vs2.3.3.9/fs/
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_filsys.h"
-@@ -30,29 +31,46 @@ void jfs_set_inode_flags(struct inode *i
+@@ -30,29 +31,46 @@ void jfs_set_inode_flags(struct inode *inode)
{
unsigned int flags = JFS_IP(inode)->mode2;
@@ -4040,7 +4151,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.c linux-3.4.48-vs2.3.3.9/fs/
if (flags & S_APPEND)
jfs_ip->mode2 |= JFS_APPEND_FL;
if (flags & S_NOATIME)
-@@ -61,6 +79,11 @@ void jfs_get_inode_flags(struct jfs_inod
+@@ -61,6 +79,11 @@ void jfs_get_inode_flags(struct jfs_inode_info *jfs_ip)
jfs_ip->mode2 |= JFS_DIRSYNC_FL;
if (flags & S_SYNC)
jfs_ip->mode2 |= JFS_SYNC_FL;
@@ -4052,10 +4163,11 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.c linux-3.4.48-vs2.3.3.9/fs/
}
/*
-diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.h linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_inode.h
---- linux-3.4.48/fs/jfs/jfs_inode.h 2011-10-24 16:45:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/jfs_inode.h 2012-05-21 16:15:05.000000000 +0000
-@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s
+diff --git a/fs/jfs/jfs_inode.h b/fs/jfs/jfs_inode.h
+index 9271cfe4..ccfdb60 100644
+--- a/fs/jfs/jfs_inode.h
++++ b/fs/jfs/jfs_inode.h
+@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(struct super_block *sb, struct fid *fid,
extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid,
int fh_len, int fh_type);
extern void jfs_set_inode_flags(struct inode *);
@@ -4063,9 +4175,10 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/jfs_inode.h linux-3.4.48-vs2.3.3.9/fs/
extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
extern int jfs_setattr(struct dentry *, struct iattr *);
-diff -NurpP --minimal linux-3.4.48/fs/jfs/namei.c linux-3.4.48-vs2.3.3.9/fs/jfs/namei.c
---- linux-3.4.48/fs/jfs/namei.c 2012-05-21 16:07:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
+index 07c91ca..e6877e5 100644
+--- a/fs/jfs/namei.c
++++ b/fs/jfs/namei.c
@@ -22,6 +22,7 @@
#include <linux/ctype.h>
#include <linux/quotaops.h>
@@ -4074,7 +4187,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/namei.c linux-3.4.48-vs2.3.3.9/fs/jfs/
#include "jfs_incore.h"
#include "jfs_superblock.h"
#include "jfs_inode.h"
-@@ -1461,6 +1462,7 @@ static struct dentry *jfs_lookup(struct
+@@ -1461,6 +1462,7 @@ static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, struc
jfs_err("jfs_lookup: iget failed on inum %d", (uint)inum);
}
@@ -4082,7 +4195,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/namei.c linux-3.4.48-vs2.3.3.9/fs/jfs/
return d_splice_alias(ip, dentry);
}
-@@ -1525,6 +1527,7 @@ const struct inode_operations jfs_dir_in
+@@ -1525,6 +1527,7 @@ const struct inode_operations jfs_dir_inode_operations = {
#ifdef CONFIG_JFS_POSIX_ACL
.get_acl = jfs_get_acl,
#endif
@@ -4090,10 +4203,11 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/namei.c linux-3.4.48-vs2.3.3.9/fs/jfs/
};
const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.4.48/fs/jfs/super.c linux-3.4.48-vs2.3.3.9/fs/jfs/super.c
---- linux-3.4.48/fs/jfs/super.c 2012-05-21 16:07:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/jfs/super.c 2012-05-21 16:15:05.000000000 +0000
-@@ -197,7 +197,8 @@ static void jfs_put_super(struct super_b
+diff --git a/fs/jfs/super.c b/fs/jfs/super.c
+index 4a82950..d5f12f5 100644
+--- a/fs/jfs/super.c
++++ b/fs/jfs/super.c
+@@ -197,7 +197,8 @@ static void jfs_put_super(struct super_block *sb)
enum {
Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
@@ -4114,7 +4228,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/super.c linux-3.4.48-vs2.3.3.9/fs/jfs/
{Opt_ignore, "noquota"},
{Opt_ignore, "quota"},
{Opt_usrquota, "usrquota"},
-@@ -341,6 +346,20 @@ static int parse_options(char *options,
+@@ -341,6 +346,20 @@ static int parse_options(char *options, struct super_block *sb, s64 *newLVSize,
}
break;
}
@@ -4135,7 +4249,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/super.c linux-3.4.48-vs2.3.3.9/fs/jfs/
default:
printk("jfs: Unrecognized mount option \"%s\" "
" or missing value\n", p);
-@@ -372,6 +391,12 @@ static int jfs_remount(struct super_bloc
+@@ -372,6 +391,12 @@ static int jfs_remount(struct super_block *sb, int *flags, char *data)
return -EINVAL;
}
@@ -4148,7 +4262,7 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/super.c linux-3.4.48-vs2.3.3.9/fs/jfs/
if (newLVSize) {
if (sb->s_flags & MS_RDONLY) {
printk(KERN_ERR
-@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_b
+@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
#ifdef CONFIG_JFS_POSIX_ACL
sb->s_flags |= MS_POSIXACL;
#endif
@@ -4158,10 +4272,11 @@ diff -NurpP --minimal linux-3.4.48/fs/jfs/super.c linux-3.4.48-vs2.3.3.9/fs/jfs/
if (newLVSize) {
printk(KERN_ERR "resize option for remount only\n");
-diff -NurpP --minimal linux-3.4.48/fs/libfs.c linux-3.4.48-vs2.3.3.9/fs/libfs.c
---- linux-3.4.48/fs/libfs.c 2012-05-21 16:07:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/libfs.c 2012-05-21 16:15:05.000000000 +0000
-@@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
+diff --git a/fs/libfs.c b/fs/libfs.c
+index 18d08f5..3402ccc 100644
+--- a/fs/libfs.c
++++ b/fs/libfs.c
+@@ -135,7 +135,8 @@ static inline unsigned char dt_type(struct inode *inode)
* both impossible due to the lock on directory.
*/
@@ -4171,7 +4286,7 @@ diff -NurpP --minimal linux-3.4.48/fs/libfs.c linux-3.4.48-vs2.3.3.9/fs/libfs.c
{
struct dentry *dentry = filp->f_path.dentry;
struct dentry *cursor = filp->private_data;
-@@ -166,6 +167,8 @@ int dcache_readdir(struct file * filp, v
+@@ -166,6 +167,8 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
for (p=q->next; p != &dentry->d_subdirs; p=p->next) {
struct dentry *next;
next = list_entry(p, struct dentry, d_u.d_child);
@@ -4180,7 +4295,7 @@ diff -NurpP --minimal linux-3.4.48/fs/libfs.c linux-3.4.48-vs2.3.3.9/fs/libfs.c
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
if (!simple_positive(next)) {
spin_unlock(&next->d_lock);
-@@ -192,6 +195,17 @@ int dcache_readdir(struct file * filp, v
+@@ -192,6 +195,17 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
return 0;
}
@@ -4206,9 +4321,10 @@ diff -NurpP --minimal linux-3.4.48/fs/libfs.c linux-3.4.48-vs2.3.3.9/fs/libfs.c
EXPORT_SYMBOL(generic_read_dir);
EXPORT_SYMBOL(mount_pseudo);
EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
---- linux-3.4.48/fs/locks.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/locks.c 2012-09-01 08:50:49.000000000 +0000
+diff --git a/fs/locks.c b/fs/locks.c
+index fcc50ab..1bbdd58 100644
+--- a/fs/locks.c
++++ b/fs/locks.c
@@ -126,6 +126,8 @@
#include <linux/time.h>
#include <linux/rcupdate.h>
@@ -4218,7 +4334,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
#include <asm/uaccess.h>
-@@ -184,11 +186,17 @@ static void locks_init_lock_heads(struct
+@@ -184,11 +186,17 @@ static void locks_init_lock_heads(struct file_lock *fl)
/* Allocate an empty lock structure. */
struct file_lock *locks_alloc_lock(void)
{
@@ -4229,9 +4345,9 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
- locks_init_lock_heads(fl);
+ if (!vx_locks_avail(1))
+ return NULL;
-
-+ fl = kmem_cache_zalloc(filelock_cache, GFP_KERNEL);
+
++ fl = kmem_cache_zalloc(filelock_cache, GFP_KERNEL);
+
+ if (fl) {
+ locks_init_lock_heads(fl);
+ fl->fl_xid = -1;
@@ -4239,7 +4355,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
return fl;
}
EXPORT_SYMBOL_GPL(locks_alloc_lock);
-@@ -216,6 +224,7 @@ void locks_free_lock(struct file_lock *f
+@@ -216,6 +224,7 @@ void locks_free_lock(struct file_lock *fl)
BUG_ON(!list_empty(&fl->fl_block));
BUG_ON(!list_empty(&fl->fl_link));
@@ -4247,7 +4363,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
locks_release_private(fl);
kmem_cache_free(filelock_cache, fl);
}
-@@ -225,6 +234,7 @@ void locks_init_lock(struct file_lock *f
+@@ -225,6 +234,7 @@ void locks_init_lock(struct file_lock *fl)
{
memset(fl, 0, sizeof(struct file_lock));
locks_init_lock_heads(fl);
@@ -4255,7 +4371,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
}
EXPORT_SYMBOL(locks_init_lock);
-@@ -265,6 +275,7 @@ void locks_copy_lock(struct file_lock *n
+@@ -265,6 +275,7 @@ void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
new->fl_file = fl->fl_file;
new->fl_ops = fl->fl_ops;
new->fl_lmops = fl->fl_lmops;
@@ -4263,7 +4379,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
locks_copy_private(new, fl);
}
-@@ -303,6 +314,11 @@ static int flock_make_lock(struct file *
+@@ -303,6 +314,11 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock,
fl->fl_flags = FL_FLOCK;
fl->fl_type = type;
fl->fl_end = OFFSET_MAX;
@@ -4275,7 +4391,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
*lock = fl;
return 0;
-@@ -452,6 +468,7 @@ static int lease_init(struct file *filp,
+@@ -452,6 +468,7 @@ static int lease_init(struct file *filp, long type, struct file_lock *fl)
fl->fl_owner = current->files;
fl->fl_pid = current->tgid;
@@ -4283,7 +4399,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
fl->fl_file = filp;
fl->fl_flags = FL_LEASE;
-@@ -471,6 +488,11 @@ static struct file_lock *lease_alloc(str
+@@ -471,6 +488,11 @@ static struct file_lock *lease_alloc(struct file *filp, long type)
if (fl == NULL)
return ERR_PTR(error);
@@ -4295,7 +4411,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
error = lease_init(filp, type, fl);
if (error) {
locks_free_lock(fl);
-@@ -773,6 +795,7 @@ static int flock_lock_file(struct file *
+@@ -773,6 +795,7 @@ static int flock_lock_file(struct file *filp, struct file_lock *request)
lock_flocks();
}
@@ -4321,7 +4437,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
{
struct file_lock *fl;
struct file_lock *new_fl = NULL;
-@@ -813,6 +838,8 @@ static int __posix_lock_file(struct inod
+@@ -813,6 +838,8 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
struct file_lock **before;
int error, added = 0;
@@ -4330,7 +4446,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
/*
* We may need two file_lock structures for this operation,
* so we get them in advance to avoid races.
-@@ -823,7 +850,11 @@ static int __posix_lock_file(struct inod
+@@ -823,7 +850,11 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
(request->fl_type != F_UNLCK ||
request->fl_start != 0 || request->fl_end != OFFSET_MAX)) {
new_fl = locks_alloc_lock();
@@ -4342,7 +4458,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
}
lock_flocks();
-@@ -1022,7 +1053,8 @@ static int __posix_lock_file(struct inod
+@@ -1022,7 +1053,8 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
{
@@ -4352,7 +4468,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
}
EXPORT_SYMBOL(posix_lock_file);
-@@ -1112,7 +1144,7 @@ int locks_mandatory_area(int read_write,
+@@ -1112,7 +1144,7 @@ int locks_mandatory_area(int read_write, struct inode *inode,
fl.fl_end = offset + count - 1;
for (;;) {
@@ -4361,7 +4477,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
if (error != FILE_LOCK_DEFERRED)
break;
error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
-@@ -1407,6 +1439,7 @@ int generic_add_lease(struct file *filp,
+@@ -1407,6 +1439,7 @@ int generic_add_lease(struct file *filp, long arg, struct file_lock **flp)
goto out;
locks_insert_lock(before, lease);
@@ -4369,7 +4485,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
return 0;
out:
-@@ -1847,6 +1880,11 @@ int fcntl_setlk(unsigned int fd, struct
+@@ -1847,6 +1880,11 @@ int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd,
if (file_lock == NULL)
return -ENOLCK;
@@ -4381,7 +4497,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
/*
* This might block, so we do it before checking the inode.
*/
-@@ -1965,6 +2003,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -1965,6 +2003,11 @@ int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd,
if (file_lock == NULL)
return -ENOLCK;
@@ -4393,7 +4509,7 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
/*
* This might block, so we do it before checking the inode.
*/
-@@ -2230,8 +2273,11 @@ static int locks_show(struct seq_file *f
+@@ -2230,8 +2273,11 @@ static int locks_show(struct seq_file *f, void *v)
lock_get_status(f, fl, *((loff_t *)f->private), "");
@@ -4406,9 +4522,10 @@ diff -NurpP --minimal linux-3.4.48/fs/locks.c linux-3.4.48-vs2.3.3.9/fs/locks.c
return 0;
}
-diff -NurpP --minimal linux-3.4.48/fs/mount.h linux-3.4.48-vs2.3.3.9/fs/mount.h
---- linux-3.4.48/fs/mount.h 2012-03-19 18:47:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/mount.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/mount.h b/fs/mount.h
+index 4ef36d9..b7f1af3 100644
+--- a/fs/mount.h
++++ b/fs/mount.h
@@ -47,6 +47,7 @@ struct mount {
int mnt_expiry_mark; /* true if marked for expiry */
int mnt_pinned;
@@ -4417,9 +4534,10 @@ diff -NurpP --minimal linux-3.4.48/fs/mount.h linux-3.4.48-vs2.3.3.9/fs/mount.h
};
static inline struct mount *real_mount(struct vfsmount *mnt)
-diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
---- linux-3.4.48/fs/namei.c 2012-05-21 16:07:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/namei.c b/fs/namei.c
+index c427919..e726b31 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
@@ -33,6 +33,14 @@
#include <linux/device_cgroup.h>
#include <linux/fs_struct.h>
@@ -4435,7 +4553,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
#include <asm/uaccess.h>
#include "internal.h"
-@@ -221,6 +229,89 @@ static int check_acl(struct inode *inode
+@@ -221,6 +229,89 @@ static int check_acl(struct inode *inode, int mask)
return -EAGAIN;
}
@@ -4525,7 +4643,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
/*
* This does the basic permission checking
*/
-@@ -356,10 +447,14 @@ int inode_permission(struct inode *inode
+@@ -356,10 +447,14 @@ int inode_permission(struct inode *inode, int mask)
/*
* Nobody gets write access to an immutable file.
*/
@@ -4541,7 +4659,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
retval = do_inode_permission(inode, mask);
if (retval)
return retval;
-@@ -1038,7 +1133,8 @@ static void follow_dotdot(struct nameida
+@@ -1038,7 +1133,8 @@ static void follow_dotdot(struct nameidata *nd)
if (nd->path.dentry == nd->root.dentry &&
nd->path.mnt == nd->root.mnt) {
@@ -4551,7 +4669,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
}
if (nd->path.dentry != nd->path.mnt->mnt_root) {
/* rare case of legitimate dget_parent()... */
-@@ -1174,6 +1270,9 @@ static int do_lookup(struct nameidata *n
+@@ -1174,6 +1270,9 @@ static int do_lookup(struct nameidata *nd, struct qstr *name,
goto unlazy;
}
}
@@ -4571,7 +4689,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
done:
path->mnt = mnt;
path->dentry = dentry;
-@@ -1981,7 +2083,7 @@ static int may_delete(struct inode *dir,
+@@ -1981,7 +2083,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
if (IS_APPEND(dir))
return -EPERM;
if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
@@ -4580,7 +4698,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
return -EPERM;
if (isdir) {
if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -2061,19 +2163,25 @@ int vfs_create(struct inode *dir, struct
+@@ -2061,19 +2163,25 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
{
int error = may_create(dir, dentry);
@@ -4608,7 +4726,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
return error;
}
-@@ -2108,6 +2216,15 @@ static int may_open(struct path *path, i
+@@ -2108,6 +2216,15 @@ static int may_open(struct path *path, int acc_mode, int flag)
break;
}
@@ -4641,7 +4759,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
if (error)
goto exit;
filp = nameidata_to_filp(nd);
-@@ -2374,6 +2501,7 @@ static struct file *path_openat(int dfd,
+@@ -2374,6 +2501,7 @@ static struct file *path_openat(int dfd, const char *pathname,
struct path path;
int error;
@@ -4649,7 +4767,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
filp = get_empty_filp();
if (!filp)
return ERR_PTR(-ENFILE);
-@@ -2411,6 +2539,17 @@ static struct file *path_openat(int dfd,
+@@ -2411,6 +2539,17 @@ static struct file *path_openat(int dfd, const char *pathname,
filp = do_last(nd, &path, op, pathname);
put_link(nd, &link, cookie);
}
@@ -4667,7 +4785,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
out:
if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
path_put(&nd->root);
-@@ -2500,6 +2639,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -2500,6 +2639,11 @@ struct dentry *kern_path_create(int dfd, const char *pathname, struct path *path
goto fail;
}
*path = nd.path;
@@ -4679,7 +4797,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
return dentry;
eexist:
dput(dentry);
-@@ -2986,7 +3130,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -2986,7 +3130,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
/*
* A link to an append-only or immutable file cannot be created.
*/
@@ -4688,7 +4806,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
return -EPERM;
if (!dir->i_op->link)
return -EPERM;
-@@ -3375,6 +3519,253 @@ int vfs_follow_link(struct nameidata *nd
+@@ -3375,6 +3519,253 @@ int vfs_follow_link(struct nameidata *nd, const char *link)
return __vfs_follow_link(nd, link);
}
@@ -4947,9 +5065,10 @@ diff -NurpP --minimal linux-3.4.48/fs/namei.c linux-3.4.48-vs2.3.3.9/fs/namei.c
EXPORT_SYMBOL(dentry_unhash);
EXPORT_SYMBOL(generic_readlink);
+EXPORT_SYMBOL(vx_info_mnt_namespace);
-diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/namespace.c
---- linux-3.4.48/fs/namespace.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/namespace.c 2012-06-28 14:45:07.000000000 +0000
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 4e46539..887918c 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
@@ -20,6 +20,11 @@
#include <linux/fs_struct.h> /* get_fs_root et.al. */
#include <linux/fsnotify.h> /* fsnotify_vfsmount_delete */
@@ -4962,7 +5081,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
#include "pnode.h"
#include "internal.h"
-@@ -697,6 +702,10 @@ vfs_kern_mount(struct file_system_type *
+@@ -697,6 +702,10 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
if (!type)
return ERR_PTR(-ENODEV);
@@ -4973,7 +5092,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
mnt = alloc_vfsmnt(name);
if (!mnt)
return ERR_PTR(-ENOMEM);
-@@ -745,6 +754,7 @@ static struct mount *clone_mnt(struct mo
+@@ -745,6 +754,7 @@ static struct mount *clone_mnt(struct mount *old, struct dentry *root,
mnt->mnt.mnt_root = dget(root);
mnt->mnt_mountpoint = mnt->mnt.mnt_root;
mnt->mnt_parent = mnt;
@@ -4981,7 +5100,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
br_write_lock(vfsmount_lock);
list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
br_write_unlock(vfsmount_lock);
-@@ -1210,7 +1220,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
+@@ -1210,7 +1220,7 @@ SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
goto dput_and_out;
retval = -EPERM;
@@ -4990,7 +5109,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
goto dput_and_out;
retval = do_umount(mnt, flags);
-@@ -1236,7 +1246,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
+@@ -1236,7 +1246,7 @@ SYSCALL_DEFINE1(oldumount, char __user *, name)
static int mount_is_safe(struct path *path)
{
@@ -4999,7 +5118,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
return 0;
return -EPERM;
#ifdef notyet
-@@ -1549,7 +1559,7 @@ static int do_change_type(struct path *p
+@@ -1549,7 +1559,7 @@ static int do_change_type(struct path *path, int flag)
int type;
int err = 0;
@@ -5008,7 +5127,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
return -EPERM;
if (path->dentry != path->mnt->mnt_root)
-@@ -1565,6 +1575,7 @@ static int do_change_type(struct path *p
+@@ -1565,6 +1575,7 @@ static int do_change_type(struct path *path, int flag)
if (err)
goto out_unlock;
}
@@ -5016,7 +5135,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
br_write_lock(vfsmount_lock);
for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -1580,12 +1591,14 @@ static int do_change_type(struct path *p
+@@ -1580,12 +1591,14 @@ static int do_change_type(struct path *path, int flag)
* do loopback mount.
*/
static int do_loopback(struct path *path, char *old_name,
@@ -5032,7 +5151,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
if (err)
return err;
if (!old_name || !*old_name)
-@@ -1653,13 +1666,13 @@ static int change_mount_flags(struct vfs
+@@ -1653,13 +1666,13 @@ static int change_mount_flags(struct vfsmount *mnt, int ms_flags)
* on it - tough luck.
*/
static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -5048,7 +5167,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
return -EPERM;
if (!check_mnt(mnt))
-@@ -1708,7 +1721,7 @@ static int do_move_mount(struct path *pa
+@@ -1708,7 +1721,7 @@ static int do_move_mount(struct path *path, char *old_name)
struct mount *p;
struct mount *old;
int err = 0;
@@ -5057,7 +5176,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
return -EPERM;
if (!old_name || !*old_name)
return -EINVAL;
-@@ -1859,7 +1872,7 @@ static int do_new_mount(struct path *pat
+@@ -1859,7 +1872,7 @@ static int do_new_mount(struct path *path, char *type, int flags,
return -EINVAL;
/* we need capabilities... */
@@ -5066,7 +5185,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
return -EPERM;
mnt = do_kern_mount(type, flags, name, data);
-@@ -2129,6 +2142,7 @@ long do_mount(char *dev_name, char *dir_
+@@ -2129,6 +2142,7 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
struct path path;
int retval = 0;
int mnt_flags = 0;
@@ -5074,7 +5193,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
/* Discard magic */
if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2156,6 +2170,12 @@ long do_mount(char *dev_name, char *dir_
+@@ -2156,6 +2170,12 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
if (!(flags & MS_NOATIME))
mnt_flags |= MNT_RELATIME;
@@ -5087,7 +5206,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
/* Separate the per-mountpoint flags */
if (flags & MS_NOSUID)
mnt_flags |= MNT_NOSUID;
-@@ -2172,15 +2192,17 @@ long do_mount(char *dev_name, char *dir_
+@@ -2172,15 +2192,17 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
if (flags & MS_RDONLY)
mnt_flags |= MNT_READONLY;
@@ -5107,7 +5226,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
retval = do_change_type(&path, flags);
else if (flags & MS_MOVE)
-@@ -2283,6 +2305,7 @@ static struct mnt_namespace *dup_mnt_ns(
+@@ -2283,6 +2305,7 @@ static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
q = next_mnt(q, new);
}
up_write(&namespace_sem);
@@ -5115,7 +5234,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
if (rootmnt)
mntput(rootmnt);
-@@ -2479,9 +2502,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2479,9 +2502,10 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
error = -EINVAL;
new_mnt = real_mount(new.mnt);
root_mnt = real_mount(root.mnt);
@@ -5128,7 +5247,7 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
goto out4;
if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
goto out4;
-@@ -2602,6 +2626,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -2602,6 +2626,7 @@ void put_mnt_ns(struct mnt_namespace *ns)
br_write_unlock(vfsmount_lock);
up_write(&namespace_sem);
release_mounts(&umount_list);
@@ -5136,10 +5255,11 @@ diff -NurpP --minimal linux-3.4.48/fs/namespace.c linux-3.4.48-vs2.3.3.9/fs/name
kfree(ns);
}
-diff -NurpP --minimal linux-3.4.48/fs/nfs/client.c linux-3.4.48-vs2.3.3.9/fs/nfs/client.c
---- linux-3.4.48/fs/nfs/client.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfs/client.c 2013-01-16 00:15:57.000000000 +0000
-@@ -801,6 +801,9 @@ static int nfs_init_server_rpcclient(str
+diff --git a/fs/nfs/client.c b/fs/nfs/client.c
+index 37f6de3..95bff63 100644
+--- a/fs/nfs/client.c
++++ b/fs/nfs/client.c
+@@ -801,6 +801,9 @@ static int nfs_init_server_rpcclient(struct nfs_server *server,
if (server->flags & NFS_MOUNT_SOFT)
server->client->cl_softrtry = 1;
@@ -5149,7 +5269,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/client.c linux-3.4.48-vs2.3.3.9/fs/nfs
return 0;
}
-@@ -976,6 +979,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -976,6 +979,10 @@ static void nfs_server_set_fsinfo(struct nfs_server *server,
server->acdirmin = server->acdirmax = 0;
}
@@ -5160,9 +5280,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/client.c linux-3.4.48-vs2.3.3.9/fs/nfs
server->maxfilesize = fsinfo->maxfilesize;
server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.4.48/fs/nfs/dir.c linux-3.4.48-vs2.3.3.9/fs/nfs/dir.c
---- linux-3.4.48/fs/nfs/dir.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfs/dir.c 2013-01-16 00:15:57.000000000 +0000
+diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
+index a0daac7..32219ea 100644
+--- a/fs/nfs/dir.c
++++ b/fs/nfs/dir.c
@@ -35,6 +35,7 @@
#include <linux/sched.h>
#include <linux/kmemleak.h>
@@ -5171,7 +5292,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/dir.c linux-3.4.48-vs2.3.3.9/fs/nfs/di
#include "delegation.h"
#include "iostat.h"
-@@ -1314,6 +1315,7 @@ static struct dentry *nfs_lookup(struct
+@@ -1314,6 +1315,7 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru
if (IS_ERR(res))
goto out_unblock_sillyrename;
@@ -5179,9 +5300,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/dir.c linux-3.4.48-vs2.3.3.9/fs/nfs/di
no_entry:
res = d_materialise_unique(dentry, inode);
if (res != NULL) {
-diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/inode.c
---- linux-3.4.48/fs/nfs/inode.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfs/inode.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
+index edf4119..14a368f 100644
+--- a/fs/nfs/inode.c
++++ b/fs/nfs/inode.c
@@ -40,6 +40,7 @@
#include <linux/compat.h>
#include <linux/freezer.h>
@@ -5190,7 +5312,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
#include <asm/uaccess.h>
-@@ -275,6 +276,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -275,6 +276,8 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
if (inode->i_state & I_NEW) {
struct nfs_inode *nfsi = NFS_I(inode);
unsigned long now = jiffies;
@@ -5199,7 +5321,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/* We set i_ino for the few things that still rely on it,
* such as stat(2) */
-@@ -323,8 +326,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -323,8 +326,8 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
inode->i_version = 0;
inode->i_size = 0;
clear_nlink(inode);
@@ -5210,7 +5332,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
inode->i_blocks = 0;
memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
-@@ -361,13 +364,13 @@ nfs_fhget(struct super_block *sb, struct
+@@ -361,13 +364,13 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
else if (nfs_server_capable(inode, NFS_CAP_NLINK))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
if (fattr->valid & NFS_ATTR_FATTR_OWNER)
@@ -5226,7 +5348,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR
| NFS_INO_INVALID_ACCESS
-@@ -380,6 +383,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -380,6 +383,11 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
*/
inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
}
@@ -5238,7 +5360,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
nfsi->attrtimeo_timestamp = now;
nfsi->access_cache = RB_ROOT;
-@@ -497,6 +505,8 @@ void nfs_setattr_update_inode(struct ino
+@@ -497,6 +505,8 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr)
inode->i_uid = attr->ia_uid;
if ((attr->ia_valid & ATTR_GID) != 0)
inode->i_gid = attr->ia_gid;
@@ -5247,7 +5369,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
spin_unlock(&inode->i_lock);
}
-@@ -946,6 +956,9 @@ static int nfs_check_inode_attributes(st
+@@ -946,6 +956,9 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
struct nfs_inode *nfsi = NFS_I(inode);
loff_t cur_size, new_isize;
unsigned long invalid = 0;
@@ -5257,7 +5379,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/* Has the inode gone and changed behind our back? */
-@@ -969,13 +982,18 @@ static int nfs_check_inode_attributes(st
+@@ -969,13 +982,18 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
}
@@ -5278,7 +5400,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/* Has the link count changed? */
if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1273,6 +1291,9 @@ static int nfs_update_inode(struct inode
+@@ -1273,6 +1291,9 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
unsigned long invalid = 0;
unsigned long now = jiffies;
unsigned long save_cache_validity;
@@ -5288,7 +5410,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n",
__func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1381,6 +1402,9 @@ static int nfs_update_inode(struct inode
+@@ -1381,6 +1402,9 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
| NFS_INO_REVAL_PAGECACHE
| NFS_INO_REVAL_FORCED);
@@ -5298,7 +5420,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
if (fattr->valid & NFS_ATTR_FATTR_ATIME)
memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1402,9 +1426,9 @@ static int nfs_update_inode(struct inode
+@@ -1402,9 +1426,9 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
@@ -5310,7 +5432,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
}
} else if (server->caps & NFS_CAP_OWNER)
invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1413,9 +1437,9 @@ static int nfs_update_inode(struct inode
+@@ -1413,9 +1437,9 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
@@ -5322,7 +5444,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
}
} else if (server->caps & NFS_CAP_OWNER_GROUP)
invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1423,6 +1447,10 @@ static int nfs_update_inode(struct inode
+@@ -1423,6 +1447,10 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
| NFS_INO_INVALID_ACL
| NFS_INO_REVAL_FORCED);
@@ -5333,9 +5455,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/inode.c linux-3.4.48-vs2.3.3.9/fs/nfs/
if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
if (inode->i_nlink != fattr->nlink) {
invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nfs/nfs3xdr.c
---- linux-3.4.48/fs/nfs/nfs3xdr.c 2012-05-21 16:07:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfs/nfs3xdr.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
+index a77cc9a..f7563a8 100644
+--- a/fs/nfs/nfs3xdr.c
++++ b/fs/nfs/nfs3xdr.c
@@ -20,6 +20,7 @@
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
@@ -5344,7 +5467,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
#include "internal.h"
#define NFSDBG_FACILITY NFSDBG_XDR
-@@ -562,7 +563,8 @@ static __be32 *xdr_decode_nfstime3(__be3
+@@ -562,7 +563,8 @@ static __be32 *xdr_decode_nfstime3(__be32 *p, struct timespec *timep)
* set_mtime mtime;
* };
*/
@@ -5354,7 +5477,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
{
u32 nbytes;
__be32 *p;
-@@ -594,15 +596,19 @@ static void encode_sattr3(struct xdr_str
+@@ -594,15 +596,19 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr)
} else
*p++ = xdr_zero;
@@ -5378,7 +5501,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
} else
*p++ = xdr_zero;
-@@ -878,7 +884,7 @@ static void nfs3_xdr_enc_setattr3args(st
+@@ -878,7 +884,7 @@ static void nfs3_xdr_enc_setattr3args(struct rpc_rqst *req,
const struct nfs3_sattrargs *args)
{
encode_nfs_fh3(xdr, args->fh);
@@ -5387,7 +5510,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
encode_sattrguard3(xdr, args);
}
-@@ -1028,13 +1034,13 @@ static void nfs3_xdr_enc_write3args(stru
+@@ -1028,13 +1034,13 @@ static void nfs3_xdr_enc_write3args(struct rpc_rqst *req,
* };
*/
static void encode_createhow3(struct xdr_stream *xdr,
@@ -5403,7 +5526,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
break;
case NFS3_CREATE_EXCLUSIVE:
encode_createverf3(xdr, args->verifier);
-@@ -1049,7 +1055,7 @@ static void nfs3_xdr_enc_create3args(str
+@@ -1049,7 +1055,7 @@ static void nfs3_xdr_enc_create3args(struct rpc_rqst *req,
const struct nfs3_createargs *args)
{
encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5412,7 +5535,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
}
/*
-@@ -1065,7 +1071,7 @@ static void nfs3_xdr_enc_mkdir3args(stru
+@@ -1065,7 +1071,7 @@ static void nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req,
const struct nfs3_mkdirargs *args)
{
encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5421,7 +5544,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
}
/*
-@@ -1082,9 +1088,9 @@ static void nfs3_xdr_enc_mkdir3args(stru
+@@ -1082,9 +1088,9 @@ static void nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req,
* };
*/
static void encode_symlinkdata3(struct xdr_stream *xdr,
@@ -5433,7 +5556,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
encode_nfspath3(xdr, args->pages, args->pathlen);
}
-@@ -1093,7 +1099,7 @@ static void nfs3_xdr_enc_symlink3args(st
+@@ -1093,7 +1099,7 @@ static void nfs3_xdr_enc_symlink3args(struct rpc_rqst *req,
const struct nfs3_symlinkargs *args)
{
encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen);
@@ -5442,7 +5565,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
}
/*
-@@ -1121,24 +1127,24 @@ static void nfs3_xdr_enc_symlink3args(st
+@@ -1121,24 +1127,24 @@ static void nfs3_xdr_enc_symlink3args(struct rpc_rqst *req,
* };
*/
static void encode_devicedata3(struct xdr_stream *xdr,
@@ -5472,7 +5595,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
break;
case NF3REG:
case NF3DIR:
-@@ -1153,7 +1159,7 @@ static void nfs3_xdr_enc_mknod3args(stru
+@@ -1153,7 +1159,7 @@ static void nfs3_xdr_enc_mknod3args(struct rpc_rqst *req,
const struct nfs3_mknodargs *args)
{
encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5481,9 +5604,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nf
}
/*
-diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/super.c
---- linux-3.4.48/fs/nfs/super.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfs/super.c 2013-01-16 00:15:57.000000000 +0000
+diff --git a/fs/nfs/super.c b/fs/nfs/super.c
+index c252161..893b6d8 100644
+--- a/fs/nfs/super.c
++++ b/fs/nfs/super.c
@@ -54,6 +54,7 @@
#include <linux/parser.h>
#include <linux/nsproxy.h>
@@ -5508,7 +5632,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/* Mount options that take string arguments */
Opt_nfsvers,
-@@ -180,6 +183,10 @@ static const match_table_t nfs_mount_opt
+@@ -180,6 +183,10 @@ static const match_table_t nfs_mount_option_tokens = {
/* The following needs to be listed after all other options */
{ Opt_nfsvers, "v%s" },
@@ -5519,7 +5643,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/
{ Opt_err, NULL }
};
-@@ -674,6 +681,7 @@ static void nfs_show_mount_options(struc
+@@ -674,6 +681,7 @@ static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss,
{ NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
{ NFS_MOUNT_UNSHARED, ",nosharecache", "" },
{ NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5527,7 +5651,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/
{ 0, NULL, NULL }
};
const struct proc_nfs_info *nfs_infop;
-@@ -1286,6 +1294,14 @@ static int nfs_parse_mount_options(char
+@@ -1286,6 +1294,14 @@ static int nfs_parse_mount_options(char *raw,
kfree(mnt->fscache_uniq);
mnt->fscache_uniq = NULL;
break;
@@ -5542,7 +5666,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/*
* options that take numeric values
-@@ -1372,6 +1388,12 @@ static int nfs_parse_mount_options(char
+@@ -1372,6 +1388,12 @@ static int nfs_parse_mount_options(char *raw,
goto out_invalid_value;
mnt->minorversion = option;
break;
@@ -5555,9 +5679,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfs/super.c linux-3.4.48-vs2.3.3.9/fs/nfs/
/*
* options that take text values
-diff -NurpP --minimal linux-3.4.48/fs/nfsd/auth.c linux-3.4.48-vs2.3.3.9/fs/nfsd/auth.c
---- linux-3.4.48/fs/nfsd/auth.c 2010-02-25 10:52:05.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfsd/auth.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c
+index 79717a4..ecdce16 100644
+--- a/fs/nfsd/auth.c
++++ b/fs/nfsd/auth.c
@@ -1,6 +1,7 @@
/* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> */
@@ -5566,7 +5691,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/auth.c linux-3.4.48-vs2.3.3.9/fs/nfsd
#include "nfsd.h"
#include "auth.h"
-@@ -36,6 +37,9 @@ int nfsd_setuser(struct svc_rqst *rqstp,
+@@ -36,6 +37,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
new->fsuid = rqstp->rq_cred.cr_uid;
new->fsgid = rqstp->rq_cred.cr_gid;
@@ -5576,9 +5701,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/auth.c linux-3.4.48-vs2.3.3.9/fs/nfsd
rqgi = rqstp->rq_cred.cr_group_info;
-diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/nfsd/nfs3xdr.c
---- linux-3.4.48/fs/nfsd/nfs3xdr.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfsd/nfs3xdr.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
+index 43f46cd..24d537c 100644
+--- a/fs/nfsd/nfs3xdr.c
++++ b/fs/nfsd/nfs3xdr.c
@@ -7,6 +7,7 @@
*/
@@ -5596,7 +5722,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/n
iap->ia_valid = 0;
-@@ -104,12 +107,15 @@ decode_sattr3(__be32 *p, struct iattr *i
+@@ -104,12 +107,15 @@ decode_sattr3(__be32 *p, struct iattr *iap)
}
if (*p++) {
iap->ia_valid |= ATTR_UID;
@@ -5614,7 +5740,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/n
if (*p++) {
u64 newsize;
-@@ -165,8 +171,12 @@ encode_fattr3(struct svc_rqst *rqstp, __
+@@ -165,8 +171,12 @@ encode_fattr3(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp,
*p++ = htonl(nfs3_ftypes[(stat->mode & S_IFMT) >> 12]);
*p++ = htonl((u32) stat->mode);
*p++ = htonl((u32) stat->nlink);
@@ -5629,9 +5755,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs3xdr.c linux-3.4.48-vs2.3.3.9/fs/n
if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
} else {
-diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs4xdr.c linux-3.4.48-vs2.3.3.9/fs/nfsd/nfs4xdr.c
---- linux-3.4.48/fs/nfsd/nfs4xdr.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfsd/nfs4xdr.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
+index cb997b1..9d1ce48 100644
+--- a/fs/nfsd/nfs4xdr.c
++++ b/fs/nfsd/nfs4xdr.c
@@ -46,6 +46,7 @@
#include <linux/utsname.h>
#include <linux/pagemap.h>
@@ -5640,7 +5767,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs4xdr.c linux-3.4.48-vs2.3.3.9/fs/n
#include "idmap.h"
#include "acl.h"
-@@ -2325,14 +2326,18 @@ out_acl:
+@@ -2319,14 +2320,18 @@ out_acl:
WRITE32(stat.nlink);
}
if (bmval1 & FATTR4_WORD1_OWNER) {
@@ -5661,9 +5788,10 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfs4xdr.c linux-3.4.48-vs2.3.3.9/fs/n
if (status == nfserr_resource)
goto out_resource;
if (status)
-diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfsxdr.c linux-3.4.48-vs2.3.3.9/fs/nfsd/nfsxdr.c
---- linux-3.4.48/fs/nfsd/nfsxdr.c 2011-05-22 14:17:53.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/nfsd/nfsxdr.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c
+index 65ec595..31939e6 100644
+--- a/fs/nfsd/nfsxdr.c
++++ b/fs/nfsd/nfsxdr.c
@@ -6,6 +6,7 @@
#include "xdr.h"
@@ -5681,7 +5809,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfsxdr.c linux-3.4.48-vs2.3.3.9/fs/nf
iap->ia_valid = 0;
-@@ -101,12 +104,15 @@ decode_sattr(__be32 *p, struct iattr *ia
+@@ -101,12 +104,15 @@ decode_sattr(__be32 *p, struct iattr *iap)
}
if ((tmp = ntohl(*p++)) != (u32)-1) {
iap->ia_valid |= ATTR_UID;
@@ -5699,7 +5827,7 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfsxdr.c linux-3.4.48-vs2.3.3.9/fs/nf
if ((tmp = ntohl(*p++)) != (u32)-1) {
iap->ia_valid |= ATTR_SIZE;
iap->ia_size = tmp;
-@@ -151,8 +157,10 @@ encode_fattr(struct svc_rqst *rqstp, __b
+@@ -151,8 +157,10 @@ encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp,
*p++ = htonl(nfs_ftypes[type >> 12]);
*p++ = htonl((u32) stat->mode);
*p++ = htonl((u32) stat->nlink);
@@ -5712,10 +5840,11 @@ diff -NurpP --minimal linux-3.4.48/fs/nfsd/nfsxdr.c linux-3.4.48-vs2.3.3.9/fs/nf
if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
*p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/dlmglue.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/dlmglue.c
---- linux-3.4.48/fs/ocfs2/dlmglue.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/dlmglue.c 2013-03-02 15:26:44.000000000 +0000
-@@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struc
+diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
+index 231eab2..c48839a 100644
+--- a/fs/ocfs2/dlmglue.c
++++ b/fs/ocfs2/dlmglue.c
+@@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struct inode *inode)
lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters);
lvb->lvb_iuid = cpu_to_be32(inode->i_uid);
lvb->lvb_igid = cpu_to_be32(inode->i_gid);
@@ -5723,7 +5852,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/dlmglue.c linux-3.4.48-vs2.3.3.9/fs/
lvb->lvb_imode = cpu_to_be16(inode->i_mode);
lvb->lvb_inlink = cpu_to_be16(inode->i_nlink);
lvb->lvb_iatime_packed =
-@@ -2097,6 +2098,7 @@ static void ocfs2_refresh_inode_from_lvb
+@@ -2097,6 +2098,7 @@ static void ocfs2_refresh_inode_from_lvb(struct inode *inode)
inode->i_uid = be32_to_cpu(lvb->lvb_iuid);
inode->i_gid = be32_to_cpu(lvb->lvb_igid);
@@ -5731,9 +5860,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/dlmglue.c linux-3.4.48-vs2.3.3.9/fs/
inode->i_mode = be16_to_cpu(lvb->lvb_imode);
set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));
ocfs2_unpack_timespec(&inode->i_atime,
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/dlmglue.h linux-3.4.48-vs2.3.3.9/fs/ocfs2/dlmglue.h
---- linux-3.4.48/fs/ocfs2/dlmglue.h 2010-10-21 11:07:50.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/dlmglue.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h
+index 1d596d8..357ff1e 100644
+--- a/fs/ocfs2/dlmglue.h
++++ b/fs/ocfs2/dlmglue.h
@@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
__be16 lvb_inlink;
__be32 lvb_iattr;
@@ -5744,10 +5874,11 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/dlmglue.h linux-3.4.48-vs2.3.3.9/fs/
};
#define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/file.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/file.c
---- linux-3.4.48/fs/ocfs2/file.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/file.c 2012-07-17 22:29:43.000000000 +0000
-@@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry,
+diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
+index 7602783..b7567ce 100644
+--- a/fs/ocfs2/file.c
++++ b/fs/ocfs2/file.c
+@@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
attr->ia_valid &= ~ATTR_SIZE;
#define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \
@@ -5756,9 +5887,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/file.c linux-3.4.48-vs2.3.3.9/fs/ocf
if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
return 0;
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/inode.c
---- linux-3.4.48/fs/ocfs2/inode.c 2012-01-09 15:14:55.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/inode.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
+index 17454a9..e8e5419 100644
+--- a/fs/ocfs2/inode.c
++++ b/fs/ocfs2/inode.c
@@ -28,6 +28,7 @@
#include <linux/highmem.h>
#include <linux/pagemap.h>
@@ -5767,7 +5899,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/oc
#include <asm/byteorder.h>
-@@ -78,11 +79,13 @@ void ocfs2_set_inode_flags(struct inode
+@@ -78,11 +79,13 @@ void ocfs2_set_inode_flags(struct inode *inode)
{
unsigned int flags = OCFS2_I(inode)->ip_attr;
@@ -5782,7 +5914,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/oc
if (flags & OCFS2_SYNC_FL)
inode->i_flags |= S_SYNC;
-@@ -92,25 +95,44 @@ void ocfs2_set_inode_flags(struct inode
+@@ -92,25 +95,44 @@ void ocfs2_set_inode_flags(struct inode *inode)
inode->i_flags |= S_NOATIME;
if (flags & OCFS2_DIRSYNC_FL)
inode->i_flags |= S_DIRSYNC;
@@ -5831,7 +5963,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/oc
}
struct inode *ocfs2_ilookup(struct super_block *sb, u64 blkno)
-@@ -241,6 +263,8 @@ void ocfs2_populate_inode(struct inode *
+@@ -241,6 +263,8 @@ void ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe,
struct super_block *sb;
struct ocfs2_super *osb;
int use_plocks = 1;
@@ -5840,7 +5972,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/oc
sb = inode->i_sb;
osb = OCFS2_SB(sb);
-@@ -269,8 +293,12 @@ void ocfs2_populate_inode(struct inode *
+@@ -269,8 +293,12 @@ void ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe,
inode->i_generation = le32_to_cpu(fe->i_generation);
inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
inode->i_mode = le16_to_cpu(fe->i_mode);
@@ -5855,10 +5987,11 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.c linux-3.4.48-vs2.3.3.9/fs/oc
/* Fast symlinks will have i_size but no allocated clusters. */
if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.h linux-3.4.48-vs2.3.3.9/fs/ocfs2/inode.h
---- linux-3.4.48/fs/ocfs2/inode.h 2012-01-09 15:14:55.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/inode.h 2012-05-21 16:15:05.000000000 +0000
-@@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i
+diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
+index 88924a3..a154533 100644
+--- a/fs/ocfs2/inode.h
++++ b/fs/ocfs2/inode.h
+@@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct inode *inode,
void ocfs2_set_inode_flags(struct inode *inode);
void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi);
@@ -5866,10 +5999,11 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/inode.h linux-3.4.48-vs2.3.3.9/fs/oc
static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
{
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/ioctl.c
---- linux-3.4.48/fs/ocfs2/ioctl.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/ioctl.c 2012-05-21 16:15:05.000000000 +0000
-@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
+diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c
+index a1a1bfd..e97bd26 100644
+--- a/fs/ocfs2/ioctl.c
++++ b/fs/ocfs2/ioctl.c
+@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct inode *inode, unsigned *flags)
return status;
}
@@ -5912,7 +6046,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/oc
unsigned mask)
{
struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode);
-@@ -101,6 +135,11 @@ static int ocfs2_set_inode_attr(struct i
+@@ -101,6 +135,11 @@ static int ocfs2_set_inode_attr(struct inode *inode, unsigned flags,
if (!S_ISDIR(inode->i_mode))
flags &= ~OCFS2_DIRSYNC_FL;
@@ -5932,9 +6066,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ioctl.c linux-3.4.48-vs2.3.3.9/fs/oc
long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_path.dentry->d_inode;
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/namei.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/namei.c
---- linux-3.4.48/fs/ocfs2/namei.c 2012-03-19 18:47:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
+index a9856e3..ab87257 100644
+--- a/fs/ocfs2/namei.c
++++ b/fs/ocfs2/namei.c
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/highmem.h>
@@ -5943,7 +6078,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/namei.c linux-3.4.48-vs2.3.3.9/fs/oc
#include <cluster/masklog.h>
-@@ -475,6 +476,7 @@ static int __ocfs2_mknod_locked(struct i
+@@ -475,6 +476,7 @@ static int __ocfs2_mknod_locked(struct inode *dir,
struct ocfs2_dinode *fe = NULL;
struct ocfs2_extent_list *fel;
u16 feat;
@@ -5951,7 +6086,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/namei.c linux-3.4.48-vs2.3.3.9/fs/oc
*new_fe_bh = NULL;
-@@ -512,8 +514,11 @@ static int __ocfs2_mknod_locked(struct i
+@@ -512,8 +514,11 @@ static int __ocfs2_mknod_locked(struct inode *dir,
fe->i_suballoc_loc = cpu_to_le64(suballoc_loc);
fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
@@ -5965,9 +6100,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/namei.c linux-3.4.48-vs2.3.3.9/fs/oc
fe->i_mode = cpu_to_le16(inode->i_mode);
if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ocfs2.h linux-3.4.48-vs2.3.3.9/fs/ocfs2/ocfs2.h
---- linux-3.4.48/fs/ocfs2/ocfs2.h 2012-01-09 15:14:55.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/ocfs2.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
+index d355e6e..5d00443 100644
+--- a/fs/ocfs2/ocfs2.h
++++ b/fs/ocfs2/ocfs2.h
@@ -272,6 +272,7 @@ enum ocfs2_mount_options
writes */
OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -5976,9 +6112,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ocfs2.h linux-3.4.48-vs2.3.3.9/fs/oc
};
#define OCFS2_OSB_SOFT_RO 0x0001
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ocfs2_fs.h linux-3.4.48-vs2.3.3.9/fs/ocfs2/ocfs2_fs.h
---- linux-3.4.48/fs/ocfs2/ocfs2_fs.h 2011-05-22 14:17:53.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/ocfs2_fs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
+index 938387a..6e8d529 100644
+--- a/fs/ocfs2/ocfs2_fs.h
++++ b/fs/ocfs2/ocfs2_fs.h
@@ -266,6 +266,11 @@
#define OCFS2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/
#define OCFS2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */
@@ -5991,9 +6128,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/ocfs2_fs.h linux-3.4.48-vs2.3.3.9/fs
#define OCFS2_FL_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */
#define OCFS2_FL_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */
-diff -NurpP --minimal linux-3.4.48/fs/ocfs2/super.c linux-3.4.48-vs2.3.3.9/fs/ocfs2/super.c
---- linux-3.4.48/fs/ocfs2/super.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/ocfs2/super.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
+index 68f4541..dbb1f8d 100644
+--- a/fs/ocfs2/super.c
++++ b/fs/ocfs2/super.c
@@ -185,6 +185,7 @@ enum {
Opt_coherency_full,
Opt_resv_level,
@@ -6012,7 +6150,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/super.c linux-3.4.48-vs2.3.3.9/fs/oc
{Opt_err, NULL}
};
-@@ -662,6 +666,13 @@ static int ocfs2_remount(struct super_bl
+@@ -662,6 +666,13 @@ static int ocfs2_remount(struct super_block *sb, int *flags, char *data)
goto out;
}
@@ -6026,7 +6164,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/super.c linux-3.4.48-vs2.3.3.9/fs/oc
/* We're going to/from readonly mode. */
if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
/* Disable quota accounting before remounting RO */
-@@ -1177,6 +1188,9 @@ static int ocfs2_fill_super(struct super
+@@ -1177,6 +1188,9 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
ocfs2_complete_mount_recovery(osb);
@@ -6036,7 +6174,7 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/super.c linux-3.4.48-vs2.3.3.9/fs/oc
if (ocfs2_mount_local(osb))
snprintf(nodestr, sizeof(nodestr), "local");
else
-@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su
+@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct super_block *sb,
option < OCFS2_MAX_RESV_LEVEL)
mopt->dir_resv_level = option;
break;
@@ -6057,9 +6195,10 @@ diff -NurpP --minimal linux-3.4.48/fs/ocfs2/super.c linux-3.4.48-vs2.3.3.9/fs/oc
default:
mlog(ML_ERROR,
"Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
---- linux-3.4.48/fs/open.c 2013-06-13 08:59:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/open.c 2012-09-16 18:49:11.000000000 +0000
+diff --git a/fs/open.c b/fs/open.c
+index cf1d34f..9455091 100644
+--- a/fs/open.c
++++ b/fs/open.c
@@ -30,6 +30,11 @@
#include <linux/fs_struct.h>
#include <linux/ima.h>
@@ -6072,7 +6211,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
#include "internal.h"
-@@ -74,6 +79,12 @@ static long do_sys_truncate(const char _
+@@ -74,6 +79,12 @@ static long do_sys_truncate(const char __user *pathname, loff_t length)
error = user_path(pathname, &path);
if (error)
goto out;
@@ -6085,7 +6224,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
inode = path.dentry->d_inode;
/* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -489,6 +500,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+@@ -489,6 +500,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode
error = user_path_at(dfd, filename, LOOKUP_FOLLOW, &path);
if (!error) {
@@ -6096,7 +6235,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
error = chmod_common(&path, mode);
path_put(&path);
}
-@@ -509,11 +524,11 @@ static int chown_common(struct path *pat
+@@ -509,11 +524,11 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
newattrs.ia_valid = ATTR_CTIME;
if (user != (uid_t) -1) {
newattrs.ia_valid |= ATTR_UID;
@@ -6110,7 +6249,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
}
if (!S_ISDIR(inode->i_mode))
newattrs.ia_valid |=
-@@ -538,6 +553,10 @@ SYSCALL_DEFINE3(chown, const char __user
+@@ -538,6 +553,10 @@ SYSCALL_DEFINE3(chown, const char __user *, filename, uid_t, user, gid_t, group)
error = mnt_want_write(path.mnt);
if (error)
goto out_release;
@@ -6121,7 +6260,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
error = chown_common(&path, user, group);
mnt_drop_write(path.mnt);
out_release:
-@@ -565,6 +584,10 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
+@@ -565,6 +584,10 @@ SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
error = mnt_want_write(path.mnt);
if (error)
goto out_release;
@@ -6132,7 +6271,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
error = chown_common(&path, user, group);
mnt_drop_write(path.mnt);
out_release:
-@@ -584,6 +607,10 @@ SYSCALL_DEFINE3(lchown, const char __use
+@@ -584,6 +607,10 @@ SYSCALL_DEFINE3(lchown, const char __user *, filename, uid_t, user, gid_t, group
error = mnt_want_write(path.mnt);
if (error)
goto out_release;
@@ -6143,7 +6282,7 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
error = chown_common(&path, user, group);
mnt_drop_write(path.mnt);
out_release:
-@@ -839,6 +866,7 @@ static void __put_unused_fd(struct files
+@@ -839,6 +866,7 @@ static void __put_unused_fd(struct files_struct *files, unsigned int fd)
__clear_open_fd(fd, fdt);
if (fd < files->next_fd)
files->next_fd = fd;
@@ -6151,9 +6290,10 @@ diff -NurpP --minimal linux-3.4.48/fs/open.c linux-3.4.48-vs2.3.3.9/fs/open.c
}
void put_unused_fd(unsigned int fd)
-diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/proc/array.c
---- linux-3.4.48/fs/proc/array.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/array.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/array.c b/fs/proc/array.c
+index f9bd395..b0300cc 100644
+--- a/fs/proc/array.c
++++ b/fs/proc/array.c
@@ -81,6 +81,8 @@
#include <linux/pid_namespace.h>
#include <linux/ptrace.h>
@@ -6163,7 +6303,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
#include <asm/pgtable.h>
#include <asm/processor.h>
-@@ -170,6 +172,9 @@ static inline void task_state(struct seq
+@@ -170,6 +172,9 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
rcu_read_lock();
ppid = pid_alive(p) ?
task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
@@ -6173,7 +6313,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
tpid = 0;
if (pid_alive(p)) {
struct task_struct *tracer = ptrace_parent(p);
-@@ -287,7 +292,7 @@ static inline void task_sig(struct seq_f
+@@ -287,7 +292,7 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
}
static void render_cap_t(struct seq_file *m, const char *header,
@@ -6182,7 +6322,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
{
unsigned __capi;
-@@ -312,10 +317,11 @@ static inline void task_cap(struct seq_f
+@@ -312,10 +317,11 @@ static inline void task_cap(struct seq_file *m, struct task_struct *p)
cap_bset = cred->cap_bset;
rcu_read_unlock();
@@ -6198,7 +6338,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
}
static inline void task_context_switch_counts(struct seq_file *m,
-@@ -337,6 +343,42 @@ static void task_cpus_allowed(struct seq
+@@ -337,6 +343,42 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
seq_putc(m, '\n');
}
@@ -6241,7 +6381,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
-@@ -353,6 +395,7 @@ int proc_pid_status(struct seq_file *m,
+@@ -353,6 +395,7 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
task_cap(m, task);
task_cpus_allowed(m, task);
cpuset_task_status_allowed(m, task);
@@ -6249,7 +6389,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
task_context_switch_counts(m, task);
return 0;
}
-@@ -462,6 +505,17 @@ static int do_task_stat(struct seq_file
+@@ -462,6 +505,17 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
/* convert nsec -> ticks */
start_time = nsec_to_clock_t(start_time);
@@ -6267,9 +6407,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/array.c linux-3.4.48-vs2.3.3.9/fs/pro
seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state);
seq_put_decimal_ll(m, ' ', ppid);
seq_put_decimal_ll(m, ' ', pgid);
-diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc/base.c
---- linux-3.4.48/fs/proc/base.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/base.c 2012-06-28 14:45:07.000000000 +0000
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index 9fc77b4..eea14cb 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
@@ -84,6 +84,8 @@
#include <linux/fs_struct.h>
#include <linux/slab.h>
@@ -6279,7 +6420,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
#ifdef CONFIG_HARDWALL
#include <asm/hardwall.h>
#endif
-@@ -937,11 +939,16 @@ static ssize_t oom_adjust_write(struct f
+@@ -937,11 +939,16 @@ static ssize_t oom_adjust_write(struct file *file, const char __user *buf,
goto err_task_lock;
}
@@ -6297,7 +6438,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
/*
* Warn that /proc/pid/oom_adj is deprecated, see
* Documentation/feature-removal-schedule.txt.
-@@ -1541,6 +1548,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1541,6 +1548,8 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
inode->i_gid = cred->egid;
rcu_read_unlock();
}
@@ -6306,7 +6447,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
security_task_to_inode(task, inode);
out:
-@@ -1586,6 +1595,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1586,6 +1595,8 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
/* dentry stuff */
@@ -6315,7 +6456,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
/*
* Exceptional case: normally we are not allowed to unhash a busy
* directory. In this case, however, we can do it - no aliasing problems
-@@ -1614,6 +1625,12 @@ int pid_revalidate(struct dentry *dentry
+@@ -1614,6 +1625,12 @@ int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
task = get_proc_task(inode);
if (task) {
@@ -6328,7 +6469,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
task_dumpable(task)) {
rcu_read_lock();
-@@ -1630,6 +1647,7 @@ int pid_revalidate(struct dentry *dentry
+@@ -1630,6 +1647,7 @@ int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
put_task_struct(task);
return 1;
}
@@ -6336,7 +6477,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
d_drop(dentry);
return 0;
}
-@@ -2452,6 +2470,13 @@ static struct dentry *proc_pident_lookup
+@@ -2452,6 +2470,13 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
if (!task)
goto out_no_task;
@@ -6359,7 +6500,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
const struct pid_entry *p, *last;
error = ERR_PTR(-ENOENT);
-@@ -2944,6 +2969,9 @@ static int proc_pid_personality(struct s
+@@ -2944,6 +2969,9 @@ static int proc_pid_personality(struct seq_file *m, struct pid_namespace *ns,
static const struct file_operations proc_task_operations;
static const struct inode_operations proc_task_inode_operations;
@@ -6369,7 +6510,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
static const struct pid_entry tgid_base_stuff[] = {
DIR("task", S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations),
DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
-@@ -3010,6 +3038,8 @@ static const struct pid_entry tgid_base_
+@@ -3010,6 +3038,8 @@ static const struct pid_entry tgid_base_stuff[] = {
#ifdef CONFIG_CGROUPS
REG("cgroup", S_IRUGO, proc_cgroup_operations),
#endif
@@ -6378,7 +6519,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
INF("oom_score", S_IRUGO, proc_oom_score),
REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -3029,6 +3059,7 @@ static const struct pid_entry tgid_base_
+@@ -3029,6 +3059,7 @@ static const struct pid_entry tgid_base_stuff[] = {
#ifdef CONFIG_HARDWALL
INF("hardwall", S_IRUGO, proc_pid_hardwall),
#endif
@@ -6395,7 +6536,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
iter.task = pid_task(pid, PIDTYPE_PID);
/* What we to know is if the pid we have find is the
* pid of a thread_group_leader. Testing for task
-@@ -3252,7 +3283,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -3252,7 +3283,7 @@ static int proc_pid_fill_cache(struct file *filp, void *dirent, filldir_t filldi
struct tgid_iter iter)
{
char name[PROC_NUMBUF];
@@ -6404,7 +6545,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
return proc_fill_cache(filp, dirent, filldir, name, len,
proc_pid_instantiate, iter.task, NULL);
}
-@@ -3276,7 +3307,7 @@ int proc_pid_readdir(struct file * filp,
+@@ -3276,7 +3307,7 @@ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
goto out_no_task;
nr = filp->f_pos - FIRST_PROCESS_ENTRY;
@@ -6413,7 +6554,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
if (!reaper)
goto out_no_task;
-@@ -3298,6 +3329,8 @@ int proc_pid_readdir(struct file * filp,
+@@ -3298,6 +3329,8 @@ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
__filldir = fake_filldir;
filp->f_pos = iter.tgid + TGID_OFFSET;
@@ -6422,7 +6563,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
put_task_struct(iter.task);
goto out;
-@@ -3451,6 +3484,8 @@ static struct dentry *proc_task_lookup(s
+@@ -3451,6 +3484,8 @@ static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry
tid = name_to_int(dentry);
if (tid == ~0U)
goto out;
@@ -6431,9 +6572,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/base.c linux-3.4.48-vs2.3.3.9/fs/proc
ns = dentry->d_sb->s_fs_info;
rcu_read_lock();
-diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/proc/generic.c
---- linux-3.4.48/fs/proc/generic.c 2012-03-19 18:47:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/generic.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/generic.c b/fs/proc/generic.c
+index 2edf34f..3154d5b 100644
+--- a/fs/proc/generic.c
++++ b/fs/proc/generic.c
@@ -22,6 +22,7 @@
#include <linux/bitops.h>
#include <linux/spinlock.h>
@@ -6442,7 +6584,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
#include <asm/uaccess.h>
#include "internal.h"
-@@ -424,11 +425,15 @@ struct dentry *proc_lookup_de(struct pro
+@@ -424,11 +425,15 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
for (de = de->subdir; de ; de = de->next) {
if (de->namelen != dentry->d_name.len)
continue;
@@ -6458,7 +6600,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
goto out_unlock;
}
}
-@@ -506,6 +511,8 @@ int proc_readdir_de(struct proc_dir_entr
+@@ -506,6 +511,8 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
/* filldir passes info to user space */
pde_get(de);
@@ -6467,7 +6609,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
spin_unlock(&proc_subdir_lock);
if (filldir(dirent, de->name, de->namelen, filp->f_pos,
de->low_ino, de->mode >> 12) < 0) {
-@@ -513,6 +520,7 @@ int proc_readdir_de(struct proc_dir_entr
+@@ -513,6 +520,7 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
goto out;
}
spin_lock(&proc_subdir_lock);
@@ -6475,7 +6617,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
filp->f_pos++;
next = de->next;
pde_put(de);
-@@ -626,6 +634,7 @@ static struct proc_dir_entry *__proc_cre
+@@ -626,6 +634,7 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
ent->nlink = nlink;
atomic_set(&ent->count, 1);
ent->pde_users = 0;
@@ -6483,7 +6625,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
spin_lock_init(&ent->pde_unload_lock);
ent->pde_unload_completion = NULL;
INIT_LIST_HEAD(&ent->pde_openers);
-@@ -649,7 +658,8 @@ struct proc_dir_entry *proc_symlink(cons
+@@ -649,7 +658,8 @@ struct proc_dir_entry *proc_symlink(const char *name,
kfree(ent->data);
kfree(ent);
ent = NULL;
@@ -6493,10 +6635,11 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/generic.c linux-3.4.48-vs2.3.3.9/fs/p
} else {
kfree(ent);
ent = NULL;
-diff -NurpP --minimal linux-3.4.48/fs/proc/inode.c linux-3.4.48-vs2.3.3.9/fs/proc/inode.c
---- linux-3.4.48/fs/proc/inode.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/inode.c 2012-05-21 16:15:05.000000000 +0000
-@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct supe
+diff --git a/fs/proc/inode.c b/fs/proc/inode.c
+index 205c922..82266c0 100644
+--- a/fs/proc/inode.c
++++ b/fs/proc/inode.c
+@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
inode->i_uid = de->uid;
inode->i_gid = de->gid;
}
@@ -6505,9 +6648,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/inode.c linux-3.4.48-vs2.3.3.9/fs/pro
if (de->size)
inode->i_size = de->size;
if (de->nlink)
-diff -NurpP --minimal linux-3.4.48/fs/proc/internal.h linux-3.4.48-vs2.3.3.9/fs/proc/internal.h
---- linux-3.4.48/fs/proc/internal.h 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/internal.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/internal.h b/fs/proc/internal.h
+index 5f79bb8..c6bc064 100644
+--- a/fs/proc/internal.h
++++ b/fs/proc/internal.h
@@ -10,6 +10,8 @@
*/
@@ -6517,7 +6661,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/internal.h linux-3.4.48-vs2.3.3.9/fs/
struct ctl_table_header;
extern struct proc_dir_entry proc_root;
-@@ -54,6 +56,9 @@ extern int proc_pid_status(struct seq_fi
+@@ -54,6 +56,9 @@ extern int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task);
extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task);
@@ -6527,7 +6671,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/internal.h linux-3.4.48-vs2.3.3.9/fs/
extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
extern const struct file_operations proc_pid_maps_operations;
-@@ -82,11 +87,16 @@ static inline struct pid *proc_pid(struc
+@@ -82,11 +87,16 @@ static inline struct pid *proc_pid(struct inode *inode)
return PROC_I(inode)->pid;
}
@@ -6545,9 +6689,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/internal.h linux-3.4.48-vs2.3.3.9/fs/
static inline int proc_fd(struct inode *inode)
{
return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-3.4.48/fs/proc/loadavg.c linux-3.4.48-vs2.3.3.9/fs/proc/loadavg.c
---- linux-3.4.48/fs/proc/loadavg.c 2009-09-10 13:26:23.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/loadavg.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/loadavg.c b/fs/proc/loadavg.c
+index 1afa4dd..c7a8901 100644
+--- a/fs/proc/loadavg.c
++++ b/fs/proc/loadavg.c
@@ -12,15 +12,27 @@
static int loadavg_proc_show(struct seq_file *m, void *v)
@@ -6577,10 +6722,11 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/loadavg.c linux-3.4.48-vs2.3.3.9/fs/p
task_active_pid_ns(current)->last_pid);
return 0;
}
-diff -NurpP --minimal linux-3.4.48/fs/proc/meminfo.c linux-3.4.48-vs2.3.3.9/fs/proc/meminfo.c
---- linux-3.4.48/fs/proc/meminfo.c 2012-01-09 15:14:55.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/meminfo.c 2012-05-21 16:15:05.000000000 +0000
-@@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_
+diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
+index 80e4645..c8ae47e 100644
+--- a/fs/proc/meminfo.c
++++ b/fs/proc/meminfo.c
+@@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
allowed = ((totalram_pages - hugetlb_total_pages())
* sysctl_overcommit_ratio / 100) + total_swap_pages;
@@ -6590,9 +6736,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/meminfo.c linux-3.4.48-vs2.3.3.9/fs/p
total_swapcache_pages - i.bufferram;
if (cached < 0)
cached = 0;
-diff -NurpP --minimal linux-3.4.48/fs/proc/root.c linux-3.4.48-vs2.3.3.9/fs/proc/root.c
---- linux-3.4.48/fs/proc/root.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/root.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/root.c b/fs/proc/root.c
+index eed44bf..23bc771 100644
+--- a/fs/proc/root.c
++++ b/fs/proc/root.c
@@ -19,9 +19,14 @@
#include <linux/mount.h>
#include <linux/pid_namespace.h>
@@ -6624,9 +6771,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/root.c linux-3.4.48-vs2.3.3.9/fs/proc
.name = "/proc",
};
-diff -NurpP --minimal linux-3.4.48/fs/proc/stat.c linux-3.4.48-vs2.3.3.9/fs/proc/stat.c
---- linux-3.4.48/fs/proc/stat.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/stat.c 2012-11-06 17:02:35.000000000 +0000
+diff --git a/fs/proc/stat.c b/fs/proc/stat.c
+index e296572..378a2a9 100644
+--- a/fs/proc/stat.c
++++ b/fs/proc/stat.c
@@ -9,6 +9,7 @@
#include <linux/slab.h>
#include <linux/time.h>
@@ -6635,7 +6783,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/stat.c linux-3.4.48-vs2.3.3.9/fs/proc
#include <asm/cputime.h>
#include <linux/tick.h>
-@@ -92,6 +93,10 @@ static int show_stat(struct seq_file *p,
+@@ -92,6 +93,10 @@ static int show_stat(struct seq_file *p, void *v)
irq = softirq = steal = 0;
guest = guest_nice = 0;
getboottime(&boottime);
@@ -6646,9 +6794,10 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/stat.c linux-3.4.48-vs2.3.3.9/fs/proc
jif = boottime.tv_sec;
for_each_possible_cpu(i) {
-diff -NurpP --minimal linux-3.4.48/fs/proc/uptime.c linux-3.4.48-vs2.3.3.9/fs/proc/uptime.c
---- linux-3.4.48/fs/proc/uptime.c 2012-03-19 18:47:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc/uptime.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c
+index 9610ac7..5b37714 100644
+--- a/fs/proc/uptime.c
++++ b/fs/proc/uptime.c
@@ -5,6 +5,7 @@
#include <linux/seq_file.h>
#include <linux/time.h>
@@ -6657,7 +6806,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/uptime.c linux-3.4.48-vs2.3.3.9/fs/pr
#include <asm/cputime.h>
static int uptime_proc_show(struct seq_file *m, void *v)
-@@ -25,6 +26,10 @@ static int uptime_proc_show(struct seq_f
+@@ -25,6 +26,10 @@ static int uptime_proc_show(struct seq_file *m, void *v)
nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC;
idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
idle.tv_nsec = rem;
@@ -6668,10 +6817,11 @@ diff -NurpP --minimal linux-3.4.48/fs/proc/uptime.c linux-3.4.48-vs2.3.3.9/fs/pr
seq_printf(m, "%lu.%02lu %lu.%02lu\n",
(unsigned long) uptime.tv_sec,
(uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs/proc_namespace.c
---- linux-3.4.48/fs/proc_namespace.c 2012-03-19 18:47:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/proc_namespace.c 2012-05-21 16:15:05.000000000 +0000
-@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file
+diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
+index 1241285..23000d8 100644
+--- a/fs/proc_namespace.c
++++ b/fs/proc_namespace.c
+@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file *m, struct super_block *sb)
{ MS_SYNCHRONOUS, ",sync" },
{ MS_DIRSYNC, ",dirsync" },
{ MS_MANDLOCK, ",mand" },
@@ -6680,7 +6830,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
{ 0, NULL }
};
const struct proc_fs_info *fs_infop;
-@@ -80,6 +82,34 @@ static inline void mangle(struct seq_fil
+@@ -80,6 +82,34 @@ static inline void mangle(struct seq_file *m, const char *s)
seq_escape(m, s, " \t\n\\");
}
@@ -6715,7 +6865,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
static void show_type(struct seq_file *m, struct super_block *sb)
{
mangle(m, sb->s_type->name);
-@@ -96,6 +126,17 @@ static int show_vfsmnt(struct seq_file *
+@@ -96,6 +126,17 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
struct super_block *sb = mnt_path.dentry->d_sb;
@@ -6733,7 +6883,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
if (sb->s_op->show_devname) {
err = sb->s_op->show_devname(m, mnt_path.dentry);
if (err)
-@@ -106,6 +147,7 @@ static int show_vfsmnt(struct seq_file *
+@@ -106,6 +147,7 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
seq_putc(m, ' ');
seq_path(m, &mnt_path, " \t\n\\");
seq_putc(m, ' ');
@@ -6741,7 +6891,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
show_type(m, sb);
seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
err = show_sb_opts(m, sb);
-@@ -128,6 +170,11 @@ static int show_mountinfo(struct seq_fil
+@@ -128,6 +170,11 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
struct path root = p->root;
int err = 0;
@@ -6753,7 +6903,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
MAJOR(sb->s_dev), MINOR(sb->s_dev));
if (sb->s_op->show_path)
-@@ -187,6 +234,17 @@ static int show_vfsstat(struct seq_file
+@@ -187,6 +234,17 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
struct super_block *sb = mnt_path.dentry->d_sb;
int err = 0;
@@ -6771,7 +6921,7 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
/* device */
if (sb->s_op->show_devname) {
seq_puts(m, "device ");
-@@ -203,7 +261,7 @@ static int show_vfsstat(struct seq_file
+@@ -203,7 +261,7 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
seq_puts(m, " mounted on ");
seq_path(m, &mnt_path, " \t\n\\");
seq_putc(m, ' ');
@@ -6780,10 +6930,11 @@ diff -NurpP --minimal linux-3.4.48/fs/proc_namespace.c linux-3.4.48-vs2.3.3.9/fs
/* file system type */
seq_puts(m, "with fstype ");
show_type(m, sb);
-diff -NurpP --minimal linux-3.4.48/fs/quota/dquot.c linux-3.4.48-vs2.3.3.9/fs/quota/dquot.c
---- linux-3.4.48/fs/quota/dquot.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/quota/dquot.c 2012-05-21 16:15:05.000000000 +0000
-@@ -1563,6 +1563,9 @@ int __dquot_alloc_space(struct inode *in
+diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
+index d69a1d1..77e33ba 100644
+--- a/fs/quota/dquot.c
++++ b/fs/quota/dquot.c
+@@ -1563,6 +1563,9 @@ int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags)
struct dquot **dquots = inode->i_dquot;
int reserve = flags & DQUOT_SPACE_RESERVE;
@@ -6793,7 +6944,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/dquot.c linux-3.4.48-vs2.3.3.9/fs/qu
/*
* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex
-@@ -1618,6 +1621,9 @@ int dquot_alloc_inode(const struct inode
+@@ -1618,6 +1621,9 @@ int dquot_alloc_inode(const struct inode *inode)
struct dquot_warn warn[MAXQUOTAS];
struct dquot * const *dquots = inode->i_dquot;
@@ -6803,7 +6954,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/dquot.c linux-3.4.48-vs2.3.3.9/fs/qu
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode))
-@@ -1689,6 +1695,8 @@ void __dquot_free_space(struct inode *in
+@@ -1689,6 +1695,8 @@ void __dquot_free_space(struct inode *inode, qsize_t number, int flags)
struct dquot **dquots = inode->i_dquot;
int reserve = flags & DQUOT_SPACE_RESERVE;
@@ -6812,7 +6963,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/dquot.c linux-3.4.48-vs2.3.3.9/fs/qu
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode)) {
-@@ -1733,6 +1741,8 @@ void dquot_free_inode(const struct inode
+@@ -1733,6 +1741,8 @@ void dquot_free_inode(const struct inode *inode)
struct dquot_warn warn[MAXQUOTAS];
struct dquot * const *dquots = inode->i_dquot;
@@ -6821,9 +6972,10 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/dquot.c linux-3.4.48-vs2.3.3.9/fs/qu
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode))
-diff -NurpP --minimal linux-3.4.48/fs/quota/quota.c linux-3.4.48-vs2.3.3.9/fs/quota/quota.c
---- linux-3.4.48/fs/quota/quota.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/quota/quota.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/quota/quota.c b/fs/quota/quota.c
+index 9a39120..79cb4b1 100644
+--- a/fs/quota/quota.c
++++ b/fs/quota/quota.c
@@ -8,6 +8,7 @@
#include <linux/fs.h>
#include <linux/namei.h>
@@ -6832,7 +6984,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/quota.c linux-3.4.48-vs2.3.3.9/fs/qu
#include <asm/current.h>
#include <asm/uaccess.h>
#include <linux/kernel.h>
-@@ -37,7 +38,7 @@ static int check_quotactl_permission(str
+@@ -37,7 +38,7 @@ static int check_quotactl_permission(struct super_block *sb, int type, int cmd,
break;
/*FALLTHROUGH*/
default:
@@ -6841,7 +6993,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/quota.c linux-3.4.48-vs2.3.3.9/fs/qu
return -EPERM;
}
-@@ -291,6 +292,46 @@ static int do_quotactl(struct super_bloc
+@@ -291,6 +292,46 @@ static int do_quotactl(struct super_block *sb, int type, int cmd, qid_t id,
}
}
@@ -6888,7 +7040,7 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/quota.c linux-3.4.48-vs2.3.3.9/fs/qu
/* Return 1 if 'cmd' will block on frozen filesystem */
static int quotactl_cmd_write(int cmd)
{
-@@ -323,6 +364,22 @@ static struct super_block *quotactl_bloc
+@@ -323,6 +364,22 @@ static struct super_block *quotactl_block(const char __user *special, int cmd)
putname(tmp);
if (IS_ERR(bdev))
return ERR_CAST(bdev);
@@ -6911,19 +7063,21 @@ diff -NurpP --minimal linux-3.4.48/fs/quota/quota.c linux-3.4.48-vs2.3.3.9/fs/qu
if (quotactl_cmd_write(cmd))
sb = get_super_thawed(bdev);
else
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/file.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/file.c
---- linux-3.4.48/fs/reiserfs/file.c 2012-05-21 16:07:26.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/file.c 2012-05-21 16:15:05.000000000 +0000
-@@ -319,5 +319,6 @@ const struct inode_operations reiserfs_f
+diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
+index 8375c92..8c6e73d 100644
+--- a/fs/reiserfs/file.c
++++ b/fs/reiserfs/file.c
+@@ -319,5 +319,6 @@ const struct inode_operations reiserfs_file_inode_operations = {
.listxattr = reiserfs_listxattr,
.removexattr = reiserfs_removexattr,
.permission = reiserfs_permission,
+ .sync_flags = reiserfs_sync_flags,
.get_acl = reiserfs_get_acl,
};
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/inode.c
---- linux-3.4.48/fs/reiserfs/inode.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/inode.c 2012-12-08 00:53:53.000000000 +0000
+diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
+index c11db51..b7dc936 100644
+--- a/fs/reiserfs/inode.c
++++ b/fs/reiserfs/inode.c
@@ -18,6 +18,7 @@
#include <linux/writeback.h>
#include <linux/quotaops.h>
@@ -6932,7 +7086,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
int reiserfs_commit_write(struct file *f, struct page *page,
unsigned from, unsigned to);
-@@ -1131,6 +1132,8 @@ static void init_inode(struct inode *ino
+@@ -1131,6 +1132,8 @@ static void init_inode(struct inode *inode, struct treepath *path)
struct buffer_head *bh;
struct item_head *ih;
__u32 rdev;
@@ -6941,7 +7095,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
//int version = ITEM_VERSION_1;
bh = PATH_PLAST_BUFFER(path);
-@@ -1151,12 +1154,13 @@ static void init_inode(struct inode *ino
+@@ -1151,12 +1154,13 @@ static void init_inode(struct inode *inode, struct treepath *path)
(struct stat_data_v1 *)B_I_PITEM(bh, ih);
unsigned long blocks;
@@ -6957,7 +7111,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
inode->i_size = sd_v1_size(sd);
inode->i_atime.tv_sec = sd_v1_atime(sd);
inode->i_mtime.tv_sec = sd_v1_mtime(sd);
-@@ -1198,11 +1202,12 @@ static void init_inode(struct inode *ino
+@@ -1198,11 +1202,12 @@ static void init_inode(struct inode *inode, struct treepath *path)
// (directories and symlinks)
struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih);
@@ -6972,7 +7126,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
inode->i_mtime.tv_sec = sd_v2_mtime(sd);
inode->i_atime.tv_sec = sd_v2_atime(sd);
inode->i_ctime.tv_sec = sd_v2_ctime(sd);
-@@ -1232,6 +1237,10 @@ static void init_inode(struct inode *ino
+@@ -1232,6 +1237,10 @@ static void init_inode(struct inode *inode, struct treepath *path)
sd_attrs_to_i_attrs(sd_v2_attrs(sd), inode);
}
@@ -6983,7 +7137,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
pathrelse(path);
if (S_ISREG(inode->i_mode)) {
inode->i_op = &reiserfs_file_inode_operations;
-@@ -1254,13 +1263,15 @@ static void init_inode(struct inode *ino
+@@ -1254,13 +1263,15 @@ static void init_inode(struct inode *inode, struct treepath *path)
static void inode2sd(void *sd, struct inode *inode, loff_t size)
{
struct stat_data *sd_v2 = (struct stat_data *)sd;
@@ -7001,7 +7155,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
set_sd_v2_mtime(sd_v2, inode->i_mtime.tv_sec);
set_sd_v2_atime(sd_v2, inode->i_atime.tv_sec);
set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec);
-@@ -2875,14 +2886,19 @@ int reiserfs_commit_write(struct file *f
+@@ -2875,14 +2886,19 @@ int reiserfs_commit_write(struct file *f, struct page *page,
void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
{
if (reiserfs_attrs(inode->i_sb)) {
@@ -7025,7 +7179,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
if (sd_attrs & REISERFS_APPEND_FL)
inode->i_flags |= S_APPEND;
else
-@@ -2895,6 +2911,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
+@@ -2895,6 +2911,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
REISERFS_I(inode)->i_flags |= i_nopack_mask;
else
REISERFS_I(inode)->i_flags &= ~i_nopack_mask;
@@ -7041,7 +7195,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
}
}
-@@ -2905,6 +2930,11 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2905,6 +2930,11 @@ void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs)
*sd_attrs |= REISERFS_IMMUTABLE_FL;
else
*sd_attrs &= ~REISERFS_IMMUTABLE_FL;
@@ -7053,7 +7207,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
if (inode->i_flags & S_SYNC)
*sd_attrs |= REISERFS_SYNC_FL;
else
-@@ -2917,6 +2947,15 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2917,6 +2947,15 @@ void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs)
*sd_attrs |= REISERFS_NOTAIL_FL;
else
*sd_attrs &= ~REISERFS_NOTAIL_FL;
@@ -7069,7 +7223,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
}
}
-@@ -3161,7 +3200,8 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3161,7 +3200,8 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
}
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -7079,7 +7233,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
struct reiserfs_transaction_handle th;
int jbegin_count =
2 *
-@@ -3192,6 +3232,9 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3192,6 +3232,9 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -7089,9 +7243,10 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/inode.c linux-3.4.48-vs2.3.3.9/fs
mark_inode_dirty(inode);
error = journal_end(&th, inode->i_sb, jbegin_count);
if (error)
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/ioctl.c
---- linux-3.4.48/fs/reiserfs/ioctl.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c
+index 0c21850..c285691 100644
+--- a/fs/reiserfs/ioctl.c
++++ b/fs/reiserfs/ioctl.c
@@ -11,6 +11,21 @@
#include <linux/pagemap.h>
#include <linux/compat.h>
@@ -7123,7 +7278,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs
int err = 0;
reiserfs_write_lock(inode->i_sb);
-@@ -47,6 +62,7 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -47,6 +62,7 @@ long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
flags = REISERFS_I(inode)->i_attrs;
i_attrs_to_sd_attrs(inode, (__u16 *) & flags);
@@ -7131,7 +7286,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs
err = put_user(flags, (int __user *)arg);
break;
case REISERFS_IOC_SETFLAGS:{
-@@ -67,6 +83,10 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -67,6 +83,10 @@ long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
err = -EFAULT;
goto setflags_out;
}
@@ -7142,7 +7297,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs
/*
* Is it quota file? Do not allow user to mess with it
*/
-@@ -91,6 +111,10 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -91,6 +111,10 @@ long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
goto setflags_out;
}
}
@@ -7153,9 +7308,10 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/ioctl.c linux-3.4.48-vs2.3.3.9/fs
sd_attrs_to_i_attrs(flags, inode);
REISERFS_I(inode)->i_attrs = flags;
inode->i_ctime = CURRENT_TIME_SEC;
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/namei.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/namei.c
---- linux-3.4.48/fs/reiserfs/namei.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/namei.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
+index 84e8a69..2a1a8b3 100644
+--- a/fs/reiserfs/namei.c
++++ b/fs/reiserfs/namei.c
@@ -18,6 +18,7 @@
#include "acl.h"
#include "xattr.h"
@@ -7164,7 +7320,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/namei.c linux-3.4.48-vs2.3.3.9/fs
#define INC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) { inc_nlink(i); if (i->i_nlink >= REISERFS_LINK_MAX) set_nlink(i, 1); }
#define DEC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) drop_nlink(i);
-@@ -362,6 +363,7 @@ static struct dentry *reiserfs_lookup(st
+@@ -362,6 +363,7 @@ static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry,
if (retval == IO_ERROR) {
return ERR_PTR(-EIO);
}
@@ -7172,9 +7328,10 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/namei.c linux-3.4.48-vs2.3.3.9/fs
return d_splice_alias(inode, dentry);
}
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/reiserfs.h linux-3.4.48-vs2.3.3.9/fs/reiserfs/reiserfs.h
---- linux-3.4.48/fs/reiserfs/reiserfs.h 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/reiserfs.h 2012-05-21 17:19:33.000000000 +0000
+diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
+index a59d271..9d9dc3a 100644
+--- a/fs/reiserfs/reiserfs.h
++++ b/fs/reiserfs/reiserfs.h
@@ -544,6 +544,7 @@ enum reiserfs_mount_options {
REISERFS_EXPOSE_PRIVROOT,
REISERFS_BARRIER_NONE,
@@ -7205,7 +7362,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/reiserfs.h linux-3.4.48-vs2.3.3.9
/* Stat Data on disk (reiserfs version of UFS disk inode minus the
address blocks) */
struct stat_data {
-@@ -2641,6 +2650,7 @@ static inline void reiserfs_update_sd(st
+@@ -2641,6 +2650,7 @@ static inline void reiserfs_update_sd(struct reiserfs_transaction_handle *th,
void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode);
void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs);
int reiserfs_setattr(struct dentry *dentry, struct iattr *attr);
@@ -7213,10 +7370,11 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/reiserfs.h linux-3.4.48-vs2.3.3.9
int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len);
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/super.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/super.c
---- linux-3.4.48/fs/reiserfs/super.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/super.c 2012-12-08 00:53:53.000000000 +0000
-@@ -982,6 +982,14 @@ static int reiserfs_parse_options(struct
+diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
+index 8169be9..ae8e537 100644
+--- a/fs/reiserfs/super.c
++++ b/fs/reiserfs/super.c
+@@ -982,6 +982,14 @@ static int reiserfs_parse_options(struct super_block *s, char *options, /* strin
{"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
{"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
#endif
@@ -7231,7 +7389,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/super.c linux-3.4.48-vs2.3.3.9/fs
#ifdef CONFIG_REISERFS_FS_POSIX_ACL
{"acl",.setmask = 1 << REISERFS_POSIXACL},
{"noacl",.clrmask = 1 << REISERFS_POSIXACL},
-@@ -1300,6 +1308,14 @@ static int reiserfs_remount(struct super
+@@ -1300,6 +1308,14 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg)
handle_quota_files(s, qf_names, &qfmt);
#endif
@@ -7246,7 +7404,7 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/super.c linux-3.4.48-vs2.3.3.9/fs
handle_attrs(s);
/* Add options that are safe here */
-@@ -1792,6 +1808,10 @@ static int reiserfs_fill_super(struct su
+@@ -1792,6 +1808,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
goto error_unlocked;
}
@@ -7257,9 +7415,10 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/super.c linux-3.4.48-vs2.3.3.9/fs
rs = SB_DISK_SUPER_BLOCK(s);
/* Let's do basic sanity check to verify that underlying device is not
smaller than the filesystem. If the check fails then abort and scream,
-diff -NurpP --minimal linux-3.4.48/fs/reiserfs/xattr.c linux-3.4.48-vs2.3.3.9/fs/reiserfs/xattr.c
---- linux-3.4.48/fs/reiserfs/xattr.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/reiserfs/xattr.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
+index 048d990..32bd2be 100644
+--- a/fs/reiserfs/xattr.c
++++ b/fs/reiserfs/xattr.c
@@ -40,6 +40,7 @@
#include <linux/errno.h>
#include <linux/gfp.h>
@@ -7268,10 +7427,11 @@ diff -NurpP --minimal linux-3.4.48/fs/reiserfs/xattr.c linux-3.4.48-vs2.3.3.9/fs
#include <linux/file.h>
#include <linux/pagemap.h>
#include <linux/xattr.h>
-diff -NurpP --minimal linux-3.4.48/fs/stat.c linux-3.4.48-vs2.3.3.9/fs/stat.c
---- linux-3.4.48/fs/stat.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/stat.c 2012-10-22 13:09:53.000000000 +0000
-@@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
+diff --git a/fs/stat.c b/fs/stat.c
+index dc6d0be..5e6a73f 100644
+--- a/fs/stat.c
++++ b/fs/stat.c
+@@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
stat->nlink = inode->i_nlink;
stat->uid = inode->i_uid;
stat->gid = inode->i_gid;
@@ -7279,9 +7439,10 @@ diff -NurpP --minimal linux-3.4.48/fs/stat.c linux-3.4.48-vs2.3.3.9/fs/stat.c
stat->rdev = inode->i_rdev;
stat->size = i_size_read(inode);
stat->atime = inode->i_atime;
-diff -NurpP --minimal linux-3.4.48/fs/statfs.c linux-3.4.48-vs2.3.3.9/fs/statfs.c
---- linux-3.4.48/fs/statfs.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/statfs.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/statfs.c b/fs/statfs.c
+index 43e6b6f..bb1c8af 100644
+--- a/fs/statfs.c
++++ b/fs/statfs.c
@@ -7,6 +7,8 @@
#include <linux/statfs.h>
#include <linux/security.h>
@@ -7291,7 +7452,7 @@ diff -NurpP --minimal linux-3.4.48/fs/statfs.c linux-3.4.48-vs2.3.3.9/fs/statfs.
#include "internal.h"
static int flags_by_mnt(int mnt_flags)
-@@ -60,6 +62,8 @@ static int statfs_by_dentry(struct dentr
+@@ -60,6 +62,8 @@ static int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf)
retval = dentry->d_sb->s_op->statfs(dentry, buf);
if (retval == 0 && buf->f_frsize == 0)
buf->f_frsize = buf->f_bsize;
@@ -7300,9 +7461,10 @@ diff -NurpP --minimal linux-3.4.48/fs/statfs.c linux-3.4.48-vs2.3.3.9/fs/statfs.
return retval;
}
-diff -NurpP --minimal linux-3.4.48/fs/super.c linux-3.4.48-vs2.3.3.9/fs/super.c
---- linux-3.4.48/fs/super.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/super.c 2012-05-21 16:59:38.000000000 +0000
+diff --git a/fs/super.c b/fs/super.c
+index 3c520a5..c54c8c3 100644
+--- a/fs/super.c
++++ b/fs/super.c
@@ -33,6 +33,8 @@
#include <linux/rculist_bl.h>
#include <linux/cleancache.h>
@@ -7312,7 +7474,7 @@ diff -NurpP --minimal linux-3.4.48/fs/super.c linux-3.4.48-vs2.3.3.9/fs/super.c
#include "internal.h"
-@@ -1138,6 +1140,13 @@ mount_fs(struct file_system_type *type,
+@@ -1133,6 +1135,13 @@ mount_fs(struct file_system_type *type, int flags, const char *name, void *data)
WARN_ON(sb->s_bdi == &default_backing_dev_info);
sb->s_flags |= MS_BORN;
@@ -7326,10 +7488,11 @@ diff -NurpP --minimal linux-3.4.48/fs/super.c linux-3.4.48-vs2.3.3.9/fs/super.c
error = security_sb_kern_mount(sb, flags, secdata);
if (error)
goto out_sb;
-diff -NurpP --minimal linux-3.4.48/fs/sysfs/mount.c linux-3.4.48-vs2.3.3.9/fs/sysfs/mount.c
---- linux-3.4.48/fs/sysfs/mount.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/sysfs/mount.c 2012-05-21 16:15:05.000000000 +0000
-@@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
+diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
+index 52c3bdb..9a1d6a5 100644
+--- a/fs/sysfs/mount.c
++++ b/fs/sysfs/mount.c
+@@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
sb->s_blocksize = PAGE_CACHE_SIZE;
sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -7338,9 +7501,10 @@ diff -NurpP --minimal linux-3.4.48/fs/sysfs/mount.c linux-3.4.48-vs2.3.3.9/fs/sy
sb->s_op = &sysfs_ops;
sb->s_time_gran = 1;
-diff -NurpP --minimal linux-3.4.48/fs/utimes.c linux-3.4.48-vs2.3.3.9/fs/utimes.c
---- linux-3.4.48/fs/utimes.c 2011-05-22 14:17:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/utimes.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/utimes.c b/fs/utimes.c
+index ba653f3..ffac095 100644
+--- a/fs/utimes.c
++++ b/fs/utimes.c
@@ -8,6 +8,8 @@
#include <linux/stat.h>
#include <linux/utime.h>
@@ -7350,7 +7514,7 @@ diff -NurpP --minimal linux-3.4.48/fs/utimes.c linux-3.4.48-vs2.3.3.9/fs/utimes.
#include <asm/uaccess.h>
#include <asm/unistd.h>
-@@ -52,12 +54,18 @@ static int utimes_common(struct path *pa
+@@ -52,12 +54,18 @@ static int utimes_common(struct path *path, struct timespec *times)
{
int error;
struct iattr newattrs;
@@ -7370,9 +7534,10 @@ diff -NurpP --minimal linux-3.4.48/fs/utimes.c linux-3.4.48-vs2.3.3.9/fs/utimes.
if (times && times[0].tv_nsec == UTIME_NOW &&
times[1].tv_nsec == UTIME_NOW)
times = NULL;
-diff -NurpP --minimal linux-3.4.48/fs/xattr.c linux-3.4.48-vs2.3.3.9/fs/xattr.c
---- linux-3.4.48/fs/xattr.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xattr.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xattr.c b/fs/xattr.c
+index 3c8c1cc..fc48afc 100644
+--- a/fs/xattr.c
++++ b/fs/xattr.c
@@ -20,6 +20,7 @@
#include <linux/fsnotify.h>
#include <linux/audit.h>
@@ -7381,7 +7546,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xattr.c linux-3.4.48-vs2.3.3.9/fs/xattr.c
#include <asm/uaccess.h>
-@@ -51,7 +52,7 @@ xattr_permission(struct inode *inode, co
+@@ -51,7 +52,7 @@ xattr_permission(struct inode *inode, const char *name, int mask)
* The trusted.* namespace can only be accessed by privileged users.
*/
if (!strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) {
@@ -7390,9 +7555,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xattr.c linux-3.4.48-vs2.3.3.9/fs/xattr.c
return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
return 0;
}
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_dinode.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_dinode.h
---- linux-3.4.48/fs/xfs/xfs_dinode.h 2011-10-24 16:45:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_dinode.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h
+index a372163..a2bad6a 100644
+--- a/fs/xfs/xfs_dinode.h
++++ b/fs/xfs/xfs_dinode.h
@@ -51,7 +51,9 @@ typedef struct xfs_dinode {
__be32 di_nlink; /* number of links to file */
__be16 di_projid_lo; /* lower part of owner's project id */
@@ -7404,7 +7570,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_dinode.h linux-3.4.48-vs2.3.3.9/fs
__be16 di_flushiter; /* incremented on flush */
xfs_timestamp_t di_atime; /* time last accessed */
xfs_timestamp_t di_mtime; /* time last modified */
-@@ -184,6 +186,8 @@ static inline void xfs_dinode_put_rdev(s
+@@ -184,6 +186,8 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
#define XFS_DIFLAG_EXTSZINHERIT_BIT 12 /* inherit inode extent size */
#define XFS_DIFLAG_NODEFRAG_BIT 13 /* do not reorganize/defragment */
#define XFS_DIFLAG_FILESTREAM_BIT 14 /* use filestream allocator */
@@ -7413,7 +7579,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_dinode.h linux-3.4.48-vs2.3.3.9/fs
#define XFS_DIFLAG_REALTIME (1 << XFS_DIFLAG_REALTIME_BIT)
#define XFS_DIFLAG_PREALLOC (1 << XFS_DIFLAG_PREALLOC_BIT)
#define XFS_DIFLAG_NEWRTBM (1 << XFS_DIFLAG_NEWRTBM_BIT)
-@@ -199,6 +203,7 @@ static inline void xfs_dinode_put_rdev(s
+@@ -199,6 +203,7 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
#define XFS_DIFLAG_EXTSZINHERIT (1 << XFS_DIFLAG_EXTSZINHERIT_BIT)
#define XFS_DIFLAG_NODEFRAG (1 << XFS_DIFLAG_NODEFRAG_BIT)
#define XFS_DIFLAG_FILESTREAM (1 << XFS_DIFLAG_FILESTREAM_BIT)
@@ -7421,7 +7587,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_dinode.h linux-3.4.48-vs2.3.3.9/fs
#ifdef CONFIG_XFS_RT
#define XFS_IS_REALTIME_INODE(ip) ((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME)
-@@ -211,6 +216,10 @@ static inline void xfs_dinode_put_rdev(s
+@@ -211,6 +216,10 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND | XFS_DIFLAG_SYNC | \
XFS_DIFLAG_NOATIME | XFS_DIFLAG_NODUMP | XFS_DIFLAG_RTINHERIT | \
XFS_DIFLAG_PROJINHERIT | XFS_DIFLAG_NOSYMLINKS | XFS_DIFLAG_EXTSIZE | \
@@ -7433,9 +7599,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_dinode.h linux-3.4.48-vs2.3.3.9/fs
+#define XFS_DIVFLAG_COW 0x02
#endif /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_fs.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_fs.h
---- linux-3.4.48/fs/xfs/xfs_fs.h 2011-10-24 16:45:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_fs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h
+index c13fed8..6bfbcd1 100644
+--- a/fs/xfs/xfs_fs.h
++++ b/fs/xfs/xfs_fs.h
@@ -67,6 +67,9 @@ struct fsxattr {
#define XFS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */
#define XFS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */
@@ -7456,9 +7623,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_fs.h linux-3.4.48-vs2.3.3.9/fs/xfs
__u32 bs_dmevmask; /* DMIG event mask */
__u16 bs_dmstate; /* DMIG state info */
__u16 bs_aextents; /* attribute number of extents */
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ialloc.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ialloc.c
---- linux-3.4.48/fs/xfs/xfs_ialloc.c 2012-03-19 18:47:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ialloc.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
+index dad1a31..2bb267f 100644
+--- a/fs/xfs/xfs_ialloc.c
++++ b/fs/xfs/xfs_ialloc.c
@@ -37,7 +37,6 @@
#include "xfs_error.h"
#include "xfs_bmap.h"
@@ -7467,9 +7635,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ialloc.c linux-3.4.48-vs2.3.3.9/fs
/*
* Allocation group level functions.
*/
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_inode.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_inode.c
---- linux-3.4.48/fs/xfs/xfs_inode.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_inode.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
+index bc46c0a..5b88287 100644
+--- a/fs/xfs/xfs_inode.c
++++ b/fs/xfs/xfs_inode.c
@@ -236,6 +236,7 @@ xfs_inotobp(
return 0;
}
@@ -7644,9 +7813,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_inode.c linux-3.4.48-vs2.3.3.9/fs/
/* Wrap, we never let the log put out DI_MAX_FLUSH */
if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_inode.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_inode.h
---- linux-3.4.48/fs/xfs/xfs_inode.h 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_inode.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
+index 7fee338..dbc374b 100644
+--- a/fs/xfs/xfs_inode.h
++++ b/fs/xfs/xfs_inode.h
@@ -134,7 +134,9 @@ typedef struct xfs_icdinode {
__uint32_t di_nlink; /* number of links to file */
__uint16_t di_projid_lo; /* lower part of owner's project id */
@@ -7658,7 +7828,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_inode.h linux-3.4.48-vs2.3.3.9/fs/
__uint16_t di_flushiter; /* incremented on flush */
xfs_ictimestamp_t di_atime; /* time last accessed */
xfs_ictimestamp_t di_mtime; /* time last modified */
-@@ -565,7 +567,7 @@ int xfs_itobp(struct xfs_mount *, struc
+@@ -565,7 +567,7 @@ int xfs_itobp(struct xfs_mount *, struct xfs_trans *,
int xfs_iread(struct xfs_mount *, struct xfs_trans *,
struct xfs_inode *, uint);
void xfs_dinode_to_disk(struct xfs_dinode *,
@@ -7667,9 +7837,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_inode.h linux-3.4.48-vs2.3.3.9/fs/
void xfs_idestroy_fork(struct xfs_inode *, int);
void xfs_idata_realloc(struct xfs_inode *, int, int);
void xfs_iroot_realloc(struct xfs_inode *, int, int);
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ioctl.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ioctl.c
---- linux-3.4.48/fs/xfs/xfs_ioctl.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ioctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
+index 91f8ff5..6b2f15d 100644
+--- a/fs/xfs/xfs_ioctl.c
++++ b/fs/xfs/xfs_ioctl.c
@@ -28,7 +28,7 @@
#include "xfs_bmap_btree.h"
#include "xfs_dinode.h"
@@ -7738,9 +7909,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ioctl.c linux-3.4.48-vs2.3.3.9/fs/
return xfs_ioc_setxflags(ip, filp, arg);
case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ioctl.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ioctl.h
---- linux-3.4.48/fs/xfs/xfs_ioctl.h 2011-10-24 16:45:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_ioctl.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_ioctl.h b/fs/xfs/xfs_ioctl.h
+index d56173b..a8f7331 100644
+--- a/fs/xfs/xfs_ioctl.h
++++ b/fs/xfs/xfs_ioctl.h
@@ -70,6 +70,12 @@ xfs_handle_to_dentry(
void __user *uhandle,
u32 hlen);
@@ -7754,9 +7926,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_ioctl.h linux-3.4.48-vs2.3.3.9/fs/
extern long
xfs_file_ioctl(
struct file *filp,
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_iops.c
---- linux-3.4.48/fs/xfs/xfs_iops.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_iops.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
+index 23c79ca..91a953f 100644
+--- a/fs/xfs/xfs_iops.c
++++ b/fs/xfs/xfs_iops.c
@@ -30,6 +30,7 @@
#include "xfs_bmap_btree.h"
#include "xfs_dinode.h"
@@ -7781,7 +7954,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
stat->ino = ip->i_ino;
stat->atime = inode->i_atime;
stat->mtime = inode->i_mtime;
-@@ -996,6 +999,7 @@ static const struct inode_operations xfs
+@@ -1013,6 +1016,7 @@ static const struct inode_operations xfs_inode_operations = {
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr,
.fiemap = xfs_vn_fiemap,
@@ -7789,7 +7962,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
};
static const struct inode_operations xfs_dir_inode_operations = {
-@@ -1021,6 +1025,7 @@ static const struct inode_operations xfs
+@@ -1038,6 +1042,7 @@ static const struct inode_operations xfs_dir_inode_operations = {
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr,
@@ -7797,7 +7970,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
};
static const struct inode_operations xfs_dir_ci_inode_operations = {
-@@ -1070,6 +1075,10 @@ xfs_diflags_to_iflags(
+@@ -1087,6 +1092,10 @@ xfs_diflags_to_iflags(
inode->i_flags |= S_IMMUTABLE;
else
inode->i_flags &= ~S_IMMUTABLE;
@@ -7808,7 +7981,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
inode->i_flags |= S_APPEND;
else
-@@ -1082,6 +1091,15 @@ xfs_diflags_to_iflags(
+@@ -1099,6 +1108,15 @@ xfs_diflags_to_iflags(
inode->i_flags |= S_NOATIME;
else
inode->i_flags &= ~S_NOATIME;
@@ -7824,7 +7997,7 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
}
/*
-@@ -1113,6 +1131,7 @@ xfs_setup_inode(
+@@ -1130,6 +1148,7 @@ xfs_setup_inode(
set_nlink(inode, ip->i_d.di_nlink);
inode->i_uid = ip->i_d.di_uid;
inode->i_gid = ip->i_d.di_gid;
@@ -7832,9 +8005,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_iops.c linux-3.4.48-vs2.3.3.9/fs/x
switch (inode->i_mode & S_IFMT) {
case S_IFBLK:
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_itable.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_itable.c
---- linux-3.4.48/fs/xfs/xfs_itable.c 2012-05-21 16:07:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_itable.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
+index acc2bf2..5ccb314 100644
+--- a/fs/xfs/xfs_itable.c
++++ b/fs/xfs/xfs_itable.c
@@ -97,6 +97,7 @@ xfs_bulkstat_one_int(
buf->bs_mode = dic->di_mode;
buf->bs_uid = dic->di_uid;
@@ -7843,9 +8017,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_itable.c linux-3.4.48-vs2.3.3.9/fs
buf->bs_size = dic->di_size;
buf->bs_atime.tv_sec = dic->di_atime.t_sec;
buf->bs_atime.tv_nsec = dic->di_atime.t_nsec;
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_linux.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_linux.h
---- linux-3.4.48/fs/xfs/xfs_linux.h 2011-10-24 16:45:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_linux.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
+index 828662f..dbc20e6 100644
+--- a/fs/xfs/xfs_linux.h
++++ b/fs/xfs/xfs_linux.h
@@ -121,6 +121,7 @@
#define current_cpu() (raw_smp_processor_id())
@@ -7854,9 +8029,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_linux.h linux-3.4.48-vs2.3.3.9/fs/
#define current_test_flags(f) (current->flags & (f))
#define current_set_flags_nested(sp, f) \
(*(sp) = current->flags, current->flags |= (f))
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_log_recover.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_log_recover.c
---- linux-3.4.48/fs/xfs/xfs_log_recover.c 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_log_recover.c 2012-11-18 23:52:29.000000000 +0000
+diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
+index 0abb162..f9bac62 100644
+--- a/fs/xfs/xfs_log_recover.c
++++ b/fs/xfs/xfs_log_recover.c
@@ -2344,7 +2344,8 @@ xlog_recover_inode_pass2(
}
@@ -7867,9 +8043,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_log_recover.c linux-3.4.48-vs2.3.3
/* the rest is in on-disk format */
if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_mount.h linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_mount.h
---- linux-3.4.48/fs/xfs/xfs_mount.h 2012-05-21 16:07:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_mount.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
+index 9eba738..e5784cf 100644
+--- a/fs/xfs/xfs_mount.h
++++ b/fs/xfs/xfs_mount.h
@@ -251,6 +251,7 @@ typedef struct xfs_mount {
allocator */
#define XFS_MOUNT_NOATTR2 (1ULL << 25) /* disable use of attr2 format */
@@ -7878,9 +8055,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_mount.h linux-3.4.48-vs2.3.3.9/fs/
/*
* Default minimum read and write sizes.
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_super.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_super.c
---- linux-3.4.48/fs/xfs/xfs_super.c 2012-05-21 16:07:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_super.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
+index dab9a5f..01d34c9 100644
+--- a/fs/xfs/xfs_super.c
++++ b/fs/xfs/xfs_super.c
@@ -113,6 +113,9 @@ mempool_t *xfs_ioend_pool;
#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */
#define MNTOPT_DISCARD "discard" /* Discard unused blocks */
@@ -7953,9 +8131,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_super.c linux-3.4.48-vs2.3.3.9/fs/
/*
* we must configure the block size in the superblock before we run the
* full mount process as the mount process can lookup and cache inodes.
-diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_vnodeops.c linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_vnodeops.c
---- linux-3.4.48/fs/xfs/xfs_vnodeops.c 2012-05-21 16:07:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/fs/xfs/xfs_vnodeops.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
+index 64981d7..efc3c76 100644
+--- a/fs/xfs/xfs_vnodeops.c
++++ b/fs/xfs/xfs_vnodeops.c
@@ -106,6 +106,77 @@ xfs_readlink_bmap(
return error;
}
@@ -8034,9 +8213,10 @@ diff -NurpP --minimal linux-3.4.48/fs/xfs/xfs_vnodeops.c linux-3.4.48-vs2.3.3.9/
int
xfs_readlink(
xfs_inode_t *ip,
-diff -NurpP --minimal linux-3.4.48/include/linux/Kbuild linux-3.4.48-vs2.3.3.9/include/linux/Kbuild
---- linux-3.4.48/include/linux/Kbuild 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/Kbuild 2012-07-24 09:52:30.000000000 +0000
+diff --git a/include/linux/Kbuild b/include/linux/Kbuild
+index f2f73f9..936cee2 100644
+--- a/include/linux/Kbuild
++++ b/include/linux/Kbuild
@@ -18,6 +18,7 @@ header-y += netfilter_bridge/
header-y += netfilter_ipv4/
header-y += netfilter_ipv6/
@@ -8045,9 +8225,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/Kbuild linux-3.4.48-vs2.3.3.9/i
header-y += wimax/
objhdr-y += version.h
-diff -NurpP --minimal linux-3.4.48/include/linux/capability.h linux-3.4.48-vs2.3.3.9/include/linux/capability.h
---- linux-3.4.48/include/linux/capability.h 2012-03-19 18:47:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/capability.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/capability.h b/include/linux/capability.h
+index 12d52de..80dbfc5 100644
+--- a/include/linux/capability.h
++++ b/include/linux/capability.h
@@ -280,6 +280,7 @@ struct cpu_vfs_cap_data {
arbitrary SCSI commands */
/* Allow setting encryption key on loopback filesystem */
@@ -8070,10 +8251,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/capability.h linux-3.4.48-vs2.3
/*
* Bit location of each capability (used by user-space library and kernel)
-diff -NurpP --minimal linux-3.4.48/include/linux/cred.h linux-3.4.48-vs2.3.3.9/include/linux/cred.h
---- linux-3.4.48/include/linux/cred.h 2012-03-19 18:47:27.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/cred.h 2012-05-21 16:15:05.000000000 +0000
-@@ -156,6 +156,7 @@ extern void exit_creds(struct task_struc
+diff --git a/include/linux/cred.h b/include/linux/cred.h
+index adadf71..ed9c50c 100644
+--- a/include/linux/cred.h
++++ b/include/linux/cred.h
+@@ -156,6 +156,7 @@ extern void exit_creds(struct task_struct *);
extern int copy_creds(struct task_struct *, unsigned long);
extern const struct cred *get_task_cred(struct task_struct *);
extern struct cred *cred_alloc_blank(void);
@@ -8081,7 +8263,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/cred.h linux-3.4.48-vs2.3.3.9/i
extern struct cred *prepare_creds(void);
extern struct cred *prepare_exec_creds(void);
extern int commit_creds(struct cred *);
-@@ -209,6 +210,31 @@ static inline void validate_process_cred
+@@ -209,6 +210,31 @@ static inline void validate_process_creds(void)
}
#endif
@@ -8113,18 +8295,20 @@ diff -NurpP --minimal linux-3.4.48/include/linux/cred.h linux-3.4.48-vs2.3.3.9/i
/**
* get_new_cred - Get a reference on a new set of credentials
* @cred: The new credentials to reference
-diff -NurpP --minimal linux-3.4.48/include/linux/devpts_fs.h linux-3.4.48-vs2.3.3.9/include/linux/devpts_fs.h
---- linux-3.4.48/include/linux/devpts_fs.h 2008-12-24 23:26:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/devpts_fs.h 2012-05-21 16:15:05.000000000 +0000
-@@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
+diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h
+index 5ce0e5f..3c122e5 100644
+--- a/include/linux/devpts_fs.h
++++ b/include/linux/devpts_fs.h
+@@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struct tty_struct *tty) { }
#endif
-
#endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/include/linux/fs.h
---- linux-3.4.48/include/linux/fs.h 2012-05-21 16:07:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/fs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 25c40b9..fff34c5 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
@@ -214,6 +214,9 @@ struct inodes_stat_t {
#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
@@ -8202,7 +8386,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/inc
#define SYNC_FILE_RANGE_WAIT_BEFORE 1
#define SYNC_FILE_RANGE_WRITE 2
-@@ -456,6 +483,7 @@ typedef void (dio_iodone_t)(struct kiocb
+@@ -456,6 +483,7 @@ typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
#define ATTR_KILL_PRIV (1 << 14)
#define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
#define ATTR_TIMES_SET (1 << 16)
@@ -8247,7 +8431,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/inc
struct timespec i_atime;
struct timespec i_mtime;
struct timespec i_ctime;
-@@ -929,12 +964,12 @@ static inline void i_size_write(struct i
+@@ -929,12 +964,12 @@ static inline void i_size_write(struct inode *inode, loff_t i_size)
static inline unsigned iminor(const struct inode *inode)
{
@@ -8286,7 +8470,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/inc
void (*truncate_range)(struct inode *, loff_t, loff_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
u64 len);
-@@ -1680,6 +1718,7 @@ extern ssize_t vfs_readv(struct file *,
+@@ -1680,6 +1718,7 @@ extern ssize_t vfs_readv(struct file *, const struct iovec __user *,
unsigned long, loff_t *);
extern ssize_t vfs_writev(struct file *, const struct iovec __user *,
unsigned long, loff_t *);
@@ -8294,7 +8478,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/inc
struct super_operations {
struct inode *(*alloc_inode)(struct super_block *sb);
-@@ -2509,6 +2548,7 @@ extern int dcache_dir_open(struct inode
+@@ -2509,6 +2548,7 @@ extern int dcache_dir_open(struct inode *, struct file *);
extern int dcache_dir_close(struct inode *, struct file *);
extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
extern int dcache_readdir(struct file *, void *, filldir_t);
@@ -8302,9 +8486,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/fs.h linux-3.4.48-vs2.3.3.9/inc
extern int simple_setattr(struct dentry *, struct iattr *);
extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
extern int simple_statfs(struct dentry *, struct kstatfs *);
-diff -NurpP --minimal linux-3.4.48/include/linux/gfs2_ondisk.h linux-3.4.48-vs2.3.3.9/include/linux/gfs2_ondisk.h
---- linux-3.4.48/include/linux/gfs2_ondisk.h 2012-05-21 16:07:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/gfs2_ondisk.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/gfs2_ondisk.h b/include/linux/gfs2_ondisk.h
+index fa98bdb..0963c10 100644
+--- a/include/linux/gfs2_ondisk.h
++++ b/include/linux/gfs2_ondisk.h
@@ -214,6 +214,9 @@ enum {
gfs2fl_NoAtime = 7,
gfs2fl_Sync = 8,
@@ -8325,9 +8510,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/gfs2_ondisk.h linux-3.4.48-vs2.
#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000
#define GFS2_DIF_INHERIT_JDATA 0x80000000
-diff -NurpP --minimal linux-3.4.48/include/linux/if_tun.h linux-3.4.48-vs2.3.3.9/include/linux/if_tun.h
---- linux-3.4.48/include/linux/if_tun.h 2010-08-02 14:52:54.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/if_tun.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/if_tun.h b/include/linux/if_tun.h
+index 06b1829..b222127 100644
+--- a/include/linux/if_tun.h
++++ b/include/linux/if_tun.h
@@ -53,6 +53,7 @@
#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
@@ -8336,10 +8522,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/if_tun.h linux-3.4.48-vs2.3.3.9
/* TUNSETIFF ifr flags */
#define IFF_TUN 0x0001
-diff -NurpP --minimal linux-3.4.48/include/linux/init_task.h linux-3.4.48-vs2.3.3.9/include/linux/init_task.h
---- linux-3.4.48/include/linux/init_task.h 2013-06-13 08:59:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/init_task.h 2012-10-22 13:09:53.000000000 +0000
-@@ -210,6 +210,10 @@ extern struct task_group root_task_group
+diff --git a/include/linux/init_task.h b/include/linux/init_task.h
+index e7bafa4..9f491e1 100644
+--- a/include/linux/init_task.h
++++ b/include/linux/init_task.h
+@@ -210,6 +210,10 @@ extern struct task_group root_task_group;
INIT_TRACE_RECURSION \
INIT_TASK_RCU_PREEMPT(tsk) \
INIT_CPUSET_SEQ \
@@ -8350,9 +8537,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/init_task.h linux-3.4.48-vs2.3.
}
-diff -NurpP --minimal linux-3.4.48/include/linux/ipc.h linux-3.4.48-vs2.3.3.9/include/linux/ipc.h
---- linux-3.4.48/include/linux/ipc.h 2012-03-19 18:47:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/ipc.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/ipc.h b/include/linux/ipc.h
+index 30e8161..ba4ea32 100644
+--- a/include/linux/ipc.h
++++ b/include/linux/ipc.h
@@ -91,6 +91,7 @@ struct kern_ipc_perm
key_t key;
uid_t uid;
@@ -8361,10 +8549,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/ipc.h linux-3.4.48-vs2.3.3.9/in
uid_t cuid;
gid_t cgid;
umode_t mode;
-diff -NurpP --minimal linux-3.4.48/include/linux/ipc_namespace.h linux-3.4.48-vs2.3.3.9/include/linux/ipc_namespace.h
---- linux-3.4.48/include/linux/ipc_namespace.h 2011-10-24 16:45:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/ipc_namespace.h 2013-06-13 09:46:39.000000000 +0000
-@@ -101,7 +101,8 @@ static inline int mq_init_ns(struct ipc_
+diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
+index 497c6cc..56868cd 100644
+--- a/include/linux/ipc_namespace.h
++++ b/include/linux/ipc_namespace.h
+@@ -101,7 +101,8 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
#if defined(CONFIG_IPC_NS)
extern struct ipc_namespace *copy_ipcs(unsigned long flags,
@@ -8374,7 +8563,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/ipc_namespace.h linux-3.4.48-vs
static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
{
if (ns)
-@@ -112,12 +113,13 @@ static inline struct ipc_namespace *get_
+@@ -112,12 +113,13 @@ static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
extern void put_ipc_ns(struct ipc_namespace *ns);
#else
static inline struct ipc_namespace *copy_ipcs(unsigned long flags,
@@ -8390,9 +8579,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/ipc_namespace.h linux-3.4.48-vs
}
static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-diff -NurpP --minimal linux-3.4.48/include/linux/loop.h linux-3.4.48-vs2.3.3.9/include/linux/loop.h
---- linux-3.4.48/include/linux/loop.h 2012-01-09 15:14:58.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/loop.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/loop.h b/include/linux/loop.h
+index 11a41a8..ddff471 100644
+--- a/include/linux/loop.h
++++ b/include/linux/loop.h
@@ -45,6 +45,7 @@ struct loop_device {
struct loop_func_table *lo_encryption;
__u32 lo_init[2];
@@ -8401,9 +8591,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/loop.h linux-3.4.48-vs2.3.3.9/i
int (*ioctl)(struct loop_device *, int cmd,
unsigned long arg);
-diff -NurpP --minimal linux-3.4.48/include/linux/magic.h linux-3.4.48-vs2.3.3.9/include/linux/magic.h
---- linux-3.4.48/include/linux/magic.h 2012-05-21 16:07:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/magic.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/magic.h b/include/linux/magic.h
+index e15192c..9f89937 100644
+--- a/include/linux/magic.h
++++ b/include/linux/magic.h
@@ -3,7 +3,7 @@
#define ADFS_SUPER_MAGIC 0xadf5
@@ -8413,9 +8604,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/magic.h linux-3.4.48-vs2.3.3.9/
#define AUTOFS_SUPER_MAGIC 0x0187
#define CODA_SUPER_MAGIC 0x73757245
#define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
-diff -NurpP --minimal linux-3.4.48/include/linux/major.h linux-3.4.48-vs2.3.3.9/include/linux/major.h
---- linux-3.4.48/include/linux/major.h 2009-09-10 13:26:25.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/major.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/major.h b/include/linux/major.h
+index 6a8ca98..da44aa0 100644
+--- a/include/linux/major.h
++++ b/include/linux/major.h
@@ -15,6 +15,7 @@
#define HD_MAJOR IDE0_MAJOR
#define PTY_SLAVE_MAJOR 3
@@ -8424,10 +8616,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/major.h linux-3.4.48-vs2.3.3.9/
#define TTYAUX_MAJOR 5
#define LP_MAJOR 6
#define VCS_MAJOR 7
-diff -NurpP --minimal linux-3.4.48/include/linux/memcontrol.h linux-3.4.48-vs2.3.3.9/include/linux/memcontrol.h
---- linux-3.4.48/include/linux/memcontrol.h 2012-05-21 16:07:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/memcontrol.h 2012-05-21 16:15:05.000000000 +0000
-@@ -88,6 +88,13 @@ extern struct mem_cgroup *try_get_mem_cg
+diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
+index f94efd2..8396eb5 100644
+--- a/include/linux/memcontrol.h
++++ b/include/linux/memcontrol.h
+@@ -88,6 +88,13 @@ extern struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm);
extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg);
extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont);
@@ -8441,9 +8634,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/memcontrol.h linux-3.4.48-vs2.3
static inline
int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
{
-diff -NurpP --minimal linux-3.4.48/include/linux/mm_types.h linux-3.4.48-vs2.3.3.9/include/linux/mm_types.h
---- linux-3.4.48/include/linux/mm_types.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/mm_types.h 2012-07-17 22:29:43.000000000 +0000
+diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
+index b35752f..c8a5869 100644
+--- a/include/linux/mm_types.h
++++ b/include/linux/mm_types.h
@@ -353,6 +353,7 @@ struct mm_struct {
/* Architecture-specific MM context */
@@ -8452,9 +8646,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/mm_types.h linux-3.4.48-vs2.3.3
/* Swap token stuff */
/*
-diff -NurpP --minimal linux-3.4.48/include/linux/mmzone.h linux-3.4.48-vs2.3.3.9/include/linux/mmzone.h
---- linux-3.4.48/include/linux/mmzone.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/mmzone.h 2012-07-17 22:29:43.000000000 +0000
+diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
+index 5f6806b..cc90e9c 100644
+--- a/include/linux/mmzone.h
++++ b/include/linux/mmzone.h
@@ -684,6 +684,13 @@ typedef struct pglist_data {
__pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
})
@@ -8469,9 +8664,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/mmzone.h linux-3.4.48-vs2.3.3.9
#include <linux/memory_hotplug.h>
extern struct mutex zonelists_mutex;
-diff -NurpP --minimal linux-3.4.48/include/linux/mount.h linux-3.4.48-vs2.3.3.9/include/linux/mount.h
---- linux-3.4.48/include/linux/mount.h 2012-03-19 18:47:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/mount.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/mount.h b/include/linux/mount.h
+index d7029f4..1e76e26 100644
+--- a/include/linux/mount.h
++++ b/include/linux/mount.h
@@ -47,6 +47,9 @@ struct mnt_namespace;
#define MNT_INTERNAL 0x4000
@@ -8482,9 +8678,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/mount.h linux-3.4.48-vs2.3.3.9/
struct vfsmount {
struct dentry *mnt_root; /* root of the mounted tree */
struct super_block *mnt_sb; /* pointer to superblock */
-diff -NurpP --minimal linux-3.4.48/include/linux/net.h linux-3.4.48-vs2.3.3.9/include/linux/net.h
---- linux-3.4.48/include/linux/net.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/net.h 2012-09-01 08:51:18.000000000 +0000
+diff --git a/include/linux/net.h b/include/linux/net.h
+index 95fea14..0a95dd7 100644
+--- a/include/linux/net.h
++++ b/include/linux/net.h
@@ -73,6 +73,7 @@ struct net;
#define SOCK_PASSCRED 3
#define SOCK_PASSSEC 4
@@ -8493,10 +8690,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/net.h linux-3.4.48-vs2.3.3.9/in
#ifndef ARCH_HAS_SOCKET_TYPES
/**
-diff -NurpP --minimal linux-3.4.48/include/linux/netdevice.h linux-3.4.48-vs2.3.3.9/include/linux/netdevice.h
---- linux-3.4.48/include/linux/netdevice.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/netdevice.h 2013-06-13 09:46:39.000000000 +0000
-@@ -1624,6 +1624,7 @@ extern void netdev_resync_ops(struct ne
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index dc6c687..6f626d6 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -1624,6 +1624,7 @@ extern void netdev_resync_ops(struct net_device *dev);
extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
@@ -8504,9 +8702,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/netdevice.h linux-3.4.48-vs2.3.
extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
extern int dev_restart(struct net_device *dev);
#ifdef CONFIG_NETPOLL_TRAP
-diff -NurpP --minimal linux-3.4.48/include/linux/nfs_mount.h linux-3.4.48-vs2.3.3.9/include/linux/nfs_mount.h
---- linux-3.4.48/include/linux/nfs_mount.h 2011-01-05 20:50:31.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/nfs_mount.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h
+index 576bddd..341f621 100644
+--- a/include/linux/nfs_mount.h
++++ b/include/linux/nfs_mount.h
@@ -63,7 +63,8 @@ struct nfs_mount_data {
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
@@ -8517,9 +8716,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/nfs_mount.h linux-3.4.48-vs2.3.
/* The following are for internal use only */
#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
-diff -NurpP --minimal linux-3.4.48/include/linux/nsproxy.h linux-3.4.48-vs2.3.3.9/include/linux/nsproxy.h
---- linux-3.4.48/include/linux/nsproxy.h 2011-10-24 16:45:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/nsproxy.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h
+index cc37a55..e995dde 100644
+--- a/include/linux/nsproxy.h
++++ b/include/linux/nsproxy.h
@@ -3,6 +3,7 @@
#include <linux/spinlock.h>
@@ -8528,7 +8728,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/nsproxy.h linux-3.4.48-vs2.3.3.
struct mnt_namespace;
struct uts_namespace;
-@@ -63,6 +64,7 @@ static inline struct nsproxy *task_nspro
+@@ -63,6 +64,7 @@ static inline struct nsproxy *task_nsproxy(struct task_struct *tsk)
}
int copy_namespaces(unsigned long flags, struct task_struct *tsk);
@@ -8536,7 +8736,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/nsproxy.h linux-3.4.48-vs2.3.3.
void exit_task_namespaces(struct task_struct *tsk);
void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
void free_nsproxy(struct nsproxy *ns);
-@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned
+@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned long, struct nsproxy **,
struct fs_struct *);
int __init nsproxy_cache_init(void);
@@ -8569,9 +8769,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/nsproxy.h linux-3.4.48-vs2.3.3.
}
#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/pid.h linux-3.4.48-vs2.3.3.9/include/linux/pid.h
---- linux-3.4.48/include/linux/pid.h 2011-07-22 09:18:11.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/pid.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/pid.h b/include/linux/pid.h
+index b152d44..b08d451 100644
+--- a/include/linux/pid.h
++++ b/include/linux/pid.h
@@ -8,7 +8,8 @@ enum pid_type
PIDTYPE_PID,
PIDTYPE_PGID,
@@ -8582,7 +8783,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/pid.h linux-3.4.48-vs2.3.3.9/in
};
/*
-@@ -171,6 +172,7 @@ static inline pid_t pid_nr(struct pid *p
+@@ -171,6 +172,7 @@ static inline pid_t pid_nr(struct pid *pid)
}
pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
@@ -8590,9 +8791,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/pid.h linux-3.4.48-vs2.3.3.9/in
pid_t pid_vnr(struct pid *pid);
#define do_each_pid_task(pid, type, task) \
-diff -NurpP --minimal linux-3.4.48/include/linux/proc_fs.h linux-3.4.48-vs2.3.3.9/include/linux/proc_fs.h
---- linux-3.4.48/include/linux/proc_fs.h 2012-03-19 18:47:28.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/proc_fs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
+index 85c5073..2b8bce2 100644
+--- a/include/linux/proc_fs.h
++++ b/include/linux/proc_fs.h
@@ -54,6 +54,7 @@ struct proc_dir_entry {
nlink_t nlink;
uid_t uid;
@@ -8601,7 +8803,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/proc_fs.h linux-3.4.48-vs2.3.3.
loff_t size;
const struct inode_operations *proc_iops;
/*
-@@ -252,12 +253,18 @@ extern const struct proc_ns_operations n
+@@ -252,12 +253,18 @@ extern const struct proc_ns_operations netns_operations;
extern const struct proc_ns_operations utsns_operations;
extern const struct proc_ns_operations ipcns_operations;
@@ -8628,9 +8830,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/proc_fs.h linux-3.4.48-vs2.3.3.
int fd;
union proc_op op;
struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-3.4.48/include/linux/quotaops.h linux-3.4.48-vs2.3.3.9/include/linux/quotaops.h
---- linux-3.4.48/include/linux/quotaops.h 2012-01-09 15:14:58.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/quotaops.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
+index d93f95e..1851154 100644
+--- a/include/linux/quotaops.h
++++ b/include/linux/quotaops.h
@@ -8,6 +8,7 @@
#define _LINUX_QUOTAOPS_
@@ -8639,7 +8842,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/quotaops.h linux-3.4.48-vs2.3.3
#define DQUOT_SPACE_WARN 0x1
#define DQUOT_SPACE_RESERVE 0x2
-@@ -204,11 +205,12 @@ static inline void dquot_drop(struct ino
+@@ -204,11 +205,12 @@ static inline void dquot_drop(struct inode *inode)
static inline int dquot_alloc_inode(const struct inode *inode)
{
@@ -8653,7 +8856,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/quotaops.h linux-3.4.48-vs2.3.3
}
static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
-@@ -219,6 +221,10 @@ static inline int dquot_transfer(struct
+@@ -219,6 +221,10 @@ static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
int flags)
{
@@ -8664,7 +8867,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/quotaops.h linux-3.4.48-vs2.3.3
if (!(flags & DQUOT_SPACE_RESERVE))
inode_add_bytes(inode, number);
return 0;
-@@ -229,6 +235,7 @@ static inline void __dquot_free_space(st
+@@ -229,6 +235,7 @@ static inline void __dquot_free_space(struct inode *inode, qsize_t number,
{
if (!(flags & DQUOT_SPACE_RESERVE))
inode_sub_bytes(inode, number);
@@ -8672,9 +8875,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/quotaops.h linux-3.4.48-vs2.3.3
}
static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-3.4.48/include/linux/reboot.h linux-3.4.48-vs2.3.3.9/include/linux/reboot.h
---- linux-3.4.48/include/linux/reboot.h 2011-10-24 16:45:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/reboot.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/reboot.h b/include/linux/reboot.h
+index e0879a7..5a521db 100644
+--- a/include/linux/reboot.h
++++ b/include/linux/reboot.h
@@ -33,6 +33,7 @@
#define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
@@ -8683,9 +8887,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/reboot.h linux-3.4.48-vs2.3.3.9
#ifdef __KERNEL__
-diff -NurpP --minimal linux-3.4.48/include/linux/sched.h linux-3.4.48-vs2.3.3.9/include/linux/sched.h
---- linux-3.4.48/include/linux/sched.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/sched.h 2013-02-11 23:37:30.000000000 +0000
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 3dd0efb..1176aa9 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
@@ -1455,6 +1455,14 @@ struct task_struct {
#endif
seccomp_t seccomp;
@@ -8713,7 +8918,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sched.h linux-3.4.48-vs2.3.3.9/
static inline pid_t task_pid_nr(struct task_struct *tsk)
{
return tsk->pid;
-@@ -1712,7 +1725,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1712,7 +1725,8 @@ static inline pid_t task_pid_nr_ns(struct task_struct *tsk,
static inline pid_t task_pid_vnr(struct task_struct *tsk)
{
@@ -8723,7 +8928,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sched.h linux-3.4.48-vs2.3.3.9/
}
-@@ -1725,7 +1739,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1725,7 +1739,7 @@ pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
static inline pid_t task_tgid_vnr(struct task_struct *tsk)
{
@@ -8732,9 +8937,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sched.h linux-3.4.48-vs2.3.3.9/
}
-diff -NurpP --minimal linux-3.4.48/include/linux/shmem_fs.h linux-3.4.48-vs2.3.3.9/include/linux/shmem_fs.h
---- linux-3.4.48/include/linux/shmem_fs.h 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/shmem_fs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
+index 79ab255..952ffa6 100644
+--- a/include/linux/shmem_fs.h
++++ b/include/linux/shmem_fs.h
@@ -8,6 +8,9 @@
/* inode in-kernel data */
@@ -8745,9 +8951,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/shmem_fs.h linux-3.4.48-vs2.3.3
struct shmem_inode_info {
spinlock_t lock;
unsigned long flags;
-diff -NurpP --minimal linux-3.4.48/include/linux/stat.h linux-3.4.48-vs2.3.3.9/include/linux/stat.h
---- linux-3.4.48/include/linux/stat.h 2008-12-24 23:26:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/stat.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/stat.h b/include/linux/stat.h
+index 611c398..784c0c3 100644
+--- a/include/linux/stat.h
++++ b/include/linux/stat.h
@@ -66,6 +66,7 @@ struct kstat {
unsigned int nlink;
uid_t uid;
@@ -8756,9 +8963,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/stat.h linux-3.4.48-vs2.3.3.9/i
dev_t rdev;
loff_t size;
struct timespec atime;
-diff -NurpP --minimal linux-3.4.48/include/linux/sunrpc/auth.h linux-3.4.48-vs2.3.3.9/include/linux/sunrpc/auth.h
---- linux-3.4.48/include/linux/sunrpc/auth.h 2012-05-21 16:07:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/sunrpc/auth.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h
+index 492a36d..f44bf1c 100644
+--- a/include/linux/sunrpc/auth.h
++++ b/include/linux/sunrpc/auth.h
@@ -25,6 +25,7 @@
struct auth_cred {
uid_t uid;
@@ -8767,9 +8975,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sunrpc/auth.h linux-3.4.48-vs2.
struct group_info *group_info;
const char *principal;
unsigned char machine_cred : 1;
-diff -NurpP --minimal linux-3.4.48/include/linux/sunrpc/clnt.h linux-3.4.48-vs2.3.3.9/include/linux/sunrpc/clnt.h
---- linux-3.4.48/include/linux/sunrpc/clnt.h 2012-05-21 16:07:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/sunrpc/clnt.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
+index 523547e..ab51e50 100644
+--- a/include/linux/sunrpc/clnt.h
++++ b/include/linux/sunrpc/clnt.h
@@ -49,7 +49,8 @@ struct rpc_clnt {
unsigned int cl_softrtry : 1,/* soft timeouts */
cl_discrtry : 1,/* disconnect before retry */
@@ -8780,9 +8989,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sunrpc/clnt.h linux-3.4.48-vs2.
struct rpc_rtt * cl_rtt; /* RTO estimator data */
const struct rpc_timeout *cl_timeout; /* Timeout strategy */
-diff -NurpP --minimal linux-3.4.48/include/linux/sysctl.h linux-3.4.48-vs2.3.3.9/include/linux/sysctl.h
---- linux-3.4.48/include/linux/sysctl.h 2012-05-21 16:07:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/sysctl.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
+index c34b4c8..782b12d 100644
+--- a/include/linux/sysctl.h
++++ b/include/linux/sysctl.h
@@ -60,6 +60,7 @@ enum
CTL_ABI=9, /* Binary emulation */
CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
@@ -8799,9 +9009,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sysctl.h linux-3.4.48-vs2.3.3.9
KERN_SPARC_REBOOT=21, /* reboot command on Sparc */
KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-3.4.48/include/linux/sysfs.h linux-3.4.48-vs2.3.3.9/include/linux/sysfs.h
---- linux-3.4.48/include/linux/sysfs.h 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/sysfs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
+index 0010009..ccfd222 100644
+--- a/include/linux/sysfs.h
++++ b/include/linux/sysfs.h
@@ -19,6 +19,8 @@
#include <linux/kobject_ns.h>
#include <linux/atomic.h>
@@ -8811,10 +9022,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/sysfs.h linux-3.4.48-vs2.3.3.9/
struct kobject;
struct module;
enum kobj_ns_type;
-diff -NurpP --minimal linux-3.4.48/include/linux/time.h linux-3.4.48-vs2.3.3.9/include/linux/time.h
---- linux-3.4.48/include/linux/time.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/time.h 2012-10-22 13:09:53.000000000 +0000
-@@ -281,6 +281,8 @@ static __always_inline void timespec_add
+diff --git a/include/linux/time.h b/include/linux/time.h
+index 03dce74..a119348 100644
+--- a/include/linux/time.h
++++ b/include/linux/time.h
+@@ -281,6 +281,8 @@ static __always_inline void timespec_add_ns(struct timespec *a, u64 ns)
a->tv_nsec = ns;
}
@@ -8823,9 +9035,10 @@ diff -NurpP --minimal linux-3.4.48/include/linux/time.h linux-3.4.48-vs2.3.3.9/i
#endif /* __KERNEL__ */
/*
-diff -NurpP --minimal linux-3.4.48/include/linux/types.h linux-3.4.48-vs2.3.3.9/include/linux/types.h
---- linux-3.4.48/include/linux/types.h 2012-05-21 16:07:32.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/types.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/types.h b/include/linux/types.h
+index 7f480db..d417422 100644
+--- a/include/linux/types.h
++++ b/include/linux/types.h
@@ -41,6 +41,9 @@ typedef __kernel_uid32_t uid_t;
typedef __kernel_gid32_t gid_t;
typedef __kernel_uid16_t uid16_t;
@@ -8836,10 +9049,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/types.h linux-3.4.48-vs2.3.3.9/
typedef unsigned long uintptr_t;
-diff -NurpP --minimal linux-3.4.48/include/linux/utsname.h linux-3.4.48-vs2.3.3.9/include/linux/utsname.h
---- linux-3.4.48/include/linux/utsname.h 2012-01-09 15:14:59.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/utsname.h 2012-05-21 16:15:05.000000000 +0000
-@@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts
+diff --git a/include/linux/utsname.h b/include/linux/utsname.h
+index c714ed7..0197b43 100644
+--- a/include/linux/utsname.h
++++ b/include/linux/utsname.h
+@@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts_namespace *ns)
}
extern struct uts_namespace *copy_utsname(unsigned long flags,
@@ -8849,7 +9063,7 @@ diff -NurpP --minimal linux-3.4.48/include/linux/utsname.h linux-3.4.48-vs2.3.3.
extern void free_uts_ns(struct kref *kref);
static inline void put_uts_ns(struct uts_namespace *ns)
-@@ -79,12 +80,13 @@ static inline void put_uts_ns(struct uts
+@@ -79,12 +80,13 @@ static inline void put_uts_ns(struct uts_namespace *ns)
}
static inline struct uts_namespace *copy_utsname(unsigned long flags,
@@ -8865,9 +9079,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/utsname.h linux-3.4.48-vs2.3.3.
}
#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vroot.h linux-3.4.48-vs2.3.3.9/include/linux/vroot.h
---- linux-3.4.48/include/linux/vroot.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vroot.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vroot.h b/include/linux/vroot.h
+new file mode 100644
+index 0000000..5e1d797
+--- /dev/null
++++ b/include/linux/vroot.h
@@ -0,0 +1,51 @@
+
+/*
@@ -8920,9 +9136,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vroot.h linux-3.4.48-vs2.3.3.9/
+#define VROOT_CLR_DEV 0x5601
+
+#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_base.h linux-3.4.48-vs2.3.3.9/include/linux/vs_base.h
---- linux-3.4.48/include/linux/vs_base.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_base.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_base.h b/include/linux/vs_base.h
+new file mode 100644
+index 0000000..cb0ce81
+--- /dev/null
++++ b/include/linux/vs_base.h
@@ -0,0 +1,10 @@
+#ifndef _VS_BASE_H
+#define _VS_BASE_H
@@ -8934,9 +9152,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_base.h linux-3.4.48-vs2.3.3.
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_context.h linux-3.4.48-vs2.3.3.9/include/linux/vs_context.h
---- linux-3.4.48/include/linux/vs_context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_context.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_context.h b/include/linux/vs_context.h
+new file mode 100644
+index 0000000..5848095
+--- /dev/null
++++ b/include/linux/vs_context.h
@@ -0,0 +1,242 @@
+#ifndef _VS_CONTEXT_H
+#define _VS_CONTEXT_H
@@ -9180,9 +9400,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_context.h linux-3.4.48-vs2.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_cowbl.h linux-3.4.48-vs2.3.3.9/include/linux/vs_cowbl.h
---- linux-3.4.48/include/linux/vs_cowbl.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_cowbl.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_cowbl.h b/include/linux/vs_cowbl.h
+new file mode 100644
+index 0000000..1ac1bf2
+--- /dev/null
++++ b/include/linux/vs_cowbl.h
@@ -0,0 +1,48 @@
+#ifndef _VS_COWBL_H
+#define _VS_COWBL_H
@@ -9232,9 +9454,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_cowbl.h linux-3.4.48-vs2.3.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_cvirt.h linux-3.4.48-vs2.3.3.9/include/linux/vs_cvirt.h
---- linux-3.4.48/include/linux/vs_cvirt.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_cvirt.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_cvirt.h b/include/linux/vs_cvirt.h
+new file mode 100644
+index 0000000..310af24
+--- /dev/null
++++ b/include/linux/vs_cvirt.h
@@ -0,0 +1,50 @@
+#ifndef _VS_CVIRT_H
+#define _VS_CVIRT_H
@@ -9286,9 +9510,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_cvirt.h linux-3.4.48-vs2.3.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_device.h linux-3.4.48-vs2.3.3.9/include/linux/vs_device.h
---- linux-3.4.48/include/linux/vs_device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_device.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_device.h b/include/linux/vs_device.h
+new file mode 100644
+index 0000000..8e2f043
+--- /dev/null
++++ b/include/linux/vs_device.h
@@ -0,0 +1,45 @@
+#ifndef _VS_DEVICE_H
+#define _VS_DEVICE_H
@@ -9335,9 +9561,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_device.h linux-3.4.48-vs2.3.
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_dlimit.h linux-3.4.48-vs2.3.3.9/include/linux/vs_dlimit.h
---- linux-3.4.48/include/linux/vs_dlimit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_dlimit.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_dlimit.h b/include/linux/vs_dlimit.h
+new file mode 100644
+index 0000000..8b0b33b
+--- /dev/null
++++ b/include/linux/vs_dlimit.h
@@ -0,0 +1,215 @@
+#ifndef _VS_DLIMIT_H
+#define _VS_DLIMIT_H
@@ -9554,9 +9782,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_dlimit.h linux-3.4.48-vs2.3.
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_inet.h linux-3.4.48-vs2.3.3.9/include/linux/vs_inet.h
---- linux-3.4.48/include/linux/vs_inet.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_inet.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_inet.h b/include/linux/vs_inet.h
+new file mode 100644
+index 0000000..7c8e02b
+--- /dev/null
++++ b/include/linux/vs_inet.h
@@ -0,0 +1,353 @@
+#ifndef _VS_INET_H
+#define _VS_INET_H
@@ -9911,9 +10141,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_inet.h linux-3.4.48-vs2.3.3.
+#else
+// #warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_inet6.h linux-3.4.48-vs2.3.3.9/include/linux/vs_inet6.h
---- linux-3.4.48/include/linux/vs_inet6.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_inet6.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_inet6.h b/include/linux/vs_inet6.h
+new file mode 100644
+index 0000000..70f797b
+--- /dev/null
++++ b/include/linux/vs_inet6.h
@@ -0,0 +1,246 @@
+#ifndef _VS_INET6_H
+#define _VS_INET6_H
@@ -10161,9 +10393,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_inet6.h linux-3.4.48-vs2.3.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_limit.h linux-3.4.48-vs2.3.3.9/include/linux/vs_limit.h
---- linux-3.4.48/include/linux/vs_limit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_limit.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_limit.h b/include/linux/vs_limit.h
+new file mode 100644
+index 0000000..96b3b5a
+--- /dev/null
++++ b/include/linux/vs_limit.h
@@ -0,0 +1,140 @@
+#ifndef _VS_LIMIT_H
+#define _VS_LIMIT_H
@@ -10305,9 +10539,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_limit.h linux-3.4.48-vs2.3.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_network.h linux-3.4.48-vs2.3.3.9/include/linux/vs_network.h
---- linux-3.4.48/include/linux/vs_network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_network.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_network.h b/include/linux/vs_network.h
+new file mode 100644
+index 0000000..5bd3898
+--- /dev/null
++++ b/include/linux/vs_network.h
@@ -0,0 +1,169 @@
+#ifndef _NX_VS_NETWORK_H
+#define _NX_VS_NETWORK_H
@@ -10478,9 +10714,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_network.h linux-3.4.48-vs2.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_pid.h linux-3.4.48-vs2.3.3.9/include/linux/vs_pid.h
---- linux-3.4.48/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_pid.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_pid.h b/include/linux/vs_pid.h
+new file mode 100644
+index 0000000..5b79fcd
+--- /dev/null
++++ b/include/linux/vs_pid.h
@@ -0,0 +1,50 @@
+#ifndef _VS_PID_H
+#define _VS_PID_H
@@ -10532,9 +10770,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_pid.h linux-3.4.48-vs2.3.3.9
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_sched.h linux-3.4.48-vs2.3.3.9/include/linux/vs_sched.h
---- linux-3.4.48/include/linux/vs_sched.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_sched.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_sched.h b/include/linux/vs_sched.h
+new file mode 100644
+index 0000000..d802692
+--- /dev/null
++++ b/include/linux/vs_sched.h
@@ -0,0 +1,40 @@
+#ifndef _VS_SCHED_H
+#define _VS_SCHED_H
@@ -10576,9 +10816,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_sched.h linux-3.4.48-vs2.3.3
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_socket.h linux-3.4.48-vs2.3.3.9/include/linux/vs_socket.h
---- linux-3.4.48/include/linux/vs_socket.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_socket.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_socket.h b/include/linux/vs_socket.h
+new file mode 100644
+index 0000000..b190e24
+--- /dev/null
++++ b/include/linux/vs_socket.h
@@ -0,0 +1,67 @@
+#ifndef _VS_SOCKET_H
+#define _VS_SOCKET_H
@@ -10647,9 +10889,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_socket.h linux-3.4.48-vs2.3.
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_tag.h linux-3.4.48-vs2.3.3.9/include/linux/vs_tag.h
---- linux-3.4.48/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_tag.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_tag.h b/include/linux/vs_tag.h
+new file mode 100644
+index 0000000..a83c79b
+--- /dev/null
++++ b/include/linux/vs_tag.h
@@ -0,0 +1,47 @@
+#ifndef _VS_TAG_H
+#define _VS_TAG_H
@@ -10698,9 +10942,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_tag.h linux-3.4.48-vs2.3.3.9
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vs_time.h linux-3.4.48-vs2.3.3.9/include/linux/vs_time.h
---- linux-3.4.48/include/linux/vs_time.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vs_time.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vs_time.h b/include/linux/vs_time.h
+new file mode 100644
+index 0000000..5b962f9
+--- /dev/null
++++ b/include/linux/vs_time.h
@@ -0,0 +1,19 @@
+#ifndef _VS_TIME_H
+#define _VS_TIME_H
@@ -10721,9 +10967,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vs_time.h linux-3.4.48-vs2.3.3.
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/Kbuild linux-3.4.48-vs2.3.3.9/include/linux/vserver/Kbuild
---- linux-3.4.48/include/linux/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/Kbuild 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/Kbuild b/include/linux/vserver/Kbuild
+new file mode 100644
+index 0000000..3ea3d70
+--- /dev/null
++++ b/include/linux/vserver/Kbuild
@@ -0,0 +1,8 @@
+
+header-y += context_cmd.h network_cmd.h space_cmd.h \
@@ -10733,9 +10981,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/Kbuild linux-3.4.48-vs2
+
+header-y += switch.h network.h monitor.h inode.h device.h
+
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/base.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/base.h
---- linux-3.4.48/include/linux/vserver/base.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/base.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/base.h b/include/linux/vserver/base.h
+new file mode 100644
+index 0000000..e31841e
+--- /dev/null
++++ b/include/linux/vserver/base.h
@@ -0,0 +1,178 @@
+#ifndef _VX_BASE_H
+#define _VX_BASE_H
@@ -10915,9 +11165,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/base.h linux-3.4.48-vs2
+#define nx_info_state(n, m) (__nx_state(n) & (m))
+
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct.h
---- linux-3.4.48/include/linux/vserver/cacct.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cacct.h b/include/linux/vserver/cacct.h
+new file mode 100644
+index 0000000..aa202cc
+--- /dev/null
++++ b/include/linux/vserver/cacct.h
@@ -0,0 +1,15 @@
+#ifndef _VX_CACCT_H
+#define _VX_CACCT_H
@@ -10934,9 +11186,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct.h linux-3.4.48-vs
+};
+
+#endif /* _VX_CACCT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_cmd.h
---- linux-3.4.48/include/linux/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cacct_cmd.h b/include/linux/vserver/cacct_cmd.h
+new file mode 100644
+index 0000000..bcc46bb
+--- /dev/null
++++ b/include/linux/vserver/cacct_cmd.h
@@ -0,0 +1,23 @@
+#ifndef _VX_CACCT_CMD_H
+#define _VX_CACCT_CMD_H
@@ -10961,9 +11215,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CACCT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_def.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_def.h
---- linux-3.4.48/include/linux/vserver/cacct_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_def.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cacct_def.h b/include/linux/vserver/cacct_def.h
+new file mode 100644
+index 0000000..5945f4f
+--- /dev/null
++++ b/include/linux/vserver/cacct_def.h
@@ -0,0 +1,43 @@
+#ifndef _VX_CACCT_DEF_H
+#define _VX_CACCT_DEF_H
@@ -11008,9 +11264,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_def.h linux-3.4.4
+#endif
+
+#endif /* _VX_CACCT_DEF_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_int.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_int.h
---- linux-3.4.48/include/linux/vserver/cacct_int.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cacct_int.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cacct_int.h b/include/linux/vserver/cacct_int.h
+new file mode 100644
+index 0000000..a235c01
+--- /dev/null
++++ b/include/linux/vserver/cacct_int.h
@@ -0,0 +1,21 @@
+#ifndef _VX_CACCT_INT_H
+#define _VX_CACCT_INT_H
@@ -11033,9 +11291,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cacct_int.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CACCT_INT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/check.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/check.h
---- linux-3.4.48/include/linux/vserver/check.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/check.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/check.h b/include/linux/vserver/check.h
+new file mode 100644
+index 0000000..011d16e
+--- /dev/null
++++ b/include/linux/vserver/check.h
@@ -0,0 +1,89 @@
+#ifndef _VS_CHECK_H
+#define _VS_CHECK_H
@@ -11126,9 +11386,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/check.h linux-3.4.48-vs
+#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1)
+
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/context.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/context.h
---- linux-3.4.48/include/linux/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/context.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/context.h b/include/linux/vserver/context.h
+new file mode 100644
+index 0000000..a63989e
+--- /dev/null
++++ b/include/linux/vserver/context.h
@@ -0,0 +1,188 @@
+#ifndef _VX_CONTEXT_H
+#define _VX_CONTEXT_H
@@ -11318,9 +11580,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/context.h linux-3.4.48-
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/context_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/context_cmd.h
---- linux-3.4.48/include/linux/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/context_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/context_cmd.h b/include/linux/vserver/context_cmd.h
+new file mode 100644
+index 0000000..90d3777
+--- /dev/null
++++ b/include/linux/vserver/context_cmd.h
@@ -0,0 +1,162 @@
+#ifndef _VX_CONTEXT_CMD_H
+#define _VX_CONTEXT_CMD_H
@@ -11484,9 +11748,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/context_cmd.h linux-3.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt.h
---- linux-3.4.48/include/linux/vserver/cvirt.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cvirt.h b/include/linux/vserver/cvirt.h
+new file mode 100644
+index 0000000..ec69508
+--- /dev/null
++++ b/include/linux/vserver/cvirt.h
@@ -0,0 +1,22 @@
+#ifndef _VX_CVIRT_H
+#define _VX_CVIRT_H
@@ -11510,9 +11776,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt.h linux-3.4.48-vs
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CVIRT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt_cmd.h
---- linux-3.4.48/include/linux/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cvirt_cmd.h b/include/linux/vserver/cvirt_cmd.h
+new file mode 100644
+index 0000000..249db86
+--- /dev/null
++++ b/include/linux/vserver/cvirt_cmd.h
@@ -0,0 +1,53 @@
+#ifndef _VX_CVIRT_CMD_H
+#define _VX_CVIRT_CMD_H
@@ -11567,9 +11835,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CVIRT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt_def.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt_def.h
---- linux-3.4.48/include/linux/vserver/cvirt_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/cvirt_def.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/cvirt_def.h b/include/linux/vserver/cvirt_def.h
+new file mode 100644
+index 0000000..9eb9837
+--- /dev/null
++++ b/include/linux/vserver/cvirt_def.h
@@ -0,0 +1,80 @@
+#ifndef _VX_CVIRT_DEF_H
+#define _VX_CVIRT_DEF_H
@@ -11651,9 +11921,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/cvirt_def.h linux-3.4.4
+#endif
+
+#endif /* _VX_CVIRT_DEF_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/debug.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/debug.h
---- linux-3.4.48/include/linux/vserver/debug.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/debug.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/debug.h b/include/linux/vserver/debug.h
+new file mode 100644
+index 0000000..21cd597
+--- /dev/null
++++ b/include/linux/vserver/debug.h
@@ -0,0 +1,145 @@
+#ifndef _VX_DEBUG_H
+#define _VX_DEBUG_H
@@ -11800,9 +12072,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/debug.h linux-3.4.48-vs
+
+
+#endif /* _VX_DEBUG_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/debug_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/debug_cmd.h
---- linux-3.4.48/include/linux/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/debug_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/debug_cmd.h b/include/linux/vserver/debug_cmd.h
+new file mode 100644
+index 0000000..441eb62
+--- /dev/null
++++ b/include/linux/vserver/debug_cmd.h
@@ -0,0 +1,58 @@
+#ifndef _VX_DEBUG_CMD_H
+#define _VX_DEBUG_CMD_H
@@ -11862,9 +12136,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/debug_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DEBUG_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/device.h
---- linux-3.4.48/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/device.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/device.h b/include/linux/vserver/device.h
+new file mode 100644
+index 0000000..dc10daa
+--- /dev/null
++++ b/include/linux/vserver/device.h
@@ -0,0 +1,15 @@
+#ifndef _VX_DEVICE_H
+#define _VX_DEVICE_H
@@ -11881,9 +12157,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device.h linux-3.4.48-v
+#else /* _VX_DEVICE_H */
+#warning duplicate inclusion
+#endif /* _VX_DEVICE_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/device_cmd.h
---- linux-3.4.48/include/linux/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/device_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/device_cmd.h b/include/linux/vserver/device_cmd.h
+new file mode 100644
+index 0000000..3e45a99
+--- /dev/null
++++ b/include/linux/vserver/device_cmd.h
@@ -0,0 +1,44 @@
+#ifndef _VX_DEVICE_CMD_H
+#define _VX_DEVICE_CMD_H
@@ -11929,9 +12207,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device_cmd.h linux-3.4.
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DEVICE_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device_def.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/device_def.h
---- linux-3.4.48/include/linux/vserver/device_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/device_def.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/device_def.h b/include/linux/vserver/device_def.h
+new file mode 100644
+index 0000000..aa12784
+--- /dev/null
++++ b/include/linux/vserver/device_def.h
@@ -0,0 +1,17 @@
+#ifndef _VX_DEVICE_DEF_H
+#define _VX_DEVICE_DEF_H
@@ -11950,9 +12230,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/device_def.h linux-3.4.
+};
+
+#endif /* _VX_DEVICE_DEF_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/dlimit.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/dlimit.h
---- linux-3.4.48/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/dlimit.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/dlimit.h b/include/linux/vserver/dlimit.h
+new file mode 100644
+index 0000000..f026233
+--- /dev/null
++++ b/include/linux/vserver/dlimit.h
@@ -0,0 +1,54 @@
+#ifndef _VX_DLIMIT_H
+#define _VX_DLIMIT_H
@@ -12008,9 +12290,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/dlimit.h linux-3.4.48-v
+#else /* _VX_DLIMIT_H */
+#warning duplicate inclusion
+#endif /* _VX_DLIMIT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/dlimit_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/dlimit_cmd.h
---- linux-3.4.48/include/linux/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/dlimit_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/dlimit_cmd.h b/include/linux/vserver/dlimit_cmd.h
+new file mode 100644
+index 0000000..3ae7de3
+--- /dev/null
++++ b/include/linux/vserver/dlimit_cmd.h
@@ -0,0 +1,109 @@
+#ifndef _VX_DLIMIT_CMD_H
+#define _VX_DLIMIT_CMD_H
@@ -12121,9 +12405,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/dlimit_cmd.h linux-3.4.
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/global.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/global.h
---- linux-3.4.48/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/global.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/global.h b/include/linux/vserver/global.h
+new file mode 100644
+index 0000000..2c317dd
+--- /dev/null
++++ b/include/linux/vserver/global.h
@@ -0,0 +1,19 @@
+#ifndef _VX_GLOBAL_H
+#define _VX_GLOBAL_H
@@ -12144,9 +12430,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/global.h linux-3.4.48-v
+
+
+#endif /* _VX_GLOBAL_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/history.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/history.h
---- linux-3.4.48/include/linux/vserver/history.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/history.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/history.h b/include/linux/vserver/history.h
+new file mode 100644
+index 0000000..0efe903
+--- /dev/null
++++ b/include/linux/vserver/history.h
@@ -0,0 +1,197 @@
+#ifndef _VX_HISTORY_H
+#define _VX_HISTORY_H
@@ -12345,9 +12633,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/history.h linux-3.4.48-
+#endif /* CONFIG_VSERVER_HISTORY */
+
+#endif /* _VX_HISTORY_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/inode.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/inode.h
---- linux-3.4.48/include/linux/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/inode.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/inode.h b/include/linux/vserver/inode.h
+new file mode 100644
+index 0000000..e44f416
+--- /dev/null
++++ b/include/linux/vserver/inode.h
@@ -0,0 +1,39 @@
+#ifndef _VX_INODE_H
+#define _VX_INODE_H
@@ -12388,9 +12678,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/inode.h linux-3.4.48-vs
+#else /* _VX_INODE_H */
+#warning duplicate inclusion
+#endif /* _VX_INODE_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/inode_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/inode_cmd.h
---- linux-3.4.48/include/linux/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/inode_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/inode_cmd.h b/include/linux/vserver/inode_cmd.h
+new file mode 100644
+index 0000000..4444c11
+--- /dev/null
++++ b/include/linux/vserver/inode_cmd.h
@@ -0,0 +1,59 @@
+#ifndef _VX_INODE_CMD_H
+#define _VX_INODE_CMD_H
@@ -12451,9 +12743,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/inode_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_INODE_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit.h
---- linux-3.4.48/include/linux/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/limit.h b/include/linux/vserver/limit.h
+new file mode 100644
+index 0000000..804cc20
+--- /dev/null
++++ b/include/linux/vserver/limit.h
@@ -0,0 +1,71 @@
+#ifndef _VX_LIMIT_H
+#define _VX_LIMIT_H
@@ -12526,9 +12820,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit.h linux-3.4.48-vs
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_cmd.h
---- linux-3.4.48/include/linux/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/limit_cmd.h b/include/linux/vserver/limit_cmd.h
+new file mode 100644
+index 0000000..62eaaf7
+--- /dev/null
++++ b/include/linux/vserver/limit_cmd.h
@@ -0,0 +1,71 @@
+#ifndef _VX_LIMIT_CMD_H
+#define _VX_LIMIT_CMD_H
@@ -12601,9 +12897,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_def.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_def.h
---- linux-3.4.48/include/linux/vserver/limit_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_def.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/limit_def.h b/include/linux/vserver/limit_def.h
+new file mode 100644
+index 0000000..2be25ac
+--- /dev/null
++++ b/include/linux/vserver/limit_def.h
@@ -0,0 +1,47 @@
+#ifndef _VX_LIMIT_DEF_H
+#define _VX_LIMIT_DEF_H
@@ -12652,9 +12950,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_def.h linux-3.4.4
+#endif
+
+#endif /* _VX_LIMIT_DEF_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_int.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_int.h
---- linux-3.4.48/include/linux/vserver/limit_int.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/limit_int.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/limit_int.h b/include/linux/vserver/limit_int.h
+new file mode 100644
+index 0000000..0adf9cb
+--- /dev/null
++++ b/include/linux/vserver/limit_int.h
@@ -0,0 +1,198 @@
+#ifndef _VX_LIMIT_INT_H
+#define _VX_LIMIT_INT_H
@@ -12854,9 +13154,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/limit_int.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_INT_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/monitor.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/monitor.h
---- linux-3.4.48/include/linux/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/monitor.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/monitor.h b/include/linux/vserver/monitor.h
+new file mode 100644
+index 0000000..53cd19f
+--- /dev/null
++++ b/include/linux/vserver/monitor.h
@@ -0,0 +1,96 @@
+#ifndef _VX_MONITOR_H
+#define _VX_MONITOR_H
@@ -12954,9 +13256,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/monitor.h linux-3.4.48-
+
+
+#endif /* _VX_MONITOR_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/network.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/network.h
---- linux-3.4.48/include/linux/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/network.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/network.h b/include/linux/vserver/network.h
+new file mode 100644
+index 0000000..a6695d5
+--- /dev/null
++++ b/include/linux/vserver/network.h
@@ -0,0 +1,148 @@
+#ifndef _VX_NETWORK_H
+#define _VX_NETWORK_H
@@ -13106,9 +13410,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/network.h linux-3.4.48-
+
+#endif /* __KERNEL__ */
+#endif /* _VX_NETWORK_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/network_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/network_cmd.h
---- linux-3.4.48/include/linux/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/network_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/network_cmd.h b/include/linux/vserver/network_cmd.h
+new file mode 100644
+index 0000000..32bcc39
+--- /dev/null
++++ b/include/linux/vserver/network_cmd.h
@@ -0,0 +1,164 @@
+#ifndef _VX_NETWORK_CMD_H
+#define _VX_NETWORK_CMD_H
@@ -13274,9 +13580,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/network_cmd.h linux-3.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/percpu.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/percpu.h
---- linux-3.4.48/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/percpu.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/percpu.h b/include/linux/vserver/percpu.h
+new file mode 100644
+index 0000000..647d22c
+--- /dev/null
++++ b/include/linux/vserver/percpu.h
@@ -0,0 +1,14 @@
+#ifndef _VX_PERCPU_H
+#define _VX_PERCPU_H
@@ -13292,9 +13600,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/percpu.h linux-3.4.48-v
+#define PERCPU_PERCTX (sizeof(struct _vx_percpu))
+
+#endif /* _VX_PERCPU_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/pid.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/pid.h
---- linux-3.4.48/include/linux/vserver/pid.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/pid.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/pid.h b/include/linux/vserver/pid.h
+new file mode 100644
+index 0000000..34b8f44
+--- /dev/null
++++ b/include/linux/vserver/pid.h
@@ -0,0 +1,51 @@
+#ifndef _VSERVER_PID_H
+#define _VSERVER_PID_H
@@ -13347,9 +13657,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/pid.h linux-3.4.48-vs2.
+}
+
+#endif
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched.h
---- linux-3.4.48/include/linux/vserver/sched.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/sched.h b/include/linux/vserver/sched.h
+new file mode 100644
+index 0000000..296c63f
+--- /dev/null
++++ b/include/linux/vserver/sched.h
@@ -0,0 +1,23 @@
+#ifndef _VX_SCHED_H
+#define _VX_SCHED_H
@@ -13374,9 +13686,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched.h linux-3.4.48-vs
+#else /* _VX_SCHED_H */
+#warning duplicate inclusion
+#endif /* _VX_SCHED_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched_cmd.h
---- linux-3.4.48/include/linux/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/sched_cmd.h b/include/linux/vserver/sched_cmd.h
+new file mode 100644
+index 0000000..9accd68
+--- /dev/null
++++ b/include/linux/vserver/sched_cmd.h
@@ -0,0 +1,21 @@
+#ifndef _VX_SCHED_CMD_H
+#define _VX_SCHED_CMD_H
@@ -13399,9 +13713,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SCHED_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched_def.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched_def.h
---- linux-3.4.48/include/linux/vserver/sched_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/sched_def.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/sched_def.h b/include/linux/vserver/sched_def.h
+new file mode 100644
+index 0000000..99f5728
+--- /dev/null
++++ b/include/linux/vserver/sched_def.h
@@ -0,0 +1,38 @@
+#ifndef _VX_SCHED_DEF_H
+#define _VX_SCHED_DEF_H
@@ -13441,9 +13757,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/sched_def.h linux-3.4.4
+#endif
+
+#endif /* _VX_SCHED_DEF_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/signal.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/signal.h
---- linux-3.4.48/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/signal.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/signal.h b/include/linux/vserver/signal.h
+new file mode 100644
+index 0000000..690168e
+--- /dev/null
++++ b/include/linux/vserver/signal.h
@@ -0,0 +1,14 @@
+#ifndef _VX_SIGNAL_H
+#define _VX_SIGNAL_H
@@ -13459,9 +13777,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/signal.h linux-3.4.48-v
+#else /* _VX_SIGNAL_H */
+#warning duplicate inclusion
+#endif /* _VX_SIGNAL_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/signal_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/signal_cmd.h
---- linux-3.4.48/include/linux/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/signal_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/signal_cmd.h b/include/linux/vserver/signal_cmd.h
+new file mode 100644
+index 0000000..ed1ac7b
+--- /dev/null
++++ b/include/linux/vserver/signal_cmd.h
@@ -0,0 +1,43 @@
+#ifndef _VX_SIGNAL_CMD_H
+#define _VX_SIGNAL_CMD_H
@@ -13506,9 +13826,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/signal_cmd.h linux-3.4.
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/space.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/space.h
---- linux-3.4.48/include/linux/vserver/space.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/space.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/space.h b/include/linux/vserver/space.h
+new file mode 100644
+index 0000000..65e8021
+--- /dev/null
++++ b/include/linux/vserver/space.h
@@ -0,0 +1,12 @@
+#ifndef _VX_SPACE_H
+#define _VX_SPACE_H
@@ -13522,9 +13844,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/space.h linux-3.4.48-vs
+#else /* _VX_SPACE_H */
+#warning duplicate inclusion
+#endif /* _VX_SPACE_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/space_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/space_cmd.h
---- linux-3.4.48/include/linux/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/space_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/space_cmd.h b/include/linux/vserver/space_cmd.h
+new file mode 100644
+index 0000000..2ef8117
+--- /dev/null
++++ b/include/linux/vserver/space_cmd.h
@@ -0,0 +1,38 @@
+#ifndef _VX_SPACE_CMD_H
+#define _VX_SPACE_CMD_H
@@ -13564,9 +13888,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/space_cmd.h linux-3.4.4
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SPACE_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/switch.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/switch.h
---- linux-3.4.48/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/switch.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/switch.h b/include/linux/vserver/switch.h
+new file mode 100644
+index 0000000..f9afa8a
+--- /dev/null
++++ b/include/linux/vserver/switch.h
@@ -0,0 +1,98 @@
+#ifndef _VX_SWITCH_H
+#define _VX_SWITCH_H
@@ -13666,9 +13992,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/switch.h linux-3.4.48-v
+
+#endif /* _VX_SWITCH_H */
+
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/tag.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/tag.h
---- linux-3.4.48/include/linux/vserver/tag.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/tag.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/tag.h b/include/linux/vserver/tag.h
+new file mode 100644
+index 0000000..f4afd42
+--- /dev/null
++++ b/include/linux/vserver/tag.h
@@ -0,0 +1,143 @@
+#ifndef _DX_TAG_H
+#define _DX_TAG_H
@@ -13813,9 +14141,11 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/tag.h linux-3.4.48-vs2.
+#endif
+
+#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-3.4.48/include/linux/vserver/tag_cmd.h linux-3.4.48-vs2.3.3.9/include/linux/vserver/tag_cmd.h
---- linux-3.4.48/include/linux/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/linux/vserver/tag_cmd.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/linux/vserver/tag_cmd.h b/include/linux/vserver/tag_cmd.h
+new file mode 100644
+index 0000000..7f3f393
+--- /dev/null
++++ b/include/linux/vserver/tag_cmd.h
@@ -0,0 +1,22 @@
+#ifndef _VX_TAG_CMD_H
+#define _VX_TAG_CMD_H
@@ -13839,22 +14169,24 @@ diff -NurpP --minimal linux-3.4.48/include/linux/vserver/tag_cmd.h linux-3.4.48-
+
+#endif /* __KERNEL__ */
+#endif /* _VX_TAG_CMD_H */
-diff -NurpP --minimal linux-3.4.48/include/net/addrconf.h linux-3.4.48-vs2.3.3.9/include/net/addrconf.h
---- linux-3.4.48/include/net/addrconf.h 2012-05-21 16:07:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/addrconf.h 2012-05-21 16:15:05.000000000 +0000
-@@ -80,7 +80,8 @@ extern int ipv6_dev_get_saddr(struct n
+diff --git a/include/net/addrconf.h b/include/net/addrconf.h
+index 1a77dbb..369e8f8 100644
+--- a/include/net/addrconf.h
++++ b/include/net/addrconf.h
+@@ -80,7 +80,8 @@ extern int ipv6_dev_get_saddr(struct net *net,
struct net_device *dev,
const struct in6_addr *daddr,
unsigned int srcprefs,
- struct in6_addr *saddr);
+ struct in6_addr *saddr,
+ struct nx_info *nxi);
- extern int ipv6_get_lladdr(struct net_device *dev,
- struct in6_addr *addr,
- unsigned char banned_flags);
-diff -NurpP --minimal linux-3.4.48/include/net/af_unix.h linux-3.4.48-vs2.3.3.9/include/net/af_unix.h
---- linux-3.4.48/include/net/af_unix.h 2012-05-21 16:07:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/af_unix.h 2012-05-21 16:15:05.000000000 +0000
+ extern int __ipv6_get_lladdr(struct inet6_dev *idev,
+ struct in6_addr *addr,
+ unsigned char banned_flags);
+diff --git a/include/net/af_unix.h b/include/net/af_unix.h
+index ca68e2c..820e190 100644
+--- a/include/net/af_unix.h
++++ b/include/net/af_unix.h
@@ -4,6 +4,7 @@
#include <linux/socket.h>
#include <linux/un.h>
@@ -13863,9 +14195,10 @@ diff -NurpP --minimal linux-3.4.48/include/net/af_unix.h linux-3.4.48-vs2.3.3.9/
#include <net/sock.h>
extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-3.4.48/include/net/inet_timewait_sock.h linux-3.4.48-vs2.3.3.9/include/net/inet_timewait_sock.h
---- linux-3.4.48/include/net/inet_timewait_sock.h 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/inet_timewait_sock.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
+index ba52c83..d3f921f 100644
+--- a/include/net/inet_timewait_sock.h
++++ b/include/net/inet_timewait_sock.h
@@ -112,6 +112,10 @@ struct inet_timewait_sock {
#define tw_net __tw_common.skc_net
#define tw_daddr __tw_common.skc_daddr
@@ -13877,10 +14210,11 @@ diff -NurpP --minimal linux-3.4.48/include/net/inet_timewait_sock.h linux-3.4.48
int tw_timeout;
volatile unsigned char tw_substate;
unsigned char tw_rcv_wscale;
-diff -NurpP --minimal linux-3.4.48/include/net/ip6_route.h linux-3.4.48-vs2.3.3.9/include/net/ip6_route.h
---- linux-3.4.48/include/net/ip6_route.h 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/ip6_route.h 2012-05-21 16:15:05.000000000 +0000
-@@ -88,7 +88,8 @@ extern int ip6_route_get_saddr(struct
+diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
+index 2ad92ca..fd3b66f 100644
+--- a/include/net/ip6_route.h
++++ b/include/net/ip6_route.h
+@@ -88,7 +88,8 @@ extern int ip6_route_get_saddr(struct net *net,
struct rt6_info *rt,
const struct in6_addr *daddr,
unsigned int prefs,
@@ -13890,10 +14224,11 @@ diff -NurpP --minimal linux-3.4.48/include/net/ip6_route.h linux-3.4.48-vs2.3.3.
extern struct rt6_info *rt6_lookup(struct net *net,
const struct in6_addr *daddr,
-diff -NurpP --minimal linux-3.4.48/include/net/route.h linux-3.4.48-vs2.3.3.9/include/net/route.h
---- linux-3.4.48/include/net/route.h 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/route.h 2012-05-21 16:15:05.000000000 +0000
-@@ -202,6 +202,9 @@ static inline void ip_rt_put(struct rtab
+diff --git a/include/net/route.h b/include/net/route.h
+index b1c0d5b..97cb84b 100644
+--- a/include/net/route.h
++++ b/include/net/route.h
+@@ -202,6 +202,9 @@ static inline void ip_rt_put(struct rtable * rt)
dst_release(&rt->dst);
}
@@ -13903,7 +14238,7 @@ diff -NurpP --minimal linux-3.4.48/include/net/route.h linux-3.4.48-vs2.3.3.9/in
#define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
extern const __u8 ip_tos2prio[16];
-@@ -253,6 +256,9 @@ static inline void ip_route_connect_init
+@@ -253,6 +256,9 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32
protocol, flow_flags, dst, src, dport, sport);
}
@@ -13913,7 +14248,7 @@ diff -NurpP --minimal linux-3.4.48/include/net/route.h linux-3.4.48-vs2.3.3.9/in
static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
__be32 dst, __be32 src, u32 tos,
int oif, u8 protocol,
-@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_co
+@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
{
struct net *net = sock_net(sk);
struct rtable *rt;
@@ -13940,9 +14275,10 @@ diff -NurpP --minimal linux-3.4.48/include/net/route.h linux-3.4.48-vs2.3.3.9/in
rt = __ip_route_output_key(net, fl4);
if (IS_ERR(rt))
return rt;
-diff -NurpP --minimal linux-3.4.48/include/net/sock.h linux-3.4.48-vs2.3.3.9/include/net/sock.h
---- linux-3.4.48/include/net/sock.h 2013-06-13 08:59:36.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/include/net/sock.h 2013-03-02 15:26:44.000000000 +0000
+diff --git a/include/net/sock.h b/include/net/sock.h
+index f673ba5..88fe8a5 100644
+--- a/include/net/sock.h
++++ b/include/net/sock.h
@@ -170,6 +170,10 @@ struct sock_common {
#ifdef CONFIG_NET_NS
struct net *skc_net;
@@ -13965,9 +14301,10 @@ diff -NurpP --minimal linux-3.4.48/include/net/sock.h linux-3.4.48-vs2.3.3.9/inc
socket_lock_t sk_lock;
struct sk_buff_head sk_receive_queue;
/*
-diff -NurpP --minimal linux-3.4.48/init/Kconfig linux-3.4.48-vs2.3.3.9/init/Kconfig
---- linux-3.4.48/init/Kconfig 2012-05-21 16:07:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/init/Kconfig 2012-05-21 16:15:05.000000000 +0000
+diff --git a/init/Kconfig b/init/Kconfig
+index 6cfd71d..0e1c0f5 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
@@ -579,6 +579,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
menuconfig CGROUPS
boolean "Control Group support"
@@ -13984,9 +14321,10 @@ diff -NurpP --minimal linux-3.4.48/init/Kconfig linux-3.4.48-vs2.3.3.9/init/Kcon
default y
help
This allows containers, i.e. vservers, to use user namespaces
-diff -NurpP --minimal linux-3.4.48/init/main.c linux-3.4.48-vs2.3.3.9/init/main.c
---- linux-3.4.48/init/main.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/init/main.c 2013-02-19 14:42:56.000000000 +0000
+diff --git a/init/main.c b/init/main.c
+index 02c1384..98a0bd8 100644
+--- a/init/main.c
++++ b/init/main.c
@@ -68,6 +68,7 @@
#include <linux/shmem_fs.h>
#include <linux/slab.h>
@@ -13995,9 +14333,10 @@ diff -NurpP --minimal linux-3.4.48/init/main.c linux-3.4.48-vs2.3.3.9/init/main.
#include <asm/io.h>
#include <asm/bugs.h>
-diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueue.c
---- linux-3.4.48/ipc/mqueue.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/ipc/mqueue.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/ipc/mqueue.c b/ipc/mqueue.c
+index 28bd64d..fb05d4e 100644
+--- a/ipc/mqueue.c
++++ b/ipc/mqueue.c
@@ -34,6 +34,8 @@
#include <linux/ipc_namespace.h>
#include <linux/user_namespace.h>
@@ -14015,7 +14354,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
struct sock *notify_sock;
struct sk_buff *notify_cookie;
-@@ -129,6 +132,7 @@ static struct inode *mqueue_get_inode(st
+@@ -129,6 +132,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
if (S_ISREG(mode)) {
struct mqueue_inode_info *info;
unsigned long mq_bytes, mq_msg_tblsz;
@@ -14023,7 +14362,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
inode->i_fop = &mqueue_file_operations;
inode->i_size = FILENT_SIZE;
-@@ -141,6 +145,7 @@ static struct inode *mqueue_get_inode(st
+@@ -141,6 +145,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
info->notify_owner = NULL;
info->qsize = 0;
info->user = NULL; /* set when all is ok */
@@ -14031,7 +14370,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
memset(&info->attr, 0, sizeof(info->attr));
info->attr.mq_maxmsg = ipc_ns->mq_msg_max;
info->attr.mq_msgsize = ipc_ns->mq_msgsize_max;
-@@ -158,17 +163,20 @@ static struct inode *mqueue_get_inode(st
+@@ -158,17 +163,20 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
spin_lock(&mq_lock);
if (u->mq_bytes + mq_bytes < u->mq_bytes ||
@@ -14053,7 +14392,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
} else if (S_ISDIR(mode)) {
inc_nlink(inode);
/* Some things misbehave if size == 0 on a directory */
-@@ -267,8 +275,11 @@ static void mqueue_evict_inode(struct in
+@@ -267,8 +275,11 @@ static void mqueue_evict_inode(struct inode *inode)
+ info->attr.mq_msgsize);
user = info->user;
if (user) {
@@ -14065,7 +14404,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
/*
* get_ns_from_inode() ensures that the
* (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -278,6 +289,7 @@ static void mqueue_evict_inode(struct in
+@@ -278,6 +289,7 @@ static void mqueue_evict_inode(struct inode *inode)
if (ipc_ns)
ipc_ns->mq_queues_count--;
spin_unlock(&mq_lock);
@@ -14073,9 +14412,10 @@ diff -NurpP --minimal linux-3.4.48/ipc/mqueue.c linux-3.4.48-vs2.3.3.9/ipc/mqueu
free_uid(user);
}
if (ipc_ns)
-diff -NurpP --minimal linux-3.4.48/ipc/msg.c linux-3.4.48-vs2.3.3.9/ipc/msg.c
---- linux-3.4.48/ipc/msg.c 2011-05-22 14:17:59.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/ipc/msg.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/ipc/msg.c b/ipc/msg.c
+index 7385de2..bce069a 100644
+--- a/ipc/msg.c
++++ b/ipc/msg.c
@@ -37,6 +37,7 @@
#include <linux/rwsem.h>
#include <linux/nsproxy.h>
@@ -14084,7 +14424,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/msg.c linux-3.4.48-vs2.3.3.9/ipc/msg.c
#include <asm/current.h>
#include <asm/uaccess.h>
-@@ -190,6 +191,7 @@ static int newque(struct ipc_namespace *
+@@ -190,6 +191,7 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
msq->q_perm.mode = msgflg & S_IRWXUGO;
msq->q_perm.key = key;
@@ -14092,9 +14432,10 @@ diff -NurpP --minimal linux-3.4.48/ipc/msg.c linux-3.4.48-vs2.3.3.9/ipc/msg.c
msq->q_perm.security = NULL;
retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-3.4.48/ipc/namespace.c linux-3.4.48-vs2.3.3.9/ipc/namespace.c
---- linux-3.4.48/ipc/namespace.c 2011-07-22 09:18:12.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/ipc/namespace.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/ipc/namespace.c b/ipc/namespace.c
+index ce0a647..2999f1a 100644
+--- a/ipc/namespace.c
++++ b/ipc/namespace.c
@@ -13,11 +13,12 @@
#include <linux/mount.h>
#include <linux/user_namespace.h>
@@ -14110,7 +14451,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/namespace.c linux-3.4.48-vs2.3.3.9/ipc/na
{
struct ipc_namespace *ns;
int err;
-@@ -46,19 +47,18 @@ static struct ipc_namespace *create_ipc_
+@@ -46,19 +47,18 @@ static struct ipc_namespace *create_ipc_ns(struct task_struct *tsk,
ipcns_notify(IPCNS_CREATED);
register_ipcns_notifier(ns);
@@ -14135,9 +14476,10 @@ diff -NurpP --minimal linux-3.4.48/ipc/namespace.c linux-3.4.48-vs2.3.3.9/ipc/na
}
/*
-diff -NurpP --minimal linux-3.4.48/ipc/sem.c linux-3.4.48-vs2.3.3.9/ipc/sem.c
---- linux-3.4.48/ipc/sem.c 2012-01-09 15:14:59.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/ipc/sem.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/ipc/sem.c b/ipc/sem.c
+index 5215a81..c66a364 100644
+--- a/ipc/sem.c
++++ b/ipc/sem.c
@@ -86,6 +86,8 @@
#include <linux/rwsem.h>
#include <linux/nsproxy.h>
@@ -14147,7 +14489,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/sem.c linux-3.4.48-vs2.3.3.9/ipc/sem.c
#include <asm/uaccess.h>
#include "util.h"
-@@ -306,6 +308,7 @@ static int newary(struct ipc_namespace *
+@@ -306,6 +308,7 @@ static int newary(struct ipc_namespace *ns, struct ipc_params *params)
sma->sem_perm.mode = (semflg & S_IRWXUGO);
sma->sem_perm.key = key;
@@ -14155,7 +14497,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/sem.c linux-3.4.48-vs2.3.3.9/ipc/sem.c
sma->sem_perm.security = NULL;
retval = security_sem_alloc(sma);
-@@ -321,6 +324,9 @@ static int newary(struct ipc_namespace *
+@@ -321,6 +324,9 @@ static int newary(struct ipc_namespace *ns, struct ipc_params *params)
return id;
}
ns->used_sems += nsems;
@@ -14165,7 +14507,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/sem.c linux-3.4.48-vs2.3.3.9/ipc/sem.c
sma->sem_base = (struct sem *) &sma[1];
-@@ -770,6 +776,9 @@ static void freeary(struct ipc_namespace
+@@ -770,6 +776,9 @@ static void freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp)
wake_up_sem_queue_do(&tasks);
ns->used_sems -= sma->sem_nsems;
@@ -14175,9 +14517,10 @@ diff -NurpP --minimal linux-3.4.48/ipc/sem.c linux-3.4.48-vs2.3.3.9/ipc/sem.c
security_sem_free(sma);
ipc_rcu_putref(sma);
}
-diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
---- linux-3.4.48/ipc/shm.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/ipc/shm.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/ipc/shm.c b/ipc/shm.c
+index a02ef57..18dc4bc 100644
+--- a/ipc/shm.c
++++ b/ipc/shm.c
@@ -39,6 +39,8 @@
#include <linux/nsproxy.h>
#include <linux/mount.h>
@@ -14187,7 +14530,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
#include <asm/uaccess.h>
-@@ -187,7 +189,12 @@ static void shm_open(struct vm_area_stru
+@@ -187,7 +189,12 @@ static void shm_open(struct vm_area_struct *vma)
*/
static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp)
{
@@ -14201,7 +14544,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
shm_rmid(ns, shp);
shm_unlock(shp);
if (!is_file_hugepages(shp->shm_file))
-@@ -197,6 +204,7 @@ static void shm_destroy(struct ipc_names
+@@ -197,6 +204,7 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp)
shp->mlock_user);
fput (shp->shm_file);
security_shm_free(shp);
@@ -14209,7 +14552,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
ipc_rcu_putref(shp);
}
-@@ -462,11 +470,15 @@ static int newseg(struct ipc_namespace *
+@@ -462,11 +470,15 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
if (ns->shm_tot + numpages > ns->shm_ctlall)
return -ENOSPC;
@@ -14225,7 +14568,7 @@ diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
shp->shm_perm.mode = (shmflg & S_IRWXUGO);
shp->mlock_user = NULL;
-@@ -521,6 +533,7 @@ static int newseg(struct ipc_namespace *
+@@ -523,6 +535,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
ns->shm_tot += numpages;
error = shp->shm_perm.id;
shm_unlock(shp);
@@ -14233,9 +14576,10 @@ diff -NurpP --minimal linux-3.4.48/ipc/shm.c linux-3.4.48-vs2.3.3.9/ipc/shm.c
return error;
no_id:
-diff -NurpP --minimal linux-3.4.48/kernel/Makefile linux-3.4.48-vs2.3.3.9/kernel/Makefile
---- linux-3.4.48/kernel/Makefile 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/Makefile 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/Makefile b/kernel/Makefile
+index cb41b95..da2903a 100644
+--- a/kernel/Makefile
++++ b/kernel/Makefile
@@ -25,6 +25,7 @@ endif
obj-y += sched/
obj-y += power/
@@ -14244,9 +14588,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/Makefile linux-3.4.48-vs2.3.3.9/kernel
obj-$(CONFIG_FREEZER) += freezer.o
obj-$(CONFIG_PROFILING) += profile.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
-diff -NurpP --minimal linux-3.4.48/kernel/auditsc.c linux-3.4.48-vs2.3.3.9/kernel/auditsc.c
---- linux-3.4.48/kernel/auditsc.c 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/auditsc.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/auditsc.c b/kernel/auditsc.c
+index af1de0f..467e922 100644
+--- a/kernel/auditsc.c
++++ b/kernel/auditsc.c
@@ -2308,7 +2308,7 @@ int audit_set_loginuid(uid_t loginuid)
if (task->loginuid != -1)
return -EPERM;
@@ -14256,9 +14601,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/auditsc.c linux-3.4.48-vs2.3.3.9/kerne
return -EPERM;
#endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
-diff -NurpP --minimal linux-3.4.48/kernel/capability.c linux-3.4.48-vs2.3.3.9/kernel/capability.c
---- linux-3.4.48/kernel/capability.c 2012-03-19 18:47:29.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/capability.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/capability.c b/kernel/capability.c
+index 3f1adb6..3b88352 100644
+--- a/kernel/capability.c
++++ b/kernel/capability.c
@@ -15,6 +15,7 @@
#include <linux/syscalls.h>
#include <linux/pid_namespace.h>
@@ -14267,7 +14613,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/capability.c linux-3.4.48-vs2.3.3.9/ke
#include <asm/uaccess.h>
/*
-@@ -116,6 +117,7 @@ static int cap_validate_magic(cap_user_h
+@@ -116,6 +117,7 @@ static int cap_validate_magic(cap_user_header_t header, unsigned *tocopy)
return 0;
}
@@ -14275,7 +14621,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/capability.c linux-3.4.48-vs2.3.3.9/ke
/*
* The only thing that can change the capabilities of the current
* process is the current process. As such, we can't be in this code
-@@ -349,6 +351,8 @@ bool has_ns_capability_noaudit(struct ta
+@@ -349,6 +351,8 @@ bool has_ns_capability_noaudit(struct task_struct *t,
return (ret == 0);
}
@@ -14284,10 +14630,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/capability.c linux-3.4.48-vs2.3.3.9/ke
/**
* has_capability_noaudit - Does a task have a capability (unaudited) in the
* initial user ns
-diff -NurpP --minimal linux-3.4.48/kernel/compat.c linux-3.4.48-vs2.3.3.9/kernel/compat.c
---- linux-3.4.48/kernel/compat.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/compat.c 2012-05-21 16:15:05.000000000 +0000
-@@ -1054,7 +1054,7 @@ asmlinkage long compat_sys_stime(compat_
+diff --git a/kernel/compat.c b/kernel/compat.c
+index d2c67aa..3e61099 100644
+--- a/kernel/compat.c
++++ b/kernel/compat.c
+@@ -1054,7 +1054,7 @@ asmlinkage long compat_sys_stime(compat_time_t __user *tptr)
if (err)
return err;
@@ -14296,9 +14643,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/compat.c linux-3.4.48-vs2.3.3.9/kernel
return 0;
}
-diff -NurpP --minimal linux-3.4.48/kernel/cred.c linux-3.4.48-vs2.3.3.9/kernel/cred.c
---- linux-3.4.48/kernel/cred.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/cred.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/cred.c b/kernel/cred.c
+index e70683d..ed884ddf 100644
+--- a/kernel/cred.c
++++ b/kernel/cred.c
@@ -62,31 +62,6 @@ struct cred init_cred = {
#endif
};
@@ -14368,9 +14716,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/cred.c linux-3.4.48-vs2.3.3.9/kernel/c
EXPORT_SYMBOL(prepare_creds);
/*
-diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/exit.c
---- linux-3.4.48/kernel/exit.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/exit.c 2012-12-08 00:54:06.000000000 +0000
+diff --git a/kernel/exit.c b/kernel/exit.c
+index bfbd856..f8cc8f7 100644
+--- a/kernel/exit.c
++++ b/kernel/exit.c
@@ -48,6 +48,10 @@
#include <linux/fs_struct.h>
#include <linux/init_task.h>
@@ -14382,7 +14731,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/e
#include <trace/events/sched.h>
#include <linux/hw_breakpoint.h>
#include <linux/oom.h>
-@@ -482,9 +486,11 @@ static void close_files(struct files_str
+@@ -482,9 +486,11 @@ static void close_files(struct files_struct * files)
filp_close(file, files);
cond_resched();
}
@@ -14394,7 +14743,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/e
}
}
}
-@@ -699,15 +705,25 @@ static struct task_struct *find_new_reap
+@@ -699,15 +705,25 @@ static struct task_struct *find_new_reaper(struct task_struct *father)
__acquires(&tasklist_lock)
{
struct pid_namespace *pid_ns = task_active_pid_ns(father);
@@ -14423,7 +14772,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/e
}
if (unlikely(pid_ns->child_reaper == father)) {
-@@ -751,7 +767,9 @@ static struct task_struct *find_new_reap
+@@ -751,7 +767,9 @@ static struct task_struct *find_new_reaper(struct task_struct *father)
}
}
@@ -14434,7 +14783,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/e
}
/*
-@@ -802,10 +820,15 @@ static void forget_original_parent(struc
+@@ -802,10 +820,15 @@ static void forget_original_parent(struct task_struct *father)
list_for_each_entry_safe(p, n, &father->children, sibling) {
struct task_struct *t = p;
do {
@@ -14478,9 +14827,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/exit.c linux-3.4.48-vs2.3.3.9/kernel/e
BUG();
/* Avoid "noreturn function does return". */
for (;;)
-diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/fork.c
---- linux-3.4.48/kernel/fork.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/fork.c 2012-06-28 14:45:07.000000000 +0000
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 8163333..33a7b9c 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
@@ -68,6 +68,9 @@
#include <linux/oom.h>
#include <linux/khugepaged.h>
@@ -14500,7 +14850,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
ftrace_graph_exit_task(tsk);
free_task_struct(tsk);
}
-@@ -507,6 +512,7 @@ static struct mm_struct *mm_init(struct
+@@ -507,6 +512,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p)
if (likely(!mm_alloc_pgd(mm))) {
mm->def_flags = 0;
mmu_notifier_mm_init(mm);
@@ -14516,7 +14866,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
free_mm(mm);
}
EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -794,6 +801,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -794,6 +801,7 @@ struct mm_struct *dup_mm(struct task_struct *tsk)
goto fail_nomem;
memcpy(mm, oldmm, sizeof(*mm));
@@ -14532,7 +14882,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
mm_free_pgd(mm);
free_mm(mm);
return NULL;
-@@ -1125,6 +1134,8 @@ static struct task_struct *copy_process(
+@@ -1125,6 +1134,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
int retval;
struct task_struct *p;
int cgroup_callbacks_done = 0;
@@ -14541,7 +14891,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
return ERR_PTR(-EINVAL);
-@@ -1171,7 +1182,12 @@ static struct task_struct *copy_process(
+@@ -1171,7 +1182,12 @@ static struct task_struct *copy_process(unsigned long clone_flags,
DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
#endif
@@ -14554,7 +14904,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
if (atomic_read(&p->real_cred->user->processes) >=
task_rlimit(p, RLIMIT_NPROC)) {
if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1448,6 +1464,18 @@ static struct task_struct *copy_process(
+@@ -1448,6 +1464,18 @@ static struct task_struct *copy_process(unsigned long clone_flags,
total_forks++;
spin_unlock(&current->sighand->siglock);
@@ -14573,9 +14923,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/fork.c linux-3.4.48-vs2.3.3.9/kernel/f
write_unlock_irq(&tasklist_lock);
proc_fork_connector(p);
cgroup_post_fork(p);
-diff -NurpP --minimal linux-3.4.48/kernel/kthread.c linux-3.4.48-vs2.3.3.9/kernel/kthread.c
---- linux-3.4.48/kernel/kthread.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/kthread.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/kernel/kthread.c b/kernel/kthread.c
+index b579af5..faa5fc9 100644
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
@@ -16,6 +16,7 @@
#include <linux/mutex.h>
#include <linux/slab.h>
@@ -14584,9 +14935,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/kthread.c linux-3.4.48-vs2.3.3.9/kerne
#include <trace/events/sched.h>
static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kernel/nsproxy.c
---- linux-3.4.48/kernel/nsproxy.c 2012-01-09 15:15:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/nsproxy.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c
+index b576f7f..a358f98 100644
+--- a/kernel/nsproxy.c
++++ b/kernel/nsproxy.c
@@ -20,11 +20,14 @@
#include <linux/mnt_namespace.h>
#include <linux/utsname.h>
@@ -14602,7 +14954,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
static struct kmem_cache *nsproxy_cachep;
-@@ -46,8 +49,11 @@ static inline struct nsproxy *create_nsp
+@@ -46,8 +49,11 @@ static inline struct nsproxy *create_nsproxy(void)
struct nsproxy *nsproxy;
nsproxy = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL);
@@ -14615,7 +14967,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
return nsproxy;
}
-@@ -56,8 +62,11 @@ static inline struct nsproxy *create_nsp
+@@ -56,8 +62,11 @@ static inline struct nsproxy *create_nsproxy(void)
* Return the newly created nsproxy. Do not attach this to the task,
* leave it to the caller to do proper locking and attach it to task.
*/
@@ -14629,7 +14981,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
{
struct nsproxy *new_nsp;
int err;
-@@ -66,31 +75,31 @@ static struct nsproxy *create_new_namesp
+@@ -66,31 +75,31 @@ static struct nsproxy *create_new_namespaces(unsigned long flags,
if (!new_nsp)
return ERR_PTR(-ENOMEM);
@@ -14721,7 +15073,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
if (!old_ns)
return 0;
-@@ -134,7 +180,7 @@ int copy_namespaces(unsigned long flags,
+@@ -134,7 +180,7 @@ int copy_namespaces(unsigned long flags, struct task_struct *tsk)
CLONE_NEWPID | CLONE_NEWNET)))
return 0;
@@ -14730,7 +15082,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
err = -EPERM;
goto out;
}
-@@ -161,6 +207,9 @@ int copy_namespaces(unsigned long flags,
+@@ -161,6 +207,9 @@ int copy_namespaces(unsigned long flags, struct task_struct *tsk)
out:
put_nsproxy(old_ns);
@@ -14751,7 +15103,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
kmem_cache_free(nsproxy_cachep, ns);
}
-@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned
+@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned long unshare_flags,
{
int err = 0;
@@ -14768,9 +15120,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/nsproxy.c linux-3.4.48-vs2.3.3.9/kerne
return -EPERM;
*new_nsp = create_new_namespaces(unshare_flags, current,
-diff -NurpP --minimal linux-3.4.48/kernel/pid.c linux-3.4.48-vs2.3.3.9/kernel/pid.c
---- linux-3.4.48/kernel/pid.c 2012-03-19 18:47:30.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/pid.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/pid.c b/kernel/pid.c
+index 9f08dfa..46c1be0 100644
+--- a/kernel/pid.c
++++ b/kernel/pid.c
@@ -36,6 +36,7 @@
#include <linux/pid_namespace.h>
#include <linux/init_task.h>
@@ -14788,7 +15141,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid.c linux-3.4.48-vs2.3.3.9/kernel/pi
}
EXPORT_SYMBOL_GPL(find_vpid);
-@@ -404,6 +405,9 @@ void transfer_pid(struct task_struct *ol
+@@ -404,6 +405,9 @@ void transfer_pid(struct task_struct *old, struct task_struct *new,
struct task_struct *pid_task(struct pid *pid, enum pid_type type)
{
struct task_struct *result = NULL;
@@ -14798,7 +15151,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid.c linux-3.4.48-vs2.3.3.9/kernel/pi
if (pid) {
struct hlist_node *first;
first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
-@@ -423,7 +427,7 @@ struct task_struct *find_task_by_pid_ns(
+@@ -423,7 +427,7 @@ struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
rcu_lockdep_assert(rcu_read_lock_held(),
"find_task_by_pid_ns() needs rcu_read_lock()"
" protection");
@@ -14816,7 +15169,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid.c linux-3.4.48-vs2.3.3.9/kernel/pi
{
struct upid *upid;
pid_t nr = 0;
-@@ -480,6 +484,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
+@@ -480,6 +484,11 @@ pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)
return nr;
}
@@ -14828,9 +15181,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid.c linux-3.4.48-vs2.3.3.9/kernel/pi
pid_t pid_vnr(struct pid *pid)
{
return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-3.4.48/kernel/pid_namespace.c linux-3.4.48-vs2.3.3.9/kernel/pid_namespace.c
---- linux-3.4.48/kernel/pid_namespace.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/pid_namespace.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
+index 57bc1fd..f7ce229 100644
+--- a/kernel/pid_namespace.c
++++ b/kernel/pid_namespace.c
@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <linux/proc_fs.h>
@@ -14839,7 +15193,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid_namespace.c linux-3.4.48-vs2.3.3.9
#define BITS_PER_PAGE (PAGE_SIZE*8)
-@@ -89,6 +90,7 @@ static struct pid_namespace *create_pid_
+@@ -89,6 +90,7 @@ static struct pid_namespace *create_pid_namespace(struct pid_namespace *parent_p
goto out_free_map;
kref_init(&ns->kref);
@@ -14847,7 +15201,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid_namespace.c linux-3.4.48-vs2.3.3.9
ns->level = level;
ns->parent = get_pid_ns(parent_pid_ns);
-@@ -120,6 +122,7 @@ static void destroy_pid_namespace(struct
+@@ -120,6 +122,7 @@ static void destroy_pid_namespace(struct pid_namespace *ns)
for (i = 0; i < PIDMAP_ENTRIES; i++)
kfree(ns->pidmap[i].page);
@@ -14855,9 +15209,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/pid_namespace.c linux-3.4.48-vs2.3.3.9
kmem_cache_free(pid_ns_cachep, ns);
}
-diff -NurpP --minimal linux-3.4.48/kernel/posix-timers.c linux-3.4.48-vs2.3.3.9/kernel/posix-timers.c
---- linux-3.4.48/kernel/posix-timers.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/posix-timers.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
+index e885be1..1be116d 100644
+--- a/kernel/posix-timers.c
++++ b/kernel/posix-timers.c
@@ -47,6 +47,7 @@
#include <linux/wait.h>
#include <linux/workqueue.h>
@@ -14866,7 +15221,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/posix-timers.c linux-3.4.48-vs2.3.3.9/
/*
* Management arrays for POSIX timers. Timers are kept in slab memory
-@@ -340,6 +341,7 @@ int posix_timer_event(struct k_itimer *t
+@@ -340,6 +341,7 @@ int posix_timer_event(struct k_itimer *timr, int si_private)
{
struct task_struct *task;
int shared, ret = -1;
@@ -14874,7 +15229,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/posix-timers.c linux-3.4.48-vs2.3.3.9/
/*
* FIXME: if ->sigq is queued we can race with
* dequeue_signal()->do_schedule_next_timer().
-@@ -356,10 +358,18 @@ int posix_timer_event(struct k_itimer *t
+@@ -356,10 +358,18 @@ int posix_timer_event(struct k_itimer *timr, int si_private)
rcu_read_lock();
task = pid_task(timr->it_pid, PIDTYPE_PID);
if (task) {
@@ -14893,9 +15248,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/posix-timers.c linux-3.4.48-vs2.3.3.9/
/* If we failed to send the signal the timer stops. */
return ret > 0;
}
-diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel/printk.c
---- linux-3.4.48/kernel/printk.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/printk.c 2013-03-02 15:26:44.000000000 +0000
+diff --git a/kernel/printk.c b/kernel/printk.c
+index e95c662..53fb49c 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
@@ -41,6 +41,7 @@
#include <linux/cpu.h>
#include <linux/notifier.h>
@@ -14904,7 +15260,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel
#include <asm/uaccess.h>
-@@ -317,7 +318,7 @@ static int check_syslog_permissions(int
+@@ -317,7 +318,7 @@ static int check_syslog_permissions(int type, bool from_file)
return 0;
if (syslog_action_restricted(type)) {
@@ -14913,7 +15269,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel
return 0;
/* For historical reasons, accept CAP_SYS_ADMIN too, with a warning */
if (capable(CAP_SYS_ADMIN)) {
-@@ -347,12 +348,9 @@ int do_syslog(int type, char __user *buf
+@@ -347,12 +348,9 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
if (error)
return error;
@@ -14929,7 +15285,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel
error = -EINVAL;
if (!buf || len < 0)
goto out;
-@@ -363,6 +361,16 @@ int do_syslog(int type, char __user *buf
+@@ -363,6 +361,16 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
error = -EFAULT;
goto out;
}
@@ -14946,7 +15302,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel
error = wait_event_interruptible(log_wait,
(log_start - log_end));
if (error)
-@@ -389,16 +397,6 @@ int do_syslog(int type, char __user *buf
+@@ -389,16 +397,6 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
/* FALL THRU */
/* Read last kernel messages */
case SYSLOG_ACTION_READ_ALL:
@@ -14963,9 +15319,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/printk.c linux-3.4.48-vs2.3.3.9/kernel
count = len;
if (count > log_buf_len)
count = log_buf_len;
-diff -NurpP --minimal linux-3.4.48/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/kernel/ptrace.c
---- linux-3.4.48/kernel/ptrace.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/ptrace.c 2013-02-11 23:37:30.000000000 +0000
+diff --git a/kernel/ptrace.c b/kernel/ptrace.c
+index daf4394..b57b360 100644
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
@@ -22,6 +22,7 @@
#include <linux/syscalls.h>
#include <linux/uaccess.h>
@@ -14986,9 +15343,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/ptrace.c linux-3.4.48-vs2.3.3.9/kernel
return security_ptrace_access_check(task, mode);
}
-diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/kernel/sched/core.c
---- linux-3.4.48/kernel/sched/core.c 2013-06-13 08:59:37.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/sched/core.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 4b6c546..bb45655 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
@@ -72,6 +72,8 @@
#include <linux/slab.h>
#include <linux/init_task.h>
@@ -14998,7 +15356,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/ke
#include <asm/switch_to.h>
#include <asm/tlb.h>
-@@ -2226,9 +2228,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
+@@ -2228,9 +2230,17 @@ EXPORT_SYMBOL(avenrun); /* should be removed */
*/
void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
{
@@ -15019,7 +15377,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/ke
}
static long calc_load_fold_active(struct rq *this_rq)
-@@ -2797,14 +2807,17 @@ static inline void task_group_account_fi
+@@ -2799,14 +2809,17 @@ static inline void task_group_account_field(struct task_struct *p, int index,
void account_user_time(struct task_struct *p, cputime_t cputime,
cputime_t cputime_scaled)
{
@@ -15038,7 +15396,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/ke
/* Add user time to cpustat. */
task_group_account_field(p, index, (__force u64) cputime);
-@@ -2851,9 +2864,12 @@ static inline
+@@ -2853,9 +2866,12 @@ static inline
void __account_system_time(struct task_struct *p, cputime_t cputime,
cputime_t cputime_scaled, int index)
{
@@ -15051,7 +15409,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/ke
account_group_system_time(p, cputime);
/* Add system time to cpustat. */
-@@ -4079,7 +4095,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -4081,7 +4097,7 @@ SYSCALL_DEFINE1(nice, int, increment)
nice = 19;
if (increment < 0 && !can_nice(current, nice))
@@ -15060,9 +15418,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/core.c linux-3.4.48-vs2.3.3.9/ke
retval = security_task_setnice(current, nice);
if (retval)
-diff -NurpP --minimal linux-3.4.48/kernel/sched/fair.c linux-3.4.48-vs2.3.3.9/kernel/sched/fair.c
---- linux-3.4.48/kernel/sched/fair.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/sched/fair.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index e955364..1e5f507 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
@@ -26,6 +26,7 @@
#include <linux/slab.h>
#include <linux/profile.h>
@@ -15071,7 +15430,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/fair.c linux-3.4.48-vs2.3.3.9/ke
#include <trace/events/sched.h>
-@@ -1111,6 +1112,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
+@@ -1111,6 +1112,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
__enqueue_entity(cfs_rq, se);
se->on_rq = 1;
@@ -15080,7 +15439,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/fair.c linux-3.4.48-vs2.3.3.9/ke
if (cfs_rq->nr_running == 1) {
list_add_leaf_cfs_rq(cfs_rq);
check_enqueue_throttle(cfs_rq);
-@@ -1191,6 +1194,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
+@@ -1191,6 +1194,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
if (se != cfs_rq->curr)
__dequeue_entity(cfs_rq, se);
se->on_rq = 0;
@@ -15089,9 +15448,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/sched/fair.c linux-3.4.48-vs2.3.3.9/ke
update_cfs_load(cfs_rq, 0);
account_entity_dequeue(cfs_rq, se);
-diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel/signal.c
---- linux-3.4.48/kernel/signal.c 2013-06-13 08:59:38.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/signal.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/kernel/signal.c b/kernel/signal.c
+index 959df4f..11a7c4d 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
@@ -29,6 +29,8 @@
#include <linux/pid_namespace.h>
#include <linux/nsproxy.h>
@@ -15101,7 +15461,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
#define CREATE_TRACE_POINTS
#include <trace/events/signal.h>
-@@ -787,9 +789,18 @@ static int check_kill_permission(int sig
+@@ -787,9 +789,18 @@ static int check_kill_permission(int sig, struct siginfo *info,
struct pid *sid;
int error;
@@ -15120,7 +15480,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
if (!si_fromuser(info))
return 0;
-@@ -813,6 +824,20 @@ static int check_kill_permission(int sig
+@@ -813,6 +824,20 @@ static int check_kill_permission(int sig, struct siginfo *info,
}
}
@@ -15141,7 +15501,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
return security_task_kill(t, info, sig, 0);
}
-@@ -1355,7 +1380,7 @@ int kill_pid_info(int sig, struct siginf
+@@ -1355,7 +1380,7 @@ int kill_pid_info(int sig, struct siginfo *info, struct pid *pid)
rcu_read_lock();
retry:
p = pid_task(pid, PIDTYPE_PID);
@@ -15150,7 +15510,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
error = group_send_sig_info(sig, info, p);
if (unlikely(error == -ESRCH))
/*
-@@ -1405,7 +1430,7 @@ int kill_pid_info_as_cred(int sig, struc
+@@ -1405,7 +1430,7 @@ int kill_pid_info_as_cred(int sig, struct siginfo *info, struct pid *pid,
rcu_read_lock();
p = pid_task(pid, PIDTYPE_PID);
@@ -15159,7 +15519,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
ret = -ESRCH;
goto out_unlock;
}
-@@ -1457,8 +1482,10 @@ static int kill_something_info(int sig,
+@@ -1457,8 +1482,10 @@ static int kill_something_info(int sig, struct siginfo *info, pid_t pid)
struct task_struct * p;
for_each_process(p) {
@@ -15184,9 +15544,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/signal.c linux-3.4.48-vs2.3.3.9/kernel
if (sig_kernel_stop(signr)) {
/*
* The default action is to stop all threads in
-diff -NurpP --minimal linux-3.4.48/kernel/softirq.c linux-3.4.48-vs2.3.3.9/kernel/softirq.c
---- linux-3.4.48/kernel/softirq.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/softirq.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 671f959..b985019 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
@@ -24,6 +24,7 @@
#include <linux/ftrace.h>
#include <linux/smp.h>
@@ -15195,9 +15556,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/softirq.c linux-3.4.48-vs2.3.3.9/kerne
#define CREATE_TRACE_POINTS
#include <trace/events/irq.h>
-diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sys.c
---- linux-3.4.48/kernel/sys.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/sys.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/kernel/sys.c b/kernel/sys.c
+index 3449d26..1ddea08 100644
+--- a/kernel/sys.c
++++ b/kernel/sys.c
@@ -45,6 +45,7 @@
#include <linux/syscalls.h>
#include <linux/kprobes.h>
@@ -15206,7 +15568,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
#include <linux/kmsg_dump.h>
/* Move somewhere else to avoid recompiling? */
-@@ -155,7 +156,10 @@ static int set_one_prio(struct task_stru
+@@ -155,7 +156,10 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
goto out;
}
if (niceval < task_nice(p) && !can_nice(p, niceval)) {
@@ -15218,7 +15580,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
goto out;
}
no_nice = security_task_setnice(p, niceval);
-@@ -205,6 +209,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
+@@ -205,6 +209,8 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
else
pgrp = task_pgrp(current);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15227,7 +15589,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
error = set_one_prio(p, niceval, error);
} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
break;
-@@ -268,6 +274,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
+@@ -268,6 +274,8 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
else
pgrp = task_pgrp(current);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15236,7 +15598,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
niceval = 20 - task_nice(p);
if (niceval > retval)
retval = niceval;
-@@ -419,6 +427,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
+@@ -443,6 +451,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
static DEFINE_MUTEX(reboot_mutex);
@@ -15245,7 +15607,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
/*
* Reboot system call: for obvious reasons only root may call it,
* and even root needs to set up some magic numbers in the registers
-@@ -460,6 +470,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
+@@ -484,6 +494,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
cmd = LINUX_REBOOT_CMD_HALT;
@@ -15255,7 +15617,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
mutex_lock(&reboot_mutex);
switch (cmd) {
case LINUX_REBOOT_CMD_RESTART:
-@@ -1285,7 +1298,8 @@ SYSCALL_DEFINE2(sethostname, char __user
+@@ -1309,7 +1322,8 @@ SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
int errno;
char tmp[__NEW_UTS_LEN];
@@ -15265,7 +15627,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
return -EPERM;
if (len < 0 || len > __NEW_UTS_LEN)
-@@ -1336,7 +1350,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
+@@ -1360,7 +1374,8 @@ SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
int errno;
char tmp[__NEW_UTS_LEN];
@@ -15275,7 +15637,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
return -EPERM;
if (len < 0 || len > __NEW_UTS_LEN)
return -EINVAL;
-@@ -1455,7 +1470,7 @@ int do_prlimit(struct task_struct *tsk,
+@@ -1479,7 +1494,7 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
/* Keep the capable check against init_user_ns until
cgroups can contain all limits */
if (new_rlim->rlim_max > rlim->rlim_max &&
@@ -15284,7 +15646,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
retval = -EPERM;
if (!retval)
retval = security_task_setrlimit(tsk->group_leader,
-@@ -1509,7 +1524,8 @@ static int check_prlimit_permission(stru
+@@ -1533,7 +1548,8 @@ static int check_prlimit_permission(struct task_struct *task)
cred->gid == tcred->sgid &&
cred->gid == tcred->gid))
return 0;
@@ -15294,9 +15656,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/sys.c linux-3.4.48-vs2.3.3.9/kernel/sy
return 0;
return -EPERM;
-diff -NurpP --minimal linux-3.4.48/kernel/sysctl.c linux-3.4.48-vs2.3.3.9/kernel/sysctl.c
---- linux-3.4.48/kernel/sysctl.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/sysctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/sysctl.c b/kernel/sysctl.c
+index 4ab1187..9a17056 100644
+--- a/kernel/sysctl.c
++++ b/kernel/sysctl.c
@@ -81,6 +81,7 @@
#if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
#include <linux/lockdep.h>
@@ -15319,10 +15682,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/sysctl.c linux-3.4.48-vs2.3.3.9/kernel
#ifdef CONFIG_CHR_DEV_SG
{
.procname = "sg-big-buff",
-diff -NurpP --minimal linux-3.4.48/kernel/sysctl_binary.c linux-3.4.48-vs2.3.3.9/kernel/sysctl_binary.c
---- linux-3.4.48/kernel/sysctl_binary.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/sysctl_binary.c 2013-03-30 21:29:17.000000000 +0000
-@@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
+diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
+index 9f9aa32..e967bde 100644
+--- a/kernel/sysctl_binary.c
++++ b/kernel/sysctl_binary.c
+@@ -73,6 +73,7 @@ static const struct bin_table bin_kern_table[] = {
{ CTL_INT, KERN_PANIC, "panic" },
{ CTL_INT, KERN_REALROOTDEV, "real-root-dev" },
@@ -15330,21 +15694,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/sysctl_binary.c linux-3.4.48-vs2.3.3.9
{ CTL_STR, KERN_SPARC_REBOOT, "reboot-cmd" },
{ CTL_INT, KERN_CTLALTDEL, "ctrl-alt-del" },
-diff -NurpP --minimal linux-3.4.48/kernel/time/timekeeping.c linux-3.4.48-vs2.3.3.9/kernel/time/timekeeping.c
---- linux-3.4.48/kernel/time/timekeeping.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/time/timekeeping.c 2012-12-08 00:53:53.000000000 +0000
-@@ -254,6 +254,7 @@ void getnstimeofday(struct timespec *ts)
- } while (read_seqretry(&timekeeper.lock, seq));
-
- timespec_add_ns(ts, nsecs);
-+ vx_adjust_timespec(ts);
- }
-
- EXPORT_SYMBOL(getnstimeofday);
-diff -NurpP --minimal linux-3.4.48/kernel/time.c linux-3.4.48-vs2.3.3.9/kernel/time.c
---- linux-3.4.48/kernel/time.c 2012-05-21 16:07:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/time.c 2012-05-21 16:15:05.000000000 +0000
-@@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
+diff --git a/kernel/time.c b/kernel/time.c
+index ba744cf..14f14d5 100644
+--- a/kernel/time.c
++++ b/kernel/time.c
+@@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *, tptr)
if (err)
return err;
@@ -15353,7 +15707,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/time.c linux-3.4.48-vs2.3.3.9/kernel/t
return 0;
}
-@@ -172,7 +172,7 @@ int do_sys_settimeofday(const struct tim
+@@ -172,7 +172,7 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
}
}
if (tv)
@@ -15362,9 +15716,22 @@ diff -NurpP --minimal linux-3.4.48/kernel/time.c linux-3.4.48-vs2.3.3.9/kernel/t
return 0;
}
-diff -NurpP --minimal linux-3.4.48/kernel/timer.c linux-3.4.48-vs2.3.3.9/kernel/timer.c
---- linux-3.4.48/kernel/timer.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/timer.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
+index eff0b1e..5913ef4 100644
+--- a/kernel/time/timekeeping.c
++++ b/kernel/time/timekeeping.c
+@@ -254,6 +254,7 @@ void getnstimeofday(struct timespec *ts)
+ } while (read_seqretry(&timekeeper.lock, seq));
+
+ timespec_add_ns(ts, nsecs);
++ vx_adjust_timespec(ts);
+ }
+
+ EXPORT_SYMBOL(getnstimeofday);
+diff --git a/kernel/timer.c b/kernel/timer.c
+index 7e0a770..8acf352 100644
+--- a/kernel/timer.c
++++ b/kernel/timer.c
@@ -40,6 +40,10 @@
#include <linux/irq_work.h>
#include <linux/sched.h>
@@ -15376,7 +15743,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/timer.c linux-3.4.48-vs2.3.3.9/kernel/
#include <asm/uaccess.h>
#include <asm/unistd.h>
-@@ -1388,12 +1392,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
+@@ -1390,12 +1394,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, seconds)
#endif
@@ -15389,16 +15756,16 @@ diff -NurpP --minimal linux-3.4.48/kernel/timer.c linux-3.4.48-vs2.3.3.9/kernel/
/**
* sys_getpid - return the thread group id of the current process
-@@ -1422,10 +1420,23 @@ SYSCALL_DEFINE0(getppid)
+@@ -1424,10 +1422,23 @@ SYSCALL_DEFINE0(getppid)
rcu_read_lock();
pid = task_tgid_vnr(rcu_dereference(current->real_parent));
rcu_read_unlock();
+ return vx_map_pid(pid);
+}
++
++#ifdef __alpha__
- return pid;
-+#ifdef __alpha__
-+
+/*
+ * The Alpha uses getxpid, getxuid, and getxgid instead.
+ */
@@ -15414,9 +15781,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/timer.c linux-3.4.48-vs2.3.3.9/kernel/
SYSCALL_DEFINE0(getuid)
{
/* Only we change this so SMP safe */
-diff -NurpP --minimal linux-3.4.48/kernel/user_namespace.c linux-3.4.48-vs2.3.3.9/kernel/user_namespace.c
---- linux-3.4.48/kernel/user_namespace.c 2012-01-09 15:15:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/user_namespace.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
+index 3b906e9..48a8927 100644
+--- a/kernel/user_namespace.c
++++ b/kernel/user_namespace.c
@@ -11,6 +11,7 @@
#include <linux/user_namespace.h>
#include <linux/highuid.h>
@@ -15442,9 +15810,10 @@ diff -NurpP --minimal linux-3.4.48/kernel/user_namespace.c linux-3.4.48-vs2.3.3.
INIT_WORK(&ns->destroyer, free_user_ns_work);
schedule_work(&ns->destroyer);
}
-diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kernel/utsname.c
---- linux-3.4.48/kernel/utsname.c 2012-01-09 15:15:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/utsname.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/utsname.c b/kernel/utsname.c
+index 405caf9..307d077 100644
+--- a/kernel/utsname.c
++++ b/kernel/utsname.c
@@ -16,14 +16,17 @@
#include <linux/slab.h>
#include <linux/user_namespace.h>
@@ -15464,7 +15833,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kerne
return uts_ns;
}
-@@ -32,8 +35,8 @@ static struct uts_namespace *create_uts_
+@@ -32,8 +35,8 @@ static struct uts_namespace *create_uts_ns(void)
* @old_ns: namespace to clone
* Return NULL on error (failure to kmalloc), new ns otherwise
*/
@@ -15475,7 +15844,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kerne
{
struct uts_namespace *ns;
-@@ -43,7 +46,7 @@ static struct uts_namespace *clone_uts_n
+@@ -43,7 +46,7 @@ static struct uts_namespace *clone_uts_ns(struct task_struct *tsk,
down_read(&uts_sem);
memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
@@ -15484,7 +15853,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kerne
up_read(&uts_sem);
return ns;
}
-@@ -55,9 +58,9 @@ static struct uts_namespace *clone_uts_n
+@@ -55,9 +58,9 @@ static struct uts_namespace *clone_uts_ns(struct task_struct *tsk,
* versa.
*/
struct uts_namespace *copy_utsname(unsigned long flags,
@@ -15496,7 +15865,7 @@ diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kerne
struct uts_namespace *new_ns;
BUG_ON(!old_ns);
-@@ -66,7 +69,7 @@ struct uts_namespace *copy_utsname(unsig
+@@ -66,7 +69,7 @@ struct uts_namespace *copy_utsname(unsigned long flags,
if (!(flags & CLONE_NEWUTS))
return old_ns;
@@ -15513,9 +15882,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/utsname.c linux-3.4.48-vs2.3.3.9/kerne
kfree(ns);
}
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/Kconfig linux-3.4.48-vs2.3.3.9/kernel/vserver/Kconfig
---- linux-3.4.48/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/Kconfig 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/Kconfig b/kernel/vserver/Kconfig
+new file mode 100644
+index 0000000..0903150
+--- /dev/null
++++ b/kernel/vserver/Kconfig
@@ -0,0 +1,224 @@
+#
+# Linux VServer configuration
@@ -15741,9 +16112,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/Kconfig linux-3.4.48-vs2.3.3.9
+ bool
+ default n
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/Makefile linux-3.4.48-vs2.3.3.9/kernel/vserver/Makefile
---- linux-3.4.48/kernel/vserver/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/Makefile 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/Makefile b/kernel/vserver/Makefile
+new file mode 100644
+index 0000000..ba95c6c
+--- /dev/null
++++ b/kernel/vserver/Makefile
@@ -0,0 +1,18 @@
+#
+# Makefile for the Linux vserver routines.
@@ -15763,9 +16136,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/Makefile linux-3.4.48-vs2.3.3.
+vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
+vserver-$(CONFIG_VSERVER_DEVICE) += device.o
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct.c linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct.c
---- linux-3.4.48/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cacct.c b/kernel/vserver/cacct.c
+new file mode 100644
+index 0000000..80dea24
+--- /dev/null
++++ b/kernel/vserver/cacct.c
@@ -0,0 +1,42 @@
+/*
+ * linux/kernel/vserver/cacct.c
@@ -15809,9 +16184,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct.c linux-3.4.48-vs2.3.3.9
+ return 0;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct_init.h linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct_init.h
---- linux-3.4.48/kernel/vserver/cacct_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct_init.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cacct_init.h b/kernel/vserver/cacct_init.h
+new file mode 100644
+index 0000000..94d82e9
+--- /dev/null
++++ b/kernel/vserver/cacct_init.h
@@ -0,0 +1,25 @@
+
+
@@ -15838,9 +16215,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct_init.h linux-3.4.48-vs2.
+ return;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct_proc.h linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct_proc.h
---- linux-3.4.48/kernel/vserver/cacct_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cacct_proc.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cacct_proc.h b/kernel/vserver/cacct_proc.h
+new file mode 100644
+index 0000000..0de9a38
+--- /dev/null
++++ b/kernel/vserver/cacct_proc.h
@@ -0,0 +1,53 @@
+#ifndef _VX_CACCT_PROC_H
+#define _VX_CACCT_PROC_H
@@ -15895,9 +16274,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cacct_proc.h linux-3.4.48-vs2.
+}
+
+#endif /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/context.c linux-3.4.48-vs2.3.3.9/kernel/vserver/context.c
---- linux-3.4.48/kernel/vserver/context.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/context.c 2012-06-28 14:45:48.000000000 +0000
+diff --git a/kernel/vserver/context.c b/kernel/vserver/context.c
+new file mode 100644
+index 0000000..1061eac
+--- /dev/null
++++ b/kernel/vserver/context.c
@@ -0,0 +1,1119 @@
+/*
+ * linux/kernel/vserver/context.c
@@ -17018,9 +17399,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/context.c linux-3.4.48-vs2.3.3
+
+EXPORT_SYMBOL_GPL(free_vx_info);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt.c linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt.c
---- linux-3.4.48/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cvirt.c b/kernel/vserver/cvirt.c
+new file mode 100644
+index 0000000..ca0d207
+--- /dev/null
++++ b/kernel/vserver/cvirt.c
@@ -0,0 +1,313 @@
+/*
+ * linux/kernel/vserver/cvirt.c
@@ -17335,9 +17718,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt.c linux-3.4.48-vs2.3.3.9
+
+#endif
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt_init.h linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt_init.h
---- linux-3.4.48/kernel/vserver/cvirt_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt_init.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cvirt_init.h b/kernel/vserver/cvirt_init.h
+new file mode 100644
+index 0000000..0efd0de
+--- /dev/null
++++ b/kernel/vserver/cvirt_init.h
@@ -0,0 +1,70 @@
+
+
@@ -17409,9 +17794,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt_init.h linux-3.4.48-vs2.
+ return;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt_proc.h linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt_proc.h
---- linux-3.4.48/kernel/vserver/cvirt_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/cvirt_proc.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/cvirt_proc.h b/kernel/vserver/cvirt_proc.h
+new file mode 100644
+index 0000000..8b95ff4
+--- /dev/null
++++ b/kernel/vserver/cvirt_proc.h
@@ -0,0 +1,123 @@
+#ifndef _VX_CVIRT_PROC_H
+#define _VX_CVIRT_PROC_H
@@ -17536,9 +17923,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/cvirt_proc.h linux-3.4.48-vs2.
+}
+
+#endif /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/debug.c linux-3.4.48-vs2.3.3.9/kernel/vserver/debug.c
---- linux-3.4.48/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/debug.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/debug.c b/kernel/vserver/debug.c
+new file mode 100644
+index 0000000..22cf710
+--- /dev/null
++++ b/kernel/vserver/debug.c
@@ -0,0 +1,32 @@
+/*
+ * kernel/vserver/debug.c
@@ -17572,9 +17961,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/debug.c linux-3.4.48-vs2.3.3.9
+
+EXPORT_SYMBOL_GPL(dump_vx_info);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/device.c linux-3.4.48-vs2.3.3.9/kernel/vserver/device.c
---- linux-3.4.48/kernel/vserver/device.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/device.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/device.c b/kernel/vserver/device.c
+new file mode 100644
+index 0000000..59277f6
+--- /dev/null
++++ b/kernel/vserver/device.c
@@ -0,0 +1,443 @@
+/*
+ * linux/kernel/vserver/device.c
@@ -18019,9 +18410,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/device.c linux-3.4.48-vs2.3.3.
+#endif /* CONFIG_COMPAT */
+
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/dlimit.c linux-3.4.48-vs2.3.3.9/kernel/vserver/dlimit.c
---- linux-3.4.48/kernel/vserver/dlimit.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/dlimit.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/dlimit.c b/kernel/vserver/dlimit.c
+new file mode 100644
+index 0000000..a674f2c
+--- /dev/null
++++ b/kernel/vserver/dlimit.c
@@ -0,0 +1,531 @@
+/*
+ * linux/kernel/vserver/dlimit.c
@@ -18554,9 +18947,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/dlimit.c linux-3.4.48-vs2.3.3.
+EXPORT_SYMBOL_GPL(locate_dl_info);
+EXPORT_SYMBOL_GPL(rcu_free_dl_info);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/helper.c linux-3.4.48-vs2.3.3.9/kernel/vserver/helper.c
---- linux-3.4.48/kernel/vserver/helper.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/helper.c 2012-09-16 18:49:44.000000000 +0000
+diff --git a/kernel/vserver/helper.c b/kernel/vserver/helper.c
+new file mode 100644
+index 0000000..f012fbf
+--- /dev/null
++++ b/kernel/vserver/helper.c
@@ -0,0 +1,229 @@
+/*
+ * linux/kernel/vserver/helper.c
@@ -18787,9 +19182,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/helper.c linux-3.4.48-vs2.3.3.
+ return do_vshelper(vshelper_path, argv, envp, 1);
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/history.c linux-3.4.48-vs2.3.3.9/kernel/vserver/history.c
---- linux-3.4.48/kernel/vserver/history.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/history.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/history.c b/kernel/vserver/history.c
+new file mode 100644
+index 0000000..e3e0712
+--- /dev/null
++++ b/kernel/vserver/history.c
@@ -0,0 +1,258 @@
+/*
+ * kernel/vserver/history.c
@@ -19049,9 +19446,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/history.c linux-3.4.48-vs2.3.3
+
+#endif /* CONFIG_COMPAT */
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/inet.c linux-3.4.48-vs2.3.3.9/kernel/vserver/inet.c
---- linux-3.4.48/kernel/vserver/inet.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/inet.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/inet.c b/kernel/vserver/inet.c
+new file mode 100644
+index 0000000..6c56f69
+--- /dev/null
++++ b/kernel/vserver/inet.c
@@ -0,0 +1,226 @@
+
+#include <linux/in.h>
@@ -19279,9 +19678,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/inet.c linux-3.4.48-vs2.3.3.9/
+
+EXPORT_SYMBOL_GPL(ip_v4_find_src);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/init.c linux-3.4.48-vs2.3.3.9/kernel/vserver/init.c
---- linux-3.4.48/kernel/vserver/init.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/init.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/init.c b/kernel/vserver/init.c
+new file mode 100644
+index 0000000..17f62f8
+--- /dev/null
++++ b/kernel/vserver/init.c
@@ -0,0 +1,45 @@
+/*
+ * linux/kernel/init.c
@@ -19328,9 +19729,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/init.c linux-3.4.48-vs2.3.3.9/
+module_init(init_vserver);
+module_exit(exit_vserver);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/inode.c linux-3.4.48-vs2.3.3.9/kernel/vserver/inode.c
---- linux-3.4.48/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/inode.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/inode.c b/kernel/vserver/inode.c
+new file mode 100644
+index 0000000..69b17f7
+--- /dev/null
++++ b/kernel/vserver/inode.c
@@ -0,0 +1,437 @@
+/*
+ * linux/kernel/vserver/inode.c
@@ -19769,9 +20172,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/inode.c linux-3.4.48-vs2.3.3.9
+
+#endif /* CONFIG_PROPAGATE */
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit.c linux-3.4.48-vs2.3.3.9/kernel/vserver/limit.c
---- linux-3.4.48/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/limit.c 2012-09-01 09:15:21.000000000 +0000
+diff --git a/kernel/vserver/limit.c b/kernel/vserver/limit.c
+new file mode 100644
+index 0000000..8bda9de
+--- /dev/null
++++ b/kernel/vserver/limit.c
@@ -0,0 +1,345 @@
+/*
+ * linux/kernel/vserver/limit.c
@@ -20118,9 +20523,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit.c linux-3.4.48-vs2.3.3.9
+ return cache;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit_init.h linux-3.4.48-vs2.3.3.9/kernel/vserver/limit_init.h
---- linux-3.4.48/kernel/vserver/limit_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/limit_init.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/limit_init.h b/kernel/vserver/limit_init.h
+new file mode 100644
+index 0000000..dfce7a2
+--- /dev/null
++++ b/kernel/vserver/limit_init.h
@@ -0,0 +1,31 @@
+
+
@@ -20153,9 +20560,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit_init.h linux-3.4.48-vs2.
+ }
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit_proc.h linux-3.4.48-vs2.3.3.9/kernel/vserver/limit_proc.h
---- linux-3.4.48/kernel/vserver/limit_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/limit_proc.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/limit_proc.h b/kernel/vserver/limit_proc.h
+new file mode 100644
+index 0000000..ff5d910
+--- /dev/null
++++ b/kernel/vserver/limit_proc.h
@@ -0,0 +1,57 @@
+#ifndef _VX_LIMIT_PROC_H
+#define _VX_LIMIT_PROC_H
@@ -20214,9 +20623,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/limit_proc.h linux-3.4.48-vs2.
+#endif /* _VX_LIMIT_PROC_H */
+
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/network.c linux-3.4.48-vs2.3.3.9/kernel/vserver/network.c
---- linux-3.4.48/kernel/vserver/network.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/network.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/network.c b/kernel/vserver/network.c
+new file mode 100644
+index 0000000..9ec1bba
+--- /dev/null
++++ b/kernel/vserver/network.c
@@ -0,0 +1,912 @@
+/*
+ * linux/kernel/vserver/network.c
@@ -21130,9 +21541,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/network.c linux-3.4.48-vs2.3.3
+EXPORT_SYMBOL_GPL(free_nx_info);
+EXPORT_SYMBOL_GPL(unhash_nx_info);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/proc.c linux-3.4.48-vs2.3.3.9/kernel/vserver/proc.c
---- linux-3.4.48/kernel/vserver/proc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/proc.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/proc.c b/kernel/vserver/proc.c
+new file mode 100644
+index 0000000..b41558d
+--- /dev/null
++++ b/kernel/vserver/proc.c
@@ -0,0 +1,1103 @@
+/*
+ * linux/kernel/vserver/proc.c
@@ -22237,9 +22650,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/proc.c linux-3.4.48-vs2.3.3.9/
+ return buffer - orig;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched.c linux-3.4.48-vs2.3.3.9/kernel/vserver/sched.c
---- linux-3.4.48/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/sched.c 2012-05-21 16:25:11.000000000 +0000
+diff --git a/kernel/vserver/sched.c b/kernel/vserver/sched.c
+new file mode 100644
+index 0000000..0c80b79
+--- /dev/null
++++ b/kernel/vserver/sched.c
@@ -0,0 +1,83 @@
+/*
+ * linux/kernel/vserver/sched.c
@@ -22324,9 +22739,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched.c linux-3.4.48-vs2.3.3.9
+ return 0;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched_init.h linux-3.4.48-vs2.3.3.9/kernel/vserver/sched_init.h
---- linux-3.4.48/kernel/vserver/sched_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/sched_init.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/sched_init.h b/kernel/vserver/sched_init.h
+new file mode 100644
+index 0000000..725ab06
+--- /dev/null
++++ b/kernel/vserver/sched_init.h
@@ -0,0 +1,27 @@
+
+static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -22355,9 +22772,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched_init.h linux-3.4.48-vs2.
+{
+ return;
+}
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched_proc.h linux-3.4.48-vs2.3.3.9/kernel/vserver/sched_proc.h
---- linux-3.4.48/kernel/vserver/sched_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/sched_proc.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/sched_proc.h b/kernel/vserver/sched_proc.h
+new file mode 100644
+index 0000000..35b8fd4
+--- /dev/null
++++ b/kernel/vserver/sched_proc.h
@@ -0,0 +1,32 @@
+#ifndef _VX_SCHED_PROC_H
+#define _VX_SCHED_PROC_H
@@ -22391,9 +22810,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/sched_proc.h linux-3.4.48-vs2.
+}
+
+#endif /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/signal.c linux-3.4.48-vs2.3.3.9/kernel/vserver/signal.c
---- linux-3.4.48/kernel/vserver/signal.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/signal.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/signal.c b/kernel/vserver/signal.c
+new file mode 100644
+index 0000000..2c72a86
+--- /dev/null
++++ b/kernel/vserver/signal.c
@@ -0,0 +1,134 @@
+/*
+ * linux/kernel/vserver/signal.c
@@ -22529,9 +22950,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/signal.c linux-3.4.48-vs2.3.3.
+ return ret;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/space.c linux-3.4.48-vs2.3.3.9/kernel/vserver/space.c
---- linux-3.4.48/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/space.c 2013-02-12 00:16:04.000000000 +0000
+diff --git a/kernel/vserver/space.c b/kernel/vserver/space.c
+new file mode 100644
+index 0000000..cf6dd38
+--- /dev/null
++++ b/kernel/vserver/space.c
@@ -0,0 +1,436 @@
+/*
+ * linux/kernel/vserver/space.c
@@ -22969,9 +23392,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/space.c linux-3.4.48-vs2.3.3.9
+ return 0;
+}
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/switch.c linux-3.4.48-vs2.3.3.9/kernel/vserver/switch.c
---- linux-3.4.48/kernel/vserver/switch.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/switch.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/switch.c b/kernel/vserver/switch.c
+new file mode 100644
+index 0000000..b9e1210
+--- /dev/null
++++ b/kernel/vserver/switch.c
@@ -0,0 +1,556 @@
+/*
+ * linux/kernel/vserver/switch.c
@@ -23529,9 +23954,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/switch.c linux-3.4.48-vs2.3.3.
+}
+
+#endif /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/sysctl.c linux-3.4.48-vs2.3.3.9/kernel/vserver/sysctl.c
---- linux-3.4.48/kernel/vserver/sysctl.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/sysctl.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/sysctl.c b/kernel/vserver/sysctl.c
+new file mode 100644
+index 0000000..a55cda1
+--- /dev/null
++++ b/kernel/vserver/sysctl.c
@@ -0,0 +1,247 @@
+/*
+ * kernel/vserver/sysctl.c
@@ -23780,9 +24207,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/sysctl.c linux-3.4.48-vs2.3.3.
+EXPORT_SYMBOL_GPL(vs_debug_perm);
+EXPORT_SYMBOL_GPL(vs_debug_misc);
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/tag.c linux-3.4.48-vs2.3.3.9/kernel/vserver/tag.c
---- linux-3.4.48/kernel/vserver/tag.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/tag.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/tag.c b/kernel/vserver/tag.c
+new file mode 100644
+index 0000000..586900c
+--- /dev/null
++++ b/kernel/vserver/tag.c
@@ -0,0 +1,63 @@
+/*
+ * linux/kernel/vserver/tag.c
@@ -23847,9 +24276,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/tag.c linux-3.4.48-vs2.3.3.9/k
+}
+
+
-diff -NurpP --minimal linux-3.4.48/kernel/vserver/vci_config.h linux-3.4.48-vs2.3.3.9/kernel/vserver/vci_config.h
---- linux-3.4.48/kernel/vserver/vci_config.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/kernel/vserver/vci_config.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/kernel/vserver/vci_config.h b/kernel/vserver/vci_config.h
+new file mode 100644
+index 0000000..31d786d
+--- /dev/null
++++ b/kernel/vserver/vci_config.h
@@ -0,0 +1,76 @@
+
+/* interface version */
@@ -23927,10 +24358,11 @@ diff -NurpP --minimal linux-3.4.48/kernel/vserver/vci_config.h linux-3.4.48-vs2.
+ 0;
+}
+
-diff -NurpP --minimal linux-3.4.48/mm/memcontrol.c linux-3.4.48-vs2.3.3.9/mm/memcontrol.c
---- linux-3.4.48/mm/memcontrol.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/memcontrol.c 2012-12-08 00:53:53.000000000 +0000
-@@ -846,6 +846,31 @@ struct mem_cgroup *mem_cgroup_from_task(
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 81c275b..aba10b1 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -846,6 +846,31 @@ struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p)
struct mem_cgroup, css);
}
@@ -23962,9 +24394,10 @@ diff -NurpP --minimal linux-3.4.48/mm/memcontrol.c linux-3.4.48-vs2.3.3.9/mm/mem
struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
{
struct mem_cgroup *memcg = NULL;
-diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_kill.c
---- linux-3.4.48/mm/oom_kill.c 2012-05-21 16:07:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/oom_kill.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/mm/oom_kill.c b/mm/oom_kill.c
+index 46bf2ed5..d8cdda8 100644
+--- a/mm/oom_kill.c
++++ b/mm/oom_kill.c
@@ -35,6 +35,8 @@
#include <linux/freezer.h>
#include <linux/ftrace.h>
@@ -23974,7 +24407,7 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
#define CREATE_TRACE_POINTS
#include <trace/events/oom.h>
-@@ -155,11 +157,18 @@ struct task_struct *find_lock_task_mm(st
+@@ -155,11 +157,18 @@ struct task_struct *find_lock_task_mm(struct task_struct *p)
static bool oom_unkillable_task(struct task_struct *p,
const struct mem_cgroup *memcg, const nodemask_t *nodemask)
{
@@ -23994,7 +24427,7 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
/* When mem_cgroup_out_of_memory() and p is not member of the group */
if (memcg && !task_in_mem_cgroup(p, memcg))
return true;
-@@ -462,8 +471,8 @@ static void oom_kill_process(struct task
+@@ -462,8 +471,8 @@ static void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
dump_header(p, gfp_mask, order, memcg, nodemask);
task_lock(p);
@@ -24005,7 +24438,7 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
task_unlock(p);
/*
-@@ -496,8 +505,8 @@ static void oom_kill_process(struct task
+@@ -496,8 +505,8 @@ static void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
/* mm cannot safely be dereferenced after task_unlock(victim) */
mm = victim->mm;
@@ -24016,7 +24449,7 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
K(get_mm_counter(victim->mm, MM_ANONPAGES)),
K(get_mm_counter(victim->mm, MM_FILEPAGES)));
task_unlock(victim);
-@@ -596,6 +605,8 @@ int unregister_oom_notifier(struct notif
+@@ -596,6 +605,8 @@ int unregister_oom_notifier(struct notifier_block *nb)
}
EXPORT_SYMBOL_GPL(unregister_oom_notifier);
@@ -24025,7 +24458,7 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
/*
* Try to acquire the OOM killer lock for the zones in zonelist. Returns zero
* if a parallel OOM killing is already taking place that includes a zone in
-@@ -747,7 +758,12 @@ void out_of_memory(struct zonelist *zone
+@@ -747,7 +758,12 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask,
if (!p) {
dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
read_unlock(&tasklist_lock);
@@ -24039,9 +24472,10 @@ diff -NurpP --minimal linux-3.4.48/mm/oom_kill.c linux-3.4.48-vs2.3.3.9/mm/oom_k
}
if (PTR_ERR(p) != -1UL) {
oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-diff -NurpP --minimal linux-3.4.48/mm/page_alloc.c linux-3.4.48-vs2.3.3.9/mm/page_alloc.c
---- linux-3.4.48/mm/page_alloc.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/page_alloc.c 2013-03-02 15:26:44.000000000 +0000
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 8090542..0bded51 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
@@ -58,6 +58,8 @@
#include <linux/memcontrol.h>
#include <linux/prefetch.h>
@@ -24061,7 +24495,7 @@ diff -NurpP --minimal linux-3.4.48/mm/page_alloc.c linux-3.4.48-vs2.3.3.9/mm/pag
}
EXPORT_SYMBOL(si_meminfo);
-@@ -2675,6 +2680,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2675,6 +2680,9 @@ void si_meminfo_node(struct sysinfo *val, int nid)
val->freehigh = 0;
#endif
val->mem_unit = PAGE_SIZE;
@@ -24071,9 +24505,10 @@ diff -NurpP --minimal linux-3.4.48/mm/page_alloc.c linux-3.4.48-vs2.3.3.9/mm/pag
}
#endif
-diff -NurpP --minimal linux-3.4.48/mm/pgtable-generic.c linux-3.4.48-vs2.3.3.9/mm/pgtable-generic.c
---- linux-3.4.48/mm/pgtable-generic.c 2012-05-21 16:07:35.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/pgtable-generic.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c
+index 5a74fea..e8b8d74 100644
+--- a/mm/pgtable-generic.c
++++ b/mm/pgtable-generic.c
@@ -6,6 +6,8 @@
* Copyright (C) 2010 Linus Torvalds
*/
@@ -24083,10 +24518,11 @@ diff -NurpP --minimal linux-3.4.48/mm/pgtable-generic.c linux-3.4.48-vs2.3.3.9/m
#include <linux/pagemap.h>
#include <asm/tlb.h>
#include <asm-generic/pgtable.h>
-diff -NurpP --minimal linux-3.4.48/mm/shmem.c linux-3.4.48-vs2.3.3.9/mm/shmem.c
---- linux-3.4.48/mm/shmem.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/shmem.c 2013-03-02 15:26:44.000000000 +0000
-@@ -1473,7 +1473,7 @@ static int shmem_statfs(struct dentry *d
+diff --git a/mm/shmem.c b/mm/shmem.c
+index 58c4a47..55757c7 100644
+--- a/mm/shmem.c
++++ b/mm/shmem.c
+@@ -1473,7 +1473,7 @@ static int shmem_statfs(struct dentry *dentry, struct kstatfs *buf)
{
struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
@@ -24095,7 +24531,7 @@ diff -NurpP --minimal linux-3.4.48/mm/shmem.c linux-3.4.48-vs2.3.3.9/mm/shmem.c
buf->f_bsize = PAGE_CACHE_SIZE;
buf->f_namelen = NAME_MAX;
if (sbinfo->max_blocks) {
-@@ -2287,7 +2287,7 @@ int shmem_fill_super(struct super_block
+@@ -2287,7 +2287,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
sb->s_maxbytes = MAX_LFS_FILESIZE;
sb->s_blocksize = PAGE_CACHE_SIZE;
sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -24104,10 +24540,11 @@ diff -NurpP --minimal linux-3.4.48/mm/shmem.c linux-3.4.48-vs2.3.3.9/mm/shmem.c
sb->s_op = &shmem_ops;
sb->s_time_gran = 1;
#ifdef CONFIG_TMPFS_XATTR
-diff -NurpP --minimal linux-3.4.48/mm/slab.c linux-3.4.48-vs2.3.3.9/mm/slab.c
---- linux-3.4.48/mm/slab.c 2013-06-13 08:59:39.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/slab.c 2012-10-22 13:09:53.000000000 +0000
-@@ -413,6 +413,8 @@ static void kmem_list3_init(struct kmem_
+diff --git a/mm/slab.c b/mm/slab.c
+index da2bb68..2e1c4bb 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -413,6 +413,8 @@ static void kmem_list3_init(struct kmem_list3 *parent)
#define STATS_INC_FREEMISS(x) do { } while (0)
#endif
@@ -24124,7 +24561,7 @@ diff -NurpP --minimal linux-3.4.48/mm/slab.c linux-3.4.48-vs2.3.3.9/mm/slab.c
l3->free_objects--;
/* move slabp to correct slabp list: */
list_del(&slabp->list);
-@@ -3543,6 +3546,7 @@ __cache_alloc_node(struct kmem_cache *ca
+@@ -3543,6 +3546,7 @@ __cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
/* ___cache_alloc_node can fall back to other nodes */
ptr = ____cache_alloc_node(cachep, flags, nodeid);
out:
@@ -24132,7 +24569,7 @@ diff -NurpP --minimal linux-3.4.48/mm/slab.c linux-3.4.48-vs2.3.3.9/mm/slab.c
local_irq_restore(save_flags);
ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags,
-@@ -3730,6 +3734,7 @@ static inline void __cache_free(struct k
+@@ -3730,6 +3734,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
check_irq_off();
kmemleak_free_recursive(objp, cachep->flags);
objp = cache_free_debugcheck(cachep, objp, caller);
@@ -24140,9 +24577,11 @@ diff -NurpP --minimal linux-3.4.48/mm/slab.c linux-3.4.48-vs2.3.3.9/mm/slab.c
kmemcheck_slab_free(cachep, objp, obj_size(cachep));
-diff -NurpP --minimal linux-3.4.48/mm/slab_vs.h linux-3.4.48-vs2.3.3.9/mm/slab_vs.h
---- linux-3.4.48/mm/slab_vs.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/slab_vs.h 2012-05-21 16:15:05.000000000 +0000
+diff --git a/mm/slab_vs.h b/mm/slab_vs.h
+new file mode 100644
+index 0000000..00c065e
+--- /dev/null
++++ b/mm/slab_vs.h
@@ -0,0 +1,29 @@
+
+#include <linux/vserver/context.h>
@@ -24173,9 +24612,10 @@ diff -NurpP --minimal linux-3.4.48/mm/slab_vs.h linux-3.4.48-vs2.3.3.9/mm/slab_v
+ atomic_sub(cachep->buffer_size, &vxi->cacct.slab[what]);
+}
+
-diff -NurpP --minimal linux-3.4.48/mm/swapfile.c linux-3.4.48-vs2.3.3.9/mm/swapfile.c
---- linux-3.4.48/mm/swapfile.c 2013-06-13 08:59:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/mm/swapfile.c 2012-06-28 14:45:07.000000000 +0000
+diff --git a/mm/swapfile.c b/mm/swapfile.c
+index 38186d9..d0d26b4 100644
+--- a/mm/swapfile.c
++++ b/mm/swapfile.c
@@ -36,6 +36,7 @@
#include <asm/tlbflush.h>
#include <linux/swapops.h>
@@ -24184,7 +24624,7 @@ diff -NurpP --minimal linux-3.4.48/mm/swapfile.c linux-3.4.48-vs2.3.3.9/mm/swapf
static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
unsigned char);
-@@ -1754,6 +1755,16 @@ static int swap_show(struct seq_file *sw
+@@ -1754,6 +1755,16 @@ static int swap_show(struct seq_file *swap, void *v)
if (si == SEQ_START_TOKEN) {
seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n");
@@ -24210,10 +24650,11 @@ diff -NurpP --minimal linux-3.4.48/mm/swapfile.c linux-3.4.48-vs2.3.3.9/mm/swapf
}
/*
-diff -NurpP --minimal linux-3.4.48/net/bridge/br_multicast.c linux-3.4.48-vs2.3.3.9/net/bridge/br_multicast.c
---- linux-3.4.48/net/bridge/br_multicast.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/bridge/br_multicast.c 2012-05-21 16:15:05.000000000 +0000
-@@ -445,7 +445,7 @@ static struct sk_buff *br_ip6_multicast_
+diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
+index 9069071..f8d1b39 100644
+--- a/net/bridge/br_multicast.c
++++ b/net/bridge/br_multicast.c
+@@ -445,7 +445,7 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br,
ip6h->hop_limit = 1;
ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
@@ -24222,9 +24663,10 @@ diff -NurpP --minimal linux-3.4.48/net/bridge/br_multicast.c linux-3.4.48-vs2.3.
kfree_skb(skb);
return NULL;
}
-diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/core/dev.c
---- linux-3.4.48/net/core/dev.c 2013-06-13 08:59:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/core/dev.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 7db83d6..4676b62 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
@@ -126,6 +126,7 @@
#include <linux/in.h>
#include <linux/jhash.h>
@@ -24233,7 +24675,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
#include <trace/events/napi.h>
#include <trace/events/net.h>
#include <trace/events/skb.h>
-@@ -621,7 +622,8 @@ struct net_device *__dev_get_by_name(str
+@@ -621,7 +622,8 @@ struct net_device *__dev_get_by_name(struct net *net, const char *name)
struct hlist_head *head = dev_name_hash(net, name);
hlist_for_each_entry(dev, p, head, name_hlist)
@@ -24243,7 +24685,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
return dev;
return NULL;
-@@ -647,7 +649,8 @@ struct net_device *dev_get_by_name_rcu(s
+@@ -647,7 +649,8 @@ struct net_device *dev_get_by_name_rcu(struct net *net, const char *name)
struct hlist_head *head = dev_name_hash(net, name);
hlist_for_each_entry_rcu(dev, p, head, name_hlist)
@@ -24253,7 +24695,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
return dev;
return NULL;
-@@ -698,7 +701,8 @@ struct net_device *__dev_get_by_index(st
+@@ -698,7 +701,8 @@ struct net_device *__dev_get_by_index(struct net *net, int ifindex)
struct hlist_head *head = dev_index_hash(net, ifindex);
hlist_for_each_entry(dev, p, head, index_hlist)
@@ -24272,7 +24714,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
{
struct hlist_node *p;
struct net_device *dev;
-@@ -728,6 +732,16 @@ struct net_device *dev_get_by_index_rcu(
+@@ -728,6 +732,16 @@ struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex)
return NULL;
}
@@ -24289,7 +24731,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
EXPORT_SYMBOL(dev_get_by_index_rcu);
-@@ -776,7 +790,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
+@@ -776,7 +790,8 @@ struct net_device *dev_getbyhwaddr_rcu(struct net *net, unsigned short type,
for_each_netdev_rcu(net, dev)
if (dev->type == type &&
@@ -24299,7 +24741,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
return dev;
return NULL;
-@@ -788,9 +803,11 @@ struct net_device *__dev_getfirstbyhwtyp
+@@ -788,9 +803,11 @@ struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type)
struct net_device *dev;
ASSERT_RTNL();
@@ -24313,7 +24755,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
return NULL;
}
-@@ -908,6 +925,8 @@ static int __dev_alloc_name(struct net *
+@@ -908,6 +925,8 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
continue;
if (i < 0 || i >= max_netdevices)
continue;
@@ -24322,7 +24764,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
/* avoid cases where sscanf is not exact inverse of printf */
snprintf(buf, IFNAMSIZ, name, i);
-@@ -4000,6 +4019,8 @@ static int dev_ifconf(struct net *net, c
+@@ -4009,6 +4028,8 @@ static int dev_ifconf(struct net *net, char __user *arg)
total = 0;
for_each_netdev(net, dev) {
@@ -24331,7 +24773,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
for (i = 0; i < NPROTO; i++) {
if (gifconf_list[i]) {
int done;
-@@ -4102,6 +4123,10 @@ static void dev_seq_printf_stats(struct
+@@ -4111,6 +4132,10 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
struct rtnl_link_stats64 temp;
const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
@@ -24342,10 +24784,11 @@ diff -NurpP --minimal linux-3.4.48/net/core/dev.c linux-3.4.48-vs2.3.3.9/net/cor
seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
"%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
dev->name, stats->rx_bytes, stats->rx_packets,
-diff -NurpP --minimal linux-3.4.48/net/core/rtnetlink.c linux-3.4.48-vs2.3.3.9/net/core/rtnetlink.c
---- linux-3.4.48/net/core/rtnetlink.c 2013-06-13 08:59:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/core/rtnetlink.c 2013-06-13 09:46:39.000000000 +0000
-@@ -1079,6 +1079,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
+diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
+index a133427..93ff5d5 100644
+--- a/net/core/rtnetlink.c
++++ b/net/core/rtnetlink.c
+@@ -1079,6 +1079,8 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
if (idx < s_idx)
goto cont;
@@ -24354,7 +24797,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/rtnetlink.c linux-3.4.48-vs2.3.3.9/n
if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq, 0,
-@@ -1962,6 +1964,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -1962,6 +1964,9 @@ void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change)
int err = -ENOBUFS;
size_t if_info_size;
@@ -24364,9 +24807,10 @@ diff -NurpP --minimal linux-3.4.48/net/core/rtnetlink.c linux-3.4.48-vs2.3.3.9/n
skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
if (skb == NULL)
goto errout;
-diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/core/sock.c
---- linux-3.4.48/net/core/sock.c 2013-06-13 08:59:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/core/sock.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/net/core/sock.c b/net/core/sock.c
+index 561eb57..4de81b0 100644
+--- a/net/core/sock.c
++++ b/net/core/sock.c
@@ -129,6 +129,10 @@
#include <net/netprio_cgroup.h>
@@ -24378,7 +24822,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
#include <trace/events/sock.h>
-@@ -1147,6 +1151,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1141,6 +1145,8 @@ static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority,
goto out_free_sec;
sk_tx_queue_clear(sk);
}
@@ -24387,7 +24831,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
return sk;
-@@ -1255,6 +1261,11 @@ static void __sk_free(struct sock *sk)
+@@ -1249,6 +1255,11 @@ static void __sk_free(struct sock *sk)
put_cred(sk->sk_peer_cred);
put_pid(sk->sk_peer_pid);
put_net(sock_net(sk));
@@ -24399,7 +24843,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
sk_prot_free(sk->sk_prot_creator, sk);
}
-@@ -1315,6 +1326,8 @@ struct sock *sk_clone_lock(const struct
+@@ -1309,6 +1320,8 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
/* SANITY */
get_net(sock_net(newsk));
@@ -24408,7 +24852,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
sk_node_init(&newsk->sk_node);
sock_lock_init(newsk);
bh_lock_sock(newsk);
-@@ -1371,6 +1384,12 @@ struct sock *sk_clone_lock(const struct
+@@ -1365,6 +1378,12 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
smp_wmb();
atomic_set(&newsk->sk_refcnt, 2);
@@ -24421,7 +24865,7 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
/*
* Increment the counter in the same struct proto as the master
* sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -2127,6 +2146,12 @@ void sock_init_data(struct socket *sock,
+@@ -2121,6 +2140,12 @@ void sock_init_data(struct socket *sock, struct sock *sk)
sk->sk_stamp = ktime_set(-1L, 0);
@@ -24434,9 +24878,10 @@ diff -NurpP --minimal linux-3.4.48/net/core/sock.c linux-3.4.48-vs2.3.3.9/net/co
/*
* Before updating sk_refcnt, we must commit prior changes to memory
* (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net/ipv4/af_inet.c
---- linux-3.4.48/net/ipv4/af_inet.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/af_inet.c 2013-03-02 15:26:44.000000000 +0000
+diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
+index 78ec298..fce68cf 100644
+--- a/net/ipv4/af_inet.c
++++ b/net/ipv4/af_inet.c
@@ -118,6 +118,7 @@
#ifdef CONFIG_IP_MROUTE
#include <linux/mroute.h>
@@ -24460,7 +24905,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
err = -EAFNOSUPPORT;
if (!inet_netns_ok(net, protocol))
goto out_rcu_unlock;
-@@ -459,6 +464,7 @@ int inet_bind(struct socket *sock, struc
+@@ -459,6 +464,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
struct sockaddr_in *addr = (struct sockaddr_in *)uaddr;
struct sock *sk = sock->sk;
struct inet_sock *inet = inet_sk(sk);
@@ -24468,7 +24913,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
unsigned short snum;
int chk_addr_ret;
int err;
-@@ -482,7 +488,11 @@ int inet_bind(struct socket *sock, struc
+@@ -482,7 +488,11 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
goto out;
}
@@ -24481,7 +24926,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
/* Not specified by any standard per-se, however it breaks too
* many applications when removed. It is unfortunate since
-@@ -494,7 +504,7 @@ int inet_bind(struct socket *sock, struc
+@@ -494,7 +504,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
err = -EADDRNOTAVAIL;
if (!sysctl_ip_nonlocal_bind &&
!(inet->freebind || inet->transparent) &&
@@ -24490,7 +24935,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
chk_addr_ret != RTN_LOCAL &&
chk_addr_ret != RTN_MULTICAST &&
chk_addr_ret != RTN_BROADCAST)
-@@ -519,7 +529,7 @@ int inet_bind(struct socket *sock, struc
+@@ -519,7 +529,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
if (sk->sk_state != TCP_CLOSE || inet->inet_num)
goto out_release_sock;
@@ -24499,7 +24944,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
inet->inet_saddr = 0; /* Use device */
-@@ -722,11 +732,13 @@ int inet_getname(struct socket *sock, st
+@@ -722,11 +732,13 @@ int inet_getname(struct socket *sock, struct sockaddr *uaddr,
peer == 1))
return -ENOTCONN;
sin->sin_port = inet->inet_dport;
@@ -24514,10 +24959,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/af_inet.c linux-3.4.48-vs2.3.3.9/net
sin->sin_port = inet->inet_sport;
sin->sin_addr.s_addr = addr;
}
-diff -NurpP --minimal linux-3.4.48/net/ipv4/arp.c linux-3.4.48-vs2.3.3.9/net/ipv4/arp.c
---- linux-3.4.48/net/ipv4/arp.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/arp.c 2012-05-21 16:15:05.000000000 +0000
-@@ -1328,6 +1328,7 @@ static void arp_format_neigh_entry(struc
+diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
+index 18d9b81..d45cd32 100644
+--- a/net/ipv4/arp.c
++++ b/net/ipv4/arp.c
+@@ -1328,6 +1328,7 @@ static void arp_format_neigh_entry(struct seq_file *seq,
struct net_device *dev = n->dev;
int hatype = dev->type;
@@ -24525,7 +24971,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/arp.c linux-3.4.48-vs2.3.3.9/net/ipv
read_lock(&n->lock);
/* Convert hardware address to XX:XX:XX:XX ... form. */
#if IS_ENABLED(CONFIG_AX25)
-@@ -1359,6 +1360,7 @@ static void arp_format_pneigh_entry(stru
+@@ -1359,6 +1360,7 @@ static void arp_format_pneigh_entry(struct seq_file *seq,
int hatype = dev ? dev->type : 0;
char tbuf[16];
@@ -24533,10 +24979,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/arp.c linux-3.4.48-vs2.3.3.9/net/ipv
sprintf(tbuf, "%pI4", n->key);
seq_printf(seq, "%-16s 0x%-10x0x%-10x%s * %s\n",
tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00",
-diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net/ipv4/devinet.c
---- linux-3.4.48/net/ipv4/devinet.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/devinet.c 2012-05-21 16:15:05.000000000 +0000
-@@ -517,6 +517,7 @@ struct in_device *inetdev_by_index(struc
+diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
+index 6e447ff..3c0d332 100644
+--- a/net/ipv4/devinet.c
++++ b/net/ipv4/devinet.c
+@@ -517,6 +517,7 @@ struct in_device *inetdev_by_index(struct net *net, int ifindex)
}
EXPORT_SYMBOL(inetdev_by_index);
@@ -24544,7 +24991,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
/* Called only from RTNL semaphored context. No locks. */
struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
-@@ -758,6 +759,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -758,6 +759,8 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
in_dev = __in_dev_get_rtnl(dev);
if (in_dev) {
@@ -24553,7 +25000,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
if (tryaddrmatch) {
/* Matthias Andree */
/* compare label and address (4.4BSD style) */
-@@ -766,6 +769,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -766,6 +769,8 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
This is checked above. */
for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
ifap = &ifa->ifa_next) {
@@ -24562,7 +25009,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
if (!strcmp(ifr.ifr_name, ifa->ifa_label) &&
sin_orig.sin_addr.s_addr ==
ifa->ifa_local) {
-@@ -778,9 +783,12 @@ int devinet_ioctl(struct net *net, unsig
+@@ -778,9 +783,12 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
comparing just the label */
if (!ifa) {
for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
@@ -24576,7 +25023,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
}
}
-@@ -933,6 +941,8 @@ static int inet_gifconf(struct net_devic
+@@ -933,6 +941,8 @@ static int inet_gifconf(struct net_device *dev, char __user *buf, int len)
goto out;
for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
@@ -24585,7 +25032,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
if (!buf) {
done += sizeof(ifr);
continue;
-@@ -1294,6 +1304,7 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1294,6 +1304,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
struct net_device *dev;
struct in_device *in_dev;
struct in_ifaddr *ifa;
@@ -24593,7 +25040,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
struct hlist_head *head;
struct hlist_node *node;
-@@ -1316,6 +1327,8 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1316,6 +1327,8 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
for (ifa = in_dev->ifa_list, ip_idx = 0; ifa;
ifa = ifa->ifa_next, ip_idx++) {
@@ -24602,10 +25049,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/devinet.c linux-3.4.48-vs2.3.3.9/net
if (ip_idx < s_ip_idx)
continue;
if (inet_fill_ifaddr(skb, ifa,
-diff -NurpP --minimal linux-3.4.48/net/ipv4/fib_trie.c linux-3.4.48-vs2.3.3.9/net/ipv4/fib_trie.c
---- linux-3.4.48/net/ipv4/fib_trie.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/fib_trie.c 2012-05-21 16:15:05.000000000 +0000
-@@ -2556,6 +2556,7 @@ static int fib_route_seq_show(struct seq
+diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
+index 30b88d7..f26a2d1 100644
+--- a/net/ipv4/fib_trie.c
++++ b/net/ipv4/fib_trie.c
+@@ -2556,6 +2556,7 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
|| fa->fa_type == RTN_MULTICAST)
continue;
@@ -24613,10 +25061,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/fib_trie.c linux-3.4.48-vs2.3.3.9/ne
if (fi)
seq_printf(seq,
"%s\t%08X\t%08X\t%04X\t%d\t%u\t"
-diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_connection_sock.c linux-3.4.48-vs2.3.3.9/net/ipv4/inet_connection_sock.c
---- linux-3.4.48/net/ipv4/inet_connection_sock.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/inet_connection_sock.c 2013-01-16 00:15:57.000000000 +0000
-@@ -52,6 +52,37 @@ void inet_get_local_port_range(int *low,
+diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
+index 3f40432..aa64692 100644
+--- a/net/ipv4/inet_connection_sock.c
++++ b/net/ipv4/inet_connection_sock.c
+@@ -52,6 +52,37 @@ void inet_get_local_port_range(int *low, int *high)
}
EXPORT_SYMBOL(inet_get_local_port_range);
@@ -24654,7 +25103,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_connection_sock.c linux-3.4.48-
int inet_csk_bind_conflict(const struct sock *sk,
const struct inet_bind_bucket *tb)
{
-@@ -74,9 +105,7 @@ int inet_csk_bind_conflict(const struct
+@@ -74,9 +105,7 @@ int inet_csk_bind_conflict(const struct sock *sk,
sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
if (!reuse || !sk2->sk_reuse ||
sk2->sk_state == TCP_LISTEN) {
@@ -24665,9 +25114,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_connection_sock.c linux-3.4.48-
break;
}
}
-diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/net/ipv4/inet_diag.c
---- linux-3.4.48/net/ipv4/inet_diag.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/inet_diag.c 2013-01-16 00:18:21.000000000 +0000
+diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
+index d7b862a..cac6ffa 100644
+--- a/net/ipv4/inet_diag.c
++++ b/net/ipv4/inet_diag.c
@@ -31,6 +31,8 @@
#include <linux/inet.h>
@@ -24677,7 +25127,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
-@@ -110,8 +112,10 @@ int inet_sk_diag_fill(struct sock *sk, s
+@@ -110,8 +112,10 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
r->id.idiag_sport = inet->inet_sport;
r->id.idiag_dport = inet->inet_dport;
@@ -24690,7 +25140,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
/* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
* hence this needs to be included regardless of socket family.
-@@ -231,8 +235,8 @@ static int inet_twsk_diag_fill(struct in
+@@ -231,8 +235,8 @@ static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
sock_diag_save_cookie(tw, r->id.idiag_cookie);
r->id.idiag_sport = tw->tw_sport;
r->id.idiag_dport = tw->tw_dport;
@@ -24701,7 +25151,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
r->idiag_state = tw->tw_substate;
r->idiag_timer = 3;
r->idiag_expires = DIV_ROUND_UP(tmo * 1000, HZ);
-@@ -276,12 +280,14 @@ int inet_diag_dump_one_icsk(struct inet_
+@@ -276,12 +280,14 @@ int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo, struct sk_buff *in_s
err = -EINVAL;
if (req->sdiag_family == AF_INET) {
@@ -24716,7 +25166,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
sk = inet6_lookup(&init_net, hashinfo,
(struct in6_addr *)req->id.idiag_dst,
req->id.idiag_dport,
-@@ -482,6 +488,7 @@ int inet_diag_bc_sk(const struct nlattr
+@@ -482,6 +488,7 @@ int inet_diag_bc_sk(const struct nlattr *bc, struct sock *sk)
} else
#endif
{
@@ -24724,7 +25174,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
entry.saddr = &inet->inet_rcv_saddr;
entry.daddr = &inet->inet_daddr;
}
-@@ -639,6 +646,7 @@ static int inet_twsk_diag_dump(struct in
+@@ -639,6 +646,7 @@ static int inet_twsk_diag_dump(struct inet_timewait_sock *tw,
} else
#endif
{
@@ -24732,7 +25182,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
entry.saddr = &tw->tw_rcv_saddr;
entry.daddr = &tw->tw_daddr;
}
-@@ -714,8 +722,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -714,8 +722,8 @@ static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk,
r->id.idiag_sport = inet->inet_sport;
r->id.idiag_dport = ireq->rmt_port;
@@ -24743,7 +25193,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
r->idiag_expires = jiffies_to_msecs(tmo);
r->idiag_rqueue = 0;
r->idiag_wqueue = 0;
-@@ -784,6 +792,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -784,6 +792,7 @@ static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
continue;
if (bc) {
@@ -24751,7 +25201,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
inet_diag_req_addrs(sk, req, &entry);
entry.dport = ntohs(ireq->rmt_port);
-@@ -834,6 +843,8 @@ void inet_diag_dump_icsk(struct inet_has
+@@ -834,6 +843,8 @@ void inet_diag_dump_icsk(struct inet_hashinfo *hashinfo, struct sk_buff *skb,
sk_nulls_for_each(sk, node, &ilb->head) {
struct inet_sock *inet = inet_sk(sk);
@@ -24778,9 +25228,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_diag.c linux-3.4.48-vs2.3.3.9/n
if (num < s_num)
goto next_dying;
if (r->sdiag_family != AF_UNSPEC &&
-diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_hashtables.c linux-3.4.48-vs2.3.3.9/net/ipv4/inet_hashtables.c
---- linux-3.4.48/net/ipv4/inet_hashtables.c 2011-10-24 16:45:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/inet_hashtables.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
+index 984ec65..2dc65a1 100644
+--- a/net/ipv4/inet_hashtables.c
++++ b/net/ipv4/inet_hashtables.c
@@ -22,6 +22,7 @@
#include <net/inet_connection_sock.h>
#include <net/inet_hashtables.h>
@@ -24789,7 +25240,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_hashtables.c linux-3.4.48-vs2.3
#include <net/ip.h>
/*
-@@ -156,6 +157,11 @@ static inline int compute_score(struct s
+@@ -156,6 +157,11 @@ static inline int compute_score(struct sock *sk, struct net *net,
if (rcv_saddr != daddr)
return -1;
score += 2;
@@ -24801,7 +25252,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_hashtables.c linux-3.4.48-vs2.3
}
if (sk->sk_bound_dev_if) {
if (sk->sk_bound_dev_if != dif)
-@@ -173,7 +179,6 @@ static inline int compute_score(struct s
+@@ -173,7 +179,6 @@ static inline int compute_score(struct sock *sk, struct net *net,
* wildcarded during the search since they can never be otherwise.
*/
@@ -24817,20 +25268,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/inet_hashtables.c linux-3.4.48-vs2.3
/*
* if the nulls value we got at the end of this lookup is
* not the expected one, we must restart lookup.
-diff -NurpP --minimal linux-3.4.48/net/ipv4/netfilter/nf_nat_helper.c linux-3.4.48-vs2.3.3.9/net/ipv4/netfilter/nf_nat_helper.c
---- linux-3.4.48/net/ipv4/netfilter/nf_nat_helper.c 2012-03-19 18:47:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/netfilter/nf_nat_helper.c 2012-05-21 16:15:05.000000000 +0000
-@@ -20,6 +20,7 @@
- #include <net/route.h>
-
- #include <linux/netfilter_ipv4.h>
-+#include <net/route.h>
- #include <net/netfilter/nf_conntrack.h>
- #include <net/netfilter/nf_conntrack_helper.h>
- #include <net/netfilter/nf_conntrack_ecache.h>
-diff -NurpP --minimal linux-3.4.48/net/ipv4/netfilter.c linux-3.4.48-vs2.3.3.9/net/ipv4/netfilter.c
---- linux-3.4.48/net/ipv4/netfilter.c 2012-01-09 15:15:03.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/netfilter.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv4/netfilter.c b/net/ipv4/netfilter.c
+index 4f47e06..aec869b 100644
+--- a/net/ipv4/netfilter.c
++++ b/net/ipv4/netfilter.c
@@ -6,7 +6,7 @@
#include <linux/skbuff.h>
#include <linux/gfp.h>
@@ -24840,10 +25281,23 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/netfilter.c linux-3.4.48-vs2.3.3.9/n
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv4/raw.c
---- linux-3.4.48/net/ipv4/raw.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/raw.c 2012-10-22 13:09:53.000000000 +0000
-@@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru
+diff --git a/net/ipv4/netfilter/nf_nat_helper.c b/net/ipv4/netfilter/nf_nat_helper.c
+index af65958..34b8007 100644
+--- a/net/ipv4/netfilter/nf_nat_helper.c
++++ b/net/ipv4/netfilter/nf_nat_helper.c
+@@ -20,6 +20,7 @@
+ #include <net/route.h>
+
+ #include <linux/netfilter_ipv4.h>
++#include <net/route.h>
+ #include <net/netfilter/nf_conntrack.h>
+ #include <net/netfilter/nf_conntrack_helper.h>
+ #include <net/netfilter/nf_conntrack_ecache.h>
+diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
+index 2fe0dc2..d91443e 100644
+--- a/net/ipv4/raw.c
++++ b/net/ipv4/raw.c
+@@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(struct net *net, struct sock *sk,
if (net_eq(sock_net(sk), net) && inet->inet_num == num &&
!(inet->inet_daddr && inet->inet_daddr != raddr) &&
@@ -24852,7 +25306,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
!(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif))
goto found; /* gotcha */
}
-@@ -392,6 +392,12 @@ static int raw_send_hdrinc(struct sock *
+@@ -392,6 +392,12 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4,
icmp_out_count(net, ((struct icmphdr *)
skb_transport_header(skb))->type);
@@ -24865,7 +25319,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL,
rt->dst.dev, dst_output);
if (err > 0)
-@@ -577,6 +583,16 @@ static int raw_sendmsg(struct kiocb *ioc
+@@ -577,6 +583,16 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
goto done;
}
@@ -24882,7 +25336,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
rt = ip_route_output_flow(sock_net(sk), &fl4, sk);
if (IS_ERR(rt)) {
-@@ -653,17 +669,19 @@ static int raw_bind(struct sock *sk, str
+@@ -653,17 +669,19 @@ static int raw_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
{
struct inet_sock *inet = inet_sk(sk);
struct sockaddr_in *addr = (struct sockaddr_in *) uaddr;
@@ -24905,7 +25359,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
inet->inet_saddr = 0; /* Use device */
sk_dst_reset(sk);
-@@ -715,7 +733,8 @@ static int raw_recvmsg(struct kiocb *ioc
+@@ -715,7 +733,8 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
/* Copy the address. */
if (sin) {
sin->sin_family = AF_INET;
@@ -24915,7 +25369,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
sin->sin_port = 0;
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
}
-@@ -911,7 +930,8 @@ static struct sock *raw_get_first(struct
+@@ -911,7 +930,8 @@ static struct sock *raw_get_first(struct seq_file *seq)
struct hlist_node *node;
sk_for_each(sk, node, &state->h->ht[state->bucket])
@@ -24925,7 +25379,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
goto found;
}
sk = NULL;
-@@ -927,7 +947,8 @@ static struct sock *raw_get_next(struct
+@@ -927,7 +947,8 @@ static struct sock *raw_get_next(struct seq_file *seq, struct sock *sk)
sk = sk_next(sk);
try_again:
;
@@ -24935,10 +25389,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
sk = sk_head(&state->h->ht[state->bucket]);
-diff -NurpP --minimal linux-3.4.48/net/ipv4/route.c linux-3.4.48-vs2.3.3.9/net/ipv4/route.c
---- linux-3.4.48/net/ipv4/route.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/route.c 2012-05-21 16:15:05.000000000 +0000
-@@ -2696,7 +2696,7 @@ static struct rtable *ip_route_output_sl
+diff --git a/net/ipv4/route.c b/net/ipv4/route.c
+index 167ea10..747208b 100644
+--- a/net/ipv4/route.c
++++ b/net/ipv4/route.c
+@@ -2696,7 +2696,7 @@ static struct rtable *ip_route_output_slow(struct net *net, struct flowi4 *fl4)
if (fl4->flowi4_oif) {
@@ -24947,9 +25402,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/route.c linux-3.4.48-vs2.3.3.9/net/i
rth = ERR_PTR(-ENODEV);
if (dev_out == NULL)
goto out;
-diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp.c linux-3.4.48-vs2.3.3.9/net/ipv4/tcp.c
---- linux-3.4.48/net/ipv4/tcp.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/tcp.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
+index 0b91c30..e3a3044 100644
+--- a/net/ipv4/tcp.c
++++ b/net/ipv4/tcp.c
@@ -268,6 +268,7 @@
#include <linux/crypto.h>
#include <linux/time.h>
@@ -24958,10 +25414,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp.c linux-3.4.48-vs2.3.3.9/net/ipv
#include <net/icmp.h>
#include <net/tcp.h>
-diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/net/ipv4/tcp_ipv4.c
---- linux-3.4.48/net/ipv4/tcp_ipv4.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/tcp_ipv4.c 2013-01-16 00:15:57.000000000 +0000
-@@ -2037,6 +2037,12 @@ static void *listening_get_next(struct s
+diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
+index ae03b7b..7621ce0 100644
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -2037,6 +2037,12 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
req = req->dl_next;
while (1) {
while (req) {
@@ -24985,7 +25442,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
if (!net_eq(sock_net(sk), net))
continue;
if (sk->sk_family == st->family) {
-@@ -2137,6 +2147,11 @@ static void *established_get_first(struc
+@@ -2137,6 +2147,11 @@ static void *established_get_first(struct seq_file *seq)
spin_lock_bh(lock);
sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -24997,7 +25454,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
if (sk->sk_family != st->family ||
!net_eq(sock_net(sk), net)) {
continue;
-@@ -2147,6 +2162,11 @@ static void *established_get_first(struc
+@@ -2147,6 +2162,11 @@ static void *established_get_first(struct seq_file *seq)
st->state = TCP_SEQ_STATE_TIME_WAIT;
inet_twsk_for_each(tw, node,
&tcp_hashinfo.ehash[st->bucket].twchain) {
@@ -25009,7 +25466,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
if (tw->tw_family != st->family ||
!net_eq(twsk_net(tw), net)) {
continue;
-@@ -2176,7 +2196,9 @@ static void *established_get_next(struct
+@@ -2176,7 +2196,9 @@ static void *established_get_next(struct seq_file *seq, void *cur)
tw = cur;
tw = tw_next(tw);
get_tw:
@@ -25032,7 +25489,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
goto found;
}
-@@ -2405,9 +2432,9 @@ static void get_openreq4(const struct so
+@@ -2405,9 +2432,9 @@ static void get_openreq4(const struct sock *sk, const struct request_sock *req,
seq_printf(f, "%4d: %08X:%04X %08X:%04X"
" %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n",
i,
@@ -25044,7 +25501,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
ntohs(ireq->rmt_port),
TCP_SYN_RECV,
0, 0, /* could print option size, but that is af dependent. */
-@@ -2429,8 +2456,8 @@ static void get_tcp4_sock(struct sock *s
+@@ -2429,8 +2456,8 @@ static void get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len)
const struct tcp_sock *tp = tcp_sk(sk);
const struct inet_connection_sock *icsk = inet_csk(sk);
const struct inet_sock *inet = inet_sk(sk);
@@ -25055,7 +25512,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
__u16 destp = ntohs(inet->inet_dport);
__u16 srcp = ntohs(inet->inet_sport);
int rx_queue;
-@@ -2487,8 +2514,8 @@ static void get_timewait4_sock(const str
+@@ -2487,8 +2514,8 @@ static void get_timewait4_sock(const struct inet_timewait_sock *tw,
if (ttd < 0)
ttd = 0;
@@ -25066,9 +25523,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_ipv4.c linux-3.4.48-vs2.3.3.9/ne
destp = ntohs(tw->tw_dport);
srcp = ntohs(tw->tw_sport);
-diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_minisocks.c linux-3.4.48-vs2.3.3.9/net/ipv4/tcp_minisocks.c
---- linux-3.4.48/net/ipv4/tcp_minisocks.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/tcp_minisocks.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
+index 3cabafb..3a13a16 100644
+--- a/net/ipv4/tcp_minisocks.c
++++ b/net/ipv4/tcp_minisocks.c
@@ -23,6 +23,9 @@
#include <linux/slab.h>
#include <linux/sysctl.h>
@@ -25079,7 +25537,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_minisocks.c linux-3.4.48-vs2.3.3
#include <net/tcp.h>
#include <net/inet_common.h>
#include <net/xfrm.h>
-@@ -336,6 +339,11 @@ void tcp_time_wait(struct sock *sk, int
+@@ -336,6 +339,11 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
tcptw->tw_ts_recent = tp->rx_opt.ts_recent;
tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
@@ -25091,9 +25549,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/tcp_minisocks.c linux-3.4.48-vs2.3.3
#if IS_ENABLED(CONFIG_IPV6)
if (tw->tw_family == PF_INET6) {
struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv4/udp.c
---- linux-3.4.48/net/ipv4/udp.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv4/udp.c 2012-06-28 14:45:36.000000000 +0000
+diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
+index 0b6136d..63eb580 100644
+--- a/net/ipv4/udp.c
++++ b/net/ipv4/udp.c
@@ -298,14 +298,7 @@ fail:
}
EXPORT_SYMBOL(udp_lib_get_port);
@@ -25110,7 +25569,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr,
unsigned int port)
-@@ -340,6 +333,11 @@ static inline int compute_score(struct s
+@@ -340,6 +333,11 @@ static inline int compute_score(struct sock *sk, struct net *net, __be32 saddr,
if (inet->inet_rcv_saddr != daddr)
return -1;
score += 2;
@@ -25158,7 +25617,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
rcu_read_unlock();
return result;
}
-@@ -553,8 +559,7 @@ static inline struct sock *udp_v4_mcast_
+@@ -553,8 +559,7 @@ static inline struct sock *udp_v4_mcast_next(struct net *net, struct sock *sk,
udp_sk(s)->udp_port_hash != hnum ||
(inet->inet_daddr && inet->inet_daddr != rmt_addr) ||
(inet->inet_dport != rmt_port && inet->inet_dport) ||
@@ -25168,7 +25627,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
ipv6_only_sock(s) ||
(s->sk_bound_dev_if && s->sk_bound_dev_if != dif))
continue;
-@@ -933,6 +938,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
+@@ -934,6 +939,16 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP,
faddr, saddr, dport, inet->inet_sport);
@@ -25185,7 +25644,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
rt = ip_route_output_flow(net, fl4, sk);
if (IS_ERR(rt)) {
-@@ -1231,7 +1246,8 @@ try_again:
+@@ -1232,7 +1247,8 @@ try_again:
if (sin) {
sin->sin_family = AF_INET;
sin->sin_port = udp_hdr(skb)->source;
@@ -25195,7 +25654,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
}
if (inet->cmsg_flags)
-@@ -1970,6 +1986,8 @@ static struct sock *udp_get_first(struct
+@@ -1971,6 +1987,8 @@ static struct sock *udp_get_first(struct seq_file *seq, int start)
sk_nulls_for_each(sk, node, &hslot->head) {
if (!net_eq(sock_net(sk), net))
continue;
@@ -25204,7 +25663,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
if (sk->sk_family == state->family)
goto found;
}
-@@ -1987,7 +2005,9 @@ static struct sock *udp_get_next(struct
+@@ -1988,7 +2006,9 @@ static struct sock *udp_get_next(struct seq_file *seq, struct sock *sk)
do {
sk = sk_nulls_next(sk);
@@ -25215,7 +25674,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
if (!sk) {
if (state->bucket <= state->udp_table->mask)
-@@ -2083,8 +2103,8 @@ static void udp4_format_sock(struct sock
+@@ -2084,8 +2104,8 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
int bucket, int *len)
{
struct inet_sock *inet = inet_sk(sp);
@@ -25226,9 +25685,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv4/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
__u16 destp = ntohs(inet->inet_dport);
__u16 srcp = ntohs(inet->inet_sport);
-diff -NurpP --minimal linux-3.4.48/net/ipv6/Kconfig linux-3.4.48-vs2.3.3.9/net/ipv6/Kconfig
---- linux-3.4.48/net/ipv6/Kconfig 2010-08-02 14:52:59.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/Kconfig 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
+index 36d7437..05f84bc 100644
+--- a/net/ipv6/Kconfig
++++ b/net/ipv6/Kconfig
@@ -4,8 +4,8 @@
# IPv6 as module will cause a CRASH if you try to unload it
@@ -25240,9 +25700,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/Kconfig linux-3.4.48-vs2.3.3.9/net/i
---help---
This is complemental support for the IP version 6.
You will still be able to do traditional IPv4 networking as well.
-diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/net/ipv6/addrconf.c
---- linux-3.4.48/net/ipv6/addrconf.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/addrconf.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
+index d427f1b..a465a6e 100644
+--- a/net/ipv6/addrconf.c
++++ b/net/ipv6/addrconf.c
@@ -88,6 +88,8 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
@@ -25261,7 +25722,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
{
struct ipv6_saddr_score scores[2],
*score = &scores[0], *hiscore = &scores[1];
-@@ -1180,6 +1182,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1180,6 +1182,8 @@ int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
dev->name);
continue;
}
@@ -25270,7 +25731,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
score->rule = -1;
bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -3166,7 +3170,10 @@ static void if6_seq_stop(struct seq_file
+@@ -3206,7 +3210,10 @@ static void if6_seq_stop(struct seq_file *seq, void *v)
static int if6_seq_show(struct seq_file *seq, void *v)
{
struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v;
@@ -25282,7 +25743,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
&ifp->addr,
ifp->idev->dev->ifindex,
ifp->prefix_len,
-@@ -3672,6 +3679,11 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3712,6 +3719,11 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb,
struct ifacaddr6 *ifaca;
int err = 1;
int ip_idx = *p_ip_idx;
@@ -25294,7 +25755,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
read_lock_bh(&idev->lock);
switch (type) {
-@@ -3682,6 +3694,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3722,6 +3734,8 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb,
list_for_each_entry(ifa, &idev->addr_list, if_list) {
if (++ip_idx < s_ip_idx)
continue;
@@ -25303,7 +25764,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
err = inet6_fill_ifaddr(skb, ifa,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq,
-@@ -3698,6 +3712,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3738,6 +3752,8 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb,
ifmca = ifmca->next, ip_idx++) {
if (ip_idx < s_ip_idx)
continue;
@@ -25312,7 +25773,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
err = inet6_fill_ifmcaddr(skb, ifmca,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq,
-@@ -3713,6 +3729,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3753,6 +3769,8 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb,
ifaca = ifaca->aca_next, ip_idx++) {
if (ip_idx < s_ip_idx)
continue;
@@ -25321,7 +25782,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
err = inet6_fill_ifacaddr(skb, ifaca,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq,
-@@ -4098,6 +4116,11 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4138,6 +4156,11 @@ static int inet6_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
struct inet6_dev *idev;
struct hlist_head *head;
struct hlist_node *node;
@@ -25333,7 +25794,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
s_h = cb->args[0];
s_idx = cb->args[1];
-@@ -4109,6 +4132,8 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4149,6 +4172,8 @@ static int inet6_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
if (idx < s_idx)
goto cont;
@@ -25342,9 +25803,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/addrconf.c linux-3.4.48-vs2.3.3.9/ne
idev = __in6_dev_get(dev);
if (!idev)
goto cont;
-diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/net/ipv6/af_inet6.c
---- linux-3.4.48/net/ipv6/af_inet6.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/af_inet6.c 2012-09-01 09:15:04.000000000 +0000
+diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
+index 8ed1b93..716c4c5 100644
+--- a/net/ipv6/af_inet6.c
++++ b/net/ipv6/af_inet6.c
@@ -42,6 +42,8 @@
#include <linux/netdevice.h>
#include <linux/icmpv6.h>
@@ -25368,7 +25830,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
sock->ops = answer->ops;
answer_prot = answer->prot;
answer_no_check = answer->no_check;
-@@ -261,6 +266,7 @@ int inet6_bind(struct socket *sock, stru
+@@ -261,6 +266,7 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
struct inet_sock *inet = inet_sk(sk);
struct ipv6_pinfo *np = inet6_sk(sk);
struct net *net = sock_net(sk);
@@ -25376,7 +25838,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
__be32 v4addr = 0;
unsigned short snum;
int addr_type = 0;
-@@ -276,6 +282,10 @@ int inet6_bind(struct socket *sock, stru
+@@ -276,6 +282,10 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
if (addr->sin6_family != AF_INET6)
return -EAFNOSUPPORT;
@@ -25387,7 +25849,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
addr_type = ipv6_addr_type(&addr->sin6_addr);
if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM)
return -EINVAL;
-@@ -307,6 +317,7 @@ int inet6_bind(struct socket *sock, stru
+@@ -307,6 +317,7 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
/* Reproduce AF_INET checks to make the bindings consistent */
v4addr = addr->sin6_addr.s6_addr32[3];
chk_addr_ret = inet_addr_type(net, v4addr);
@@ -25395,7 +25857,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
if (!sysctl_ip_nonlocal_bind &&
!(inet->freebind || inet->transparent) &&
v4addr != htonl(INADDR_ANY) &&
-@@ -316,6 +327,10 @@ int inet6_bind(struct socket *sock, stru
+@@ -316,6 +327,10 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
err = -EADDRNOTAVAIL;
goto out;
}
@@ -25406,7 +25868,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
} else {
if (addr_type != IPV6_ADDR_ANY) {
struct net_device *dev = NULL;
-@@ -342,6 +357,11 @@ int inet6_bind(struct socket *sock, stru
+@@ -342,6 +357,11 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
}
}
@@ -25418,7 +25880,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-@@ -358,6 +378,9 @@ int inet6_bind(struct socket *sock, stru
+@@ -358,6 +378,9 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
}
}
@@ -25428,7 +25890,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
inet->inet_rcv_saddr = v4addr;
inet->inet_saddr = v4addr;
-@@ -459,9 +482,11 @@ int inet6_getname(struct socket *sock, s
+@@ -459,9 +482,11 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
return -ENOTCONN;
sin->sin6_port = inet->inet_dport;
sin->sin6_addr = np->daddr;
@@ -25440,10 +25902,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/af_inet6.c linux-3.4.48-vs2.3.3.9/ne
if (ipv6_addr_any(&np->rcv_saddr))
sin->sin6_addr = np->saddr;
else
-diff -NurpP --minimal linux-3.4.48/net/ipv6/datagram.c linux-3.4.48-vs2.3.3.9/net/ipv6/datagram.c
---- linux-3.4.48/net/ipv6/datagram.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/datagram.c 2012-05-21 16:15:05.000000000 +0000
-@@ -642,7 +642,7 @@ int datagram_send_ctl(struct net *net, s
+diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
+index 76832c8..8e26750 100644
+--- a/net/ipv6/datagram.c
++++ b/net/ipv6/datagram.c
+@@ -642,7 +642,7 @@ int datagram_send_ctl(struct net *net, struct sock *sk,
rcu_read_lock();
if (fl6->flowi6_oif) {
@@ -25452,10 +25915,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/datagram.c linux-3.4.48-vs2.3.3.9/ne
if (!dev) {
rcu_read_unlock();
return -ENODEV;
-diff -NurpP --minimal linux-3.4.48/net/ipv6/fib6_rules.c linux-3.4.48-vs2.3.3.9/net/ipv6/fib6_rules.c
---- linux-3.4.48/net/ipv6/fib6_rules.c 2012-03-19 18:47:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/fib6_rules.c 2012-05-21 16:15:05.000000000 +0000
-@@ -91,7 +91,7 @@ static int fib6_rule_action(struct fib_r
+diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c
+index b6c5731..de4b61b 100644
+--- a/net/ipv6/fib6_rules.c
++++ b/net/ipv6/fib6_rules.c
+@@ -91,7 +91,7 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
ip6_dst_idev(&rt->dst)->dev,
&flp6->daddr,
rt6_flags2srcprefs(flags),
@@ -25464,9 +25928,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/fib6_rules.c linux-3.4.48-vs2.3.3.9/
goto again;
if (!ipv6_prefix_equal(&saddr, &r->src.addr,
r->src.plen))
-diff -NurpP --minimal linux-3.4.48/net/ipv6/inet6_hashtables.c linux-3.4.48-vs2.3.3.9/net/ipv6/inet6_hashtables.c
---- linux-3.4.48/net/ipv6/inet6_hashtables.c 2011-10-24 16:45:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/inet6_hashtables.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv6/inet6_hashtables.c b/net/ipv6/inet6_hashtables.c
+index 73f1a00..a6196c7 100644
+--- a/net/ipv6/inet6_hashtables.c
++++ b/net/ipv6/inet6_hashtables.c
@@ -16,6 +16,7 @@
#include <linux/module.h>
@@ -25475,7 +25940,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/inet6_hashtables.c linux-3.4.48-vs2.
#include <net/inet_connection_sock.h>
#include <net/inet_hashtables.h>
-@@ -83,7 +84,6 @@ struct sock *__inet6_lookup_established(
+@@ -83,7 +84,6 @@ struct sock *__inet6_lookup_established(struct net *net,
unsigned int slot = hash & hashinfo->ehash_mask;
struct inet_ehash_bucket *head = &hashinfo->ehash[slot];
@@ -25492,7 +25957,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/inet6_hashtables.c linux-3.4.48-vs2.
}
}
if (get_nulls_value(node) != slot)
-@@ -141,6 +141,9 @@ static inline int compute_score(struct s
+@@ -141,6 +141,9 @@ static inline int compute_score(struct sock *sk, struct net *net,
if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
return -1;
score++;
@@ -25502,10 +25967,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/inet6_hashtables.c linux-3.4.48-vs2.
}
if (sk->sk_bound_dev_if) {
if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-3.4.48/net/ipv6/ip6_output.c linux-3.4.48-vs2.3.3.9/net/ipv6/ip6_output.c
---- linux-3.4.48/net/ipv6/ip6_output.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/ip6_output.c 2013-02-19 14:42:56.000000000 +0000
-@@ -966,7 +966,8 @@ static int ip6_dst_lookup_tail(struct so
+diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
+index d6b9d56..abc7da9 100644
+--- a/net/ipv6/ip6_output.c
++++ b/net/ipv6/ip6_output.c
+@@ -972,7 +972,8 @@ static int ip6_dst_lookup_tail(struct sock *sk,
struct rt6_info *rt = (struct rt6_info *) *dst;
err = ip6_route_get_saddr(net, rt, &fl6->daddr,
sk ? inet6_sk(sk)->srcprefs : 0,
@@ -25515,10 +25981,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/ip6_output.c linux-3.4.48-vs2.3.3.9/
if (err)
goto out_err_release;
}
-diff -NurpP --minimal linux-3.4.48/net/ipv6/ndisc.c linux-3.4.48-vs2.3.3.9/net/ipv6/ndisc.c
---- linux-3.4.48/net/ipv6/ndisc.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/ndisc.c 2012-11-18 23:52:30.000000000 +0000
-@@ -575,7 +575,7 @@ static void ndisc_send_na(struct net_dev
+diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
+index 843d6eb..9196d19 100644
+--- a/net/ipv6/ndisc.c
++++ b/net/ipv6/ndisc.c
+@@ -575,7 +575,7 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,
} else {
if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs,
@@ -25527,9 +25994,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/ndisc.c linux-3.4.48-vs2.3.3.9/net/i
return;
src_addr = &tmpaddr;
}
-diff -NurpP --minimal linux-3.4.48/net/ipv6/raw.c linux-3.4.48-vs2.3.3.9/net/ipv6/raw.c
---- linux-3.4.48/net/ipv6/raw.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/raw.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
+index 3ee2870..3b549ff 100644
+--- a/net/ipv6/raw.c
++++ b/net/ipv6/raw.c
@@ -30,6 +30,7 @@
#include <linux/icmpv6.h>
#include <linux/netfilter.h>
@@ -25538,7 +26006,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
#include <linux/skbuff.h>
#include <linux/compat.h>
#include <asm/uaccess.h>
-@@ -284,6 +285,13 @@ static int rawv6_bind(struct sock *sk, s
+@@ -284,6 +285,13 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
goto out_unlock;
}
@@ -25552,9 +26020,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/raw.c linux-3.4.48-vs2.3.3.9/net/ipv
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-diff -NurpP --minimal linux-3.4.48/net/ipv6/route.c linux-3.4.48-vs2.3.3.9/net/ipv6/route.c
---- linux-3.4.48/net/ipv6/route.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/route.c 2013-03-30 21:29:17.000000000 +0000
+diff --git a/net/ipv6/route.c b/net/ipv6/route.c
+index 016ed7c..16375c0 100644
+--- a/net/ipv6/route.c
++++ b/net/ipv6/route.c
@@ -55,6 +55,7 @@
#include <net/xfrm.h>
#include <net/netevent.h>
@@ -25563,7 +26032,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/route.c linux-3.4.48-vs2.3.3.9/net/i
#include <asm/uaccess.h>
-@@ -2147,15 +2148,17 @@ int ip6_route_get_saddr(struct net *net,
+@@ -2150,15 +2151,17 @@ int ip6_route_get_saddr(struct net *net,
struct rt6_info *rt,
const struct in6_addr *daddr,
unsigned int prefs,
@@ -25584,7 +26053,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/route.c linux-3.4.48-vs2.3.3.9/net/i
return err;
}
-@@ -2486,7 +2489,8 @@ static int rt6_fill_node(struct net *net
+@@ -2489,7 +2492,8 @@ static int rt6_fill_node(struct net *net,
NLA_PUT_U32(skb, RTA_IIF, iif);
} else if (dst) {
struct in6_addr saddr_buf;
@@ -25594,7 +26063,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/route.c linux-3.4.48-vs2.3.3.9/net/i
NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
}
-@@ -2713,6 +2717,7 @@ static int rt6_info_route(struct rt6_inf
+@@ -2716,6 +2720,7 @@ static int rt6_info_route(struct rt6_info *rt, void *p_arg)
struct seq_file *m = p_arg;
struct neighbour *n;
@@ -25602,9 +26071,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/route.c linux-3.4.48-vs2.3.3.9/net/i
seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
#ifdef CONFIG_IPV6_SUBTREES
-diff -NurpP --minimal linux-3.4.48/net/ipv6/tcp_ipv6.c linux-3.4.48-vs2.3.3.9/net/ipv6/tcp_ipv6.c
---- linux-3.4.48/net/ipv6/tcp_ipv6.c 2013-06-13 08:59:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/tcp_ipv6.c 2013-01-16 00:15:57.000000000 +0000
+diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
+index 7ee7121..4c44785 100644
+--- a/net/ipv6/tcp_ipv6.c
++++ b/net/ipv6/tcp_ipv6.c
@@ -71,6 +71,7 @@
#include <linux/crypto.h>
@@ -25613,7 +26083,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/tcp_ipv6.c linux-3.4.48-vs2.3.3.9/ne
static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb);
static void tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
-@@ -163,8 +164,15 @@ static int tcp_v6_connect(struct sock *s
+@@ -163,8 +164,15 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
* connect() to INADDR_ANY means loopback (BSD'ism).
*/
@@ -25631,9 +26101,10 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/tcp_ipv6.c linux-3.4.48-vs2.3.3.9/ne
addr_type = ipv6_addr_type(&usin->sin6_addr);
-diff -NurpP --minimal linux-3.4.48/net/ipv6/udp.c linux-3.4.48-vs2.3.3.9/net/ipv6/udp.c
---- linux-3.4.48/net/ipv6/udp.c 2012-05-21 16:07:40.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/udp.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
+index f79bfdb..18c5ac9 100644
+--- a/net/ipv6/udp.c
++++ b/net/ipv6/udp.c
@@ -45,41 +45,67 @@
#include <net/tcp_states.h>
#include <net/ip6_checksum.h>
@@ -25715,7 +26186,7 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
}
static unsigned int udp6_portaddr_hash(struct net *net,
-@@ -143,6 +169,10 @@ static inline int compute_score(struct s
+@@ -143,6 +169,10 @@ static inline int compute_score(struct sock *sk, struct net *net,
if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
return -1;
score++;
@@ -25726,10 +26197,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/udp.c linux-3.4.48-vs2.3.3.9/net/ipv
}
if (!ipv6_addr_any(&np->daddr)) {
if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-3.4.48/net/ipv6/xfrm6_policy.c linux-3.4.48-vs2.3.3.9/net/ipv6/xfrm6_policy.c
---- linux-3.4.48/net/ipv6/xfrm6_policy.c 2012-03-19 18:47:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/ipv6/xfrm6_policy.c 2012-05-21 16:15:05.000000000 +0000
-@@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *n
+diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
+index 808fd08..b8ca90a 100644
+--- a/net/ipv6/xfrm6_policy.c
++++ b/net/ipv6/xfrm6_policy.c
+@@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *net,
dev = ip6_dst_idev(dst)->dev;
ipv6_dev_get_saddr(dev_net(dev), dev,
(struct in6_addr *)&daddr->a6, 0,
@@ -25738,10 +26210,11 @@ diff -NurpP --minimal linux-3.4.48/net/ipv6/xfrm6_policy.c linux-3.4.48-vs2.3.3.
dst_release(dst);
return 0;
}
-diff -NurpP --minimal linux-3.4.48/net/netfilter/ipvs/ip_vs_xmit.c linux-3.4.48-vs2.3.3.9/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-3.4.48/net/netfilter/ipvs/ip_vs_xmit.c 2012-03-19 18:47:33.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/netfilter/ipvs/ip_vs_xmit.c 2012-05-21 16:15:05.000000000 +0000
-@@ -226,7 +226,7 @@ __ip_vs_route_output_v6(struct net *net,
+diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
+index 7fd66de..5674a76 100644
+--- a/net/netfilter/ipvs/ip_vs_xmit.c
++++ b/net/netfilter/ipvs/ip_vs_xmit.c
+@@ -226,7 +226,7 @@ __ip_vs_route_output_v6(struct net *net, struct in6_addr *daddr,
return dst;
if (ipv6_addr_any(&fl6.saddr) &&
ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev,
@@ -25750,9 +26223,10 @@ diff -NurpP --minimal linux-3.4.48/net/netfilter/ipvs/ip_vs_xmit.c linux-3.4.48-
goto out_err;
if (do_xfrm) {
dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
-diff -NurpP --minimal linux-3.4.48/net/netlink/af_netlink.c linux-3.4.48-vs2.3.3.9/net/netlink/af_netlink.c
---- linux-3.4.48/net/netlink/af_netlink.c 2013-06-13 08:59:42.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/netlink/af_netlink.c 2012-11-18 23:52:30.000000000 +0000
+diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
+index 9017e3e..90711f9 100644
+--- a/net/netlink/af_netlink.c
++++ b/net/netlink/af_netlink.c
@@ -55,6 +55,9 @@
#include <linux/types.h>
#include <linux/audit.h>
@@ -25763,7 +26237,7 @@ diff -NurpP --minimal linux-3.4.48/net/netlink/af_netlink.c linux-3.4.48-vs2.3.3
#include <net/net_namespace.h>
#include <net/sock.h>
-@@ -1951,6 +1954,8 @@ static struct sock *netlink_seq_socket_i
+@@ -1951,6 +1954,8 @@ static struct sock *netlink_seq_socket_idx(struct seq_file *seq, loff_t pos)
sk_for_each(s, node, &hash->table[j]) {
if (sock_net(s) != seq_file_net(seq))
continue;
@@ -25772,7 +26246,7 @@ diff -NurpP --minimal linux-3.4.48/net/netlink/af_netlink.c linux-3.4.48-vs2.3.3
if (off == pos) {
iter->link = i;
iter->hash_idx = j;
-@@ -1985,7 +1990,8 @@ static void *netlink_seq_next(struct seq
+@@ -1985,7 +1990,8 @@ static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos)
s = v;
do {
s = sk_next(s);
@@ -25782,7 +26256,7 @@ diff -NurpP --minimal linux-3.4.48/net/netlink/af_netlink.c linux-3.4.48-vs2.3.3
if (s)
return s;
-@@ -1997,7 +2003,8 @@ static void *netlink_seq_next(struct seq
+@@ -1997,7 +2003,8 @@ static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos)
for (; j <= hash->mask; j++) {
s = sk_head(&hash->table[j]);
@@ -25792,9 +26266,10 @@ diff -NurpP --minimal linux-3.4.48/net/netlink/af_netlink.c linux-3.4.48-vs2.3.3
s = sk_next(s);
if (s) {
iter->link = i;
-diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socket.c
---- linux-3.4.48/net/socket.c 2013-06-13 08:59:42.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/socket.c 2012-10-22 13:09:53.000000000 +0000
+diff --git a/net/socket.c b/net/socket.c
+index 47ce3ea..4f0a342 100644
+--- a/net/socket.c
++++ b/net/socket.c
@@ -98,6 +98,10 @@
#include <net/sock.h>
@@ -25806,7 +26281,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
#include <linux/if_tun.h>
#include <linux/ipv6_route.h>
-@@ -551,6 +555,7 @@ static inline int __sock_sendmsg_nosec(s
+@@ -551,6 +555,7 @@ static inline int __sock_sendmsg_nosec(struct kiocb *iocb, struct socket *sock,
struct msghdr *msg, size_t size)
{
struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25814,7 +26289,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
sock_update_classid(sock->sk);
-@@ -561,7 +566,22 @@ static inline int __sock_sendmsg_nosec(s
+@@ -561,7 +566,22 @@ static inline int __sock_sendmsg_nosec(struct kiocb *iocb, struct socket *sock,
si->msg = msg;
si->size = size;
@@ -25838,7 +26313,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
}
static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock,
-@@ -717,6 +737,7 @@ static inline int __sock_recvmsg_nosec(s
+@@ -717,6 +737,7 @@ static inline int __sock_recvmsg_nosec(struct kiocb *iocb, struct socket *sock,
struct msghdr *msg, size_t size, int flags)
{
struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25846,7 +26321,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
sock_update_classid(sock->sk);
-@@ -726,7 +747,18 @@ static inline int __sock_recvmsg_nosec(s
+@@ -726,7 +747,18 @@ static inline int __sock_recvmsg_nosec(struct kiocb *iocb, struct socket *sock,
si->size = size;
si->flags = flags;
@@ -25866,7 +26341,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
}
static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-@@ -1211,6 +1243,13 @@ int __sock_create(struct net *net, int f
+@@ -1211,6 +1243,13 @@ int __sock_create(struct net *net, int family, int type, int protocol,
if (type < 0 || type >= SOCK_MAX)
return -EINVAL;
@@ -25880,7 +26355,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
/* Compatibility.
This uglymoron is moved from INET layer to here to avoid
-@@ -1346,6 +1385,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1346,6 +1385,7 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
if (retval < 0)
goto out;
@@ -25888,7 +26363,7 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
if (retval < 0)
goto out_release;
-@@ -1387,10 +1427,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1387,10 +1427,12 @@ SYSCALL_DEFINE4(socketpair, int, family, int, type, int, protocol,
err = sock_create(family, type, protocol, &sock1);
if (err < 0)
goto out;
@@ -25901,9 +26376,10 @@ diff -NurpP --minimal linux-3.4.48/net/socket.c linux-3.4.48-vs2.3.3.9/net/socke
err = sock1->ops->socketpair(sock1, sock2);
if (err < 0)
-diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth.c linux-3.4.48-vs2.3.3.9/net/sunrpc/auth.c
---- linux-3.4.48/net/sunrpc/auth.c 2011-10-24 16:45:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/sunrpc/auth.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
+index 727e506..97e2387 100644
+--- a/net/sunrpc/auth.c
++++ b/net/sunrpc/auth.c
@@ -14,6 +14,7 @@
#include <linux/hash.h>
#include <linux/sunrpc/clnt.h>
@@ -25912,7 +26388,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth.c linux-3.4.48-vs2.3.3.9/net/
#ifdef RPC_DEBUG
# define RPCDBG_FACILITY RPCDBG_AUTH
-@@ -427,6 +428,7 @@ rpcauth_lookupcred(struct rpc_auth *auth
+@@ -427,6 +428,7 @@ rpcauth_lookupcred(struct rpc_auth *auth, int flags)
memset(&acred, 0, sizeof(acred));
acred.uid = cred->fsuid;
acred.gid = cred->fsgid;
@@ -25920,7 +26396,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth.c linux-3.4.48-vs2.3.3.9/net/
acred.group_info = get_group_info(((struct cred *)cred)->group_info);
ret = auth->au_ops->lookup_cred(auth, &acred, flags);
-@@ -467,6 +469,7 @@ rpcauth_bind_root_cred(struct rpc_task *
+@@ -467,6 +469,7 @@ rpcauth_bind_root_cred(struct rpc_task *task, int lookupflags)
struct auth_cred acred = {
.uid = 0,
.gid = 0,
@@ -25928,9 +26404,10 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth.c linux-3.4.48-vs2.3.3.9/net/
};
dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9/net/sunrpc/auth_unix.c
---- linux-3.4.48/net/sunrpc/auth_unix.c 2012-01-09 15:15:04.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/sunrpc/auth_unix.c 2012-05-21 16:15:05.000000000 +0000
+diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c
+index e50502d..f5980fc 100644
+--- a/net/sunrpc/auth_unix.c
++++ b/net/sunrpc/auth_unix.c
@@ -12,12 +12,14 @@
#include <linux/module.h>
#include <linux/sunrpc/clnt.h>
@@ -25946,7 +26423,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9
gid_t uc_gids[NFS_NGROUPS];
};
#define uc_uid uc_base.cr_uid
-@@ -78,6 +80,7 @@ unx_create_cred(struct rpc_auth *auth, s
+@@ -78,6 +80,7 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
groups = NFS_NGROUPS;
cred->uc_gid = acred->gid;
@@ -25954,7 +26431,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9
for (i = 0; i < groups; i++)
cred->uc_gids[i] = GROUP_AT(acred->group_info, i);
if (i < NFS_NGROUPS)
-@@ -119,7 +122,9 @@ unx_match(struct auth_cred *acred, struc
+@@ -119,7 +122,9 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
unsigned int i;
@@ -25965,7 +26442,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9
return 0;
if (acred->group_info != NULL)
-@@ -145,7 +150,7 @@ unx_marshal(struct rpc_task *task, __be3
+@@ -145,7 +150,7 @@ unx_marshal(struct rpc_task *task, __be32 *p)
struct rpc_clnt *clnt = task->tk_client;
struct unx_cred *cred = container_of(task->tk_rqstp->rq_cred, struct unx_cred, uc_base);
__be32 *base, *hold;
@@ -25974,7 +26451,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9
*p++ = htonl(RPC_AUTH_UNIX);
base = p++;
-@@ -155,9 +160,12 @@ unx_marshal(struct rpc_task *task, __be3
+@@ -155,9 +160,12 @@ unx_marshal(struct rpc_task *task, __be32 *p)
* Copy the UTS nodename captured when the client was created.
*/
p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen);
@@ -25989,9 +26466,10 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/auth_unix.c linux-3.4.48-vs2.3.3.9
hold = p++;
for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++)
*p++ = htonl((u32) cred->uc_gids[i]);
-diff -NurpP --minimal linux-3.4.48/net/sunrpc/clnt.c linux-3.4.48-vs2.3.3.9/net/sunrpc/clnt.c
---- linux-3.4.48/net/sunrpc/clnt.c 2013-06-13 08:59:42.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/sunrpc/clnt.c 2013-02-11 23:37:30.000000000 +0000
+diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
+index a28a211..1b4b069 100644
+--- a/net/sunrpc/clnt.c
++++ b/net/sunrpc/clnt.c
@@ -31,6 +31,7 @@
#include <linux/in6.h>
#include <linux/un.h>
@@ -26000,7 +26478,7 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/clnt.c linux-3.4.48-vs2.3.3.9/net/
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/rpc_pipe_fs.h>
-@@ -483,6 +484,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
+@@ -483,6 +484,9 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
if (!(args->flags & RPC_CLNT_CREATE_QUIET))
clnt->cl_chatty = 1;
@@ -26010,9 +26488,10 @@ diff -NurpP --minimal linux-3.4.48/net/sunrpc/clnt.c linux-3.4.48-vs2.3.3.9/net/
return clnt;
}
EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-3.4.48/net/unix/af_unix.c linux-3.4.48-vs2.3.3.9/net/unix/af_unix.c
---- linux-3.4.48/net/unix/af_unix.c 2013-06-13 08:59:42.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/net/unix/af_unix.c 2013-06-13 09:46:39.000000000 +0000
+diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
+index c4821fd..fd70828 100644
+--- a/net/unix/af_unix.c
++++ b/net/unix/af_unix.c
@@ -114,6 +114,8 @@
#include <linux/mount.h>
#include <net/checksum.h>
@@ -26022,7 +26501,7 @@ diff -NurpP --minimal linux-3.4.48/net/unix/af_unix.c linux-3.4.48-vs2.3.3.9/net
struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
EXPORT_SYMBOL_GPL(unix_socket_table);
-@@ -261,6 +263,8 @@ static struct sock *__unix_find_socket_b
+@@ -261,6 +263,8 @@ static struct sock *__unix_find_socket_byname(struct net *net,
if (!net_eq(sock_net(s), net))
continue;
@@ -26031,7 +26510,7 @@ diff -NurpP --minimal linux-3.4.48/net/unix/af_unix.c linux-3.4.48-vs2.3.3.9/net
if (u->addr->len == len &&
!memcmp(u->addr->name, sunname, len))
goto found;
-@@ -2266,6 +2270,8 @@ static struct sock *unix_seq_idx(struct
+@@ -2265,6 +2269,8 @@ static struct sock *unix_seq_idx(struct seq_file *seq, loff_t pos)
for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) {
if (sock_net(s) != seq_file_net(seq))
continue;
@@ -26040,7 +26519,7 @@ diff -NurpP --minimal linux-3.4.48/net/unix/af_unix.c linux-3.4.48-vs2.3.3.9/net
if (off == pos)
return s;
++off;
-@@ -2290,7 +2296,8 @@ static void *unix_seq_next(struct seq_fi
+@@ -2289,7 +2295,8 @@ static void *unix_seq_next(struct seq_file *seq, void *v, loff_t *pos)
sk = first_unix_socket(&iter->i);
else
sk = next_unix_socket(&iter->i, sk);
@@ -26050,9 +26529,10 @@ diff -NurpP --minimal linux-3.4.48/net/unix/af_unix.c linux-3.4.48-vs2.3.3.9/net
sk = next_unix_socket(&iter->i, sk);
return sk;
}
-diff -NurpP --minimal linux-3.4.48/scripts/checksyscalls.sh linux-3.4.48-vs2.3.3.9/scripts/checksyscalls.sh
---- linux-3.4.48/scripts/checksyscalls.sh 2012-03-19 18:47:34.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/scripts/checksyscalls.sh 2012-05-21 16:15:05.000000000 +0000
+diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh
+index d24810f..b9e7023 100755
+--- a/scripts/checksyscalls.sh
++++ b/scripts/checksyscalls.sh
@@ -193,7 +193,6 @@ cat << EOF
#define __IGNORE_afs_syscall
#define __IGNORE_getpmsg
@@ -26061,10 +26541,11 @@ diff -NurpP --minimal linux-3.4.48/scripts/checksyscalls.sh linux-3.4.48-vs2.3.3
EOF
}
-diff -NurpP --minimal linux-3.4.48/security/commoncap.c linux-3.4.48-vs2.3.3.9/security/commoncap.c
---- linux-3.4.48/security/commoncap.c 2012-05-21 16:07:41.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/security/commoncap.c 2012-05-21 16:15:05.000000000 +0000
-@@ -76,14 +76,20 @@ int cap_netlink_send(struct sock *sk, st
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 71a166a..dfa0c4f 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -76,14 +76,20 @@ int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
int cap_capable(const struct cred *cred, struct user_namespace *targ_ns,
int cap, int audit)
{
@@ -26087,7 +26568,7 @@ diff -NurpP --minimal linux-3.4.48/security/commoncap.c linux-3.4.48-vs2.3.3.9/s
/* Have we tried all of the parent namespaces? */
if (targ_ns == &init_user_ns)
-@@ -612,7 +618,7 @@ int cap_inode_setxattr(struct dentry *de
+@@ -612,7 +618,7 @@ int cap_inode_setxattr(struct dentry *dentry, const char *name,
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26096,7 +26577,7 @@ diff -NurpP --minimal linux-3.4.48/security/commoncap.c linux-3.4.48-vs2.3.3.9/s
return -EPERM;
return 0;
}
-@@ -638,7 +644,7 @@ int cap_inode_removexattr(struct dentry
+@@ -638,7 +644,7 @@ int cap_inode_removexattr(struct dentry *dentry, const char *name)
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26105,9 +26586,10 @@ diff -NurpP --minimal linux-3.4.48/security/commoncap.c linux-3.4.48-vs2.3.3.9/s
return -EPERM;
return 0;
}
-diff -NurpP --minimal linux-3.4.48/security/selinux/hooks.c linux-3.4.48-vs2.3.3.9/security/selinux/hooks.c
---- linux-3.4.48/security/selinux/hooks.c 2013-06-13 08:59:44.000000000 +0000
-+++ linux-3.4.48-vs2.3.3.9/security/selinux/hooks.c 2012-09-01 08:50:49.000000000 +0000
+diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
+index 5626222..2ac26b6 100644
+--- a/security/selinux/hooks.c
++++ b/security/selinux/hooks.c
@@ -66,7 +66,6 @@
#include <linux/dccp.h>
#include <linux/quota.h>