[packages/kernel] - updated vserver patch to http://vserver.13thfloor.at/Experimental/patch-3.13.1-vs2.3.6.9.diff - en
baggins
baggins at pld-linux.org
Sat Feb 1 08:36:56 CET 2014
commit c2e5f7c8361ac910405595042a5eb7f2c8458eda
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Feb 1 08:36:25 2014 +0100
- updated vserver patch to http://vserver.13thfloor.at/Experimental/patch-3.13.1-vs2.3.6.9.diff
- enabled vserver build
kernel-vserver-2.3.patch | 4972 ++++++++++++++++++++--------------------------
kernel.spec | 2 +-
2 files changed, 2146 insertions(+), 2828 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index a9e6cba..f4254d1 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -31,7 +31,7 @@
%bcond_without ipv6 # ipv6 support
%bcond_without padmcrypt # parallel dm-crypt
-%bcond_with vserver # support for VServer
+%bcond_without vserver # support for VServer
%bcond_with vanilla # don't include any patches
%bcond_with rescuecd # build kernel for our rescue
diff --git a/kernel-vserver-2.3.patch b/kernel-vserver-2.3.patch
index 08840f2..9fd26ef 100644
--- a/kernel-vserver-2.3.patch
+++ b/kernel-vserver-2.3.patch
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-3.10.15/Documentation/vserver/debug.txt linux-3.10.15-vs2.3.6.6/Documentation/vserver/debug.txt
---- linux-3.10.15/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/Documentation/vserver/debug.txt 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/Documentation/vserver/debug.txt linux-3.13.1-vs2.3.6.9/Documentation/vserver/debug.txt
+--- linux-3.13.1/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/Documentation/vserver/debug.txt 2014-01-31 20:38:03.000000000 +0000
@@ -0,0 +1,154 @@
+
+debug_cvirt:
@@ -156,10 +156,10 @@ diff -NurpP --minimal linux-3.10.15/Documentation/vserver/debug.txt linux-3.10.1
+ 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.10.15/arch/alpha/Kconfig linux-3.10.15-vs2.3.6.6/arch/alpha/Kconfig
---- linux-3.10.15/arch/alpha/Kconfig 2013-07-14 17:00:13.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/alpha/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -665,6 +665,8 @@ config DUMMY_CONSOLE
+diff -NurpP --minimal linux-3.13.1/arch/alpha/Kconfig linux-3.13.1-vs2.3.6.9/arch/alpha/Kconfig
+--- linux-3.13.1/arch/alpha/Kconfig 2014-01-22 20:38:09.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/alpha/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -735,6 +735,8 @@ config DUMMY_CONSOLE
depends on VGA_HOSE
default y
@@ -168,9 +168,9 @@ diff -NurpP --minimal linux-3.10.15/arch/alpha/Kconfig linux-3.10.15-vs2.3.6.6/a
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/alpha/kernel/systbls.S linux-3.10.15-vs2.3.6.6/arch/alpha/kernel/systbls.S
---- linux-3.10.15/arch/alpha/kernel/systbls.S 2013-02-19 13:56:11.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/alpha/kernel/systbls.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/alpha/kernel/systbls.S linux-3.13.1-vs2.3.6.9/arch/alpha/kernel/systbls.S
+--- linux-3.13.1/arch/alpha/kernel/systbls.S 2013-11-25 15:44:11.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/alpha/kernel/systbls.S 2014-01-31 20:38:03.000000000 +0000
@@ -446,7 +446,7 @@ sys_call_table:
.quad sys_stat64 /* 425 */
.quad sys_lstat64
@@ -180,10 +180,10 @@ diff -NurpP --minimal linux-3.10.15/arch/alpha/kernel/systbls.S linux-3.10.15-vs
.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.10.15/arch/alpha/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/alpha/kernel/traps.c
---- linux-3.10.15/arch/alpha/kernel/traps.c 2013-07-14 17:00:13.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/alpha/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
-@@ -177,7 +177,8 @@ die_if_kernel(char * str, struct pt_regs
+diff -NurpP --minimal linux-3.13.1/arch/alpha/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/alpha/kernel/traps.c
+--- linux-3.13.1/arch/alpha/kernel/traps.c 2014-01-22 20:38:10.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/alpha/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
+@@ -175,7 +175,8 @@ die_if_kernel(char * str, struct pt_regs
#ifdef CONFIG_SMP
printk("CPU %d ", hard_smp_processor_id());
#endif
@@ -193,10 +193,10 @@ diff -NurpP --minimal linux-3.10.15/arch/alpha/kernel/traps.c linux-3.10.15-vs2.
dik_show_regs(regs, r9_15);
add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-3.10.15/arch/arm/Kconfig linux-3.10.15-vs2.3.6.6/arch/arm/Kconfig
---- linux-3.10.15/arch/arm/Kconfig 2013-10-09 17:35:15.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/arm/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -2238,6 +2238,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/arm/Kconfig linux-3.13.1-vs2.3.6.9/arch/arm/Kconfig
+--- linux-3.13.1/arch/arm/Kconfig 2014-01-22 20:38:10.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/arm/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -2265,6 +2265,8 @@ source "fs/Kconfig"
source "arch/arm/Kconfig.debug"
@@ -205,9 +205,9 @@ diff -NurpP --minimal linux-3.10.15/arch/arm/Kconfig linux-3.10.15-vs2.3.6.6/arc
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/arm/kernel/calls.S linux-3.10.15-vs2.3.6.6/arch/arm/kernel/calls.S
---- linux-3.10.15/arch/arm/kernel/calls.S 2013-05-31 13:44:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/arm/kernel/calls.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/arm/kernel/calls.S linux-3.13.1-vs2.3.6.9/arch/arm/kernel/calls.S
+--- linux-3.13.1/arch/arm/kernel/calls.S 2013-05-31 13:44:29.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/arm/kernel/calls.S 2014-01-31 20:38:03.000000000 +0000
@@ -322,7 +322,7 @@
/* 310 */ CALL(sys_request_key)
CALL(sys_keyctl)
@@ -217,10 +217,10 @@ diff -NurpP --minimal linux-3.10.15/arch/arm/kernel/calls.S linux-3.10.15-vs2.3.
CALL(sys_ioprio_set)
/* 315 */ CALL(sys_ioprio_get)
CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.10.15/arch/arm/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/arm/kernel/traps.c
---- linux-3.10.15/arch/arm/kernel/traps.c 2013-10-09 17:35:15.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/arm/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
-@@ -240,8 +240,8 @@ static int __die(const char *str, int er
+diff -NurpP --minimal linux-3.13.1/arch/arm/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/arm/kernel/traps.c
+--- linux-3.13.1/arch/arm/kernel/traps.c 2014-01-22 20:38:11.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/arm/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
+@@ -247,8 +247,8 @@ static int __die(const char *str, int er
print_modules();
__show_regs(regs);
@@ -231,10 +231,10 @@ diff -NurpP --minimal linux-3.10.15/arch/arm/kernel/traps.c linux-3.10.15-vs2.3.
if (!user_mode(regs) || in_interrupt()) {
dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.10.15/arch/cris/Kconfig linux-3.10.15-vs2.3.6.6/arch/cris/Kconfig
---- linux-3.10.15/arch/cris/Kconfig 2013-07-14 17:00:25.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/cris/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -673,6 +673,8 @@ source "drivers/staging/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/cris/Kconfig linux-3.13.1-vs2.3.6.9/arch/cris/Kconfig
+--- linux-3.13.1/arch/cris/Kconfig 2014-01-22 20:38:15.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/cris/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -561,6 +561,8 @@ source "fs/Kconfig"
source "arch/cris/Kconfig.debug"
@@ -243,22 +243,10 @@ diff -NurpP --minimal linux-3.10.15/arch/cris/Kconfig linux-3.10.15-vs2.3.6.6/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/h8300/Kconfig linux-3.10.15-vs2.3.6.6/arch/h8300/Kconfig
---- linux-3.10.15/arch/h8300/Kconfig 2013-07-14 17:00:25.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/h8300/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -218,6 +218,8 @@ source "fs/Kconfig"
-
- source "arch/h8300/Kconfig.debug"
-
-+source "kernel/vserver/Kconfig"
-+
- source "security/Kconfig"
-
- source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/ia64/Kconfig linux-3.10.15-vs2.3.6.6/arch/ia64/Kconfig
---- linux-3.10.15/arch/ia64/Kconfig 2013-07-14 17:00:25.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/ia64/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -643,6 +643,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/ia64/Kconfig linux-3.13.1-vs2.3.6.9/arch/ia64/Kconfig
+--- linux-3.13.1/arch/ia64/Kconfig 2014-01-22 20:38:16.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/ia64/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -641,6 +641,8 @@ source "fs/Kconfig"
source "arch/ia64/Kconfig.debug"
@@ -267,10 +255,10 @@ diff -NurpP --minimal linux-3.10.15/arch/ia64/Kconfig linux-3.10.15-vs2.3.6.6/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/entry.S linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/entry.S
---- linux-3.10.15/arch/ia64/kernel/entry.S 2013-05-31 13:44:38.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/entry.S 2013-08-22 20:29:59.000000000 +0000
-@@ -1719,7 +1719,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.13.1/arch/ia64/kernel/entry.S linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/entry.S
+--- linux-3.13.1/arch/ia64/kernel/entry.S 2014-01-22 20:38:16.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/entry.S 2014-01-31 20:38:03.000000000 +0000
+@@ -1706,7 +1706,7 @@ sys_call_table:
data8 sys_mq_notify
data8 sys_mq_getsetattr
data8 sys_kexec_load
@@ -279,9 +267,9 @@ diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/entry.S linux-3.10.15-vs2.3
data8 sys_waitid // 1270
data8 sys_add_key
data8 sys_request_key
-diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/ptrace.c linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/ptrace.c
---- linux-3.10.15/arch/ia64/kernel/ptrace.c 2013-02-19 13:56:51.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/ia64/kernel/ptrace.c linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/ptrace.c
+--- linux-3.13.1/arch/ia64/kernel/ptrace.c 2013-02-19 13:56:51.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/ptrace.c 2014-01-31 20:38:03.000000000 +0000
@@ -21,6 +21,7 @@
#include <linux/regset.h>
#include <linux/elf.h>
@@ -290,9 +278,9 @@ diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/ptrace.c linux-3.10.15-vs2.
#include <asm/pgtable.h>
#include <asm/processor.h>
-diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/traps.c
---- linux-3.10.15/arch/ia64/kernel/traps.c 2013-05-31 13:44:38.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/ia64/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/ia64/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/traps.c
+--- linux-3.13.1/arch/ia64/kernel/traps.c 2013-11-25 15:44:20.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/ia64/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
put_cpu();
@@ -317,9 +305,9 @@ diff -NurpP --minimal linux-3.10.15/arch/ia64/kernel/traps.c linux-3.10.15-vs2.3
}
}
}
-diff -NurpP --minimal linux-3.10.15/arch/m32r/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/m32r/kernel/traps.c
---- linux-3.10.15/arch/m32r/kernel/traps.c 2013-07-14 17:00:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/m32r/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/m32r/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/m32r/kernel/traps.c
+--- linux-3.13.1/arch/m32r/kernel/traps.c 2013-07-14 17:00:26.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/m32r/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
@@ -184,8 +184,9 @@ static void show_registers(struct pt_reg
} else {
printk("SPI: %08lx\n", sp);
@@ -332,9 +320,9 @@ diff -NurpP --minimal linux-3.10.15/arch/m32r/kernel/traps.c linux-3.10.15-vs2.3
/*
* When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.10.15/arch/m68k/Kconfig linux-3.10.15-vs2.3.6.6/arch/m68k/Kconfig
---- linux-3.10.15/arch/m68k/Kconfig 2013-07-14 17:00:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/m68k/Kconfig 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/m68k/Kconfig linux-3.13.1-vs2.3.6.9/arch/m68k/Kconfig
+--- linux-3.13.1/arch/m68k/Kconfig 2014-01-22 20:38:16.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/m68k/Kconfig 2014-01-31 20:38:03.000000000 +0000
@@ -134,6 +134,8 @@ source "fs/Kconfig"
source "arch/m68k/Kconfig.debug"
@@ -344,10 +332,10 @@ diff -NurpP --minimal linux-3.10.15/arch/m68k/Kconfig linux-3.10.15-vs2.3.6.6/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/mips/Kconfig linux-3.10.15-vs2.3.6.6/arch/mips/Kconfig
---- linux-3.10.15/arch/mips/Kconfig 2013-10-09 17:35:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -2583,6 +2583,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/mips/Kconfig linux-3.13.1-vs2.3.6.9/arch/mips/Kconfig
+--- linux-3.13.1/arch/mips/Kconfig 2014-01-22 20:38:16.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -2539,6 +2539,8 @@ source "fs/Kconfig"
source "arch/mips/Kconfig.debug"
@@ -356,18 +344,18 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/Kconfig linux-3.10.15-vs2.3.6.6/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/ptrace.c linux-3.10.15-vs2.3.6.6/arch/mips/kernel/ptrace.c
---- linux-3.10.15/arch/mips/kernel/ptrace.c 2013-05-31 13:44:42.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
-@@ -25,6 +25,7 @@
- #include <linux/security.h>
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/ptrace.c linux-3.13.1-vs2.3.6.9/arch/mips/kernel/ptrace.c
+--- linux-3.13.1/arch/mips/kernel/ptrace.c 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/ptrace.c 2014-01-31 20:53:13.000000000 +0000
+@@ -30,6 +30,7 @@
#include <linux/audit.h>
#include <linux/seccomp.h>
+ #include <linux/ftrace.h>
+#include <linux/vs_base.h>
#include <asm/byteorder.h>
#include <asm/cpu.h>
-@@ -262,6 +263,9 @@ long arch_ptrace(struct task_struct *chi
+@@ -398,6 +399,9 @@ long arch_ptrace(struct task_struct *chi
void __user *datavp = (void __user *) data;
unsigned long __user *datalp = (void __user *) data;
@@ -377,22 +365,22 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/ptrace.c linux-3.10.15-vs2.
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.10.15/arch/mips/kernel/scall32-o32.S linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall32-o32.S
---- linux-3.10.15/arch/mips/kernel/scall32-o32.S 2013-07-14 17:00:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall32-o32.S 2013-08-22 20:29:59.000000000 +0000
-@@ -521,7 +521,7 @@ einval: li v0, -ENOSYS
- sys sys_mq_timedreceive 5
- sys sys_mq_notify 2 /* 4275 */
- sys sys_mq_getsetattr 3
-- sys sys_ni_syscall 0 /* sys_vserver */
-+ sys sys_vserver 3
- sys sys_waitid 5
- sys sys_ni_syscall 0 /* available, was setaltroot */
- sys sys_add_key 5 /* 4280 */
-diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-64.S linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-64.S
---- linux-3.10.15/arch/mips/kernel/scall64-64.S 2013-07-14 17:00:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-64.S 2013-08-22 20:29:59.000000000 +0000
-@@ -351,7 +351,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/scall32-o32.S linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall32-o32.S
+--- linux-3.13.1/arch/mips/kernel/scall32-o32.S 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall32-o32.S 2014-01-31 20:48:18.000000000 +0000
+@@ -491,7 +491,7 @@ EXPORT(sys_call_table)
+ PTR sys_mq_timedreceive
+ PTR sys_mq_notify /* 4275 */
+ PTR sys_mq_getsetattr
+- PTR sys_ni_syscall /* sys_vserver */
++ PTR sys_vserver
+ PTR sys_waitid
+ PTR sys_ni_syscall /* available, was setaltroot */
+ PTR sys_add_key /* 4280 */
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/scall64-64.S linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-64.S
+--- linux-3.13.1/arch/mips/kernel/scall64-64.S 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-64.S 2014-01-31 20:38:03.000000000 +0000
+@@ -352,7 +352,7 @@ EXPORT(sys_call_table)
PTR sys_mq_timedreceive
PTR sys_mq_notify
PTR sys_mq_getsetattr /* 5235 */
@@ -401,10 +389,10 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-64.S linux-3.10.15-
PTR sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-n32.S linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-n32.S
---- linux-3.10.15/arch/mips/kernel/scall64-n32.S 2013-07-14 17:00:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-n32.S 2013-08-22 20:29:59.000000000 +0000
-@@ -344,7 +344,7 @@ EXPORT(sysn32_call_table)
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/scall64-n32.S linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-n32.S
+--- linux-3.13.1/arch/mips/kernel/scall64-n32.S 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-n32.S 2014-01-31 20:38:03.000000000 +0000
+@@ -345,7 +345,7 @@ EXPORT(sysn32_call_table)
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify
PTR compat_sys_mq_getsetattr
@@ -413,10 +401,10 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-n32.S linux-3.10.15
PTR compat_sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-o32.S linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-o32.S
---- linux-3.10.15/arch/mips/kernel/scall64-o32.S 2013-07-14 17:00:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/scall64-o32.S 2013-08-22 20:29:59.000000000 +0000
-@@ -469,7 +469,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/scall64-o32.S linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-o32.S
+--- linux-3.13.1/arch/mips/kernel/scall64-o32.S 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/scall64-o32.S 2014-01-31 20:38:03.000000000 +0000
+@@ -469,7 +469,7 @@ EXPORT(sys32_call_table)
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify /* 4275 */
PTR compat_sys_mq_getsetattr
@@ -425,10 +413,10 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/scall64-o32.S linux-3.10.15
PTR compat_sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */
-diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/mips/kernel/traps.c
---- linux-3.10.15/arch/mips/kernel/traps.c 2013-07-14 17:00:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/mips/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
-@@ -331,9 +331,10 @@ void show_registers(struct pt_regs *regs
+diff -NurpP --minimal linux-3.13.1/arch/mips/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/mips/kernel/traps.c
+--- linux-3.13.1/arch/mips/kernel/traps.c 2014-01-22 20:38:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/mips/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
+@@ -334,9 +334,10 @@ void show_registers(struct pt_regs *regs
__show_regs(regs);
print_modules();
@@ -442,10 +430,10 @@ diff -NurpP --minimal linux-3.10.15/arch/mips/kernel/traps.c linux-3.10.15-vs2.3
if (cpu_has_userlocal) {
unsigned long tls;
-diff -NurpP --minimal linux-3.10.15/arch/parisc/Kconfig linux-3.10.15-vs2.3.6.6/arch/parisc/Kconfig
---- linux-3.10.15/arch/parisc/Kconfig 2013-07-14 17:00:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/parisc/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -318,6 +318,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/parisc/Kconfig linux-3.13.1-vs2.3.6.9/arch/parisc/Kconfig
+--- linux-3.13.1/arch/parisc/Kconfig 2014-01-22 20:38:18.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/parisc/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -320,6 +320,8 @@ source "fs/Kconfig"
source "arch/parisc/Kconfig.debug"
@@ -454,9 +442,9 @@ diff -NurpP --minimal linux-3.10.15/arch/parisc/Kconfig linux-3.10.15-vs2.3.6.6/
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/parisc/kernel/syscall_table.S linux-3.10.15-vs2.3.6.6/arch/parisc/kernel/syscall_table.S
---- linux-3.10.15/arch/parisc/kernel/syscall_table.S 2013-07-14 17:00:31.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/parisc/kernel/syscall_table.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/parisc/kernel/syscall_table.S linux-3.13.1-vs2.3.6.9/arch/parisc/kernel/syscall_table.S
+--- linux-3.13.1/arch/parisc/kernel/syscall_table.S 2013-07-14 17:00:31.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/parisc/kernel/syscall_table.S 2014-01-31 20:38:03.000000000 +0000
@@ -358,7 +358,7 @@
ENTRY_COMP(mbind) /* 260 */
ENTRY_COMP(get_mempolicy)
@@ -466,9 +454,9 @@ diff -NurpP --minimal linux-3.10.15/arch/parisc/kernel/syscall_table.S linux-3.1
ENTRY_SAME(add_key)
ENTRY_SAME(request_key) /* 265 */
ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-3.10.15/arch/parisc/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/parisc/kernel/traps.c
---- linux-3.10.15/arch/parisc/kernel/traps.c 2013-07-14 17:00:31.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/parisc/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/parisc/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/parisc/kernel/traps.c
+--- linux-3.13.1/arch/parisc/kernel/traps.c 2013-11-25 15:46:28.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/parisc/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
@@ -229,8 +229,9 @@ void die_if_kernel(char *str, struct pt_
if (err == 0)
return; /* STFU */
@@ -492,10 +480,10 @@ diff -NurpP --minimal linux-3.10.15/arch/parisc/kernel/traps.c linux-3.10.15-vs2
/* Wot's wrong wif bein' racy? */
if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.10.15/arch/parisc/mm/fault.c linux-3.10.15-vs2.3.6.6/arch/parisc/mm/fault.c
---- linux-3.10.15/arch/parisc/mm/fault.c 2013-05-31 13:44:44.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/parisc/mm/fault.c 2013-08-22 20:29:59.000000000 +0000
-@@ -257,8 +257,9 @@ bad_area:
+diff -NurpP --minimal linux-3.13.1/arch/parisc/mm/fault.c linux-3.13.1-vs2.3.6.9/arch/parisc/mm/fault.c
+--- linux-3.13.1/arch/parisc/mm/fault.c 2014-01-22 20:38:18.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/parisc/mm/fault.c 2014-01-31 20:38:03.000000000 +0000
+@@ -272,8 +272,9 @@ bad_area:
#ifdef PRINT_USER_FAULTS
printk(KERN_DEBUG "\n");
@@ -507,10 +495,10 @@ diff -NurpP --minimal linux-3.10.15/arch/parisc/mm/fault.c linux-3.10.15-vs2.3.6
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.10.15/arch/powerpc/Kconfig linux-3.10.15-vs2.3.6.6/arch/powerpc/Kconfig
---- linux-3.10.15/arch/powerpc/Kconfig 2013-10-09 17:35:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/powerpc/Kconfig 2013-10-09 17:37:21.000000000 +0000
-@@ -1010,6 +1010,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/powerpc/Kconfig linux-3.13.1-vs2.3.6.9/arch/powerpc/Kconfig
+--- linux-3.13.1/arch/powerpc/Kconfig 2014-01-22 20:38:18.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/powerpc/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -1028,6 +1028,8 @@ source "lib/Kconfig"
source "arch/powerpc/Kconfig.debug"
@@ -519,9 +507,9 @@ diff -NurpP --minimal linux-3.10.15/arch/powerpc/Kconfig linux-3.10.15-vs2.3.6.6
source "security/Kconfig"
config KEYS_COMPAT
-diff -NurpP --minimal linux-3.10.15/arch/powerpc/include/uapi/asm/unistd.h linux-3.10.15-vs2.3.6.6/arch/powerpc/include/uapi/asm/unistd.h
---- linux-3.10.15/arch/powerpc/include/uapi/asm/unistd.h 2013-05-31 13:44:44.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/powerpc/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/powerpc/include/uapi/asm/unistd.h linux-3.13.1-vs2.3.6.9/arch/powerpc/include/uapi/asm/unistd.h
+--- linux-3.13.1/arch/powerpc/include/uapi/asm/unistd.h 2013-05-31 13:44:44.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/powerpc/include/uapi/asm/unistd.h 2014-01-31 20:38:03.000000000 +0000
@@ -275,7 +275,7 @@
#endif
#define __NR_rtas 255
@@ -531,10 +519,10 @@ diff -NurpP --minimal linux-3.10.15/arch/powerpc/include/uapi/asm/unistd.h linux
#define __NR_migrate_pages 258
#define __NR_mbind 259
#define __NR_get_mempolicy 260
-diff -NurpP --minimal linux-3.10.15/arch/powerpc/kernel/traps.c linux-3.10.15-vs2.3.6.6/arch/powerpc/kernel/traps.c
---- linux-3.10.15/arch/powerpc/kernel/traps.c 2013-10-09 17:35:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/powerpc/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
-@@ -1231,8 +1231,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-3.13.1/arch/powerpc/kernel/traps.c linux-3.13.1-vs2.3.6.9/arch/powerpc/kernel/traps.c
+--- linux-3.13.1/arch/powerpc/kernel/traps.c 2014-01-22 20:38:23.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/powerpc/kernel/traps.c 2014-01-31 20:38:03.000000000 +0000
+@@ -1272,8 +1272,9 @@ void nonrecoverable_exception(struct pt_
void trace_syscall(struct pt_regs *regs)
{
@@ -546,10 +534,10 @@ diff -NurpP --minimal linux-3.10.15/arch/powerpc/kernel/traps.c linux-3.10.15-vs
regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
}
-diff -NurpP --minimal linux-3.10.15/arch/s390/Kconfig linux-3.10.15-vs2.3.6.6/arch/s390/Kconfig
---- linux-3.10.15/arch/s390/Kconfig 2013-10-09 17:35:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/s390/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -579,6 +579,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/s390/Kconfig linux-3.13.1-vs2.3.6.9/arch/s390/Kconfig
+--- linux-3.13.1/arch/s390/Kconfig 2014-01-22 20:38:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/s390/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -649,6 +649,8 @@ source "fs/Kconfig"
source "arch/s390/Kconfig.debug"
@@ -558,9 +546,9 @@ diff -NurpP --minimal linux-3.10.15/arch/s390/Kconfig linux-3.10.15-vs2.3.6.6/ar
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/s390/include/asm/tlb.h linux-3.10.15-vs2.3.6.6/arch/s390/include/asm/tlb.h
---- linux-3.10.15/arch/s390/include/asm/tlb.h 2013-10-09 17:35:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/s390/include/asm/tlb.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/s390/include/asm/tlb.h linux-3.13.1-vs2.3.6.9/arch/s390/include/asm/tlb.h
+--- linux-3.13.1/arch/s390/include/asm/tlb.h 2013-11-25 15:46:29.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/s390/include/asm/tlb.h 2014-01-31 20:38:03.000000000 +0000
@@ -24,6 +24,7 @@
#include <linux/mm.h>
#include <linux/pagemap.h>
@@ -569,9 +557,9 @@ diff -NurpP --minimal linux-3.10.15/arch/s390/include/asm/tlb.h linux-3.10.15-vs
#include <asm/processor.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.10.15/arch/s390/include/uapi/asm/unistd.h linux-3.10.15-vs2.3.6.6/arch/s390/include/uapi/asm/unistd.h
---- linux-3.10.15/arch/s390/include/uapi/asm/unistd.h 2013-02-19 13:57:16.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/s390/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/s390/include/uapi/asm/unistd.h linux-3.13.1-vs2.3.6.9/arch/s390/include/uapi/asm/unistd.h
+--- linux-3.13.1/arch/s390/include/uapi/asm/unistd.h 2013-02-19 13:57:16.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/s390/include/uapi/asm/unistd.h 2014-01-31 20:38:03.000000000 +0000
@@ -200,7 +200,7 @@
#define __NR_clock_gettime (__NR_timer_create+6)
#define __NR_clock_getres (__NR_timer_create+7)
@@ -581,9 +569,9 @@ diff -NurpP --minimal linux-3.10.15/arch/s390/include/uapi/asm/unistd.h linux-3.
#define __NR_statfs64 265
#define __NR_fstatfs64 266
#define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-3.10.15/arch/s390/kernel/ptrace.c linux-3.10.15-vs2.3.6.6/arch/s390/kernel/ptrace.c
---- linux-3.10.15/arch/s390/kernel/ptrace.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/s390/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/s390/kernel/ptrace.c linux-3.13.1-vs2.3.6.9/arch/s390/kernel/ptrace.c
+--- linux-3.13.1/arch/s390/kernel/ptrace.c 2014-01-22 20:38:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/s390/kernel/ptrace.c 2014-01-31 20:38:03.000000000 +0000
@@ -21,6 +21,7 @@
#include <linux/tracehook.h>
#include <linux/seccomp.h>
@@ -592,9 +580,9 @@ diff -NurpP --minimal linux-3.10.15/arch/s390/kernel/ptrace.c linux-3.10.15-vs2.
#include <trace/syscall.h>
#include <asm/segment.h>
#include <asm/page.h>
-diff -NurpP --minimal linux-3.10.15/arch/s390/kernel/syscalls.S linux-3.10.15-vs2.3.6.6/arch/s390/kernel/syscalls.S
---- linux-3.10.15/arch/s390/kernel/syscalls.S 2013-07-14 17:00:34.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/s390/kernel/syscalls.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/s390/kernel/syscalls.S linux-3.13.1-vs2.3.6.9/arch/s390/kernel/syscalls.S
+--- linux-3.13.1/arch/s390/kernel/syscalls.S 2013-07-14 17:00:34.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/s390/kernel/syscalls.S 2014-01-31 20:38:03.000000000 +0000
@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */
SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
@@ -604,10 +592,10 @@ diff -NurpP --minimal linux-3.10.15/arch/s390/kernel/syscalls.S linux-3.10.15-vs
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.10.15/arch/sh/Kconfig linux-3.10.15-vs2.3.6.6/arch/sh/Kconfig
---- linux-3.10.15/arch/sh/Kconfig 2013-07-14 17:00:35.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sh/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -928,6 +928,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/sh/Kconfig linux-3.13.1-vs2.3.6.9/arch/sh/Kconfig
+--- linux-3.13.1/arch/sh/Kconfig 2014-01-22 20:38:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sh/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -927,6 +927,8 @@ source "fs/Kconfig"
source "arch/sh/Kconfig.debug"
@@ -616,9 +604,9 @@ diff -NurpP --minimal linux-3.10.15/arch/sh/Kconfig linux-3.10.15-vs2.3.6.6/arch
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/sh/kernel/irq.c linux-3.10.15-vs2.3.6.6/arch/sh/kernel/irq.c
---- linux-3.10.15/arch/sh/kernel/irq.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sh/kernel/irq.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/sh/kernel/irq.c linux-3.13.1-vs2.3.6.9/arch/sh/kernel/irq.c
+--- linux-3.13.1/arch/sh/kernel/irq.c 2014-01-22 20:38:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sh/kernel/irq.c 2014-01-31 20:38:03.000000000 +0000
@@ -14,6 +14,7 @@
#include <linux/ftrace.h>
#include <linux/delay.h>
@@ -627,10 +615,10 @@ diff -NurpP --minimal linux-3.10.15/arch/sh/kernel/irq.c linux-3.10.15-vs2.3.6.6
#include <asm/processor.h>
#include <asm/machvec.h>
#include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.10.15/arch/sparc/Kconfig linux-3.10.15-vs2.3.6.6/arch/sparc/Kconfig
---- linux-3.10.15/arch/sparc/Kconfig 2013-07-14 17:00:35.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sparc/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -550,6 +550,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/sparc/Kconfig linux-3.13.1-vs2.3.6.9/arch/sparc/Kconfig
+--- linux-3.13.1/arch/sparc/Kconfig 2014-01-22 20:38:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sparc/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -553,6 +553,8 @@ source "fs/Kconfig"
source "arch/sparc/Kconfig.debug"
@@ -639,9 +627,9 @@ diff -NurpP --minimal linux-3.10.15/arch/sparc/Kconfig linux-3.10.15-vs2.3.6.6/a
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/sparc/include/uapi/asm/unistd.h linux-3.10.15-vs2.3.6.6/arch/sparc/include/uapi/asm/unistd.h
---- linux-3.10.15/arch/sparc/include/uapi/asm/unistd.h 2013-02-19 13:57:17.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sparc/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/sparc/include/uapi/asm/unistd.h linux-3.13.1-vs2.3.6.9/arch/sparc/include/uapi/asm/unistd.h
+--- linux-3.13.1/arch/sparc/include/uapi/asm/unistd.h 2013-02-19 13:57:17.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sparc/include/uapi/asm/unistd.h 2014-01-31 20:38:03.000000000 +0000
@@ -332,7 +332,7 @@
#define __NR_timer_getoverrun 264
#define __NR_timer_delete 265
@@ -651,9 +639,9 @@ diff -NurpP --minimal linux-3.10.15/arch/sparc/include/uapi/asm/unistd.h linux-3
#define __NR_io_setup 268
#define __NR_io_destroy 269
#define __NR_io_submit 270
-diff -NurpP --minimal linux-3.10.15/arch/sparc/kernel/systbls_32.S linux-3.10.15-vs2.3.6.6/arch/sparc/kernel/systbls_32.S
---- linux-3.10.15/arch/sparc/kernel/systbls_32.S 2013-05-31 13:44:48.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sparc/kernel/systbls_32.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/sparc/kernel/systbls_32.S linux-3.13.1-vs2.3.6.9/arch/sparc/kernel/systbls_32.S
+--- linux-3.13.1/arch/sparc/kernel/systbls_32.S 2013-05-31 13:44:48.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sparc/kernel/systbls_32.S 2014-01-31 20:38:03.000000000 +0000
@@ -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
@@ -663,9 +651,9 @@ diff -NurpP --minimal linux-3.10.15/arch/sparc/kernel/systbls_32.S linux-3.10.15
/*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.10.15/arch/sparc/kernel/systbls_64.S linux-3.10.15-vs2.3.6.6/arch/sparc/kernel/systbls_64.S
---- linux-3.10.15/arch/sparc/kernel/systbls_64.S 2013-07-14 17:00:35.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/sparc/kernel/systbls_64.S 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/sparc/kernel/systbls_64.S linux-3.13.1-vs2.3.6.9/arch/sparc/kernel/systbls_64.S
+--- linux-3.13.1/arch/sparc/kernel/systbls_64.S 2013-07-14 17:00:35.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/sparc/kernel/systbls_64.S 2014-01-31 20:38:03.000000000 +0000
@@ -71,7 +71,7 @@ sys_call_table32:
/*250*/ .word sys_mremap, compat_sys_sysctl, sys_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
@@ -684,9 +672,9 @@ diff -NurpP --minimal linux-3.10.15/arch/sparc/kernel/systbls_64.S linux-3.10.15
/*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.10.15/arch/um/Kconfig.rest linux-3.10.15-vs2.3.6.6/arch/um/Kconfig.rest
---- linux-3.10.15/arch/um/Kconfig.rest 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/um/Kconfig.rest 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/um/Kconfig.rest linux-3.13.1-vs2.3.6.9/arch/um/Kconfig.rest
+--- linux-3.13.1/arch/um/Kconfig.rest 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/um/Kconfig.rest 2014-01-31 20:38:03.000000000 +0000
@@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
source "fs/Kconfig"
@@ -696,10 +684,10 @@ diff -NurpP --minimal linux-3.10.15/arch/um/Kconfig.rest linux-3.10.15-vs2.3.6.6
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/x86/Kconfig linux-3.10.15-vs2.3.6.6/arch/x86/Kconfig
---- linux-3.10.15/arch/x86/Kconfig 2013-07-14 17:00:36.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/x86/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -2339,6 +2339,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.13.1/arch/x86/Kconfig linux-3.13.1-vs2.3.6.9/arch/x86/Kconfig
+--- linux-3.13.1/arch/x86/Kconfig 2014-01-22 20:38:25.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/x86/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -2403,6 +2403,8 @@ source "fs/Kconfig"
source "arch/x86/Kconfig.debug"
@@ -708,9 +696,9 @@ diff -NurpP --minimal linux-3.10.15/arch/x86/Kconfig linux-3.10.15-vs2.3.6.6/arc
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.10.15/arch/x86/syscalls/syscall_32.tbl linux-3.10.15-vs2.3.6.6/arch/x86/syscalls/syscall_32.tbl
---- linux-3.10.15/arch/x86/syscalls/syscall_32.tbl 2013-07-14 17:00:37.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/x86/syscalls/syscall_32.tbl 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/x86/syscalls/syscall_32.tbl linux-3.13.1-vs2.3.6.9/arch/x86/syscalls/syscall_32.tbl
+--- linux-3.13.1/arch/x86/syscalls/syscall_32.tbl 2013-07-14 17:00:37.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/x86/syscalls/syscall_32.tbl 2014-01-31 20:38:03.000000000 +0000
@@ -279,7 +279,7 @@
270 i386 tgkill sys_tgkill
271 i386 utimes sys_utimes compat_sys_utimes
@@ -720,9 +708,9 @@ diff -NurpP --minimal linux-3.10.15/arch/x86/syscalls/syscall_32.tbl linux-3.10.
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.10.15/arch/x86/syscalls/syscall_64.tbl linux-3.10.15-vs2.3.6.6/arch/x86/syscalls/syscall_64.tbl
---- linux-3.10.15/arch/x86/syscalls/syscall_64.tbl 2013-05-31 13:44:50.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/arch/x86/syscalls/syscall_64.tbl 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/arch/x86/syscalls/syscall_64.tbl linux-3.13.1-vs2.3.6.9/arch/x86/syscalls/syscall_64.tbl
+--- linux-3.13.1/arch/x86/syscalls/syscall_64.tbl 2013-05-31 13:44:50.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/arch/x86/syscalls/syscall_64.tbl 2014-01-31 20:38:03.000000000 +0000
@@ -242,7 +242,7 @@
233 common epoll_ctl sys_epoll_ctl
234 common tgkill sys_tgkill
@@ -732,10 +720,10 @@ diff -NurpP --minimal linux-3.10.15/arch/x86/syscalls/syscall_64.tbl linux-3.10.
237 common mbind sys_mbind
238 common set_mempolicy sys_set_mempolicy
239 common get_mempolicy sys_get_mempolicy
-diff -NurpP --minimal linux-3.10.15/drivers/block/Kconfig linux-3.10.15-vs2.3.6.6/drivers/block/Kconfig
---- linux-3.10.15/drivers/block/Kconfig 2013-05-31 13:44:51.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/block/Kconfig 2013-08-22 20:29:59.000000000 +0000
-@@ -278,6 +278,13 @@ config BLK_DEV_CRYPTOLOOP
+diff -NurpP --minimal linux-3.13.1/drivers/block/Kconfig linux-3.13.1-vs2.3.6.9/drivers/block/Kconfig
+--- linux-3.13.1/drivers/block/Kconfig 2014-01-22 20:38:27.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/block/Kconfig 2014-01-31 20:38:03.000000000 +0000
+@@ -281,6 +281,13 @@ config BLK_DEV_CRYPTOLOOP
source "drivers/block/drbd/Kconfig"
@@ -749,10 +737,10 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/Kconfig linux-3.10.15-vs2.3.6.
config BLK_DEV_NBD
tristate "Network block device support"
depends on NET
-diff -NurpP --minimal linux-3.10.15/drivers/block/Makefile linux-3.10.15-vs2.3.6.6/drivers/block/Makefile
---- linux-3.10.15/drivers/block/Makefile 2013-07-14 17:00:41.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/block/Makefile 2013-08-22 20:29:59.000000000 +0000
-@@ -33,6 +33,7 @@ obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
+diff -NurpP --minimal linux-3.13.1/drivers/block/Makefile linux-3.13.1-vs2.3.6.9/drivers/block/Makefile
+--- linux-3.13.1/drivers/block/Makefile 2014-01-22 20:38:27.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/block/Makefile 2014-01-31 20:38:03.000000000 +0000
+@@ -34,6 +34,7 @@ obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
obj-$(CONFIG_VIODASD) += viodasd.o
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
obj-$(CONFIG_BLK_DEV_HD) += hd.o
@@ -760,17 +748,17 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/Makefile linux-3.10.15-vs2.3.6
obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
-diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6/drivers/block/loop.c
---- linux-3.10.15/drivers/block/loop.c 2013-07-14 17:00:41.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/block/loop.c 2013-08-22 20:29:59.000000000 +0000
-@@ -76,6 +76,7 @@
+diff -NurpP --minimal linux-3.13.1/drivers/block/loop.c linux-3.13.1-vs2.3.6.9/drivers/block/loop.c
+--- linux-3.13.1/drivers/block/loop.c 2014-01-22 20:38:27.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/block/loop.c 2014-01-31 20:55:14.000000000 +0000
+@@ -75,6 +75,7 @@
#include <linux/sysfs.h>
#include <linux/miscdevice.h>
#include <linux/falloc.h>
+#include <linux/vs_context.h>
+ #include "loop.h"
#include <asm/uaccess.h>
-
@@ -884,6 +885,7 @@ static int loop_set_fd(struct loop_devic
lo->lo_blocksize = lo_blocksize;
lo->lo_device = bdev;
@@ -779,7 +767,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6
lo->lo_backing_file = file;
lo->transfer = transfer_none;
lo->ioctl = NULL;
-@@ -1035,6 +1037,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1028,6 +1030,7 @@ static int loop_clr_fd(struct loop_devic
lo->lo_sizelimit = 0;
lo->lo_encrypt_key_size = 0;
lo->lo_thread = NULL;
@@ -787,7 +775,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6
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);
-@@ -1078,7 +1081,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1071,7 +1074,7 @@ loop_set_status(struct loop_device *lo,
if (lo->lo_encrypt_key_size &&
!uid_eq(lo->lo_key_owner, uid) &&
@@ -796,7 +784,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6
return -EPERM;
if (lo->lo_state != Lo_bound)
return -ENXIO;
-@@ -1168,7 +1171,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1161,7 +1164,8 @@ loop_get_status(struct loop_device *lo,
memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
info->lo_encrypt_type =
lo->lo_encryption ? lo->lo_encryption->number : 0;
@@ -806,7 +794,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6
info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
lo->lo_encrypt_key_size);
-@@ -1510,6 +1514,11 @@ static int lo_open(struct block_device *
+@@ -1503,6 +1507,11 @@ static int lo_open(struct block_device *
goto out;
}
@@ -818,9 +806,20 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/loop.c linux-3.10.15-vs2.3.6.6
mutex_lock(&lo->lo_ctl_mutex);
lo->lo_refcnt++;
mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.10.15/drivers/block/vroot.c linux-3.10.15-vs2.3.6.6/drivers/block/vroot.c
---- linux-3.10.15/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/block/vroot.c 2013-08-23 00:23:45.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/drivers/block/loop.h linux-3.13.1-vs2.3.6.9/drivers/block/loop.h
+--- linux-3.13.1/drivers/block/loop.h 2013-11-25 15:44:28.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/block/loop.h 2014-02-01 01:57:49.000000000 +0000
+@@ -41,6 +41,7 @@ struct loop_device {
+ struct loop_func_table *lo_encryption;
+ __u32 lo_init[2];
+ kuid_t lo_key_owner; /* Who set the key */
++ vxid_t lo_xid;
+ int (*ioctl)(struct loop_device *, int cmd,
+ unsigned long arg);
+
+diff -NurpP --minimal linux-3.13.1/drivers/block/vroot.c linux-3.13.1-vs2.3.6.9/drivers/block/vroot.c
+--- linux-3.13.1/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/block/vroot.c 2014-01-31 20:38:03.000000000 +0000
@@ -0,0 +1,290 @@
+/*
+ * linux/drivers/block/vroot.c
@@ -1112,9 +1111,9 @@ diff -NurpP --minimal linux-3.10.15/drivers/block/vroot.c linux-3.10.15-vs2.3.6.
+
+#endif
+
-diff -NurpP --minimal linux-3.10.15/drivers/infiniband/Kconfig linux-3.10.15-vs2.3.6.6/drivers/infiniband/Kconfig
---- linux-3.10.15/drivers/infiniband/Kconfig 2013-07-14 17:00:49.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/infiniband/Kconfig 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/drivers/infiniband/Kconfig linux-3.13.1-vs2.3.6.9/drivers/infiniband/Kconfig
+--- linux-3.13.1/drivers/infiniband/Kconfig 2014-01-22 20:38:35.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/infiniband/Kconfig 2014-01-31 20:38:03.000000000 +0000
@@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
config INFINIBAND_ADDR_TRANS
bool
@@ -1124,10 +1123,10 @@ diff -NurpP --minimal linux-3.10.15/drivers/infiniband/Kconfig linux-3.10.15-vs2
default y
source "drivers/infiniband/hw/mthca/Kconfig"
-diff -NurpP --minimal linux-3.10.15/drivers/infiniband/core/addr.c linux-3.10.15-vs2.3.6.6/drivers/infiniband/core/addr.c
---- linux-3.10.15/drivers/infiniband/core/addr.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/infiniband/core/addr.c 2013-08-22 20:29:59.000000000 +0000
-@@ -261,7 +261,7 @@ static int addr6_resolve(struct sockaddr
+diff -NurpP --minimal linux-3.13.1/drivers/infiniband/core/addr.c linux-3.13.1-vs2.3.6.9/drivers/infiniband/core/addr.c
+--- linux-3.13.1/drivers/infiniband/core/addr.c 2013-11-25 15:44:35.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/infiniband/core/addr.c 2014-01-31 20:38:03.000000000 +0000
+@@ -277,7 +277,7 @@ static int addr6_resolve(struct sockaddr
if (ipv6_addr_any(&fl6.saddr)) {
ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev,
@@ -1136,9 +1135,9 @@ diff -NurpP --minimal linux-3.10.15/drivers/infiniband/core/addr.c linux-3.10.15
if (ret)
goto put;
-diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.6/drivers/md/dm-ioctl.c
---- linux-3.10.15/drivers/md/dm-ioctl.c 2013-10-09 17:35:19.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/md/dm-ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/drivers/md/dm-ioctl.c linux-3.13.1-vs2.3.6.9/drivers/md/dm-ioctl.c
+--- linux-3.13.1/drivers/md/dm-ioctl.c 2014-01-22 20:38:36.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/md/dm-ioctl.c 2014-01-31 21:01:49.000000000 +0000
@@ -16,6 +16,7 @@
#include <linux/dm-ioctl.h>
#include <linux/hdreg.h>
@@ -1147,7 +1146,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
#include <asm/uaccess.h>
-@@ -106,7 +107,8 @@ static struct hash_cell *__get_name_cell
+@@ -114,7 +115,8 @@ static struct hash_cell *__get_name_cell
unsigned int h = hash_str(str);
list_for_each_entry (hc, _name_buckets + h, name_list)
@@ -1157,7 +1156,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
dm_get(hc->md);
return hc;
}
-@@ -120,7 +122,8 @@ static struct hash_cell *__get_uuid_cell
+@@ -128,7 +130,8 @@ static struct hash_cell *__get_uuid_cell
unsigned int h = hash_str(str);
list_for_each_entry (hc, _uuid_buckets + h, uuid_list)
@@ -1167,7 +1166,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
dm_get(hc->md);
return hc;
}
-@@ -131,13 +134,15 @@ static struct hash_cell *__get_uuid_cell
+@@ -139,13 +142,15 @@ static struct hash_cell *__get_uuid_cell
static struct hash_cell *__get_dev_cell(uint64_t dev)
{
struct mapped_device *md;
@@ -1185,17 +1184,17 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
if (!hc) {
dm_put(md);
return NULL;
-@@ -445,6 +450,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl
+@@ -467,6 +472,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl
static int remove_all(struct dm_ioctl *param, size_t param_size)
{
+ if (!vx_check(0, VS_ADMIN))
+ return -EPERM;
+
- dm_hash_remove_all(1);
+ dm_hash_remove_all(true, !!(param->flags & DM_DEFERRED_REMOVE), false);
param->data_size = 0;
return 0;
-@@ -492,6 +500,8 @@ static int list_devices(struct dm_ioctl
+@@ -514,6 +522,8 @@ static int list_devices(struct dm_ioctl
*/
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1204,7 +1203,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
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
+@@ -537,6 +547,8 @@ static int list_devices(struct dm_ioctl
*/
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1213,7 +1212,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
if (old_nl)
old_nl->next = (uint32_t) ((void *) nl -
(void *) old_nl);
-@@ -1725,8 +1737,8 @@ static int ctl_ioctl(uint command, struc
+@@ -1797,8 +1809,8 @@ static int ctl_ioctl(uint command, struc
size_t input_param_size;
struct dm_ioctl param_kernel;
@@ -1224,9 +1223,9 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm-ioctl.c linux-3.10.15-vs2.3.6.
return -EACCES;
if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/drivers/md/dm.c
---- linux-3.10.15/drivers/md/dm.c 2013-10-09 17:35:19.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/md/dm.c 2013-10-09 17:37:21.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/drivers/md/dm.c linux-3.13.1-vs2.3.6.9/drivers/md/dm.c
+--- linux-3.13.1/drivers/md/dm.c 2014-01-22 20:38:36.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/md/dm.c 2014-01-31 20:38:03.000000000 +0000
@@ -19,6 +19,7 @@
#include <linux/idr.h>
#include <linux/hdreg.h>
@@ -1235,15 +1234,15 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/driv
#include <trace/events/block.h>
-@@ -125,6 +126,7 @@ struct mapped_device {
- rwlock_t map_lock;
+@@ -139,6 +140,7 @@ struct mapped_device {
+ struct mutex suspend_lock;
atomic_t holders;
atomic_t open_count;
+ vxid_t xid;
- unsigned long flags;
-
-@@ -317,6 +319,7 @@ int dm_deleting_md(struct mapped_device
+ /*
+ * The current mapping.
+@@ -384,6 +386,7 @@ int dm_deleting_md(struct mapped_device
static int dm_blk_open(struct block_device *bdev, fmode_t mode)
{
struct mapped_device *md;
@@ -1251,7 +1250,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/driv
spin_lock(&_minor_lock);
-@@ -325,18 +328,19 @@ static int dm_blk_open(struct block_devi
+@@ -392,18 +395,19 @@ static int dm_blk_open(struct block_devi
goto out;
if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1277,7 +1276,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/driv
}
static void dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -552,6 +556,14 @@ int dm_set_geometry(struct mapped_device
+@@ -687,6 +691,14 @@ int dm_set_geometry(struct mapped_device
return 0;
}
@@ -1292,7 +1291,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/driv
/*-----------------------------------------------------------------
* CRUD START:
* A more elegant soln is in the works that uses the queue
-@@ -1889,6 +1901,7 @@ static struct mapped_device *alloc_dev(i
+@@ -2026,6 +2038,7 @@ static struct mapped_device *alloc_dev(i
INIT_LIST_HEAD(&md->uevent_list);
spin_lock_init(&md->uevent_lock);
@@ -1300,10 +1299,10 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.c linux-3.10.15-vs2.3.6.6/driv
md->queue = blk_alloc_queue(GFP_KERNEL);
if (!md->queue)
goto bad_queue;
-diff -NurpP --minimal linux-3.10.15/drivers/md/dm.h linux-3.10.15-vs2.3.6.6/drivers/md/dm.h
---- linux-3.10.15/drivers/md/dm.h 2013-02-19 13:57:51.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/md/dm.h 2013-08-22 20:29:59.000000000 +0000
-@@ -46,6 +46,8 @@ struct dm_dev_internal {
+diff -NurpP --minimal linux-3.13.1/drivers/md/dm.h linux-3.13.1-vs2.3.6.9/drivers/md/dm.h
+--- linux-3.13.1/drivers/md/dm.h 2014-01-22 20:38:36.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/md/dm.h 2014-01-31 20:38:03.000000000 +0000
+@@ -48,6 +48,8 @@ struct dm_dev_internal {
struct dm_table;
struct dm_md_mempools;
@@ -1312,10 +1311,10 @@ diff -NurpP --minimal linux-3.10.15/drivers/md/dm.h linux-3.10.15-vs2.3.6.6/driv
/*-----------------------------------------------------------------
* Internal table functions.
*---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/drivers/net/tun.c
---- linux-3.10.15/drivers/net/tun.c 2013-10-09 17:35:20.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/net/tun.c 2013-10-09 17:37:21.000000000 +0000
-@@ -64,6 +64,7 @@
+diff -NurpP --minimal linux-3.13.1/drivers/net/tun.c linux-3.13.1-vs2.3.6.9/drivers/net/tun.c
+--- linux-3.13.1/drivers/net/tun.c 2014-01-22 20:38:45.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/net/tun.c 2014-01-31 20:38:03.000000000 +0000
+@@ -65,6 +65,7 @@
#include <linux/nsproxy.h>
#include <linux/virtio_net.h>
#include <linux/rcupdate.h>
@@ -1323,7 +1322,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/dr
#include <net/net_namespace.h>
#include <net/netns/generic.h>
#include <net/rtnetlink.h>
-@@ -164,6 +165,7 @@ struct tun_struct {
+@@ -168,6 +169,7 @@ struct tun_struct {
unsigned int flags;
kuid_t owner;
kgid_t group;
@@ -1331,7 +1330,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/dr
struct net_device *dev;
netdev_features_t set_features;
-@@ -380,6 +382,7 @@ static inline bool tun_not_capable(struc
+@@ -385,6 +387,7 @@ static inline bool tun_not_capable(struc
return ((uid_valid(tun->owner) && !uid_eq(cred->euid, tun->owner)) ||
(gid_valid(tun->group) && !in_egroup_p(tun->group))) &&
!ns_capable(net->user_ns, CAP_NET_ADMIN);
@@ -1339,7 +1338,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/dr
}
static void tun_set_real_num_queues(struct tun_struct *tun)
-@@ -1425,6 +1428,7 @@ static void tun_setup(struct net_device
+@@ -1382,6 +1385,7 @@ static void tun_setup(struct net_device
tun->owner = INVALID_UID;
tun->group = INVALID_GID;
@@ -1347,26 +1346,16 @@ diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/dr
dev->ethtool_ops = &tun_ethtool_ops;
dev->destructor = tun_free_netdev;
-@@ -1616,6 +1620,9 @@ static int tun_set_iff(struct net *net,
- if (err < 0)
- return err;
-
-+ if (!nx_check(tun->nid, VS_IDENT | VS_HOSTID | VS_ADMIN_P))
-+ return -EPERM;
-+
- err = tun_attach(tun, file);
- if (err < 0)
- return err;
-@@ -1634,7 +1641,7 @@ static int tun_set_iff(struct net *net,
+@@ -1598,7 +1602,7 @@ static int tun_set_iff(struct net *net,
int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ?
MAX_TAP_QUEUES : 1;
- if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
-+ if (!vx_ns_capable(net->user_ns, CAP_NET_ADMIN, NXC_TUN_CREATE))
++ if (!nx_ns_capable(net->user_ns, CAP_NET_ADMIN, NXC_TUN_CREATE))
return -EPERM;
err = security_tun_dev_create();
if (err < 0)
-@@ -1980,6 +1987,16 @@ static long __tun_chr_ioctl(struct file
+@@ -1967,6 +1971,16 @@ static long __tun_chr_ioctl(struct file
from_kgid(&init_user_ns, tun->group));
break;
@@ -1383,18 +1372,18 @@ diff -NurpP --minimal linux-3.10.15/drivers/net/tun.c linux-3.10.15-vs2.3.6.6/dr
case TUNSETLINK:
/* Only allow setting the type when the interface is down */
if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.10.15/drivers/tty/sysrq.c linux-3.10.15-vs2.3.6.6/drivers/tty/sysrq.c
---- linux-3.10.15/drivers/tty/sysrq.c 2013-07-14 17:01:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/tty/sysrq.c 2013-08-22 20:58:35.000000000 +0000
-@@ -44,6 +44,7 @@
- #include <linux/uaccess.h>
- #include <linux/moduleparam.h>
+diff -NurpP --minimal linux-3.13.1/drivers/tty/sysrq.c linux-3.13.1-vs2.3.6.9/drivers/tty/sysrq.c
+--- linux-3.13.1/drivers/tty/sysrq.c 2014-01-22 20:39:02.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/tty/sysrq.c 2014-01-31 20:55:49.000000000 +0000
+@@ -46,6 +46,7 @@
#include <linux/jiffies.h>
+ #include <linux/syscalls.h>
+ #include <linux/of.h>
+#include <linux/vserver/debug.h>
#include <asm/ptrace.h>
#include <asm/irq_regs.h>
-@@ -405,6 +406,21 @@ static struct sysrq_key_op sysrq_unrt_op
+@@ -407,6 +408,21 @@ static struct sysrq_key_op sysrq_unrt_op
.enable_mask = SYSRQ_ENABLE_RTNICE,
};
@@ -1416,7 +1405,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/sysrq.c linux-3.10.15-vs2.3.6.6/
/* Key Operations table and lock */
static DEFINE_SPINLOCK(sysrq_key_table_lock);
-@@ -460,7 +476,11 @@ static struct sysrq_key_op *sysrq_key_ta
+@@ -462,7 +478,11 @@ static struct sysrq_key_op *sysrq_key_ta
&sysrq_showstate_blocked_op, /* w */
/* x: May be registered on ppc/powerpc for xmon */
/* x: May be registered on sparc64 for global PMU dump */
@@ -1428,7 +1417,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/sysrq.c linux-3.10.15-vs2.3.6.6/
/* y: May be registered on sparc64 for global register dump */
NULL, /* y */
&sysrq_ftrace_dump_op, /* z */
-@@ -475,6 +495,8 @@ static int sysrq_key_table_key2index(int
+@@ -477,6 +497,8 @@ static int sysrq_key_table_key2index(int
retval = key - '0';
else if ((key >= 'a') && (key <= 'z'))
retval = key + 10 - 'a';
@@ -1437,9 +1426,9 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/sysrq.c linux-3.10.15-vs2.3.6.6/
else
retval = -1;
return retval;
-diff -NurpP --minimal linux-3.10.15/drivers/tty/tty_io.c linux-3.10.15-vs2.3.6.6/drivers/tty/tty_io.c
---- linux-3.10.15/drivers/tty/tty_io.c 2013-10-09 17:35:21.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/drivers/tty/tty_io.c 2013-10-09 17:37:22.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/drivers/tty/tty_io.c linux-3.13.1-vs2.3.6.9/drivers/tty/tty_io.c
+--- linux-3.13.1/drivers/tty/tty_io.c 2014-01-22 20:39:02.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/drivers/tty/tty_io.c 2014-01-31 20:38:03.000000000 +0000
@@ -104,6 +104,7 @@
#include <linux/kmod.h>
@@ -1448,7 +1437,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/tty_io.c linux-3.10.15-vs2.3.6.6
#undef TTY_DEBUG_HANGUP
-@@ -2213,7 +2214,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2218,7 +2219,8 @@ static int tiocsti(struct tty_struct *tt
char ch, mbz = 0;
struct tty_ldisc *ld;
@@ -1458,7 +1447,7 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/tty_io.c linux-3.10.15-vs2.3.6.6
return -EPERM;
if (get_user(ch, p))
return -EFAULT;
-@@ -2501,6 +2503,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2506,6 +2508,7 @@ static int tiocspgrp(struct tty_struct *
return -ENOTTY;
if (get_user(pgrp_nr, p))
return -EFAULT;
@@ -1466,9 +1455,9 @@ diff -NurpP --minimal linux-3.10.15/drivers/tty/tty_io.c linux-3.10.15-vs2.3.6.6
if (pgrp_nr < 0)
return -EINVAL;
rcu_read_lock();
-diff -NurpP --minimal linux-3.10.15/fs/attr.c linux-3.10.15-vs2.3.6.6/fs/attr.c
---- linux-3.10.15/fs/attr.c 2013-02-19 13:58:46.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/attr.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/attr.c linux-3.13.1-vs2.3.6.9/fs/attr.c
+--- linux-3.13.1/fs/attr.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/attr.c 2014-01-31 20:38:03.000000000 +0000
@@ -15,6 +15,9 @@
#include <linux/security.h>
#include <linux/evm.h>
@@ -1499,7 +1488,7 @@ diff -NurpP --minimal linux-3.10.15/fs/attr.c linux-3.10.15-vs2.3.6.6/fs/attr.c
if (ia_valid & ATTR_ATIME)
inode->i_atime = timespec_trunc(attr->ia_atime,
inode->i_sb->s_time_gran);
-@@ -177,7 +186,8 @@ int notify_change(struct dentry * dentry
+@@ -197,7 +206,8 @@ int notify_change(struct dentry * dentry
WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
@@ -1509,9 +1498,9 @@ diff -NurpP --minimal linux-3.10.15/fs/attr.c linux-3.10.15-vs2.3.6.6/fs/attr.c
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
return -EPERM;
}
-diff -NurpP --minimal linux-3.10.15/fs/block_dev.c linux-3.10.15-vs2.3.6.6/fs/block_dev.c
---- linux-3.10.15/fs/block_dev.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/block_dev.c 2013-08-22 21:20:35.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/block_dev.c linux-3.13.1-vs2.3.6.9/fs/block_dev.c
+--- linux-3.13.1/fs/block_dev.c 2013-11-25 15:46:58.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/block_dev.c 2014-01-31 20:38:03.000000000 +0000
@@ -28,6 +28,7 @@
#include <linux/log2.h>
#include <linux/cleancache.h>
@@ -1520,7 +1509,7 @@ diff -NurpP --minimal linux-3.10.15/fs/block_dev.c linux-3.10.15-vs2.3.6.6/fs/bl
#include <asm/uaccess.h>
#include "internal.h"
-@@ -536,6 +537,7 @@ struct block_device *bdget(dev_t dev)
+@@ -515,6 +516,7 @@ struct block_device *bdget(dev_t dev)
bdev->bd_invalidated = 0;
inode->i_mode = S_IFBLK;
inode->i_rdev = dev;
@@ -1528,7 +1517,7 @@ diff -NurpP --minimal linux-3.10.15/fs/block_dev.c linux-3.10.15-vs2.3.6.6/fs/bl
inode->i_bdev = bdev;
inode->i_data.a_ops = &def_blk_aops;
mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -583,6 +585,11 @@ EXPORT_SYMBOL(bdput);
+@@ -562,6 +564,11 @@ EXPORT_SYMBOL(bdput);
static struct block_device *bd_acquire(struct inode *inode)
{
struct block_device *bdev;
@@ -1540,7 +1529,7 @@ diff -NurpP --minimal linux-3.10.15/fs/block_dev.c linux-3.10.15-vs2.3.6.6/fs/bl
spin_lock(&bdev_lock);
bdev = inode->i_bdev;
-@@ -593,7 +600,7 @@ static struct block_device *bd_acquire(s
+@@ -572,7 +579,7 @@ static struct block_device *bd_acquire(s
}
spin_unlock(&bdev_lock);
@@ -1549,10 +1538,10 @@ diff -NurpP --minimal linux-3.10.15/fs/block_dev.c linux-3.10.15-vs2.3.6.6/fs/bl
if (bdev) {
spin_lock(&bdev_lock);
if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.10.15/fs/btrfs/ctree.h linux-3.10.15-vs2.3.6.6/fs/btrfs/ctree.h
---- linux-3.10.15/fs/btrfs/ctree.h 2013-07-14 17:01:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/btrfs/ctree.h 2013-08-22 20:29:59.000000000 +0000
-@@ -707,11 +707,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-3.13.1/fs/btrfs/ctree.h linux-3.13.1-vs2.3.6.9/fs/btrfs/ctree.h
+--- linux-3.13.1/fs/btrfs/ctree.h 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/btrfs/ctree.h 2014-01-31 23:58:35.000000000 +0000
+@@ -718,11 +718,14 @@ struct btrfs_inode_item {
/* modification sequence number for NFS */
__le64 sequence;
@@ -1568,16 +1557,16 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ctree.h linux-3.10.15-vs2.3.6.6/fs/
struct btrfs_timespec atime;
struct btrfs_timespec ctime;
struct btrfs_timespec mtime;
-@@ -1928,6 +1931,8 @@ struct btrfs_ioctl_defrag_range_args {
- #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21)
- #define BTRFS_MOUNT_PANIC_ON_FATAL_ERROR (1 << 22)
+@@ -2000,6 +2003,8 @@ struct btrfs_ioctl_defrag_range_args {
+
+ #define BTRFS_DEFAULT_COMMIT_INTERVAL (30)
+#define BTRFS_MOUNT_TAGGED (1 << 24)
+
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
#define btrfs_raw_test_opt(o, opt) ((o) & BTRFS_MOUNT_##opt)
-@@ -2197,6 +2202,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -2269,6 +2274,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
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);
@@ -1585,7 +1574,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ctree.h linux-3.10.15-vs2.3.6.6/fs/
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);
-@@ -2250,6 +2256,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -2341,6 +2347,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
@@ -1596,18 +1585,18 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ctree.h linux-3.10.15-vs2.3.6.6/fs/
BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
-@@ -3578,6 +3588,7 @@ extern const struct dentry_operations bt
- long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
+@@ -3722,6 +3732,7 @@ long btrfs_ioctl(struct file *file, unsi
void btrfs_update_iflags(struct inode *inode);
void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
+ int btrfs_is_empty_uuid(u8 *uuid);
+int btrfs_sync_flags(struct inode *inode, int, int);
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.10.15/fs/btrfs/disk-io.c linux-3.10.15-vs2.3.6.6/fs/btrfs/disk-io.c
---- linux-3.10.15/fs/btrfs/disk-io.c 2013-07-14 17:01:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/btrfs/disk-io.c 2013-08-22 20:29:59.000000000 +0000
-@@ -2360,6 +2360,9 @@ int open_ctree(struct super_block *sb,
+diff -NurpP --minimal linux-3.13.1/fs/btrfs/disk-io.c linux-3.13.1-vs2.3.6.9/fs/btrfs/disk-io.c
+--- linux-3.13.1/fs/btrfs/disk-io.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/btrfs/disk-io.c 2014-01-31 20:38:03.000000000 +0000
+@@ -2388,6 +2388,9 @@ int open_ctree(struct super_block *sb,
goto fail_alloc;
}
@@ -1617,18 +1606,18 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/disk-io.c linux-3.10.15-vs2.3.6.6/f
features = btrfs_super_incompat_flags(disk_super) &
~BTRFS_FEATURE_INCOMPAT_SUPP;
if (features) {
-diff -NurpP --minimal linux-3.10.15/fs/btrfs/inode.c linux-3.10.15-vs2.3.6.6/fs/btrfs/inode.c
---- linux-3.10.15/fs/btrfs/inode.c 2013-07-14 17:01:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/btrfs/inode.c 2013-08-22 20:29:59.000000000 +0000
-@@ -42,6 +42,7 @@
- #include <linux/mount.h>
+diff -NurpP --minimal linux-3.13.1/fs/btrfs/inode.c linux-3.13.1-vs2.3.6.9/fs/btrfs/inode.c
+--- linux-3.13.1/fs/btrfs/inode.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/btrfs/inode.c 2014-01-31 23:56:42.000000000 +0000
+@@ -43,6 +43,7 @@
#include <linux/btrfs.h>
#include <linux/blkdev.h>
+ #include <linux/posix_acl_xattr.h>
+#include <linux/vs_tag.h>
- #include "compat.h"
#include "ctree.h"
#include "disk-io.h"
-@@ -3327,6 +3328,9 @@ static void btrfs_read_locked_inode(stru
+ #include "transaction.h"
+@@ -3317,6 +3318,9 @@ static void btrfs_read_locked_inode(stru
struct btrfs_key location;
int maybe_acls;
u32 rdev;
@@ -1638,7 +1627,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/inode.c linux-3.10.15-vs2.3.6.6/fs/
int ret;
bool filled = false;
-@@ -3354,8 +3358,14 @@ static void btrfs_read_locked_inode(stru
+@@ -3344,8 +3348,14 @@ static void btrfs_read_locked_inode(stru
struct btrfs_inode_item);
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
set_nlink(inode, btrfs_inode_nlink(leaf, inode_item));
@@ -1655,7 +1644,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/inode.c linux-3.10.15-vs2.3.6.6/fs/
btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
tspec = btrfs_inode_atime(inode_item);
-@@ -3446,11 +3456,18 @@ static void fill_inode_item(struct btrfs
+@@ -3436,11 +3446,18 @@ static void fill_inode_item(struct btrfs
struct inode *inode)
{
struct btrfs_map_token token;
@@ -1676,24 +1665,34 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/inode.c linux-3.10.15-vs2.3.6.6/fs/
btrfs_set_token_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size,
&token);
btrfs_set_token_inode_mode(leaf, item, inode->i_mode, &token);
-@@ -8720,11 +8737,13 @@ static const struct inode_operations btr
+@@ -8648,12 +8665,15 @@ static const struct inode_operations btr
.listxattr = btrfs_listxattr,
.removexattr = btrfs_removexattr,
.permission = btrfs_permission,
+ .sync_flags = btrfs_sync_flags,
.get_acl = btrfs_get_acl,
+ .update_time = btrfs_update_time,
};
++
static const struct inode_operations btrfs_dir_ro_inode_operations = {
.lookup = btrfs_lookup,
.permission = btrfs_permission,
+ .sync_flags = btrfs_sync_flags,
.get_acl = btrfs_get_acl,
+ .update_time = btrfs_update_time,
};
-
-diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/btrfs/ioctl.c
---- linux-3.10.15/fs/btrfs/ioctl.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/btrfs/ioctl.c 2013-10-09 17:37:22.000000000 +0000
-@@ -75,10 +75,13 @@ static unsigned int btrfs_flags_to_ioctl
+@@ -8723,6 +8743,7 @@ static const struct inode_operations btr
+ .removexattr = btrfs_removexattr,
+ .permission = btrfs_permission,
+ .fiemap = btrfs_fiemap,
++ .sync_flags = btrfs_sync_flags,
+ .get_acl = btrfs_get_acl,
+ .update_time = btrfs_update_time,
+ };
+diff -NurpP --minimal linux-3.13.1/fs/btrfs/ioctl.c linux-3.13.1-vs2.3.6.9/fs/btrfs/ioctl.c
+--- linux-3.13.1/fs/btrfs/ioctl.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/btrfs/ioctl.c 2014-01-31 20:38:03.000000000 +0000
+@@ -78,10 +78,13 @@ static unsigned int btrfs_flags_to_ioctl
{
unsigned int iflags = 0;
@@ -1709,7 +1708,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
if (flags & BTRFS_INODE_APPEND)
iflags |= FS_APPEND_FL;
if (flags & BTRFS_INODE_NODUMP)
-@@ -95,28 +98,78 @@ static unsigned int btrfs_flags_to_ioctl
+@@ -98,28 +101,78 @@ static unsigned int btrfs_flags_to_ioctl
else if (flags & BTRFS_INODE_NOCOMPRESS)
iflags |= FS_NOCOMP_FL;
@@ -1792,7 +1791,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
}
/*
-@@ -132,6 +185,7 @@ void btrfs_inherit_iflags(struct inode *
+@@ -135,6 +188,7 @@ void btrfs_inherit_iflags(struct inode *
return;
flags = BTRFS_I(dir)->flags;
@@ -1800,7 +1799,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
if (flags & BTRFS_INODE_NOCOMPRESS) {
BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS;
-@@ -150,6 +204,30 @@ void btrfs_inherit_iflags(struct inode *
+@@ -153,6 +207,30 @@ void btrfs_inherit_iflags(struct inode *
btrfs_update_iflags(inode);
}
@@ -1831,7 +1830,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
{
struct btrfs_inode *ip = BTRFS_I(file_inode(file));
-@@ -212,21 +290,27 @@ static int btrfs_ioctl_setflags(struct f
+@@ -215,21 +293,27 @@ static int btrfs_ioctl_setflags(struct f
flags = btrfs_mask_flags(inode->i_mode, flags);
oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1864,30 +1863,30 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
if (flags & FS_APPEND_FL)
ip->flags |= BTRFS_INODE_APPEND;
else
-diff -NurpP --minimal linux-3.10.15/fs/btrfs/super.c linux-3.10.15-vs2.3.6.6/fs/btrfs/super.c
---- linux-3.10.15/fs/btrfs/super.c 2013-07-14 17:01:26.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/btrfs/super.c 2013-08-22 20:29:59.000000000 +0000
-@@ -319,7 +319,7 @@ enum {
- Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
+diff -NurpP --minimal linux-3.13.1/fs/btrfs/super.c linux-3.13.1-vs2.3.6.9/fs/btrfs/super.c
+--- linux-3.13.1/fs/btrfs/super.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/btrfs/super.c 2014-01-31 23:58:08.000000000 +0000
+@@ -323,7 +323,7 @@ enum {
Opt_check_integrity, Opt_check_integrity_including_extent_data,
- Opt_check_integrity_print_mask, Opt_fatal_errors,
+ Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
+ Opt_commit_interval,
- Opt_err,
+ Opt_tag, Opt_notag, Opt_tagid, Opt_err,
};
static match_table_t tokens = {
-@@ -359,6 +359,9 @@ static match_table_t tokens = {
- {Opt_check_integrity_including_extent_data, "check_int_data"},
- {Opt_check_integrity_print_mask, "check_int_print_mask=%d"},
+@@ -365,6 +365,9 @@ static match_table_t tokens = {
+ {Opt_rescan_uuid_tree, "rescan_uuid_tree"},
{Opt_fatal_errors, "fatal_errors=%s"},
+ {Opt_commit_interval, "commit=%d"},
+ {Opt_tag, "tag"},
+ {Opt_notag, "notag"},
+ {Opt_tagid, "tagid=%u"},
{Opt_err, NULL},
};
-@@ -624,6 +627,22 @@ int btrfs_parse_options(struct btrfs_roo
- goto out;
+@@ -674,6 +677,22 @@ int btrfs_parse_options(struct btrfs_roo
+ info->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
}
break;
+#ifndef CONFIG_TAGGING_NONE
@@ -1909,7 +1908,7 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/super.c linux-3.10.15-vs2.3.6.6/fs/
case Opt_err:
printk(KERN_INFO "btrfs: unrecognized mount option "
"'%s'\n", p);
-@@ -1251,6 +1270,12 @@ static int btrfs_remount(struct super_bl
+@@ -1320,6 +1339,12 @@ static int btrfs_remount(struct super_bl
btrfs_resize_thread_pool(fs_info,
fs_info->thread_pool_size, old_thread_pool_size);
@@ -1922,9 +1921,9 @@ diff -NurpP --minimal linux-3.10.15/fs/btrfs/super.c linux-3.10.15-vs2.3.6.6/fs/
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
goto out;
-diff -NurpP --minimal linux-3.10.15/fs/char_dev.c linux-3.10.15-vs2.3.6.6/fs/char_dev.c
---- linux-3.10.15/fs/char_dev.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/char_dev.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/char_dev.c linux-3.13.1-vs2.3.6.9/fs/char_dev.c
+--- linux-3.13.1/fs/char_dev.c 2014-01-22 20:39:05.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/char_dev.c 2014-01-31 20:38:03.000000000 +0000
@@ -21,6 +21,8 @@
#include <linux/mutex.h>
#include <linux/backing-dev.h>
@@ -1934,7 +1933,7 @@ diff -NurpP --minimal linux-3.10.15/fs/char_dev.c linux-3.10.15-vs2.3.6.6/fs/cha
#include "internal.h"
-@@ -371,14 +373,21 @@ static int chrdev_open(struct inode *ino
+@@ -372,14 +374,21 @@ static int chrdev_open(struct inode *ino
struct cdev *p;
struct cdev *new = NULL;
int ret = 0;
@@ -1957,18 +1956,18 @@ diff -NurpP --minimal linux-3.10.15/fs/char_dev.c linux-3.10.15-vs2.3.6.6/fs/cha
if (!kobj)
return -ENXIO;
new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.10.15/fs/dcache.c linux-3.10.15-vs2.3.6.6/fs/dcache.c
---- linux-3.10.15/fs/dcache.c 2013-07-14 17:01:27.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/dcache.c 2013-08-22 20:29:59.000000000 +0000
-@@ -37,6 +37,7 @@
- #include <linux/rculist_bl.h>
+diff -NurpP --minimal linux-3.13.1/fs/dcache.c linux-3.13.1-vs2.3.6.9/fs/dcache.c
+--- linux-3.13.1/fs/dcache.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/dcache.c 2014-01-31 23:38:38.000000000 +0000
+@@ -38,6 +38,7 @@
#include <linux/prefetch.h>
#include <linux/ratelimit.h>
+ #include <linux/list_lru.h>
+#include <linux/vs_limit.h>
#include "internal.h"
#include "mount.h"
-@@ -578,6 +579,8 @@ int d_invalidate(struct dentry * dentry)
+@@ -640,6 +641,8 @@ int d_invalidate(struct dentry * dentry)
spin_lock(&dentry->d_lock);
}
@@ -1977,15 +1976,15 @@ diff -NurpP --minimal linux-3.10.15/fs/dcache.c linux-3.10.15-vs2.3.6.6/fs/dcach
/*
* Somebody else still using it?
*
-@@ -607,6 +610,7 @@ EXPORT_SYMBOL(d_invalidate);
+@@ -669,6 +672,7 @@ EXPORT_SYMBOL(d_invalidate);
static inline void __dget_dlock(struct dentry *dentry)
{
- dentry->d_count++;
+ dentry->d_lockref.count++;
+ vx_dentry_inc(dentry);
}
static inline void __dget(struct dentry *dentry)
-@@ -1239,6 +1243,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1483,6 +1487,9 @@ struct dentry *__d_alloc(struct super_bl
struct dentry *dentry;
char *dname;
@@ -1995,25 +1994,25 @@ diff -NurpP --minimal linux-3.10.15/fs/dcache.c linux-3.10.15-vs2.3.6.6/fs/dcach
dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
if (!dentry)
return NULL;
-@@ -1271,6 +1278,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1515,6 +1522,7 @@ struct dentry *__d_alloc(struct super_bl
- dentry->d_count = 1;
+ dentry->d_lockref.count = 1;
dentry->d_flags = 0;
+ vx_dentry_inc(dentry);
spin_lock_init(&dentry->d_lock);
seqcount_init(&dentry->d_seq);
dentry->d_inode = NULL;
-@@ -1971,6 +1979,7 @@ struct dentry *__d_lookup(const struct d
+@@ -2278,6 +2286,7 @@ struct dentry *__d_lookup(const struct d
}
- dentry->d_count++;
+ dentry->d_lockref.count++;
+ vx_dentry_inc(dentry);
found = dentry;
spin_unlock(&dentry->d_lock);
break;
-diff -NurpP --minimal linux-3.10.15/fs/devpts/inode.c linux-3.10.15-vs2.3.6.6/fs/devpts/inode.c
---- linux-3.10.15/fs/devpts/inode.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/devpts/inode.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/devpts/inode.c linux-3.13.1-vs2.3.6.9/fs/devpts/inode.c
+--- linux-3.13.1/fs/devpts/inode.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/devpts/inode.c 2014-02-01 01:40:53.000000000 +0000
@@ -25,6 +25,7 @@
#include <linux/parser.h>
#include <linux/fsnotify.h>
@@ -2063,9 +2062,9 @@ diff -NurpP --minimal linux-3.10.15/fs/devpts/inode.c linux-3.10.15-vs2.3.6.6/fs
+ return vx_check(xid, VS_WATCH_P | VS_IDENT);
+}
+
-+static int devpts_readdir(struct file * filp, void * dirent, filldir_t filldir)
++static int devpts_readdir(struct file * filp, struct dir_context *ctx)
+{
-+ return dcache_readdir_filter(filp, dirent, filldir, devpts_filter);
++ return dcache_readdir_filter(filp, ctx, devpts_filter);
+}
+
+static struct file_operations devpts_dir_operations = {
@@ -2073,7 +2072,7 @@ diff -NurpP --minimal linux-3.10.15/fs/devpts/inode.c linux-3.10.15-vs2.3.6.6/fs
+ .release = dcache_dir_close,
+ .llseek = dcache_dir_lseek,
+ .read = generic_read_dir,
-+ .readdir = devpts_readdir,
++ .iterate = devpts_readdir,
+};
+
static const struct super_operations devpts_sops = {
@@ -2091,7 +2090,7 @@ diff -NurpP --minimal linux-3.10.15/fs/devpts/inode.c linux-3.10.15-vs2.3.6.6/fs
s->s_root = d_make_root(inode);
if (s->s_root)
-@@ -592,6 +638,9 @@ struct inode *devpts_pty_new(struct inod
+@@ -593,6 +639,9 @@ struct inode *devpts_pty_new(struct inod
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);
@@ -2101,9 +2100,9 @@ diff -NurpP --minimal linux-3.10.15/fs/devpts/inode.c linux-3.10.15-vs2.3.6.6/fs
inode->i_private = priv;
sprintf(s, "%d", index);
-diff -NurpP --minimal linux-3.10.15/fs/ext2/balloc.c linux-3.10.15-vs2.3.6.6/fs/ext2/balloc.c
---- linux-3.10.15/fs/ext2/balloc.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/balloc.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/balloc.c linux-3.13.1-vs2.3.6.9/fs/ext2/balloc.c
+--- linux-3.13.1/fs/ext2/balloc.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/balloc.c 2014-01-31 20:38:03.000000000 +0000
@@ -693,7 +693,6 @@ ext2_try_to_allocate(struct super_block
start = 0;
end = EXT2_BLOCKS_PER_GROUP(sb);
@@ -2112,9 +2111,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/balloc.c linux-3.10.15-vs2.3.6.6/fs/
BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
repeat:
-diff -NurpP --minimal linux-3.10.15/fs/ext2/ext2.h linux-3.10.15-vs2.3.6.6/fs/ext2/ext2.h
---- linux-3.10.15/fs/ext2/ext2.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/ext2.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/ext2.h linux-3.13.1-vs2.3.6.9/fs/ext2/ext2.h
+--- linux-3.13.1/fs/ext2/ext2.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/ext2.h 2014-01-31 20:38:03.000000000 +0000
@@ -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) */
@@ -2162,18 +2161,18 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/ext2.h linux-3.10.15-vs2.3.6.6/fs/ex
/* ioctl.c */
extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.10.15/fs/ext2/file.c linux-3.10.15-vs2.3.6.6/fs/ext2/file.c
---- linux-3.10.15/fs/ext2/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/file.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/file.c linux-3.13.1-vs2.3.6.9/fs/ext2/file.c
+--- linux-3.13.1/fs/ext2/file.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/file.c 2014-01-31 20:38:03.000000000 +0000
@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_
.setattr = ext2_setattr,
.get_acl = ext2_get_acl,
.fiemap = ext2_fiemap,
+ .sync_flags = ext2_sync_flags,
};
-diff -NurpP --minimal linux-3.10.15/fs/ext2/ialloc.c linux-3.10.15-vs2.3.6.6/fs/ext2/ialloc.c
---- linux-3.10.15/fs/ext2/ialloc.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/ialloc.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/ialloc.c linux-3.13.1-vs2.3.6.9/fs/ext2/ialloc.c
+--- linux-3.13.1/fs/ext2/ialloc.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/ialloc.c 2014-01-31 20:38:03.000000000 +0000
@@ -17,6 +17,7 @@
#include <linux/backing-dev.h>
#include <linux/buffer_head.h>
@@ -2190,9 +2189,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/ialloc.c linux-3.10.15-vs2.3.6.6/fs/
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/ext2/inode.c
---- linux-3.10.15/fs/ext2/inode.c 2013-07-14 17:01:27.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/inode.c 2013-08-22 21:46:54.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/inode.c linux-3.13.1-vs2.3.6.9/fs/ext2/inode.c
+--- linux-3.13.1/fs/ext2/inode.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/inode.c 2014-01-31 20:38:03.000000000 +0000
@@ -32,6 +32,7 @@
#include <linux/fiemap.h>
#include <linux/namei.h>
@@ -2201,7 +2200,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
#include "ext2.h"
#include "acl.h"
#include "xip.h"
-@@ -1180,7 +1181,7 @@ static void ext2_truncate_blocks(struct
+@@ -1182,7 +1183,7 @@ static void ext2_truncate_blocks(struct
return;
if (ext2_inode_is_fast_symlink(inode))
return;
@@ -2210,7 +2209,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
return;
__ext2_truncate_blocks(inode, offset);
}
-@@ -1271,36 +1272,61 @@ void ext2_set_inode_flags(struct inode *
+@@ -1273,36 +1274,61 @@ void ext2_set_inode_flags(struct inode *
{
unsigned int flags = EXT2_I(inode)->i_flags;
@@ -2279,7 +2278,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
}
struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
-@@ -1336,8 +1362,10 @@ struct inode *ext2_iget (struct super_bl
+@@ -1338,8 +1364,10 @@ struct inode *ext2_iget (struct super_bl
i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
}
@@ -2292,7 +2291,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
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);
-@@ -1435,8 +1463,10 @@ static int __ext2_write_inode(struct ino
+@@ -1437,8 +1465,10 @@ static int __ext2_write_inode(struct ino
struct ext2_inode_info *ei = EXT2_I(inode);
struct super_block *sb = inode->i_sb;
ino_t ino = inode->i_ino;
@@ -2305,7 +2304,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
struct buffer_head * bh;
struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
int n;
-@@ -1472,6 +1502,9 @@ static int __ext2_write_inode(struct ino
+@@ -1474,6 +1504,9 @@ static int __ext2_write_inode(struct ino
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
@@ -2315,7 +2314,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
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);
-@@ -1552,7 +1585,8 @@ int ext2_setattr(struct dentry *dentry,
+@@ -1554,7 +1587,8 @@ int ext2_setattr(struct dentry *dentry,
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
@@ -2325,9 +2324,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/inode.c linux-3.10.15-vs2.3.6.6/fs/e
error = dquot_transfer(inode, iattr);
if (error)
return error;
-diff -NurpP --minimal linux-3.10.15/fs/ext2/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ext2/ioctl.c
---- linux-3.10.15/fs/ext2/ioctl.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/ioctl.c linux-3.13.1-vs2.3.6.9/fs/ext2/ioctl.c
+--- linux-3.13.1/fs/ext2/ioctl.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -17,6 +17,16 @@
#include <asm/uaccess.h>
@@ -2377,9 +2376,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-3.10.15/fs/ext2/namei.c linux-3.10.15-vs2.3.6.6/fs/ext2/namei.c
---- linux-3.10.15/fs/ext2/namei.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/namei.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/namei.c linux-3.13.1-vs2.3.6.9/fs/ext2/namei.c
+--- linux-3.13.1/fs/ext2/namei.c 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/namei.c 2014-01-31 20:38:03.000000000 +0000
@@ -32,6 +32,7 @@
#include <linux/pagemap.h>
@@ -2396,17 +2395,16 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/namei.c linux-3.10.15-vs2.3.6.6/fs/e
}
return d_splice_alias(inode, dentry);
}
-@@ -397,6 +399,7 @@ const struct inode_operations ext2_dir_i
+@@ -432,5 +434,6 @@ const struct inode_operations ext2_speci
.removexattr = generic_removexattr,
#endif
.setattr = ext2_setattr,
+ .sync_flags = ext2_sync_flags,
.get_acl = ext2_get_acl,
};
-
-diff -NurpP --minimal linux-3.10.15/fs/ext2/super.c linux-3.10.15-vs2.3.6.6/fs/ext2/super.c
---- linux-3.10.15/fs/ext2/super.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext2/super.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext2/super.c linux-3.13.1-vs2.3.6.9/fs/ext2/super.c
+--- linux-3.13.1/fs/ext2/super.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext2/super.c 2014-01-31 20:38:03.000000000 +0000
@@ -395,7 +395,8 @@ enum {
Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
@@ -2472,9 +2470,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext2/super.c linux-3.10.15-vs2.3.6.6/fs/e
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.10.15/fs/ext3/ext3.h linux-3.10.15-vs2.3.6.6/fs/ext3/ext3.h
---- linux-3.10.15/fs/ext3/ext3.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/ext3.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/ext3.h linux-3.13.1-vs2.3.6.9/fs/ext3/ext3.h
+--- linux-3.13.1/fs/ext3/ext3.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/ext3.h 2014-01-31 20:38:03.000000000 +0000
@@ -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) */
@@ -2526,9 +2524,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/ext3.h linux-3.10.15-vs2.3.6.6/fs/ex
/* ioctl.c */
extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.10.15/fs/ext3/file.c linux-3.10.15-vs2.3.6.6/fs/ext3/file.c
---- linux-3.10.15/fs/ext3/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/file.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/file.c linux-3.13.1-vs2.3.6.9/fs/ext3/file.c
+--- linux-3.13.1/fs/ext3/file.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/file.c 2014-01-31 20:38:03.000000000 +0000
@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
#endif
.get_acl = ext3_get_acl,
@@ -2536,9 +2534,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/file.c linux-3.10.15-vs2.3.6.6/fs/ex
+ .sync_flags = ext3_sync_flags,
};
-diff -NurpP --minimal linux-3.10.15/fs/ext3/ialloc.c linux-3.10.15-vs2.3.6.6/fs/ext3/ialloc.c
---- linux-3.10.15/fs/ext3/ialloc.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/ialloc.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/ialloc.c linux-3.13.1-vs2.3.6.9/fs/ext3/ialloc.c
+--- linux-3.13.1/fs/ext3/ialloc.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/ialloc.c 2014-01-31 20:38:03.000000000 +0000
@@ -14,6 +14,7 @@
#include <linux/quotaops.h>
@@ -2555,9 +2553,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/ialloc.c linux-3.10.15-vs2.3.6.6/fs/
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/ext3/inode.c
---- linux-3.10.15/fs/ext3/inode.c 2013-07-14 17:01:27.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/inode.c 2013-08-22 21:21:18.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/inode.c linux-3.13.1-vs2.3.6.9/fs/ext3/inode.c
+--- linux-3.13.1/fs/ext3/inode.c 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/inode.c 2014-01-31 20:38:03.000000000 +0000
@@ -28,6 +28,8 @@
#include <linux/mpage.h>
#include <linux/namei.h>
@@ -2567,7 +2565,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
#include "ext3.h"
#include "xattr.h"
#include "acl.h"
-@@ -2853,36 +2855,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2855,36 +2857,60 @@ void ext3_set_inode_flags(struct inode *
{
unsigned int flags = EXT3_I(inode)->i_flags;
@@ -2635,7 +2633,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
}
struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2920,8 +2946,10 @@ struct inode *ext3_iget(struct super_blo
+@@ -2922,8 +2948,10 @@ struct inode *ext3_iget(struct super_blo
i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
}
@@ -2648,7 +2646,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
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);
-@@ -3093,8 +3121,10 @@ again:
+@@ -3095,8 +3123,10 @@ again:
ext3_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -2661,7 +2659,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
if(!(test_opt(inode->i_sb, NO_UID32))) {
raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
-@@ -3119,6 +3149,9 @@ again:
+@@ -3121,6 +3151,9 @@ again:
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
@@ -2671,7 +2669,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
disksize = cpu_to_le32(ei->i_disksize);
if (disksize != raw_inode->i_size) {
-@@ -3287,7 +3320,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3289,7 +3322,8 @@ int ext3_setattr(struct dentry *dentry,
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
@@ -2681,7 +2679,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -3309,6 +3343,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3311,6 +3345,8 @@ int ext3_setattr(struct dentry *dentry,
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -2690,9 +2688,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/inode.c linux-3.10.15-vs2.3.6.6/fs/e
error = ext3_mark_inode_dirty(handle, inode);
ext3_journal_stop(handle);
}
-diff -NurpP --minimal linux-3.10.15/fs/ext3/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ext3/ioctl.c
---- linux-3.10.15/fs/ext3/ioctl.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/ioctl.c linux-3.13.1-vs2.3.6.9/fs/ext3/ioctl.c
+--- linux-3.13.1/fs/ext3/ioctl.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -12,6 +12,34 @@
#include <asm/uaccess.h>
#include "ext3.h"
@@ -2760,9 +2758,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-3.10.15/fs/ext3/namei.c linux-3.10.15-vs2.3.6.6/fs/ext3/namei.c
---- linux-3.10.15/fs/ext3/namei.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/namei.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext3/namei.c linux-3.13.1-vs2.3.6.9/fs/ext3/namei.c
+--- linux-3.13.1/fs/ext3/namei.c 2013-11-25 15:46:59.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/namei.c 2014-01-31 20:38:03.000000000 +0000
@@ -25,6 +25,8 @@
*/
@@ -2780,7 +2778,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/namei.c linux-3.10.15-vs2.3.6.6/fs/e
}
}
if ((bh = bh_use[ra_ptr++]) == NULL)
-@@ -2524,6 +2527,7 @@ const struct inode_operations ext3_dir_i
+@@ -2568,6 +2571,7 @@ const struct inode_operations ext3_dir_i
.listxattr = ext3_listxattr,
.removexattr = generic_removexattr,
#endif
@@ -2788,10 +2786,10 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/namei.c linux-3.10.15-vs2.3.6.6/fs/e
.get_acl = ext3_get_acl,
};
-diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/ext3/super.c
---- linux-3.10.15/fs/ext3/super.c 2013-07-14 17:01:27.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext3/super.c 2013-08-22 20:29:59.000000000 +0000
-@@ -813,7 +813,8 @@ enum {
+diff -NurpP --minimal linux-3.13.1/fs/ext3/super.c linux-3.13.1-vs2.3.6.9/fs/ext3/super.c
+--- linux-3.13.1/fs/ext3/super.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext3/super.c 2014-01-31 20:38:03.000000000 +0000
+@@ -826,7 +826,8 @@ enum {
Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
@@ -2801,7 +2799,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/e
};
static const match_table_t tokens = {
-@@ -870,6 +871,9 @@ static const match_table_t tokens = {
+@@ -884,6 +885,9 @@ static const match_table_t tokens = {
{Opt_barrier, "barrier"},
{Opt_nobarrier, "nobarrier"},
{Opt_resize, "resize"},
@@ -2811,7 +2809,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/e
{Opt_err, NULL},
};
-@@ -1037,6 +1041,20 @@ static int parse_options (char *options,
+@@ -1056,6 +1060,20 @@ static int parse_options (char *options,
case Opt_nouid32:
set_opt (sbi->s_mount_opt, NO_UID32);
break;
@@ -2832,7 +2830,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/e
case Opt_nocheck:
clear_opt (sbi->s_mount_opt, CHECK);
break;
-@@ -1734,6 +1752,9 @@ static int ext3_fill_super (struct super
+@@ -1788,6 +1806,9 @@ static int ext3_fill_super (struct super
NULL, 0))
goto failed_mount;
@@ -2842,7 +2840,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/e
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -2629,6 +2650,14 @@ static int ext3_remount (struct super_bl
+@@ -2683,6 +2704,14 @@ static int ext3_remount (struct super_bl
if (test_opt(sb, ABORT))
ext3_abort(sb, __func__, "Abort forced by user");
@@ -2857,10 +2855,10 @@ diff -NurpP --minimal linux-3.10.15/fs/ext3/super.c linux-3.10.15-vs2.3.6.6/fs/e
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ext4/ext4.h
---- linux-3.10.15/fs/ext4/ext4.h 2013-07-14 17:01:27.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/ext4.h 2013-08-22 20:29:59.000000000 +0000
-@@ -387,7 +387,10 @@ struct flex_groups {
+diff -NurpP --minimal linux-3.13.1/fs/ext4/ext4.h linux-3.13.1-vs2.3.6.9/fs/ext4/ext4.h
+--- linux-3.13.1/fs/ext4/ext4.h 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/ext4.h 2014-01-31 20:38:03.000000000 +0000
+@@ -385,7 +385,10 @@ struct flex_groups {
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
#define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */
@@ -2871,7 +2869,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ex
#define EXT4_RESERVED_FL 0x80000000 /* reserved for ext4 lib */
#define EXT4_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
-@@ -663,7 +666,7 @@ struct ext4_inode {
+@@ -670,7 +673,7 @@ struct ext4_inode {
__le16 l_i_uid_high; /* these 2 fields */
__le16 l_i_gid_high; /* were reserved2[0] */
__le16 l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */
@@ -2880,7 +2878,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ex
} linux2;
struct {
__le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
-@@ -781,6 +784,7 @@ do { \
+@@ -788,6 +791,7 @@ do { \
#define i_gid_low i_gid
#define i_uid_high osd2.linux2.l_i_uid_high
#define i_gid_high osd2.linux2.l_i_gid_high
@@ -2888,7 +2886,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ex
#define i_checksum_lo osd2.linux2.l_i_checksum_lo
#elif defined(__GNU__)
-@@ -958,6 +962,7 @@ struct ext4_inode_info {
+@@ -974,6 +978,7 @@ struct ext4_inode_info {
#define EXT4_MOUNT_POSIX_ACL 0x08000 /* POSIX Access Control Lists */
#define EXT4_MOUNT_NO_AUTO_DA_ALLOC 0x10000 /* No auto delalloc mapping */
#define EXT4_MOUNT_BARRIER 0x20000 /* Use block barriers */
@@ -2896,7 +2894,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ex
#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 */
-@@ -2538,6 +2543,7 @@ extern struct buffer_head *ext4_get_firs
+@@ -2651,6 +2656,7 @@ extern struct buffer_head *ext4_get_firs
extern int ext4_inline_data_fiemap(struct inode *inode,
struct fiemap_extent_info *fieinfo,
int *has_inline);
@@ -2904,19 +2902,19 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ext4.h linux-3.10.15-vs2.3.6.6/fs/ex
extern int ext4_try_to_evict_inline_data(handle_t *handle,
struct inode *inode,
int needed);
-diff -NurpP --minimal linux-3.10.15/fs/ext4/file.c linux-3.10.15-vs2.3.6.6/fs/ext4/file.c
---- linux-3.10.15/fs/ext4/file.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/file.c 2013-08-22 20:29:59.000000000 +0000
-@@ -651,5 +651,6 @@ const struct inode_operations ext4_file_
+diff -NurpP --minimal linux-3.13.1/fs/ext4/file.c linux-3.13.1-vs2.3.6.9/fs/ext4/file.c
+--- linux-3.13.1/fs/ext4/file.c 2013-11-25 15:46:59.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/file.c 2014-01-31 20:38:03.000000000 +0000
+@@ -618,5 +618,6 @@ const struct inode_operations ext4_file_
.removexattr = generic_removexattr,
.get_acl = ext4_get_acl,
.fiemap = ext4_fiemap,
+ .sync_flags = ext4_sync_flags,
};
-diff -NurpP --minimal linux-3.10.15/fs/ext4/ialloc.c linux-3.10.15-vs2.3.6.6/fs/ext4/ialloc.c
---- linux-3.10.15/fs/ext4/ialloc.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/ialloc.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext4/ialloc.c linux-3.13.1-vs2.3.6.9/fs/ext4/ialloc.c
+--- linux-3.13.1/fs/ext4/ialloc.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/ialloc.c 2014-01-31 20:38:03.000000000 +0000
@@ -22,6 +22,7 @@
#include <linux/random.h>
#include <linux/bitops.h>
@@ -2925,7 +2923,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ialloc.c linux-3.10.15-vs2.3.6.6/fs/
#include <asm/byteorder.h>
#include "ext4.h"
-@@ -679,6 +680,7 @@ struct inode *__ext4_new_inode(handle_t
+@@ -731,6 +732,7 @@ struct inode *__ext4_new_inode(handle_t
inode->i_mode = mode;
inode->i_uid = current_fsuid();
inode->i_gid = dir->i_gid;
@@ -2933,9 +2931,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ialloc.c linux-3.10.15-vs2.3.6.6/fs/
} else
inode_init_owner(inode, dir, mode);
dquot_initialize(inode);
-diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/ext4/inode.c
---- linux-3.10.15/fs/ext4/inode.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/inode.c 2013-10-09 17:37:22.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext4/inode.c linux-3.13.1-vs2.3.6.9/fs/ext4/inode.c
+--- linux-3.13.1/fs/ext4/inode.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/inode.c 2014-01-31 20:38:03.000000000 +0000
@@ -38,6 +38,7 @@
#include <linux/slab.h>
#include <linux/ratelimit.h>
@@ -2944,7 +2942,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
#include "ext4_jbd2.h"
#include "xattr.h"
-@@ -4057,41 +4058,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -3927,41 +3928,64 @@ void ext4_set_inode_flags(struct inode *
{
unsigned int flags = EXT4_I(inode)->i_flags;
@@ -3016,7 +3014,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
} while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
}
-@@ -4196,8 +4220,10 @@ struct inode *ext4_iget(struct super_blo
+@@ -4066,8 +4090,10 @@ struct inode *ext4_iget(struct super_blo
i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
}
@@ -3029,7 +3027,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */
-@@ -4425,8 +4451,10 @@ static int ext4_do_update_inode(handle_t
+@@ -4295,8 +4321,10 @@ static int ext4_do_update_inode(handle_t
ext4_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -3042,7 +3040,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
if (!(test_opt(inode->i_sb, NO_UID32))) {
raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
-@@ -4449,6 +4477,9 @@ static int ext4_do_update_inode(handle_t
+@@ -4319,6 +4347,9 @@ static int ext4_do_update_inode(handle_t
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
@@ -3052,7 +3050,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4679,7 +4710,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4550,7 +4581,8 @@ int ext4_setattr(struct dentry *dentry,
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
@@ -3062,7 +3060,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -4702,6 +4734,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4573,6 +4605,8 @@ int ext4_setattr(struct dentry *dentry,
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
@@ -3071,9 +3069,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/inode.c linux-3.10.15-vs2.3.6.6/fs/e
error = ext4_mark_inode_dirty(handle, inode);
ext4_journal_stop(handle);
}
-diff -NurpP --minimal linux-3.10.15/fs/ext4/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ext4/ioctl.c
---- linux-3.10.15/fs/ext4/ioctl.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/ioctl.c 2013-08-22 22:22:39.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext4/ioctl.c linux-3.13.1-vs2.3.6.9/fs/ext4/ioctl.c
+--- linux-3.13.1/fs/ext4/ioctl.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -14,6 +14,7 @@
#include <linux/compat.h>
#include <linux/mount.h>
@@ -3082,7 +3080,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
#include <asm/uaccess.h>
#include "ext4_jbd2.h"
#include "ext4.h"
-@@ -214,6 +215,33 @@ swap_boot_out:
+@@ -213,6 +214,33 @@ swap_boot_out:
return err;
}
@@ -3116,7 +3114,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = file_inode(filp);
-@@ -247,6 +275,11 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -246,6 +274,11 @@ long ext4_ioctl(struct file *filp, unsig
flags = ext4_mask_flags(inode->i_mode, flags);
@@ -3128,7 +3126,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
err = -EPERM;
mutex_lock(&inode->i_mutex);
/* Is it quota file? Do not allow user to mess with it */
-@@ -264,7 +297,9 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -263,7 +296,9 @@ long ext4_ioctl(struct file *filp, unsig
*
* This test looks nicer. Thanks to Pauline Middelink
*/
@@ -3139,9 +3137,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/ioctl.c linux-3.10.15-vs2.3.6.6/fs/e
if (!capable(CAP_LINUX_IMMUTABLE))
goto flags_out;
}
-diff -NurpP --minimal linux-3.10.15/fs/ext4/namei.c linux-3.10.15-vs2.3.6.6/fs/ext4/namei.c
---- linux-3.10.15/fs/ext4/namei.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/namei.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ext4/namei.c linux-3.13.1-vs2.3.6.9/fs/ext4/namei.c
+--- linux-3.13.1/fs/ext4/namei.c 2013-11-25 15:46:59.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/namei.c 2014-01-31 20:38:03.000000000 +0000
@@ -34,6 +34,7 @@
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
@@ -3158,7 +3156,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/namei.c linux-3.10.15-vs2.3.6.6/fs/e
}
if ((bh = bh_use[ra_ptr++]) == NULL)
goto next;
-@@ -3177,6 +3179,7 @@ const struct inode_operations ext4_dir_i
+@@ -3226,6 +3228,7 @@ const struct inode_operations ext4_dir_i
.removexattr = generic_removexattr,
.get_acl = ext4_get_acl,
.fiemap = ext4_fiemap,
@@ -3166,10 +3164,10 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/namei.c linux-3.10.15-vs2.3.6.6/fs/e
};
const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/ext4/super.c
---- linux-3.10.15/fs/ext4/super.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ext4/super.c 2013-08-22 20:29:59.000000000 +0000
-@@ -1129,7 +1129,7 @@ enum {
+diff -NurpP --minimal linux-3.13.1/fs/ext4/super.c linux-3.13.1-vs2.3.6.9/fs/ext4/super.c
+--- linux-3.13.1/fs/ext4/super.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ext4/super.c 2014-01-31 20:38:03.000000000 +0000
+@@ -1162,7 +1162,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,
@@ -3178,7 +3176,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/e
};
static const match_table_t tokens = {
-@@ -1209,6 +1209,9 @@ static const match_table_t tokens = {
+@@ -1243,6 +1243,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 */
@@ -3188,7 +3186,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/e
{Opt_err, NULL},
};
-@@ -1439,6 +1442,20 @@ static int handle_mount_opt(struct super
+@@ -1475,6 +1478,20 @@ static int handle_mount_opt(struct super
case Opt_i_version:
sb->s_flags |= MS_I_VERSION;
return 1;
@@ -3209,7 +3207,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/e
}
for (m = ext4_mount_opts; m->token != Opt_err; m++)
-@@ -3452,6 +3469,9 @@ static int ext4_fill_super(struct super_
+@@ -3564,6 +3581,9 @@ static int ext4_fill_super(struct super_
clear_opt(sb, DELALLOC);
}
@@ -3219,7 +3217,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/e
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -4664,6 +4684,14 @@ static int ext4_remount(struct super_blo
+@@ -4812,6 +4832,14 @@ static int ext4_remount(struct super_blo
if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
ext4_abort(sb, "Abort forced by user");
@@ -3234,9 +3232,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ext4/super.c linux-3.10.15-vs2.3.6.6/fs/e
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.10.15/fs/fcntl.c linux-3.10.15-vs2.3.6.6/fs/fcntl.c
---- linux-3.10.15/fs/fcntl.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/fcntl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/fcntl.c linux-3.13.1-vs2.3.6.9/fs/fcntl.c
+--- linux-3.13.1/fs/fcntl.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/fcntl.c 2014-01-31 20:38:03.000000000 +0000
@@ -21,6 +21,7 @@
#include <linux/rcupdate.h>
#include <linux/pid_namespace.h>
@@ -3245,7 +3243,7 @@ diff -NurpP --minimal linux-3.10.15/fs/fcntl.c linux-3.10.15-vs2.3.6.6/fs/fcntl.
#include <asm/poll.h>
#include <asm/siginfo.h>
-@@ -378,6 +379,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
+@@ -377,6 +378,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
if (!f.file)
goto out;
@@ -3254,9 +3252,9 @@ diff -NurpP --minimal linux-3.10.15/fs/fcntl.c linux-3.10.15-vs2.3.6.6/fs/fcntl.
if (unlikely(f.file->f_mode & FMODE_PATH)) {
if (!check_fcntl_cmd(cmd))
-diff -NurpP --minimal linux-3.10.15/fs/file.c linux-3.10.15-vs2.3.6.6/fs/file.c
---- linux-3.10.15/fs/file.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/file.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/file.c linux-3.13.1-vs2.3.6.9/fs/file.c
+--- linux-3.13.1/fs/file.c 2013-07-14 17:01:28.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/file.c 2014-01-31 20:38:03.000000000 +0000
@@ -22,6 +22,7 @@
#include <linux/spinlock.h>
#include <linux/rcupdate.h>
@@ -3311,9 +3309,9 @@ diff -NurpP --minimal linux-3.10.15/fs/file.c linux-3.10.15-vs2.3.6.6/fs/file.c
return fd;
-diff -NurpP --minimal linux-3.10.15/fs/file_table.c linux-3.10.15-vs2.3.6.6/fs/file_table.c
---- linux-3.10.15/fs/file_table.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/file_table.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/file_table.c linux-3.13.1-vs2.3.6.9/fs/file_table.c
+--- linux-3.13.1/fs/file_table.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/file_table.c 2014-02-01 00:00:01.000000000 +0000
@@ -26,6 +26,8 @@
#include <linux/hardirq.h>
#include <linux/task_work.h>
@@ -3323,7 +3321,7 @@ diff -NurpP --minimal linux-3.10.15/fs/file_table.c linux-3.10.15-vs2.3.6.6/fs/f
#include <linux/atomic.h>
-@@ -140,6 +142,8 @@ struct file *get_empty_filp(void)
+@@ -137,6 +139,8 @@ struct file *get_empty_filp(void)
spin_lock_init(&f->f_lock);
eventpoll_init_file(f);
/* f->f_version: 0 */
@@ -3332,7 +3330,7 @@ diff -NurpP --minimal linux-3.10.15/fs/file_table.c linux-3.10.15-vs2.3.6.6/fs/f
return f;
over:
-@@ -257,6 +261,8 @@ static void __fput(struct file *file)
+@@ -254,6 +258,8 @@ static void __fput(struct file *file)
i_readcount_dec(inode);
if (file->f_mode & FMODE_WRITE)
drop_file_write_access(file);
@@ -3341,18 +3339,18 @@ diff -NurpP --minimal linux-3.10.15/fs/file_table.c linux-3.10.15-vs2.3.6.6/fs/f
file->f_path.dentry = NULL;
file->f_path.mnt = NULL;
file->f_inode = NULL;
-@@ -345,6 +351,8 @@ void put_filp(struct file *file)
+@@ -340,6 +346,8 @@ void put_filp(struct file *file)
{
if (atomic_long_dec_and_test(&file->f_count)) {
security_file_free(file);
+ vx_files_dec(file);
+ file->f_xid = 0;
- file_sb_list_del(file);
file_free(file);
}
-diff -NurpP --minimal linux-3.10.15/fs/fs_struct.c linux-3.10.15-vs2.3.6.6/fs/fs_struct.c
---- linux-3.10.15/fs/fs_struct.c 2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/fs_struct.c 2013-08-22 20:29:59.000000000 +0000
+ }
+diff -NurpP --minimal linux-3.13.1/fs/fs_struct.c linux-3.13.1-vs2.3.6.9/fs/fs_struct.c
+--- linux-3.13.1/fs/fs_struct.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/fs_struct.c 2014-01-31 20:38:03.000000000 +0000
@@ -4,6 +4,7 @@
#include <linux/path.h>
#include <linux/slab.h>
@@ -3377,10 +3375,10 @@ diff -NurpP --minimal linux-3.10.15/fs/fs_struct.c linux-3.10.15-vs2.3.6.6/fs/fs
}
return fs;
}
-diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gfs2/file.c
---- linux-3.10.15/fs/gfs2/file.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/gfs2/file.c 2013-08-22 20:29:59.000000000 +0000
-@@ -144,6 +144,9 @@ static const u32 fsflags_to_gfs2[32] = {
+diff -NurpP --minimal linux-3.13.1/fs/gfs2/file.c linux-3.13.1-vs2.3.6.9/fs/gfs2/file.c
+--- linux-3.13.1/fs/gfs2/file.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/gfs2/file.c 2014-01-31 20:38:03.000000000 +0000
+@@ -137,6 +137,9 @@ static const u32 fsflags_to_gfs2[32] = {
[12] = GFS2_DIF_EXHASH,
[14] = GFS2_DIF_INHERIT_JDATA,
[17] = GFS2_DIF_TOPDIR,
@@ -3390,7 +3388,7 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gf
};
static const u32 gfs2_to_fsflags[32] = {
-@@ -154,6 +157,9 @@ static const u32 gfs2_to_fsflags[32] = {
+@@ -147,6 +150,9 @@ static const u32 gfs2_to_fsflags[32] = {
[gfs2fl_ExHash] = FS_INDEX_FL,
[gfs2fl_TopLevel] = FS_TOPDIR_FL,
[gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL,
@@ -3400,7 +3398,7 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gf
};
static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
-@@ -184,12 +190,18 @@ void gfs2_set_inode_flags(struct inode *
+@@ -177,12 +183,18 @@ void gfs2_set_inode_flags(struct inode *
{
struct gfs2_inode *ip = GFS2_I(inode);
unsigned int flags = inode->i_flags;
@@ -3420,7 +3418,7 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gf
if (ip->i_diskflags & GFS2_DIF_APPENDONLY)
flags |= S_APPEND;
if (ip->i_diskflags & GFS2_DIF_NOATIME)
-@@ -197,6 +209,43 @@ void gfs2_set_inode_flags(struct inode *
+@@ -190,6 +202,43 @@ void gfs2_set_inode_flags(struct inode *
if (ip->i_diskflags & GFS2_DIF_SYNC)
flags |= S_SYNC;
inode->i_flags = flags;
@@ -3464,7 +3462,7 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gf
}
/* Flags that can be set by user space */
-@@ -310,6 +359,37 @@ static int gfs2_set_flags(struct file *f
+@@ -303,6 +352,37 @@ static int gfs2_set_flags(struct file *f
return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA);
}
@@ -3502,10 +3500,10 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/file.c linux-3.10.15-vs2.3.6.6/fs/gf
static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch(cmd) {
-diff -NurpP --minimal linux-3.10.15/fs/gfs2/inode.h linux-3.10.15-vs2.3.6.6/fs/gfs2/inode.h
---- linux-3.10.15/fs/gfs2/inode.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/gfs2/inode.h 2013-08-22 20:29:59.000000000 +0000
-@@ -117,6 +117,7 @@ extern const struct file_operations gfs2
+diff -NurpP --minimal linux-3.13.1/fs/gfs2/inode.h linux-3.13.1-vs2.3.6.9/fs/gfs2/inode.h
+--- linux-3.13.1/fs/gfs2/inode.h 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/gfs2/inode.h 2014-01-31 20:38:03.000000000 +0000
+@@ -118,6 +118,7 @@ extern const struct file_operations gfs2
extern const struct file_operations gfs2_dir_fops_nolock;
extern void gfs2_set_inode_flags(struct inode *inode);
@@ -3513,9 +3511,9 @@ diff -NurpP --minimal linux-3.10.15/fs/gfs2/inode.h linux-3.10.15-vs2.3.6.6/fs/g
#ifdef CONFIG_GFS2_FS_LOCKING_DLM
extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.10.15/fs/hostfs/hostfs.h linux-3.10.15-vs2.3.6.6/fs/hostfs/hostfs.h
---- linux-3.10.15/fs/hostfs/hostfs.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/hostfs/hostfs.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/hostfs/hostfs.h linux-3.13.1-vs2.3.6.9/fs/hostfs/hostfs.h
+--- linux-3.13.1/fs/hostfs/hostfs.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/hostfs/hostfs.h 2014-01-31 20:38:03.000000000 +0000
@@ -42,6 +42,7 @@ struct hostfs_iattr {
unsigned short ia_mode;
uid_t ia_uid;
@@ -3524,18 +3522,18 @@ diff -NurpP --minimal linux-3.10.15/fs/hostfs/hostfs.h linux-3.10.15-vs2.3.6.6/f
loff_t ia_size;
struct timespec ia_atime;
struct timespec ia_mtime;
-diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.c
---- linux-3.10.15/fs/inode.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/inode.c 2013-08-22 20:29:59.000000000 +0000
-@@ -17,6 +17,7 @@
- #include <linux/prefetch.h>
+diff -NurpP --minimal linux-3.13.1/fs/inode.c linux-3.13.1-vs2.3.6.9/fs/inode.c
+--- linux-3.13.1/fs/inode.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/inode.c 2014-01-31 23:33:47.000000000 +0000
+@@ -18,6 +18,7 @@
#include <linux/buffer_head.h> /* for inode_has_buffers */
#include <linux/ratelimit.h>
+ #include <linux/list_lru.h>
+#include <linux/vs_tag.h>
#include "internal.h"
/*
-@@ -128,6 +129,8 @@ int inode_init_always(struct super_block
+@@ -129,6 +130,8 @@ int inode_init_always(struct super_block
struct address_space *const mapping = &inode->i_data;
inode->i_sb = sb;
@@ -3544,7 +3542,7 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
inode->i_blkbits = sb->s_blocksize_bits;
inode->i_flags = 0;
atomic_set(&inode->i_count, 1);
-@@ -137,6 +140,7 @@ int inode_init_always(struct super_block
+@@ -138,6 +141,7 @@ int inode_init_always(struct super_block
inode->i_opflags = 0;
i_uid_write(inode, 0);
i_gid_write(inode, 0);
@@ -3552,7 +3550,7 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
atomic_set(&inode->i_writecount, 0);
inode->i_size = 0;
inode->i_blocks = 0;
-@@ -149,6 +153,7 @@ int inode_init_always(struct super_block
+@@ -150,6 +154,7 @@ int inode_init_always(struct super_block
inode->i_bdev = NULL;
inode->i_cdev = NULL;
inode->i_rdev = 0;
@@ -3560,7 +3558,7 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
inode->dirtied_when = 0;
if (security_inode_alloc(inode))
-@@ -483,6 +488,8 @@ void __insert_inode_hash(struct inode *i
+@@ -477,6 +482,8 @@ void __insert_inode_hash(struct inode *i
}
EXPORT_SYMBOL(__insert_inode_hash);
@@ -3569,7 +3567,7 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
/**
* __remove_inode_hash - remove an inode from the hash
* @inode: inode to unhash
-@@ -1799,9 +1806,11 @@ void init_special_inode(struct inode *in
+@@ -1802,9 +1809,11 @@ void init_special_inode(struct inode *in
if (S_ISCHR(mode)) {
inode->i_fop = &def_chr_fops;
inode->i_rdev = rdev;
@@ -3581,7 +3579,7 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
} else if (S_ISFIFO(mode))
inode->i_fop = &pipefifo_fops;
else if (S_ISSOCK(mode))
-@@ -1830,6 +1839,7 @@ void inode_init_owner(struct inode *inod
+@@ -1833,6 +1842,7 @@ void inode_init_owner(struct inode *inod
} else
inode->i_gid = current_fsgid();
inode->i_mode = mode;
@@ -3589,9 +3587,9 @@ diff -NurpP --minimal linux-3.10.15/fs/inode.c linux-3.10.15-vs2.3.6.6/fs/inode.
}
EXPORT_SYMBOL(inode_init_owner);
-diff -NurpP --minimal linux-3.10.15/fs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ioctl.c
---- linux-3.10.15/fs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ioctl.c linux-3.13.1-vs2.3.6.9/fs/ioctl.c
+--- linux-3.13.1/fs/ioctl.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -15,6 +15,9 @@
#include <linux/writeback.h>
#include <linux/buffer_head.h>
@@ -3602,9 +3600,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ioctl.
#include <asm/ioctls.h>
-diff -NurpP --minimal linux-3.10.15/fs/ioprio.c linux-3.10.15-vs2.3.6.6/fs/ioprio.c
---- linux-3.10.15/fs/ioprio.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ioprio.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ioprio.c linux-3.13.1-vs2.3.6.9/fs/ioprio.c
+--- linux-3.13.1/fs/ioprio.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ioprio.c 2014-01-31 20:38:03.000000000 +0000
@@ -28,6 +28,7 @@
#include <linux/syscalls.h>
#include <linux/security.h>
@@ -3631,9 +3629,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ioprio.c linux-3.10.15-vs2.3.6.6/fs/iopri
tmpio = get_task_ioprio(p);
if (tmpio < 0)
continue;
-diff -NurpP --minimal linux-3.10.15/fs/jfs/file.c linux-3.10.15-vs2.3.6.6/fs/jfs/file.c
---- linux-3.10.15/fs/jfs/file.c 2013-02-19 13:58:48.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/file.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/file.c linux-3.13.1-vs2.3.6.9/fs/jfs/file.c
+--- linux-3.13.1/fs/jfs/file.c 2013-02-19 13:58:48.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/file.c 2014-01-31 20:38:03.000000000 +0000
@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
@@ -3652,9 +3650,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/file.c linux-3.10.15-vs2.3.6.6/fs/jfs
};
const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.10.15/fs/jfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/jfs/ioctl.c
---- linux-3.10.15/fs/jfs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/ioctl.c linux-3.13.1-vs2.3.6.9/fs/jfs/ioctl.c
+--- linux-3.13.1/fs/jfs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -12,6 +12,7 @@
#include <linux/time.h>
#include <linux/sched.h>
@@ -3712,9 +3710,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/ioctl.c linux-3.10.15-vs2.3.6.6/fs/jf
flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
jfs_inode->mode2 = flags;
-diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_dinode.h linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_dinode.h
---- linux-3.10.15/fs/jfs/jfs_dinode.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_dinode.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/jfs_dinode.h linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_dinode.h
+--- linux-3.13.1/fs/jfs/jfs_dinode.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_dinode.h 2014-01-31 20:38:03.000000000 +0000
@@ -161,9 +161,13 @@ struct dinode {
#define JFS_APPEND_FL 0x01000000 /* writes to file may only append */
@@ -3731,9 +3729,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_dinode.h linux-3.10.15-vs2.3.6.6/
#define JFS_FL_INHERIT 0x03C80000
/* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_filsys.h linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_filsys.h
---- linux-3.10.15/fs/jfs/jfs_filsys.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_filsys.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/jfs_filsys.h linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_filsys.h
+--- linux-3.13.1/fs/jfs/jfs_filsys.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_filsys.h 2014-01-31 20:38:03.000000000 +0000
@@ -266,6 +266,7 @@
#define JFS_NAME_MAX 255
#define JFS_PATH_MAX BPSIZE
@@ -3742,9 +3740,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_filsys.h linux-3.10.15-vs2.3.6.6/
/*
* file system state (superblock state)
-diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_imap.c linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_imap.c
---- linux-3.10.15/fs/jfs/jfs_imap.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_imap.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/jfs_imap.c linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_imap.c
+--- linux-3.13.1/fs/jfs/jfs_imap.c 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_imap.c 2014-01-31 20:38:03.000000000 +0000
@@ -46,6 +46,7 @@
#include <linux/pagemap.h>
#include <linux/quotaops.h>
@@ -3753,7 +3751,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_imap.c linux-3.10.15-vs2.3.6.6/fs
#include "jfs_incore.h"
#include "jfs_inode.h"
-@@ -3058,6 +3059,8 @@ static int copy_from_dinode(struct dinod
+@@ -3047,6 +3048,8 @@ static int copy_from_dinode(struct dinod
{
struct jfs_inode_info *jfs_ip = JFS_IP(ip);
struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
@@ -3762,7 +3760,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_imap.c linux-3.10.15-vs2.3.6.6/fs
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
+@@ -3067,14 +3070,18 @@ static int copy_from_dinode(struct dinod
}
set_nlink(ip, le32_to_cpu(dip->di_nlink));
@@ -3783,7 +3781,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_imap.c linux-3.10.15-vs2.3.6.6/fs
if (!gid_valid(sbi->gid))
ip->i_gid = jfs_ip->saved_gid;
else {
-@@ -3150,16 +3157,14 @@ static void copy_to_dinode(struct dinode
+@@ -3139,16 +3146,14 @@ static void copy_to_dinode(struct dinode
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);
@@ -3808,9 +3806,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_imap.c linux-3.10.15-vs2.3.6.6/fs
jfs_get_inode_flags(jfs_ip);
/*
* mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_inode.c linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_inode.c
---- linux-3.10.15/fs/jfs/jfs_inode.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_inode.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/jfs_inode.c linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_inode.c
+--- linux-3.13.1/fs/jfs/jfs_inode.c 2013-11-25 15:46:59.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_inode.c 2014-01-31 20:38:03.000000000 +0000
@@ -18,6 +18,7 @@
#include <linux/fs.h>
@@ -3884,9 +3882,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_inode.c linux-3.10.15-vs2.3.6.6/f
}
/*
-diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_inode.h linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_inode.h
---- linux-3.10.15/fs/jfs/jfs_inode.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/jfs_inode.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/jfs_inode.h linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_inode.h
+--- linux-3.13.1/fs/jfs/jfs_inode.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/jfs_inode.h 2014-01-31 20:38:03.000000000 +0000
@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s
extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid,
int fh_len, int fh_type);
@@ -3895,9 +3893,9 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/jfs_inode.h linux-3.10.15-vs2.3.6.6/f
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.10.15/fs/jfs/namei.c linux-3.10.15-vs2.3.6.6/fs/jfs/namei.c
---- linux-3.10.15/fs/jfs/namei.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/namei.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/jfs/namei.c linux-3.13.1-vs2.3.6.9/fs/jfs/namei.c
+--- linux-3.13.1/fs/jfs/namei.c 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/namei.c 2014-01-31 20:38:03.000000000 +0000
@@ -22,6 +22,7 @@
#include <linux/ctype.h>
#include <linux/quotaops.h>
@@ -3922,10 +3920,10 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/namei.c linux-3.10.15-vs2.3.6.6/fs/jf
};
const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jfs/super.c
---- linux-3.10.15/fs/jfs/super.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/jfs/super.c 2013-08-22 20:29:59.000000000 +0000
-@@ -199,7 +199,8 @@ enum {
+diff -NurpP --minimal linux-3.13.1/fs/jfs/super.c linux-3.13.1-vs2.3.6.9/fs/jfs/super.c
+--- linux-3.13.1/fs/jfs/super.c 2013-11-25 15:45:01.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/jfs/super.c 2014-01-31 20:38:03.000000000 +0000
+@@ -203,7 +203,8 @@ enum {
Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask,
@@ -3935,7 +3933,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jf
};
static const match_table_t tokens = {
-@@ -209,6 +210,10 @@ static const match_table_t tokens = {
+@@ -213,6 +214,10 @@ static const match_table_t tokens = {
{Opt_resize, "resize=%u"},
{Opt_resize_nosize, "resize"},
{Opt_errors, "errors=%s"},
@@ -3946,7 +3944,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jf
{Opt_ignore, "noquota"},
{Opt_ignore, "quota"},
{Opt_usrquota, "usrquota"},
-@@ -385,7 +390,20 @@ static int parse_options(char *options,
+@@ -389,7 +394,20 @@ static int parse_options(char *options,
}
break;
}
@@ -3968,7 +3966,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jf
default:
printk("jfs: Unrecognized mount option \"%s\" "
" or missing value\n", p);
-@@ -417,6 +435,12 @@ static int jfs_remount(struct super_bloc
+@@ -421,6 +439,12 @@ static int jfs_remount(struct super_bloc
return -EINVAL;
}
@@ -3981,7 +3979,7 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jf
if (newLVSize) {
if (sb->s_flags & MS_RDONLY) {
pr_err("JFS: resize requires volume" \
-@@ -502,6 +526,9 @@ static int jfs_fill_super(struct super_b
+@@ -506,6 +530,9 @@ static int jfs_fill_super(struct super_b
#ifdef CONFIG_JFS_POSIX_ACL
sb->s_flags |= MS_POSIXACL;
#endif
@@ -3991,67 +3989,73 @@ diff -NurpP --minimal linux-3.10.15/fs/jfs/super.c linux-3.10.15-vs2.3.6.6/fs/jf
if (newLVSize) {
pr_err("resize option for remount only\n");
-diff -NurpP --minimal linux-3.10.15/fs/libfs.c linux-3.10.15-vs2.3.6.6/fs/libfs.c
---- linux-3.10.15/fs/libfs.c 2013-02-19 13:58:48.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/libfs.c 2013-08-22 20:29:59.000000000 +0000
-@@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
+diff -NurpP --minimal linux-3.13.1/fs/libfs.c linux-3.13.1-vs2.3.6.9/fs/libfs.c
+--- linux-3.13.1/fs/libfs.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/libfs.c 2014-02-01 01:35:46.000000000 +0000
+@@ -145,13 +145,14 @@ static inline unsigned char dt_type(stru
* both impossible due to the lock on directory.
*/
--int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
+-int dcache_readdir(struct file *file, struct dir_context *ctx)
+static inline int do_dcache_readdir_filter(struct file *filp,
-+ void *dirent, filldir_t filldir, int (*filter)(struct dentry *dentry))
++ struct dir_context *ctx, int (*filter)(struct dentry *dentry))
{
- struct dentry *dentry = filp->f_path.dentry;
- struct dentry *cursor = filp->private_data;
-@@ -166,6 +167,8 @@ int dcache_readdir(struct file * filp, v
- for (p=q->next; p != &dentry->d_subdirs; p=p->next) {
- struct dentry *next;
- next = list_entry(p, struct dentry, d_u.d_child);
-+ if (filter && !filter(next))
-+ continue;
- 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
+- struct dentry *dentry = file->f_path.dentry;
+- struct dentry *cursor = file->private_data;
++ struct dentry *dentry = filp->f_path.dentry;
++ struct dentry *cursor = filp->private_data;
+ struct list_head *p, *q = &cursor->d_u.d_child;
+
+- if (!dir_emit_dots(file, ctx))
++ if (!dir_emit_dots(filp, ctx))
+ return 0;
+ spin_lock(&dentry->d_lock);
+ if (ctx->pos == 2)
+@@ -159,6 +160,8 @@ int dcache_readdir(struct file *file, st
+
+ for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
+ struct dentry *next = list_entry(p, struct dentry, d_u.d_child);
++ if (filter && !filter(next))
++ continue;
+ spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
+ if (!simple_positive(next)) {
+ spin_unlock(&next->d_lock);
+@@ -181,8 +184,22 @@ int dcache_readdir(struct file *file, st
+ spin_unlock(&dentry->d_lock);
return 0;
}
++
+ EXPORT_SYMBOL(dcache_readdir);
-+int dcache_readdir(struct file *filp, void *dirent, filldir_t filldir)
++int dcache_readdir(struct file *filp, struct dir_context *ctx)
+{
-+ return do_dcache_readdir_filter(filp, dirent, filldir, NULL);
++ return do_dcache_readdir_filter(filp, ctx, NULL);
+}
+
-+int dcache_readdir_filter(struct file *filp, void *dirent, filldir_t filldir,
++EXPORT_SYMBOL(dcache_readdir_filter);
++
++int dcache_readdir_filter(struct file *filp, struct dir_context *ctx,
+ int (*filter)(struct dentry *))
+{
-+ return do_dcache_readdir_filter(filp, dirent, filldir, filter);
++ return do_dcache_readdir_filter(filp, ctx, filter);
+}
+
ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
{
return -EISDIR;
-@@ -981,6 +995,7 @@ EXPORT_SYMBOL(dcache_dir_close);
- EXPORT_SYMBOL(dcache_dir_lseek);
- EXPORT_SYMBOL(dcache_dir_open);
- EXPORT_SYMBOL(dcache_readdir);
-+EXPORT_SYMBOL(dcache_readdir_filter);
- EXPORT_SYMBOL(generic_read_dir);
- EXPORT_SYMBOL(mount_pseudo);
- EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.c
---- linux-3.10.15/fs/locks.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/locks.c 2013-08-22 20:29:59.000000000 +0000
-@@ -126,6 +126,8 @@
- #include <linux/time.h>
- #include <linux/rcupdate.h>
- #include <linux/pid_namespace.h>
+diff -NurpP --minimal linux-3.13.1/fs/locks.c linux-3.13.1-vs2.3.6.9/fs/locks.c
+--- linux-3.13.1/fs/locks.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/locks.c 2014-01-31 23:51:55.000000000 +0000
+@@ -129,6 +129,8 @@
+ #include <linux/hashtable.h>
+ #include <linux/percpu.h>
+ #include <linux/lglock.h>
+#include <linux/vs_base.h>
+#include <linux/vs_limit.h>
#include <asm/uaccess.h>
-@@ -184,11 +186,17 @@ static void locks_init_lock_heads(struct
+@@ -210,11 +212,17 @@ static void locks_init_lock_heads(struct
/* Allocate an empty lock structure. */
struct file_lock *locks_alloc_lock(void)
{
@@ -4072,15 +4076,15 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
return fl;
}
EXPORT_SYMBOL_GPL(locks_alloc_lock);
-@@ -212,6 +220,7 @@ void locks_free_lock(struct file_lock *f
+@@ -238,6 +246,7 @@ void locks_free_lock(struct file_lock *f
BUG_ON(!list_empty(&fl->fl_block));
- BUG_ON(!list_empty(&fl->fl_link));
+ BUG_ON(!hlist_unhashed(&fl->fl_link));
+ vx_locks_dec(fl);
locks_release_private(fl);
kmem_cache_free(filelock_cache, fl);
}
-@@ -221,6 +230,7 @@ void locks_init_lock(struct file_lock *f
+@@ -247,6 +256,7 @@ void locks_init_lock(struct file_lock *f
{
memset(fl, 0, sizeof(struct file_lock));
locks_init_lock_heads(fl);
@@ -4088,7 +4092,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
}
EXPORT_SYMBOL(locks_init_lock);
-@@ -261,6 +271,7 @@ void locks_copy_lock(struct file_lock *n
+@@ -287,6 +297,7 @@ void locks_copy_lock(struct file_lock *n
new->fl_file = fl->fl_file;
new->fl_ops = fl->fl_ops;
new->fl_lmops = fl->fl_lmops;
@@ -4096,7 +4100,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
locks_copy_private(new, fl);
}
-@@ -299,6 +310,11 @@ static int flock_make_lock(struct file *
+@@ -325,6 +336,11 @@ static int flock_make_lock(struct file *
fl->fl_flags = FL_FLOCK;
fl->fl_type = type;
fl->fl_end = OFFSET_MAX;
@@ -4108,7 +4112,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
*lock = fl;
return 0;
-@@ -438,6 +454,7 @@ static int lease_init(struct file *filp,
+@@ -464,6 +480,7 @@ static int lease_init(struct file *filp,
fl->fl_owner = current->files;
fl->fl_pid = current->tgid;
@@ -4116,7 +4120,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
fl->fl_file = filp;
fl->fl_flags = FL_LEASE;
-@@ -457,6 +474,11 @@ static struct file_lock *lease_alloc(str
+@@ -483,6 +500,11 @@ static struct file_lock *lease_alloc(str
if (fl == NULL)
return ERR_PTR(error);
@@ -4128,15 +4132,15 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
error = lease_init(filp, type, fl);
if (error) {
locks_free_lock(fl);
-@@ -753,6 +775,7 @@ static int flock_lock_file(struct file *
- lock_flocks();
+@@ -858,6 +880,7 @@ static int flock_lock_file(struct file *
+ spin_lock(&inode->i_lock);
}
+ new_fl->fl_xid = -1;
find_conflict:
for_each_lock(inode, before) {
struct file_lock *fl = *before;
-@@ -773,6 +796,7 @@ find_conflict:
+@@ -878,6 +901,7 @@ find_conflict:
goto out;
locks_copy_lock(new_fl, request);
locks_insert_lock(before, new_fl);
@@ -4144,7 +4148,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
new_fl = NULL;
error = 0;
-@@ -783,7 +807,8 @@ out:
+@@ -888,7 +912,8 @@ out:
return error;
}
@@ -4154,16 +4158,16 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
{
struct file_lock *fl;
struct file_lock *new_fl = NULL;
-@@ -793,6 +818,8 @@ static int __posix_lock_file(struct inod
- struct file_lock **before;
- int error, added = 0;
+@@ -899,6 +924,8 @@ static int __posix_lock_file(struct inod
+ int error;
+ bool added = false;
+ vxd_assert(xid == vx_current_xid(),
+ "xid(%d) == current(%d)", xid, vx_current_xid());
/*
* We may need two file_lock structures for this operation,
* so we get them in advance to avoid races.
-@@ -803,7 +830,11 @@ static int __posix_lock_file(struct inod
+@@ -909,7 +936,11 @@ static int __posix_lock_file(struct inod
(request->fl_type != F_UNLCK ||
request->fl_start != 0 || request->fl_end != OFFSET_MAX)) {
new_fl = locks_alloc_lock();
@@ -4174,8 +4178,8 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
+ vx_locks_inc(new_fl2);
}
- lock_flocks();
-@@ -1002,7 +1033,8 @@ static int __posix_lock_file(struct inod
+ spin_lock(&inode->i_lock);
+@@ -1118,7 +1149,8 @@ static int __posix_lock_file(struct inod
int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
{
@@ -4185,7 +4189,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
}
EXPORT_SYMBOL(posix_lock_file);
-@@ -1092,7 +1124,7 @@ int locks_mandatory_area(int read_write,
+@@ -1208,7 +1240,7 @@ int locks_mandatory_area(int read_write,
fl.fl_end = offset + count - 1;
for (;;) {
@@ -4194,15 +4198,15 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
if (error != FILE_LOCK_DEFERRED)
break;
error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
-@@ -1397,6 +1429,7 @@ int generic_add_lease(struct file *filp,
+@@ -1549,6 +1581,7 @@ static int generic_add_lease(struct file
goto out;
locks_insert_lock(before, lease);
+ vx_locks_inc(lease);
- return 0;
-
+ error = 0;
out:
-@@ -1836,6 +1869,11 @@ int fcntl_setlk(unsigned int fd, struct
+ if (is_deleg)
+@@ -1991,6 +2024,11 @@ int fcntl_setlk(unsigned int fd, struct
if (file_lock == NULL)
return -ENOLCK;
@@ -4214,7 +4218,7 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
/*
* This might block, so we do it before checking the inode.
*/
-@@ -1954,6 +1992,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -2109,6 +2147,11 @@ int fcntl_setlk64(unsigned int fd, struc
if (file_lock == NULL)
return -ENOLCK;
@@ -4226,33 +4230,34 @@ diff -NurpP --minimal linux-3.10.15/fs/locks.c linux-3.10.15-vs2.3.6.6/fs/locks.
/*
* This might block, so we do it before checking the inode.
*/
-@@ -2219,8 +2262,11 @@ static int locks_show(struct seq_file *f
+@@ -2378,8 +2421,11 @@ static int locks_show(struct seq_file *f
- lock_get_status(f, fl, *((loff_t *)f->private), "");
+ lock_get_status(f, fl, iter->li_pos, "");
- list_for_each_entry(bfl, &fl->fl_block, fl_block)
+- lock_get_status(f, bfl, iter->li_pos, " ->");
+ list_for_each_entry(bfl, &fl->fl_block, fl_block) {
+ if (!vx_check(fl->fl_xid, VS_WATCH_P | VS_IDENT))
+ continue;
- lock_get_status(f, bfl, *((loff_t *)f->private), " ->");
++ lock_get_status(f, bfl, iter->li_pos, " ->");
+ }
return 0;
}
-diff -NurpP --minimal linux-3.10.15/fs/mount.h linux-3.10.15-vs2.3.6.6/fs/mount.h
---- linux-3.10.15/fs/mount.h 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/mount.h 2013-08-22 20:29:59.000000000 +0000
-@@ -56,6 +56,7 @@ struct mount {
+diff -NurpP --minimal linux-3.13.1/fs/mount.h linux-3.13.1-vs2.3.6.9/fs/mount.h
+--- linux-3.13.1/fs/mount.h 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/mount.h 2014-01-31 23:34:30.000000000 +0000
+@@ -57,6 +57,7 @@ struct mount {
int mnt_expiry_mark; /* true if marked for expiry */
int mnt_pinned;
- int mnt_ghosts;
+ struct path mnt_ex_mountpoint;
+ vtag_t mnt_tag; /* tagging used for vfsmount */
};
#define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
-diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.c
---- linux-3.10.15/fs/namei.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/namei.c 2013-08-22 23:36:09.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/namei.c linux-3.13.1-vs2.3.6.9/fs/namei.c
+--- linux-3.13.1/fs/namei.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/namei.c 2014-02-01 01:26:19.000000000 +0000
@@ -34,9 +34,19 @@
#include <linux/device_cgroup.h>
#include <linux/fs_struct.h>
@@ -4379,7 +4384,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
retval = do_inode_permission(inode, mask);
if (retval)
return retval;
-@@ -1238,7 +1335,8 @@ static void follow_dotdot(struct nameida
+@@ -1241,7 +1338,8 @@ static void follow_dotdot(struct nameida
if (nd->path.dentry == nd->root.dentry &&
nd->path.mnt == nd->root.mnt) {
@@ -4389,7 +4394,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
}
if (nd->path.dentry != nd->path.mnt->mnt_root) {
/* rare case of legitimate dget_parent()... */
-@@ -1383,6 +1481,9 @@ static int lookup_fast(struct nameidata
+@@ -1386,6 +1484,9 @@ static int lookup_fast(struct nameidata
goto unlazy;
}
}
@@ -4399,7 +4404,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
path->mnt = mnt;
path->dentry = dentry;
if (unlikely(!__follow_mount_rcu(nd, path, inode)))
-@@ -1413,6 +1514,8 @@ unlazy:
+@@ -1416,6 +1517,8 @@ unlazy:
}
}
@@ -4408,16 +4413,16 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
path->mnt = mnt;
path->dentry = dentry;
err = follow_managed(path, nd->flags);
-@@ -2237,7 +2340,7 @@ static int may_delete(struct inode *dir,
- if (IS_APPEND(dir))
+@@ -2403,7 +2506,7 @@ static int may_delete(struct inode *dir,
return -EPERM;
- if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
-- IS_IMMUTABLE(victim->d_inode) || IS_SWAPFILE(victim->d_inode))
-+ IS_IXORUNLINK(victim->d_inode) || IS_SWAPFILE(victim->d_inode))
+
+ if (check_sticky(dir, inode) || IS_APPEND(inode) ||
+- IS_IMMUTABLE(inode) || IS_SWAPFILE(inode))
++ IS_IXORUNLINK(inode) || IS_SWAPFILE(inode))
return -EPERM;
if (isdir) {
- if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -2316,19 +2419,25 @@ int vfs_create(struct inode *dir, struct
+ if (!d_is_directory(victim) && !d_is_autodir(victim))
+@@ -2483,19 +2586,25 @@ int vfs_create(struct inode *dir, struct
bool want_excl)
{
int error = may_create(dir, dentry);
@@ -4445,7 +4450,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
return error;
}
-@@ -2363,6 +2472,15 @@ static int may_open(struct path *path, i
+@@ -2530,6 +2639,15 @@ static int may_open(struct path *path, i
break;
}
@@ -4461,7 +4466,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
error = inode_permission(inode, acc_mode);
if (error)
return error;
-@@ -2865,6 +2983,16 @@ finish_open:
+@@ -3025,6 +3143,16 @@ finish_open:
}
finish_open_created:
error = may_open(&nd->path, acc_mode, open_flag);
@@ -4478,7 +4483,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
if (error)
goto out;
file->f_path.mnt = nd->path.mnt;
-@@ -2929,6 +3057,7 @@ static struct file *path_openat(int dfd,
+@@ -3150,6 +3278,7 @@ static struct file *path_openat(int dfd,
int opened = 0;
int error;
@@ -4486,7 +4491,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
file = get_empty_filp();
if (IS_ERR(file))
return file;
-@@ -2965,6 +3094,16 @@ static struct file *path_openat(int dfd,
+@@ -3191,6 +3320,16 @@ static struct file *path_openat(int dfd,
error = do_last(nd, &path, file, op, &opened, pathname);
put_link(nd, &link, cookie);
}
@@ -4503,7 +4508,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
out:
if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
path_put(&nd->root);
-@@ -3079,6 +3218,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -3306,6 +3445,11 @@ struct dentry *kern_path_create(int dfd,
goto fail;
}
*path = nd.path;
@@ -4515,7 +4520,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
return dentry;
fail:
dput(dentry);
-@@ -3573,7 +3717,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -3853,7 +3997,7 @@ int vfs_link(struct dentry *old_dentry,
/*
* A link to an append-only or immutable file cannot be created.
*/
@@ -4524,8 +4529,8 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
return -EPERM;
if (!dir->i_op->link)
return -EPERM;
-@@ -3976,6 +4120,287 @@ int vfs_follow_link(struct nameidata *nd
- return __vfs_follow_link(nd, link);
+@@ -4305,6 +4449,287 @@ int generic_readlink(struct dentry *dent
+ return res;
}
+
@@ -4710,7 +4715,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
+ old_dentry->d_name.len, old_dentry->d_name.name,
+ old_dentry->d_name.len);
+ ret = vfs_rename(dir_nd.path.dentry->d_inode, new_dentry,
-+ old_dentry->d_parent->d_inode, old_dentry);
++ old_dentry->d_parent->d_inode, old_dentry, NULL);
+ vxdprintk(VXD_CBIT(misc, 2), "vfs_rename: %d", ret);
+
+out_unlock:
@@ -4744,7 +4749,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
+ goto out_redo;
+
+ /* error path cleanup */
-+ vfs_unlink(dir->d_inode, new_dentry);
++ vfs_unlink(dir->d_inode, new_dentry, NULL);
+
+out_redo:
+ if (!redo)
@@ -4812,14 +4817,14 @@ diff -NurpP --minimal linux-3.10.15/fs/namei.c linux-3.10.15-vs2.3.6.6/fs/namei.
/* get the link contents into pagecache */
static char *page_getlink(struct dentry * dentry, struct page **ppage)
{
-@@ -4099,3 +4524,4 @@ EXPORT_SYMBOL(vfs_symlink);
+@@ -4427,3 +4852,4 @@ EXPORT_SYMBOL(vfs_symlink);
EXPORT_SYMBOL(vfs_unlink);
EXPORT_SYMBOL(dentry_unhash);
EXPORT_SYMBOL(generic_readlink);
+EXPORT_SYMBOL(vx_info_mnt_namespace);
-diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/namespace.c
---- linux-3.10.15/fs/namespace.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/namespace.c 2013-10-09 17:37:22.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/namespace.c linux-3.13.1-vs2.3.6.9/fs/namespace.c
+--- linux-3.13.1/fs/namespace.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/namespace.c 2014-01-31 23:44:28.000000000 +0000
@@ -23,6 +23,11 @@
#include <linux/uaccess.h>
#include <linux/proc_ns.h>
@@ -4832,7 +4837,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
#include "pnode.h"
#include "internal.h"
-@@ -780,6 +785,10 @@ vfs_kern_mount(struct file_system_type *
+@@ -803,6 +808,10 @@ vfs_kern_mount(struct file_system_type *
if (!type)
return ERR_PTR(-ENODEV);
@@ -4843,23 +4848,33 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
mnt = alloc_vfsmnt(name);
if (!mnt)
return ERR_PTR(-ENOMEM);
-@@ -836,6 +845,7 @@ static struct mount *clone_mnt(struct mo
+@@ -863,6 +872,7 @@ static struct mount *clone_mnt(struct mo
mnt->mnt.mnt_root = dget(root);
mnt->mnt_mountpoint = mnt->mnt.mnt_root;
mnt->mnt_parent = mnt;
-+ mnt->mnt_tag = old->mnt_tag;
- br_write_lock(&vfsmount_lock);
++ mnt->mnt_tag = old->mnt_tag;
+ lock_mount_hash();
list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
- br_write_unlock(&vfsmount_lock);
-@@ -1685,6 +1695,7 @@ static int do_change_type(struct path *p
+ unlock_mount_hash();
+@@ -1323,7 +1333,8 @@ static int do_umount(struct mount *mnt,
+ */
+ static inline bool may_mount(void)
+ {
+- return ns_capable(current->nsproxy->mnt_ns->user_ns, CAP_SYS_ADMIN);
++ return vx_ns_capable(current->nsproxy->mnt_ns->user_ns,
++ CAP_SYS_ADMIN, VXC_SECURE_MOUNT);
+ }
+
+ /*
+@@ -1738,6 +1749,7 @@ static int do_change_type(struct path *p
if (err)
goto out_unlock;
}
+ // mnt->mnt_flags = mnt_flags;
- br_write_lock(&vfsmount_lock);
+ lock_mount_hash();
for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -1700,12 +1711,14 @@ static int do_change_type(struct path *p
+@@ -1766,12 +1778,14 @@ static bool has_locked_children(struct m
* do loopback mount.
*/
static int do_loopback(struct path *path, const char *old_name,
@@ -4875,7 +4890,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
if (!old_name || !*old_name)
return -EINVAL;
err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path);
-@@ -1780,7 +1793,7 @@ static int change_mount_flags(struct vfs
+@@ -1851,7 +1865,7 @@ static int change_mount_flags(struct vfs
* on it - tough luck.
*/
static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -4884,7 +4899,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
{
int err;
struct super_block *sb = path->mnt->mnt_sb;
-@@ -2264,6 +2277,7 @@ long do_mount(const char *dev_name, cons
+@@ -2330,6 +2344,7 @@ long do_mount(const char *dev_name, cons
struct path path;
int retval = 0;
int mnt_flags = 0;
@@ -4892,7 +4907,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
/* Discard magic */
if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2293,6 +2307,12 @@ long do_mount(const char *dev_name, cons
+@@ -2359,6 +2374,12 @@ long do_mount(const char *dev_name, cons
if (!(flags & MS_NOATIME))
mnt_flags |= MNT_RELATIME;
@@ -4905,7 +4920,7 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
/* Separate the per-mountpoint flags */
if (flags & MS_NOSUID)
mnt_flags |= MNT_NOSUID;
-@@ -2309,15 +2329,17 @@ long do_mount(const char *dev_name, cons
+@@ -2375,15 +2396,17 @@ long do_mount(const char *dev_name, cons
if (flags & MS_RDONLY)
mnt_flags |= MNT_READONLY;
@@ -4925,15 +4940,15 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
retval = do_change_type(&path, flags);
else if (flags & MS_MOVE)
-@@ -2426,6 +2448,7 @@ static struct mnt_namespace *dup_mnt_ns(
- q = next_mnt(q, new);
+@@ -2499,6 +2522,7 @@ struct mnt_namespace *copy_mnt_ns(unsign
+ p = next_mnt(p, old);
}
namespace_unlock();
+ atomic_inc(&vs_global_mnt_ns);
if (rootmnt)
mntput(rootmnt);
-@@ -2624,9 +2647,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2680,9 +2704,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
new_mnt = real_mount(new.mnt);
root_mnt = real_mount(root.mnt);
old_mnt = real_mount(old.mnt);
@@ -4946,18 +4961,18 @@ diff -NurpP --minimal linux-3.10.15/fs/namespace.c linux-3.10.15-vs2.3.6.6/fs/na
goto out4;
if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
goto out4;
-@@ -2752,6 +2776,7 @@ void put_mnt_ns(struct mnt_namespace *ns
- umount_tree(ns->root, 0);
- br_write_unlock(&vfsmount_lock);
- namespace_unlock();
+@@ -2806,6 +2831,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+ if (!atomic_dec_and_test(&ns->count))
+ return;
+ drop_collected_mounts(&ns->root->mnt);
+ atomic_dec(&vs_global_mnt_ns);
free_mnt_ns(ns);
}
-diff -NurpP --minimal linux-3.10.15/fs/nfs/client.c linux-3.10.15-vs2.3.6.6/fs/nfs/client.c
---- linux-3.10.15/fs/nfs/client.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfs/client.c 2013-08-22 20:29:59.000000000 +0000
-@@ -684,6 +684,9 @@ int nfs_init_server_rpcclient(struct nfs
+diff -NurpP --minimal linux-3.13.1/fs/nfs/client.c linux-3.13.1-vs2.3.6.9/fs/nfs/client.c
+--- linux-3.13.1/fs/nfs/client.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfs/client.c 2014-01-31 20:38:03.000000000 +0000
+@@ -685,6 +685,9 @@ int nfs_init_server_rpcclient(struct nfs
if (server->flags & NFS_MOUNT_SOFT)
server->client->cl_softrtry = 1;
@@ -4978,10 +4993,10 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/client.c linux-3.10.15-vs2.3.6.6/fs/n
server->maxfilesize = fsinfo->maxfilesize;
server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.10.15/fs/nfs/dir.c linux-3.10.15-vs2.3.6.6/fs/nfs/dir.c
---- linux-3.10.15/fs/nfs/dir.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfs/dir.c 2013-08-22 20:29:59.000000000 +0000
-@@ -36,6 +36,7 @@
+diff -NurpP --minimal linux-3.13.1/fs/nfs/dir.c linux-3.13.1-vs2.3.6.9/fs/nfs/dir.c
+--- linux-3.13.1/fs/nfs/dir.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfs/dir.c 2014-01-31 20:38:03.000000000 +0000
+@@ -37,6 +37,7 @@
#include <linux/sched.h>
#include <linux/kmemleak.h>
#include <linux/xattr.h>
@@ -4989,7 +5004,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/dir.c linux-3.10.15-vs2.3.6.6/fs/nfs/
#include "delegation.h"
#include "iostat.h"
-@@ -1300,6 +1301,7 @@ struct dentry *nfs_lookup(struct inode *
+@@ -1319,6 +1320,7 @@ struct dentry *nfs_lookup(struct inode *
/* Success: notify readdir to use READDIRPLUS */
nfs_advise_use_readdirplus(dir);
@@ -4997,18 +5012,18 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/dir.c linux-3.10.15-vs2.3.6.6/fs/nfs/
no_entry:
res = d_materialise_unique(dentry, inode);
if (res != NULL) {
-diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nfs/inode.c
---- linux-3.10.15/fs/nfs/inode.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfs/inode.c 2013-08-22 20:29:59.000000000 +0000
-@@ -39,6 +39,7 @@
+diff -NurpP --minimal linux-3.13.1/fs/nfs/inode.c linux-3.13.1-vs2.3.6.9/fs/nfs/inode.c
+--- linux-3.13.1/fs/nfs/inode.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfs/inode.c 2014-01-31 22:44:31.000000000 +0000
+@@ -38,6 +38,7 @@
+ #include <linux/slab.h>
#include <linux/compat.h>
#include <linux/freezer.h>
- #include <linux/crc32.h>
+#include <linux/vs_tag.h>
#include <asm/uaccess.h>
-@@ -290,6 +291,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -352,6 +353,8 @@ nfs_fhget(struct super_block *sb, struct
if (inode->i_state & I_NEW) {
struct nfs_inode *nfsi = NFS_I(inode);
unsigned long now = jiffies;
@@ -5017,7 +5032,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
/* We set i_ino for the few things that still rely on it,
* such as stat(2) */
-@@ -334,8 +337,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -396,8 +399,8 @@ nfs_fhget(struct super_block *sb, struct
inode->i_version = 0;
inode->i_size = 0;
clear_nlink(inode);
@@ -5028,7 +5043,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
inode->i_blocks = 0;
memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
nfsi->write_io = 0;
-@@ -369,11 +372,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -431,11 +434,11 @@ nfs_fhget(struct super_block *sb, struct
else if (nfs_server_capable(inode, NFS_CAP_NLINK))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
if (fattr->valid & NFS_ATTR_FATTR_OWNER)
@@ -5042,7 +5057,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
if (fattr->valid & NFS_ATTR_FATTR_BLOCKS_USED)
-@@ -384,6 +387,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -446,6 +449,10 @@ nfs_fhget(struct super_block *sb, struct
*/
inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
}
@@ -5050,11 +5065,10 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
+ inode->i_gid = INOTAG_KGID(DX_TAG(inode), kuid, kgid);
+ inode->i_tag = INOTAG_KTAG(DX_TAG(inode), kuid, kgid, GLOBAL_ROOT_TAG);
+ /* maybe fattr->xid someday */
-+
- nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
- nfsi->attrtimeo_timestamp = now;
- nfsi->access_cache = RB_ROOT;
-@@ -505,6 +513,8 @@ void nfs_setattr_update_inode(struct ino
+
+ nfs_setsecurity(inode, fattr, label);
+
+@@ -571,6 +578,8 @@ void nfs_setattr_update_inode(struct ino
inode->i_uid = attr->ia_uid;
if ((attr->ia_valid & ATTR_GID) != 0)
inode->i_gid = attr->ia_gid;
@@ -5063,7 +5077,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
spin_unlock(&inode->i_lock);
}
-@@ -982,7 +992,9 @@ static int nfs_check_inode_attributes(st
+@@ -1085,7 +1094,9 @@ static int nfs_check_inode_attributes(st
struct nfs_inode *nfsi = NFS_I(inode);
loff_t cur_size, new_isize;
unsigned long invalid = 0;
@@ -5074,7 +5088,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
if (nfs_have_delegated_attributes(inode))
return 0;
-@@ -1007,13 +1019,18 @@ static int nfs_check_inode_attributes(st
+@@ -1110,13 +1121,18 @@ static int nfs_check_inode_attributes(st
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
}
@@ -5095,7 +5109,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
/* Has the link count changed? */
if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1319,6 +1336,9 @@ static int nfs_update_inode(struct inode
+@@ -1433,6 +1449,9 @@ static int nfs_update_inode(struct inode
unsigned long invalid = 0;
unsigned long now = jiffies;
unsigned long save_cache_validity;
@@ -5105,7 +5119,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
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,
-@@ -1420,6 +1440,9 @@ static int nfs_update_inode(struct inode
+@@ -1534,6 +1553,9 @@ static int nfs_update_inode(struct inode
| NFS_INO_REVAL_PAGECACHE
| NFS_INO_REVAL_FORCED);
@@ -5115,7 +5129,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
if (fattr->valid & NFS_ATTR_FATTR_ATIME)
memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1462,6 +1485,10 @@ static int nfs_update_inode(struct inode
+@@ -1576,6 +1598,10 @@ static int nfs_update_inode(struct inode
| NFS_INO_INVALID_ACL
| NFS_INO_REVAL_FORCED);
@@ -5126,9 +5140,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/inode.c linux-3.10.15-vs2.3.6.6/fs/nf
if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
if (inode->i_nlink != fattr->nlink) {
invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.10.15/fs/nfs/nfs3xdr.c linux-3.10.15-vs2.3.6.6/fs/nfs/nfs3xdr.c
---- linux-3.10.15/fs/nfs/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfs/nfs3xdr.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfs/nfs3xdr.c linux-3.13.1-vs2.3.6.9/fs/nfs/nfs3xdr.c
+--- linux-3.13.1/fs/nfs/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfs/nfs3xdr.c 2014-01-31 20:38:03.000000000 +0000
@@ -20,6 +20,7 @@
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
@@ -5274,9 +5288,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/nfs3xdr.c linux-3.10.15-vs2.3.6.6/fs/
}
/*
-diff -NurpP --minimal linux-3.10.15/fs/nfs/super.c linux-3.10.15-vs2.3.6.6/fs/nfs/super.c
---- linux-3.10.15/fs/nfs/super.c 2013-07-14 17:01:28.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfs/super.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfs/super.c linux-3.13.1-vs2.3.6.9/fs/nfs/super.c
+--- linux-3.13.1/fs/nfs/super.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfs/super.c 2014-01-31 20:38:03.000000000 +0000
@@ -55,6 +55,7 @@
#include <linux/parser.h>
#include <linux/nsproxy.h>
@@ -5314,7 +5328,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/super.c linux-3.10.15-vs2.3.6.6/fs/nf
/* The following needs to be listed after all other options */
{ Opt_nfsvers, "v%s" },
-@@ -635,6 +644,7 @@ static void nfs_show_mount_options(struc
+@@ -638,6 +647,7 @@ static void nfs_show_mount_options(struc
{ NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
{ NFS_MOUNT_UNSHARED, ",nosharecache", "" },
{ NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5322,7 +5336,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/super.c linux-3.10.15-vs2.3.6.6/fs/nf
{ 0, NULL, NULL }
};
const struct proc_nfs_info *nfs_infop;
-@@ -1261,6 +1271,14 @@ static int nfs_parse_mount_options(char
+@@ -1321,6 +1331,14 @@ static int nfs_parse_mount_options(char
case Opt_nomigration:
mnt->options &= NFS_OPTION_MIGRATION;
break;
@@ -5337,7 +5351,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/super.c linux-3.10.15-vs2.3.6.6/fs/nf
/*
* options that take numeric values
-@@ -1347,6 +1365,12 @@ static int nfs_parse_mount_options(char
+@@ -1407,6 +1425,12 @@ static int nfs_parse_mount_options(char
goto out_invalid_value;
mnt->minorversion = option;
break;
@@ -5350,9 +5364,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfs/super.c linux-3.10.15-vs2.3.6.6/fs/nf
/*
* options that take text values
-diff -NurpP --minimal linux-3.10.15/fs/nfsd/auth.c linux-3.10.15-vs2.3.6.6/fs/nfsd/auth.c
---- linux-3.10.15/fs/nfsd/auth.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfsd/auth.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfsd/auth.c linux-3.13.1-vs2.3.6.9/fs/nfsd/auth.c
+--- linux-3.13.1/fs/nfsd/auth.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfsd/auth.c 2014-01-31 20:38:03.000000000 +0000
@@ -2,6 +2,7 @@
#include <linux/sched.h>
@@ -5371,9 +5385,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfsd/auth.c linux-3.10.15-vs2.3.6.6/fs/nf
rqgi = rqstp->rq_cred.cr_group_info;
-diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfs3xdr.c linux-3.10.15-vs2.3.6.6/fs/nfsd/nfs3xdr.c
---- linux-3.10.15/fs/nfsd/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfsd/nfs3xdr.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfsd/nfs3xdr.c linux-3.13.1-vs2.3.6.9/fs/nfsd/nfs3xdr.c
+--- linux-3.13.1/fs/nfsd/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfsd/nfs3xdr.c 2014-01-31 20:38:03.000000000 +0000
@@ -8,6 +8,7 @@
#include <linux/namei.h>
@@ -5427,9 +5441,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfs3xdr.c linux-3.10.15-vs2.3.6.6/fs
if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
} else {
-diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfs4xdr.c linux-3.10.15-vs2.3.6.6/fs/nfsd/nfs4xdr.c
---- linux-3.10.15/fs/nfsd/nfs4xdr.c 2013-10-09 17:35:22.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfsd/nfs4xdr.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfsd/nfs4xdr.c linux-3.13.1-vs2.3.6.9/fs/nfsd/nfs4xdr.c
+--- linux-3.13.1/fs/nfsd/nfs4xdr.c 2014-01-22 20:39:06.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfsd/nfs4xdr.c 2014-01-31 20:38:03.000000000 +0000
@@ -46,6 +46,7 @@
#include <linux/utsname.h>
#include <linux/pagemap.h>
@@ -5438,7 +5452,7 @@ diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfs4xdr.c linux-3.10.15-vs2.3.6.6/fs
#include "idmap.h"
#include "acl.h"
-@@ -2320,14 +2321,18 @@ out_acl:
+@@ -2430,14 +2431,18 @@ out_acl:
WRITE32(stat.nlink);
}
if (bmval1 & FATTR4_WORD1_OWNER) {
@@ -5459,9 +5473,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfs4xdr.c linux-3.10.15-vs2.3.6.6/fs
if (status == nfserr_resource)
goto out_resource;
if (status)
-diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfsxdr.c linux-3.10.15-vs2.3.6.6/fs/nfsd/nfsxdr.c
---- linux-3.10.15/fs/nfsd/nfsxdr.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/nfsd/nfsxdr.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/nfsd/nfsxdr.c linux-3.13.1-vs2.3.6.9/fs/nfsd/nfsxdr.c
+--- linux-3.13.1/fs/nfsd/nfsxdr.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/nfsd/nfsxdr.c 2014-01-31 20:38:03.000000000 +0000
@@ -7,6 +7,7 @@
#include "vfs.h"
#include "xdr.h"
@@ -5513,9 +5527,9 @@ diff -NurpP --minimal linux-3.10.15/fs/nfsd/nfsxdr.c linux-3.10.15-vs2.3.6.6/fs/
if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
*p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/dlmglue.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/dlmglue.c
---- linux-3.10.15/fs/ocfs2/dlmglue.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/dlmglue.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/dlmglue.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/dlmglue.c
+--- linux-3.13.1/fs/ocfs2/dlmglue.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/dlmglue.c 2014-01-31 20:38:03.000000000 +0000
@@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struc
lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters);
lvb->lvb_iuid = cpu_to_be32(i_uid_read(inode));
@@ -5532,9 +5546,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/dlmglue.c linux-3.10.15-vs2.3.6.6/f
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.10.15/fs/ocfs2/dlmglue.h linux-3.10.15-vs2.3.6.6/fs/ocfs2/dlmglue.h
---- linux-3.10.15/fs/ocfs2/dlmglue.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/dlmglue.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/dlmglue.h linux-3.13.1-vs2.3.6.9/fs/ocfs2/dlmglue.h
+--- linux-3.13.1/fs/ocfs2/dlmglue.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/dlmglue.h 2014-01-31 20:38:03.000000000 +0000
@@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
__be16 lvb_inlink;
__be32 lvb_iattr;
@@ -5545,10 +5559,10 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/dlmglue.h linux-3.10.15-vs2.3.6.6/f
};
#define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/file.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/file.c
---- linux-3.10.15/fs/ocfs2/file.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/file.c 2013-08-22 20:29:59.000000000 +0000
-@@ -1124,7 +1124,7 @@ int ocfs2_setattr(struct dentry *dentry,
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/file.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/file.c
+--- linux-3.13.1/fs/ocfs2/file.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/file.c 2014-01-31 20:38:03.000000000 +0000
+@@ -1119,7 +1119,7 @@ int ocfs2_setattr(struct dentry *dentry,
attr->ia_valid &= ~ATTR_SIZE;
#define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \
@@ -5557,9 +5571,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/file.c linux-3.10.15-vs2.3.6.6/fs/o
if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
return 0;
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/inode.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/inode.c
---- linux-3.10.15/fs/ocfs2/inode.c 2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/inode.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/inode.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/inode.c
+--- linux-3.13.1/fs/ocfs2/inode.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/inode.c 2014-01-31 20:38:03.000000000 +0000
@@ -28,6 +28,7 @@
#include <linux/highmem.h>
#include <linux/pagemap.h>
@@ -5656,9 +5670,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/inode.c linux-3.10.15-vs2.3.6.6/fs/
/* Fast symlinks will have i_size but no allocated clusters. */
if (S_ISLNK(inode->i_mode) && !fe->i_clusters) {
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/inode.h linux-3.10.15-vs2.3.6.6/fs/ocfs2/inode.h
---- linux-3.10.15/fs/ocfs2/inode.h 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/inode.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/inode.h linux-3.13.1-vs2.3.6.9/fs/ocfs2/inode.h
+--- linux-3.13.1/fs/ocfs2/inode.h 2013-07-14 17:01:29.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/inode.h 2014-01-31 20:38:03.000000000 +0000
@@ -152,6 +152,7 @@ struct buffer_head *ocfs2_bread(struct i
void ocfs2_set_inode_flags(struct inode *inode);
@@ -5667,9 +5681,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/inode.h linux-3.10.15-vs2.3.6.6/fs/
static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
{
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/ioctl.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/ioctl.c
---- linux-3.10.15/fs/ocfs2/ioctl.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/ioctl.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/ioctl.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/ioctl.c
+--- linux-3.13.1/fs/ocfs2/ioctl.c 2013-11-25 15:47:00.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/ioctl.c 2014-01-31 20:38:03.000000000 +0000
@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
return status;
}
@@ -5733,9 +5747,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/ioctl.c linux-3.10.15-vs2.3.6.6/fs/
long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = file_inode(filp);
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/namei.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/namei.c
---- linux-3.10.15/fs/ocfs2/namei.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/namei.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/namei.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/namei.c
+--- linux-3.13.1/fs/ocfs2/namei.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/namei.c 2014-01-31 20:38:03.000000000 +0000
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/highmem.h>
@@ -5768,9 +5782,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/namei.c linux-3.10.15-vs2.3.6.6/fs/
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.10.15/fs/ocfs2/ocfs2.h linux-3.10.15-vs2.3.6.6/fs/ocfs2/ocfs2.h
---- linux-3.10.15/fs/ocfs2/ocfs2.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/ocfs2.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/ocfs2.h linux-3.13.1-vs2.3.6.9/fs/ocfs2/ocfs2.h
+--- linux-3.13.1/fs/ocfs2/ocfs2.h 2013-11-25 15:45:04.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/ocfs2.h 2014-01-31 20:38:03.000000000 +0000
@@ -272,6 +272,7 @@ enum ocfs2_mount_options
writes */
OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -5779,9 +5793,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/ocfs2.h linux-3.10.15-vs2.3.6.6/fs/
};
#define OCFS2_OSB_SOFT_RO 0x0001
-diff -NurpP --minimal linux-3.10.15/fs/ocfs2/ocfs2_fs.h linux-3.10.15-vs2.3.6.6/fs/ocfs2/ocfs2_fs.h
---- linux-3.10.15/fs/ocfs2/ocfs2_fs.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/ocfs2_fs.h 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/ocfs2_fs.h linux-3.13.1-vs2.3.6.9/fs/ocfs2/ocfs2_fs.h
+--- linux-3.13.1/fs/ocfs2/ocfs2_fs.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/ocfs2_fs.h 2014-01-31 20:38:03.000000000 +0000
@@ -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 */
@@ -5794,9 +5808,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/ocfs2_fs.h linux-3.10.15-vs2.3.6.6/
#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.10.15/fs/ocfs2/super.c linux-3.10.15-vs2.3.6.6/fs/ocfs2/super.c
---- linux-3.10.15/fs/ocfs2/super.c 2013-05-31 13:45:25.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/ocfs2/super.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/ocfs2/super.c linux-3.13.1-vs2.3.6.9/fs/ocfs2/super.c
+--- linux-3.13.1/fs/ocfs2/super.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/ocfs2/super.c 2014-01-31 20:38:03.000000000 +0000
@@ -185,6 +185,7 @@ enum {
Opt_coherency_full,
Opt_resv_level,
@@ -5815,7 +5829,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/super.c linux-3.10.15-vs2.3.6.6/fs/
{Opt_err, NULL}
};
-@@ -662,6 +666,13 @@ static int ocfs2_remount(struct super_bl
+@@ -661,6 +665,13 @@ static int ocfs2_remount(struct super_bl
goto out;
}
@@ -5829,7 +5843,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/super.c linux-3.10.15-vs2.3.6.6/fs/
/* 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
+@@ -1176,6 +1187,9 @@ static int ocfs2_fill_super(struct super
ocfs2_complete_mount_recovery(osb);
@@ -5839,7 +5853,7 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/super.c linux-3.10.15-vs2.3.6.6/fs/
if (ocfs2_mount_local(osb))
snprintf(nodestr, sizeof(nodestr), "local");
else
-@@ -1504,6 +1518,20 @@ static int ocfs2_parse_options(struct su
+@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su
option < OCFS2_MAX_RESV_LEVEL)
mopt->dir_resv_level = option;
break;
@@ -5860,9 +5874,9 @@ diff -NurpP --minimal linux-3.10.15/fs/ocfs2/super.c linux-3.10.15-vs2.3.6.6/fs/
default:
mlog(ML_ERROR,
"Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
---- linux-3.10.15/fs/open.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/open.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/open.c linux-3.13.1-vs2.3.6.9/fs/open.c
+--- linux-3.13.1/fs/open.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/open.c 2014-01-31 20:38:03.000000000 +0000
@@ -31,6 +31,11 @@
#include <linux/ima.h>
#include <linux/dnotify.h>
@@ -5875,7 +5889,7 @@ diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
#include "internal.h"
-@@ -67,6 +72,11 @@ long vfs_truncate(struct path *path, lof
+@@ -68,6 +73,11 @@ long vfs_truncate(struct path *path, lof
struct inode *inode;
long error;
@@ -5887,7 +5901,7 @@ diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
inode = path->dentry->d_inode;
/* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -504,6 +514,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+@@ -511,6 +521,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
unsigned int lookup_flags = LOOKUP_FOLLOW;
retry:
error = user_path_at(dfd, filename, lookup_flags, &path);
@@ -5901,7 +5915,7 @@ diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
if (!error) {
error = chmod_common(&path, mode);
path_put(&path);
-@@ -536,13 +553,15 @@ static int chown_common(struct path *pat
+@@ -544,13 +561,15 @@ static int chown_common(struct path *pat
if (!uid_valid(uid))
return -EINVAL;
newattrs.ia_valid |= ATTR_UID;
@@ -5919,7 +5933,7 @@ diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
}
if (!S_ISDIR(inode->i_mode))
newattrs.ia_valid |=
-@@ -576,6 +595,18 @@ retry:
+@@ -589,6 +608,18 @@ retry:
error = mnt_want_write(path.mnt);
if (error)
goto out_release;
@@ -5938,9 +5952,9 @@ diff -NurpP --minimal linux-3.10.15/fs/open.c linux-3.10.15-vs2.3.6.6/fs/open.c
error = chown_common(&path, user, group);
mnt_drop_write(path.mnt);
out_release:
-diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/proc/array.c
---- linux-3.10.15/fs/proc/array.c 2013-05-31 13:45:25.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/array.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/proc/array.c linux-3.13.1-vs2.3.6.9/fs/proc/array.c
+--- linux-3.13.1/fs/proc/array.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/proc/array.c 2014-02-01 01:44:54.000000000 +0000
@@ -82,6 +82,8 @@
#include <linux/ptrace.h>
#include <linux/tracehook.h>
@@ -5960,7 +5974,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
tpid = 0;
if (pid_alive(p)) {
struct task_struct *tracer = ptrace_parent(p);
-@@ -297,7 +302,7 @@ static inline void task_sig(struct seq_f
+@@ -299,7 +304,7 @@ static inline void task_sig(struct seq_f
}
static void render_cap_t(struct seq_file *m, const char *header,
@@ -5969,7 +5983,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
{
unsigned __capi;
-@@ -331,10 +336,11 @@ static inline void task_cap(struct seq_f
+@@ -333,10 +338,11 @@ static inline void task_cap(struct seq_f
NORM_CAPS(cap_effective);
NORM_CAPS(cap_bset);
@@ -5985,7 +5999,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
}
static inline void task_seccomp(struct seq_file *m, struct task_struct *p)
-@@ -363,6 +369,42 @@ static void task_cpus_allowed(struct seq
+@@ -365,6 +371,43 @@ static void task_cpus_allowed(struct seq
seq_putc(m, '\n');
}
@@ -6008,8 +6022,9 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
+ (task->nsproxy->ipc_ns == init_task.nsproxy->ipc_ns ? 'I' : '-'),
+ task->nsproxy->mnt_ns,
+ (task->nsproxy->mnt_ns == init_task.nsproxy->mnt_ns ? 'I' : '-'),
-+ task->nsproxy->pid_ns,
-+ (task->nsproxy->pid_ns == init_task.nsproxy->pid_ns ? 'I' : '-'),
++ task->nsproxy->pid_ns_for_children,
++ (task->nsproxy->pid_ns_for_children ==
++ init_task.nsproxy->pid_ns_for_children ? 'I' : '-'),
+ task->nsproxy->net_ns,
+ (task->nsproxy->net_ns == init_task.nsproxy->net_ns ? 'I' : '-'));
+ return 0;
@@ -6028,7 +6043,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
-@@ -380,6 +422,7 @@ int proc_pid_status(struct seq_file *m,
+@@ -382,6 +425,7 @@ int proc_pid_status(struct seq_file *m,
task_seccomp(m, task);
task_cpus_allowed(m, task);
cpuset_task_status_allowed(m, task);
@@ -6036,7 +6051,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
task_context_switch_counts(m, task);
return 0;
}
-@@ -489,6 +532,17 @@ static int do_task_stat(struct seq_file
+@@ -491,6 +535,17 @@ static int do_task_stat(struct seq_file
/* convert nsec -> ticks */
start_time = nsec_to_clock_t(start_time);
@@ -6054,9 +6069,9 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/array.c linux-3.10.15-vs2.3.6.6/fs/p
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.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/proc/base.c
---- linux-3.10.15/fs/proc/base.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/base.c 2013-08-22 22:18:21.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/proc/base.c linux-3.13.1-vs2.3.6.9/fs/proc/base.c
+--- linux-3.13.1/fs/proc/base.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/proc/base.c 2014-02-01 00:05:10.000000000 +0000
@@ -87,6 +87,8 @@
#include <linux/slab.h>
#include <linux/flex_array.h>
@@ -6083,7 +6098,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
/*
* /proc/pid/oom_adj is provided for legacy purposes, ask users to use
* /proc/pid/oom_score_adj instead.
-@@ -1559,6 +1565,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1565,6 +1571,8 @@ struct inode *proc_pid_make_inode(struct
inode->i_gid = cred->egid;
rcu_read_unlock();
}
@@ -6092,7 +6107,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
security_task_to_inode(task, inode);
out:
-@@ -1604,6 +1612,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1610,6 +1618,8 @@ int pid_getattr(struct vfsmount *mnt, st
/* dentry stuff */
@@ -6101,7 +6116,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
/*
* Exceptional case: normally we are not allowed to unhash a busy
* directory. In this case, however, we can do it - no aliasing problems
-@@ -1632,6 +1642,12 @@ int pid_revalidate(struct dentry *dentry
+@@ -1638,6 +1648,12 @@ int pid_revalidate(struct dentry *dentry
task = get_proc_task(inode);
if (task) {
@@ -6114,7 +6129,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
task_dumpable(task)) {
rcu_read_lock();
-@@ -1648,6 +1664,7 @@ int pid_revalidate(struct dentry *dentry
+@@ -1654,6 +1670,7 @@ int pid_revalidate(struct dentry *dentry
put_task_struct(task);
return 1;
}
@@ -6122,7 +6137,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
d_drop(dentry);
return 0;
}
-@@ -2196,6 +2213,13 @@ static struct dentry *proc_pident_lookup
+@@ -2172,6 +2189,13 @@ static struct dentry *proc_pident_lookup
if (!task)
goto out_no_task;
@@ -6136,7 +6151,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
/*
* Yes, it does not scale. And it should not. Don't add
* new entries into /proc/<tgid>/ without very good reasons.
-@@ -2630,6 +2654,9 @@ static int proc_pid_personality(struct s
+@@ -2568,6 +2592,9 @@ static int proc_pid_personality(struct s
static const struct file_operations proc_task_operations;
static const struct inode_operations proc_task_inode_operations;
@@ -6146,7 +6161,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
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),
-@@ -2696,6 +2723,8 @@ static const struct pid_entry tgid_base_
+@@ -2634,6 +2661,8 @@ static const struct pid_entry tgid_base_
#ifdef CONFIG_CGROUPS
REG("cgroup", S_IRUGO, proc_cgroup_operations),
#endif
@@ -6155,7 +6170,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
INF("oom_score", S_IRUGO, proc_oom_score),
REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adj_operations),
REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -2910,7 +2939,7 @@ retry:
+@@ -2846,7 +2875,7 @@ retry:
iter.task = NULL;
pid = find_ge_pid(iter.tgid, ns);
if (pid) {
@@ -6164,33 +6179,27 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
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
-@@ -2940,7 +2969,7 @@ static int proc_pid_fill_cache(struct fi
- struct tgid_iter iter)
- {
- char name[PROC_NUMBUF];
-- int len = snprintf(name, sizeof(name), "%d", iter.tgid);
-+ int len = snprintf(name, sizeof(name), "%d", vx_map_tgid(iter.tgid));
- return proc_fill_cache(filp, dirent, filldir, name, len,
- proc_pid_instantiate, iter.task, NULL);
- }
-@@ -2981,6 +3010,8 @@ int proc_pid_readdir(struct file * filp,
- __filldir = fake_filldir;
+@@ -2899,8 +2928,10 @@ int proc_pid_readdir(struct file *file,
+ if (!has_pid_permissions(ns, iter.task, 2))
+ continue;
- filp->f_pos = iter.tgid + TGID_OFFSET;
+- len = snprintf(name, sizeof(name), "%d", iter.tgid);
++ len = snprintf(name, sizeof(name), "%d", vx_map_tgid(iter.tgid));
+ ctx->pos = iter.tgid + TGID_OFFSET;
+ if (!vx_proc_task_visible(iter.task))
+ continue;
- if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
+ if (!proc_fill_cache(file, ctx, name, len,
+ proc_pid_instantiate, iter.task, NULL)) {
put_task_struct(iter.task);
- goto out;
-@@ -3073,6 +3104,7 @@ static const struct pid_entry tid_base_s
+@@ -2993,6 +3024,7 @@ static const struct pid_entry tid_base_s
REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
REG("projid_map", S_IRUGO|S_IWUSR, proc_projid_map_operations),
#endif
+ ONE("nsproxy", S_IRUGO, proc_pid_nsproxy),
};
- static int proc_tid_base_readdir(struct file * filp,
-@@ -3141,6 +3173,8 @@ static struct dentry *proc_task_lookup(s
+ static int proc_tid_base_readdir(struct file *file, struct dir_context *ctx)
+@@ -3059,6 +3091,8 @@ static struct dentry *proc_task_lookup(s
tid = name_to_int(dentry);
if (tid == ~0U)
goto out;
@@ -6199,9 +6208,9 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/base.c linux-3.10.15-vs2.3.6.6/fs/pr
ns = dentry->d_sb->s_fs_info;
rcu_read_lock();
-diff -NurpP --minimal linux-3.10.15/fs/proc/generic.c linux-3.10.15-vs2.3.6.6/fs/proc/generic.c
---- linux-3.10.15/fs/proc/generic.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/generic.c 2013-08-22 20:29:59.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/proc/generic.c linux-3.13.1-vs2.3.6.9/fs/proc/generic.c
+--- linux-3.13.1/fs/proc/generic.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/proc/generic.c 2014-02-01 00:07:40.000000000 +0000
@@ -23,6 +23,7 @@
#include <linux/bitops.h>
#include <linux/spinlock.h>
@@ -6210,7 +6219,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/generic.c linux-3.10.15-vs2.3.6.6/fs
#include <asm/uaccess.h>
#include "internal.h"
-@@ -203,6 +204,8 @@ struct dentry *proc_lookup_de(struct pro
+@@ -187,6 +188,8 @@ struct dentry *proc_lookup_de(struct pro
for (de = de->subdir; de ; de = de->next) {
if (de->namelen != dentry->d_name.len)
continue;
@@ -6219,33 +6228,34 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/generic.c linux-3.10.15-vs2.3.6.6/fs
if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
pde_get(de);
spin_unlock(&proc_subdir_lock);
-@@ -211,6 +214,8 @@ struct dentry *proc_lookup_de(struct pro
+@@ -195,6 +198,8 @@ struct dentry *proc_lookup_de(struct pro
return ERR_PTR(-ENOMEM);
- d_set_d_op(dentry, &proc_dentry_operations);
+ d_set_d_op(dentry, &simple_dentry_operations);
d_add(dentry, inode);
+ /* generic proc entries belong to the host */
+ i_tag_write(inode, 0);
return NULL;
}
}
-@@ -279,6 +284,8 @@ int proc_readdir_de(struct proc_dir_entr
-
- /* filldir passes info to user space */
- pde_get(de);
-+ if (!vx_hide_check(0, de->vx_flags))
-+ goto skip;
- spin_unlock(&proc_subdir_lock);
- if (filldir(dirent, de->name, de->namelen, filp->f_pos,
- de->low_ino, de->mode >> 12) < 0) {
-@@ -286,6 +293,7 @@ int proc_readdir_de(struct proc_dir_entr
- goto out;
- }
- spin_lock(&proc_subdir_lock);
-+ skip:
- filp->f_pos++;
- next = de->next;
- pde_put(de);
-@@ -395,6 +403,7 @@ static struct proc_dir_entry *__proc_cre
+@@ -242,6 +247,9 @@ int proc_readdir_de(struct proc_dir_entr
+ do {
+ struct proc_dir_entry *next;
+ pde_get(de);
++
++ if (!vx_hide_check(0, de->vx_flags))
++ goto skip;
+ spin_unlock(&proc_subdir_lock);
+ if (!dir_emit(ctx, de->name, de->namelen,
+ de->low_ino, de->mode >> 12)) {
+@@ -249,6 +257,7 @@ int proc_readdir_de(struct proc_dir_entr
+ return 0;
+ }
+ spin_lock(&proc_subdir_lock);
++ skip:
+ ctx->pos++;
+ next = de->next;
+ pde_put(de);
+@@ -355,6 +364,7 @@ static struct proc_dir_entry *__proc_cre
ent->namelen = len;
ent->mode = mode;
ent->nlink = nlink;
@@ -6253,7 +6263,7 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/generic.c linux-3.10.15-vs2.3.6.6/fs
atomic_set(&ent->count, 1);
spin_lock_init(&ent->pde_unload_lock);
INIT_LIST_HEAD(&ent->pde_openers);
-@@ -418,7 +427,8 @@ struct proc_dir_entry *proc_symlink(cons
+@@ -378,7 +388,8 @@ struct proc_dir_entry *proc_symlink(cons
kfree(ent->data);
kfree(ent);
ent = NULL;
@@ -6263,10 +6273,10 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/generic.c linux-3.10.15-vs2.3.6.6/fs
} else {
kfree(ent);
ent = NULL;
-diff -NurpP --minimal linux-3.10.15/fs/proc/inode.c linux-3.10.15-vs2.3.6.6/fs/proc/inode.c
---- linux-3.10.15/fs/proc/inode.c 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/inode.c 2013-08-22 20:29:59.000000000 +0000
-@@ -387,6 +387,8 @@ struct inode *proc_get_inode(struct supe
+diff -NurpP --minimal linux-3.13.1/fs/proc/inode.c linux-3.13.1-vs2.3.6.9/fs/proc/inode.c
+--- linux-3.13.1/fs/proc/inode.c 2014-01-22 20:39:07.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/proc/inode.c 2014-01-31 20:38:03.000000000 +0000
+@@ -415,6 +415,8 @@ struct inode *proc_get_inode(struct supe
inode->i_uid = de->uid;
inode->i_gid = de->gid;
}
@@ -6275,9 +6285,9 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/inode.c linux-3.10.15-vs2.3.6.6/fs/p
if (de->size)
inode->i_size = de->size;
if (de->nlink)
-diff -NurpP --minimal linux-3.10.15/fs/proc/internal.h linux-3.10.15-vs2.3.6.6/fs/proc/internal.h
---- linux-3.10.15/fs/proc/internal.h 2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/internal.h 2013-08-22 21:52:30.000000000 +0000
+diff -NurpP --minimal linux-3.13.1/fs/proc/internal.h linux-3.13.1-vs2.3.6.9/fs/proc/internal.h
+--- linux-3.13.1/fs/proc/internal.h 2013-11-25 15:45:04.000000000 +0000
++++ linux-3.13.1-vs2.3.6.9/fs/proc/internal.h 2014-01-31 20:38:03.000000000 +0000
@@ -14,6 +14,7 @@
#include <linux/spinlock.h>
#include <linux/atomic.h>
@@ -6345,9 +6355,9 @@ diff -NurpP --minimal linux-3.10.15/fs/proc/internal.h linux-3.10.15-vs2.3.6.6/f
/*
* base.c
-diff -NurpP --minimal linux-3.10.15/fs/proc/loadavg.c linux-3.10.15-vs2.3.6.6/fs/proc/loadavg.c
---- linux-3.10.15/fs/proc/loadavg.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.10.15-vs2.3.6.6/fs/proc/loadavg.c 2013-08-22 20:30:00.000000000 +0000
<Skipped 6755 lines>
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/c2e5f7c8361ac910405595042a5eb7f2c8458eda
More information about the pld-cvs-commit
mailing list