[packages/kernel] - up to 3.18.7; vserver up to 3.18.5-vs2.3.7.3 (seems to be working but only slightly tested, so not

arekm arekm at pld-linux.org
Sun Feb 15 00:59:57 CET 2015


commit bb20add7595f132e8fac3861395c255acbefe494
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sun Feb 15 00:52:08 2015 +0100

    - up to 3.18.7; vserver up to 3.18.5-vs2.3.7.3 (seems to be working but only slightly tested, so not yet enabled by default)

 kernel-vserver-2.3.patch   | 4247 ++++++++++++++++++++++----------------------
 kernel-vserver-fixes.patch |   12 -
 kernel.spec                |    8 +-
 3 files changed, 2080 insertions(+), 2187 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 8bdff06..b467321 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -71,7 +71,7 @@
 
 %define		rel		1
 %define		basever		3.18
-%define		postver		.6
+%define		postver		.7
 
 # define this to '-%{basever}' for longterm branch
 %define		versuffix	%{nil}
@@ -120,7 +120,7 @@ Source0:	http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
 # Source0-md5:	9e854df51ca3fef8bfe566dbd7b89241
 %if "%{postver}" != ".0"
 Patch0:		http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
-# Patch0-md5:	30aa769974e64fd17a01724d1577a913
+# Patch0-md5:	9db3178b87ddf7c05e6191bf57645610
 %endif
 Source1:	kernel.sysconfig
 
@@ -187,8 +187,8 @@ Patch59:	kernel-rndis_host-wm5.patch
 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
 Patch85:	kernel-hostap.patch
 
-%define	vserver_patch 3.10.9-vs2.3.6.6
-# http://vserver.13thfloor.at/Experimental/patch-3.13.6-vs2.3.6.11.diff
+%define	vserver_patch 3.18.5-vs2.3.7.3
+# http://vserver.13thfloor.at/Experimental/patch-3.18.5-vs2.3.7.3.diff
 # note there are additional patches from above url:
 # - *fix* are real fixes (we want these)
 # - *feat* are new features/tests (we don't want these)
diff --git a/kernel-vserver-2.3.patch b/kernel-vserver-2.3.patch
index 7942b7d..1f7aa6f 100644
--- a/kernel-vserver-2.3.patch
+++ b/kernel-vserver-2.3.patch
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-3.13.10/Documentation/vserver/debug.txt linux-3.13.10-vs2.3.6.11/Documentation/vserver/debug.txt
---- linux-3.13.10/Documentation/vserver/debug.txt	1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/Documentation/vserver/debug.txt	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/Documentation/vserver/debug.txt linux-3.18.5-vs2.3.7.3/Documentation/vserver/debug.txt
+--- linux-3.18.5/Documentation/vserver/debug.txt	1970-01-01 00:00:00.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/Documentation/vserver/debug.txt	2015-01-19 10:57:45.000000000 +0000
 @@ -0,0 +1,154 @@
 +
 +debug_cvirt:
@@ -156,10 +156,10 @@ diff -NurpP --minimal linux-3.13.10/Documentation/vserver/debug.txt linux-3.13.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.13.10/arch/alpha/Kconfig linux-3.13.10-vs2.3.6.11/arch/alpha/Kconfig
---- linux-3.13.10/arch/alpha/Kconfig	2014-01-22 20:38:09.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/alpha/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -735,6 +735,8 @@ config DUMMY_CONSOLE
+diff -NurpP --minimal linux-3.18.5/arch/alpha/Kconfig linux-3.18.5-vs2.3.7.3/arch/alpha/Kconfig
+--- linux-3.18.5/arch/alpha/Kconfig	2014-06-12 13:00:27.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/alpha/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -740,6 +740,8 @@ config DUMMY_CONSOLE
  	depends on VGA_HOSE
  	default y
  
@@ -168,9 +168,9 @@ diff -NurpP --minimal linux-3.13.10/arch/alpha/Kconfig linux-3.13.10-vs2.3.6.11/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/alpha/kernel/systbls.S linux-3.13.10-vs2.3.6.11/arch/alpha/kernel/systbls.S
---- linux-3.13.10/arch/alpha/kernel/systbls.S	2013-11-25 15:44:11.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/alpha/kernel/systbls.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/alpha/kernel/systbls.S linux-3.18.5-vs2.3.7.3/arch/alpha/kernel/systbls.S
+--- linux-3.18.5/arch/alpha/kernel/systbls.S	2015-01-16 22:18:10.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/alpha/kernel/systbls.S	2015-01-19 10:57:45.000000000 +0000
 @@ -446,7 +446,7 @@ sys_call_table:
  	.quad sys_stat64			/* 425 */
  	.quad sys_lstat64
@@ -180,9 +180,9 @@ diff -NurpP --minimal linux-3.13.10/arch/alpha/kernel/systbls.S linux-3.13.10-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.13.10/arch/alpha/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/alpha/kernel/traps.c
---- linux-3.13.10/arch/alpha/kernel/traps.c	2014-01-22 20:38:10.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/alpha/kernel/traps.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/alpha/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/alpha/kernel/traps.c
+--- linux-3.18.5/arch/alpha/kernel/traps.c	2014-01-22 20:38:10.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/alpha/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
 @@ -175,7 +175,8 @@ die_if_kernel(char * str, struct pt_regs
  #ifdef CONFIG_SMP
  	printk("CPU %d ", hard_smp_processor_id());
@@ -193,10 +193,10 @@ diff -NurpP --minimal linux-3.13.10/arch/alpha/kernel/traps.c linux-3.13.10-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.13.10/arch/arm/Kconfig linux-3.13.10-vs2.3.6.11/arch/arm/Kconfig
---- linux-3.13.10/arch/arm/Kconfig	2014-04-17 01:12:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/arm/Kconfig	2014-04-17 01:17:10.000000000 +0000
-@@ -2267,6 +2267,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/arm/Kconfig linux-3.18.5-vs2.3.7.3/arch/arm/Kconfig
+--- linux-3.18.5/arch/arm/Kconfig	2015-01-17 02:39:30.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/arm/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -2170,6 +2170,8 @@ source "fs/Kconfig"
  
  source "arch/arm/Kconfig.debug"
  
@@ -205,9 +205,9 @@ diff -NurpP --minimal linux-3.13.10/arch/arm/Kconfig linux-3.13.10-vs2.3.6.11/ar
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/arm/kernel/calls.S linux-3.13.10-vs2.3.6.11/arch/arm/kernel/calls.S
---- linux-3.13.10/arch/arm/kernel/calls.S	2013-05-31 13:44:29.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/arm/kernel/calls.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/arm/kernel/calls.S linux-3.18.5-vs2.3.7.3/arch/arm/kernel/calls.S
+--- linux-3.18.5/arch/arm/kernel/calls.S	2015-01-17 02:39:31.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/arm/kernel/calls.S	2015-01-19 10:57:45.000000000 +0000
 @@ -322,7 +322,7 @@
  /* 310 */	CALL(sys_request_key)
  		CALL(sys_keyctl)
@@ -217,10 +217,10 @@ diff -NurpP --minimal linux-3.13.10/arch/arm/kernel/calls.S linux-3.13.10-vs2.3.
  		CALL(sys_ioprio_set)
  /* 315 */	CALL(sys_ioprio_get)
  		CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.13.10/arch/arm/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/arm/kernel/traps.c
---- linux-3.13.10/arch/arm/kernel/traps.c	2014-01-22 20:38:11.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/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
+diff -NurpP --minimal linux-3.18.5/arch/arm/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/arm/kernel/traps.c
+--- linux-3.18.5/arch/arm/kernel/traps.c	2015-01-17 02:39:31.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/arm/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
+@@ -250,8 +250,8 @@ static int __die(const char *str, int er
  
  	print_modules();
  	__show_regs(regs);
@@ -231,10 +231,10 @@ diff -NurpP --minimal linux-3.13.10/arch/arm/kernel/traps.c linux-3.13.10-vs2.3.
  
  	if (!user_mode(regs) || in_interrupt()) {
  		dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.13.10/arch/cris/Kconfig linux-3.13.10-vs2.3.6.11/arch/cris/Kconfig
---- linux-3.13.10/arch/cris/Kconfig	2014-01-22 20:38:15.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/cris/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -561,6 +561,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/cris/Kconfig linux-3.18.5-vs2.3.7.3/arch/cris/Kconfig
+--- linux-3.18.5/arch/cris/Kconfig	2014-06-12 13:00:42.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/cris/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -556,6 +556,8 @@ source "fs/Kconfig"
  
  source "arch/cris/Kconfig.debug"
  
@@ -243,10 +243,10 @@ diff -NurpP --minimal linux-3.13.10/arch/cris/Kconfig linux-3.13.10-vs2.3.6.11/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/ia64/Kconfig linux-3.13.10-vs2.3.6.11/arch/ia64/Kconfig
---- linux-3.13.10/arch/ia64/Kconfig	2014-01-22 20:38:16.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/ia64/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -641,6 +641,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/ia64/Kconfig linux-3.18.5-vs2.3.7.3/arch/ia64/Kconfig
+--- linux-3.18.5/arch/ia64/Kconfig	2015-01-16 22:18:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/ia64/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -636,6 +636,8 @@ source "fs/Kconfig"
  
  source "arch/ia64/Kconfig.debug"
  
@@ -255,9 +255,9 @@ diff -NurpP --minimal linux-3.13.10/arch/ia64/Kconfig linux-3.13.10-vs2.3.6.11/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/entry.S linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/entry.S
---- linux-3.13.10/arch/ia64/kernel/entry.S	2014-01-22 20:38:16.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/entry.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/ia64/kernel/entry.S linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/entry.S
+--- linux-3.18.5/arch/ia64/kernel/entry.S	2015-01-17 02:39:35.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/entry.S	2015-01-19 10:57:45.000000000 +0000
 @@ -1706,7 +1706,7 @@ sys_call_table:
  	data8 sys_mq_notify
  	data8 sys_mq_getsetattr
@@ -267,9 +267,9 @@ diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/entry.S linux-3.13.10-vs2.3
  	data8 sys_waitid			// 1270
  	data8 sys_add_key
  	data8 sys_request_key
-diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/ptrace.c linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/ptrace.c
---- linux-3.13.10/arch/ia64/kernel/ptrace.c	2013-02-19 13:56:51.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/ptrace.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/ia64/kernel/ptrace.c linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/ptrace.c
+--- linux-3.18.5/arch/ia64/kernel/ptrace.c	2015-01-17 02:39:35.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/ptrace.c	2015-01-19 10:57:45.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/regset.h>
  #include <linux/elf.h>
@@ -278,9 +278,9 @@ diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/ptrace.c linux-3.13.10-vs2.
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/traps.c
---- linux-3.13.10/arch/ia64/kernel/traps.c	2013-11-25 15:44:20.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/ia64/kernel/traps.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/ia64/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/traps.c
+--- linux-3.18.5/arch/ia64/kernel/traps.c	2015-01-17 02:39:35.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/ia64/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
 @@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
  	put_cpu();
  
@@ -305,9 +305,9 @@ diff -NurpP --minimal linux-3.13.10/arch/ia64/kernel/traps.c linux-3.13.10-vs2.3
  			}
  		}
  	}
-diff -NurpP --minimal linux-3.13.10/arch/m32r/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/m32r/kernel/traps.c
---- linux-3.13.10/arch/m32r/kernel/traps.c	2013-07-14 17:00:26.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/m32r/kernel/traps.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/m32r/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/m32r/kernel/traps.c
+--- linux-3.18.5/arch/m32r/kernel/traps.c	2013-07-14 17:00:26.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/m32r/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
 @@ -184,8 +184,9 @@ static void show_registers(struct pt_reg
  	} else {
  		printk("SPI: %08lx\n", sp);
@@ -320,10 +320,10 @@ diff -NurpP --minimal linux-3.13.10/arch/m32r/kernel/traps.c linux-3.13.10-vs2.3
  
  	/*
  	 * When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.13.10/arch/m68k/Kconfig linux-3.13.10-vs2.3.6.11/arch/m68k/Kconfig
---- linux-3.13.10/arch/m68k/Kconfig	2014-04-17 01:12:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/m68k/Kconfig	2014-04-17 01:17:10.000000000 +0000
-@@ -135,6 +135,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/m68k/Kconfig linux-3.18.5-vs2.3.7.3/arch/m68k/Kconfig
+--- linux-3.18.5/arch/m68k/Kconfig	2014-06-12 13:00:43.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/m68k/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -159,6 +159,8 @@ source "fs/Kconfig"
  
  source "arch/m68k/Kconfig.debug"
  
@@ -332,10 +332,10 @@ diff -NurpP --minimal linux-3.13.10/arch/m68k/Kconfig linux-3.13.10-vs2.3.6.11/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/mips/Kconfig linux-3.13.10-vs2.3.6.11/arch/mips/Kconfig
---- linux-3.13.10/arch/mips/Kconfig	2014-01-22 20:38:16.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -2539,6 +2539,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/mips/Kconfig linux-3.18.5-vs2.3.7.3/arch/mips/Kconfig
+--- linux-3.18.5/arch/mips/Kconfig	2015-01-17 02:39:35.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -2712,6 +2712,8 @@ source "fs/Kconfig"
  
  source "arch/mips/Kconfig.debug"
  
@@ -344,10 +344,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/Kconfig linux-3.13.10-vs2.3.6.11/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/ptrace.c linux-3.13.10-vs2.3.6.11/arch/mips/kernel/ptrace.c
---- linux-3.13.10/arch/mips/kernel/ptrace.c	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/ptrace.c	2014-01-31 20:53:13.000000000 +0000
-@@ -30,6 +30,7 @@
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/ptrace.c linux-3.18.5-vs2.3.7.3/arch/mips/kernel/ptrace.c
+--- linux-3.18.5/arch/mips/kernel/ptrace.c	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/ptrace.c	2015-01-19 10:57:45.000000000 +0000
+@@ -29,6 +29,7 @@
  #include <linux/audit.h>
  #include <linux/seccomp.h>
  #include <linux/ftrace.h>
@@ -355,7 +355,7 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/ptrace.c linux-3.13.10-vs2.
  
  #include <asm/byteorder.h>
  #include <asm/cpu.h>
-@@ -398,6 +399,9 @@ long arch_ptrace(struct task_struct *chi
+@@ -544,6 +545,9 @@ long arch_ptrace(struct task_struct *chi
  	void __user *datavp = (void __user *) data;
  	unsigned long __user *datalp = (void __user *) data;
  
@@ -365,10 +365,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/ptrace.c linux-3.13.10-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.13.10/arch/mips/kernel/scall32-o32.S linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall32-o32.S
---- linux-3.13.10/arch/mips/kernel/scall32-o32.S	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall32-o32.S	2014-01-31 20:48:18.000000000 +0000
-@@ -491,7 +491,7 @@ EXPORT(sys_call_table)
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/scall32-o32.S linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall32-o32.S
+--- linux-3.18.5/arch/mips/kernel/scall32-o32.S	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall32-o32.S	2015-01-19 10:57:45.000000000 +0000
+@@ -501,7 +501,7 @@ EXPORT(sys_call_table)
  	PTR	sys_mq_timedreceive
  	PTR	sys_mq_notify			/* 4275 */
  	PTR	sys_mq_getsetattr
@@ -377,10 +377,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall32-o32.S linux-3.13.10
  	PTR	sys_waitid
  	PTR	sys_ni_syscall			/* available, was setaltroot */
  	PTR	sys_add_key			/* 4280 */
-diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-64.S linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-64.S
---- linux-3.13.10/arch/mips/kernel/scall64-64.S	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-64.S	2014-01-31 20:38:03.000000000 +0000
-@@ -352,7 +352,7 @@ EXPORT(sys_call_table)
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/scall64-64.S linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-64.S
+--- linux-3.18.5/arch/mips/kernel/scall64-64.S	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-64.S	2015-01-19 10:57:45.000000000 +0000
+@@ -355,7 +355,7 @@ EXPORT(sys_call_table)
  	PTR	sys_mq_timedreceive
  	PTR	sys_mq_notify
  	PTR	sys_mq_getsetattr		/* 5235 */
@@ -389,10 +389,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-64.S linux-3.13.10-
  	PTR	sys_waitid
  	PTR	sys_ni_syscall			/* available, was setaltroot */
  	PTR	sys_add_key
-diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-n32.S linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-n32.S
---- linux-3.13.10/arch/mips/kernel/scall64-n32.S	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-n32.S	2014-01-31 20:38:03.000000000 +0000
-@@ -345,7 +345,7 @@ EXPORT(sysn32_call_table)
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/scall64-n32.S linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-n32.S
+--- linux-3.18.5/arch/mips/kernel/scall64-n32.S	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-n32.S	2015-01-19 10:57:45.000000000 +0000
+@@ -348,7 +348,7 @@ EXPORT(sysn32_call_table)
  	PTR	compat_sys_mq_timedreceive
  	PTR	compat_sys_mq_notify
  	PTR	compat_sys_mq_getsetattr
@@ -401,10 +401,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-n32.S linux-3.13.10
  	PTR	compat_sys_waitid
  	PTR	sys_ni_syscall			/* available, was setaltroot */
  	PTR	sys_add_key
-diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-o32.S linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-o32.S
---- linux-3.13.10/arch/mips/kernel/scall64-o32.S	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/scall64-o32.S	2014-01-31 20:38:03.000000000 +0000
-@@ -469,7 +469,7 @@ EXPORT(sys32_call_table)
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/scall64-o32.S linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-o32.S
+--- linux-3.18.5/arch/mips/kernel/scall64-o32.S	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/scall64-o32.S	2015-01-19 10:57:45.000000000 +0000
+@@ -486,7 +486,7 @@ EXPORT(sys32_call_table)
  	PTR	compat_sys_mq_timedreceive
  	PTR	compat_sys_mq_notify		/* 4275 */
  	PTR	compat_sys_mq_getsetattr
@@ -413,10 +413,10 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/scall64-o32.S linux-3.13.10
  	PTR	compat_sys_waitid
  	PTR	sys_ni_syscall			/* available, was setaltroot */
  	PTR	sys_add_key			/* 4280 */
-diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/mips/kernel/traps.c
---- linux-3.13.10/arch/mips/kernel/traps.c	2014-01-22 20:38:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/mips/kernel/traps.c	2014-01-31 20:38:03.000000000 +0000
-@@ -334,9 +334,10 @@ void show_registers(struct pt_regs *regs
+diff -NurpP --minimal linux-3.18.5/arch/mips/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/mips/kernel/traps.c
+--- linux-3.18.5/arch/mips/kernel/traps.c	2015-01-16 22:18:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/mips/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
+@@ -341,9 +341,10 @@ void show_registers(struct pt_regs *regs
  
  	__show_regs(regs);
  	print_modules();
@@ -430,21 +430,21 @@ diff -NurpP --minimal linux-3.13.10/arch/mips/kernel/traps.c linux-3.13.10-vs2.3
  	if (cpu_has_userlocal) {
  		unsigned long tls;
  
-diff -NurpP --minimal linux-3.13.10/arch/parisc/Kconfig linux-3.13.10-vs2.3.6.11/arch/parisc/Kconfig
---- linux-3.13.10/arch/parisc/Kconfig	2014-01-22 20:38:18.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/parisc/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -320,6 +320,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/parisc/Kconfig linux-3.18.5-vs2.3.7.3/arch/parisc/Kconfig
+--- linux-3.18.5/arch/parisc/Kconfig	2015-01-16 22:18:21.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/parisc/Kconfig	2015-01-19 10:57:45.000000000 +0000
+@@ -337,6 +337,8 @@ config SECCOMP
  
- source "arch/parisc/Kconfig.debug"
+ 	  If unsure, say Y. Only embedded should say N here.
  
 +source "kernel/vserver/Kconfig"
 +
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/parisc/kernel/syscall_table.S linux-3.13.10-vs2.3.6.11/arch/parisc/kernel/syscall_table.S
---- linux-3.13.10/arch/parisc/kernel/syscall_table.S	2013-07-14 17:00:31.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/parisc/kernel/syscall_table.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/parisc/kernel/syscall_table.S linux-3.18.5-vs2.3.7.3/arch/parisc/kernel/syscall_table.S
+--- linux-3.18.5/arch/parisc/kernel/syscall_table.S	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/parisc/kernel/syscall_table.S	2015-01-19 10:57:45.000000000 +0000
 @@ -358,7 +358,7 @@
  	ENTRY_COMP(mbind)		/* 260 */
  	ENTRY_COMP(get_mempolicy)
@@ -454,10 +454,10 @@ diff -NurpP --minimal linux-3.13.10/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.13.10/arch/parisc/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/parisc/kernel/traps.c
---- linux-3.13.10/arch/parisc/kernel/traps.c	2013-11-25 15:46:28.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/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_
+diff -NurpP --minimal linux-3.18.5/arch/parisc/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/parisc/kernel/traps.c
+--- linux-3.18.5/arch/parisc/kernel/traps.c	2014-06-12 13:01:26.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/parisc/kernel/traps.c	2015-01-19 10:57:45.000000000 +0000
+@@ -239,8 +239,9 @@ void die_if_kernel(char *str, struct pt_
  			return; /* STFU */
  
  		parisc_printk_ratelimited(1, regs,
@@ -469,7 +469,7 @@ diff -NurpP --minimal linux-3.13.10/arch/parisc/kernel/traps.c linux-3.13.10-vs2
  
  		return;
  	}
-@@ -263,8 +264,8 @@ void die_if_kernel(char *str, struct pt_
+@@ -270,8 +271,8 @@ void die_if_kernel(char *str, struct pt_
  		pdc_console_restart();
  	
  	if (err)
@@ -480,10 +480,10 @@ diff -NurpP --minimal linux-3.13.10/arch/parisc/kernel/traps.c linux-3.13.10-vs2
  
  	/* Wot's wrong wif bein' racy? */
  	if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.13.10/arch/powerpc/Kconfig linux-3.13.10-vs2.3.6.11/arch/powerpc/Kconfig
---- linux-3.13.10/arch/powerpc/Kconfig	2014-01-22 20:38:18.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/powerpc/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -1028,6 +1028,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/powerpc/Kconfig linux-3.18.5-vs2.3.7.3/arch/powerpc/Kconfig
+--- linux-3.18.5/arch/powerpc/Kconfig	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/powerpc/Kconfig	2015-01-19 10:57:46.000000000 +0000
+@@ -1068,6 +1068,8 @@ source "lib/Kconfig"
  
  source "arch/powerpc/Kconfig.debug"
  
@@ -492,9 +492,9 @@ diff -NurpP --minimal linux-3.13.10/arch/powerpc/Kconfig linux-3.13.10-vs2.3.6.1
  source "security/Kconfig"
  
  config KEYS_COMPAT
-diff -NurpP --minimal linux-3.13.10/arch/powerpc/include/uapi/asm/unistd.h linux-3.13.10-vs2.3.6.11/arch/powerpc/include/uapi/asm/unistd.h
---- linux-3.13.10/arch/powerpc/include/uapi/asm/unistd.h	2013-05-31 13:44:44.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/powerpc/include/uapi/asm/unistd.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/powerpc/include/uapi/asm/unistd.h linux-3.18.5-vs2.3.7.3/arch/powerpc/include/uapi/asm/unistd.h
+--- linux-3.18.5/arch/powerpc/include/uapi/asm/unistd.h	2015-01-17 02:39:36.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/powerpc/include/uapi/asm/unistd.h	2015-01-19 10:57:46.000000000 +0000
 @@ -275,7 +275,7 @@
  #endif
  #define __NR_rtas		255
@@ -504,10 +504,10 @@ diff -NurpP --minimal linux-3.13.10/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.13.10/arch/powerpc/kernel/traps.c linux-3.13.10-vs2.3.6.11/arch/powerpc/kernel/traps.c
---- linux-3.13.10/arch/powerpc/kernel/traps.c	2014-01-22 20:38:23.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/powerpc/kernel/traps.c	2014-01-31 20:38:03.000000000 +0000
-@@ -1272,8 +1272,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-3.18.5/arch/powerpc/kernel/traps.c linux-3.18.5-vs2.3.7.3/arch/powerpc/kernel/traps.c
+--- linux-3.18.5/arch/powerpc/kernel/traps.c	2015-01-16 22:18:21.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/powerpc/kernel/traps.c	2015-01-19 10:57:46.000000000 +0000
+@@ -1313,8 +1313,9 @@ void nonrecoverable_exception(struct pt_
  
  void trace_syscall(struct pt_regs *regs)
  {
@@ -519,10 +519,10 @@ diff -NurpP --minimal linux-3.13.10/arch/powerpc/kernel/traps.c linux-3.13.10-vs
  	       regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
  }
  
-diff -NurpP --minimal linux-3.13.10/arch/s390/Kconfig linux-3.13.10-vs2.3.6.11/arch/s390/Kconfig
---- linux-3.13.10/arch/s390/Kconfig	2014-04-17 01:12:08.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/s390/Kconfig	2014-04-17 01:17:10.000000000 +0000
-@@ -650,6 +650,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/s390/Kconfig linux-3.18.5-vs2.3.7.3/arch/s390/Kconfig
+--- linux-3.18.5/arch/s390/Kconfig	2015-01-17 02:39:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/s390/Kconfig	2015-01-19 10:57:46.000000000 +0000
+@@ -652,6 +652,8 @@ source "fs/Kconfig"
  
  source "arch/s390/Kconfig.debug"
  
@@ -531,9 +531,9 @@ diff -NurpP --minimal linux-3.13.10/arch/s390/Kconfig linux-3.13.10-vs2.3.6.11/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/s390/include/asm/tlb.h linux-3.13.10-vs2.3.6.11/arch/s390/include/asm/tlb.h
---- linux-3.13.10/arch/s390/include/asm/tlb.h	2013-11-25 15:46:29.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/s390/include/asm/tlb.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/s390/include/asm/tlb.h linux-3.18.5-vs2.3.7.3/arch/s390/include/asm/tlb.h
+--- linux-3.18.5/arch/s390/include/asm/tlb.h	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/s390/include/asm/tlb.h	2015-01-19 10:57:46.000000000 +0000
 @@ -24,6 +24,7 @@
  #include <linux/mm.h>
  #include <linux/pagemap.h>
@@ -542,9 +542,9 @@ diff -NurpP --minimal linux-3.13.10/arch/s390/include/asm/tlb.h linux-3.13.10-vs
  #include <asm/processor.h>
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.13.10/arch/s390/include/uapi/asm/unistd.h linux-3.13.10-vs2.3.6.11/arch/s390/include/uapi/asm/unistd.h
---- linux-3.13.10/arch/s390/include/uapi/asm/unistd.h	2013-02-19 13:57:16.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/s390/include/uapi/asm/unistd.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/s390/include/uapi/asm/unistd.h linux-3.18.5-vs2.3.7.3/arch/s390/include/uapi/asm/unistd.h
+--- linux-3.18.5/arch/s390/include/uapi/asm/unistd.h	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/s390/include/uapi/asm/unistd.h	2015-01-19 10:57:46.000000000 +0000
 @@ -200,7 +200,7 @@
  #define __NR_clock_gettime	(__NR_timer_create+6)
  #define __NR_clock_getres	(__NR_timer_create+7)
@@ -554,9 +554,9 @@ diff -NurpP --minimal linux-3.13.10/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.13.10/arch/s390/kernel/ptrace.c linux-3.13.10-vs2.3.6.11/arch/s390/kernel/ptrace.c
---- linux-3.13.10/arch/s390/kernel/ptrace.c	2014-01-22 20:38:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/s390/kernel/ptrace.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/s390/kernel/ptrace.c linux-3.18.5-vs2.3.7.3/arch/s390/kernel/ptrace.c
+--- linux-3.18.5/arch/s390/kernel/ptrace.c	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/s390/kernel/ptrace.c	2015-01-19 10:57:46.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/tracehook.h>
  #include <linux/seccomp.h>
@@ -565,9 +565,9 @@ diff -NurpP --minimal linux-3.13.10/arch/s390/kernel/ptrace.c linux-3.13.10-vs2.
  #include <trace/syscall.h>
  #include <asm/segment.h>
  #include <asm/page.h>
-diff -NurpP --minimal linux-3.13.10/arch/s390/kernel/syscalls.S linux-3.13.10-vs2.3.6.11/arch/s390/kernel/syscalls.S
---- linux-3.13.10/arch/s390/kernel/syscalls.S	2013-07-14 17:00:34.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/s390/kernel/syscalls.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/s390/kernel/syscalls.S linux-3.18.5-vs2.3.7.3/arch/s390/kernel/syscalls.S
+--- linux-3.18.5/arch/s390/kernel/syscalls.S	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/s390/kernel/syscalls.S	2015-01-19 11:00:51.000000000 +0000
 @@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
  SYSCALL(sys_clock_gettime,sys_clock_gettime,compat_sys_clock_gettime)	/* 260 */
  SYSCALL(sys_clock_getres,sys_clock_getres,compat_sys_clock_getres)
@@ -577,10 +577,10 @@ diff -NurpP --minimal linux-3.13.10/arch/s390/kernel/syscalls.S linux-3.13.10-vs
  SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,compat_sys_s390_fadvise64_64)
  SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64)
  SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64)
-diff -NurpP --minimal linux-3.13.10/arch/sh/Kconfig linux-3.13.10-vs2.3.6.11/arch/sh/Kconfig
---- linux-3.13.10/arch/sh/Kconfig	2014-01-22 20:38:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sh/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -927,6 +927,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/sh/Kconfig linux-3.18.5-vs2.3.7.3/arch/sh/Kconfig
+--- linux-3.18.5/arch/sh/Kconfig	2015-01-16 22:18:23.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sh/Kconfig	2015-01-19 10:57:46.000000000 +0000
+@@ -878,6 +878,8 @@ source "fs/Kconfig"
  
  source "arch/sh/Kconfig.debug"
  
@@ -589,9 +589,9 @@ diff -NurpP --minimal linux-3.13.10/arch/sh/Kconfig linux-3.13.10-vs2.3.6.11/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/sh/kernel/irq.c linux-3.13.10-vs2.3.6.11/arch/sh/kernel/irq.c
---- linux-3.13.10/arch/sh/kernel/irq.c	2014-01-22 20:38:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sh/kernel/irq.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/sh/kernel/irq.c linux-3.18.5-vs2.3.7.3/arch/sh/kernel/irq.c
+--- linux-3.18.5/arch/sh/kernel/irq.c	2014-06-12 13:01:29.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sh/kernel/irq.c	2015-01-19 10:57:46.000000000 +0000
 @@ -14,6 +14,7 @@
  #include <linux/ftrace.h>
  #include <linux/delay.h>
@@ -600,10 +600,10 @@ diff -NurpP --minimal linux-3.13.10/arch/sh/kernel/irq.c linux-3.13.10-vs2.3.6.1
  #include <asm/processor.h>
  #include <asm/machvec.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.13.10/arch/sparc/Kconfig linux-3.13.10-vs2.3.6.11/arch/sparc/Kconfig
---- linux-3.13.10/arch/sparc/Kconfig	2014-01-22 20:38:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sparc/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -553,6 +553,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/sparc/Kconfig linux-3.18.5-vs2.3.7.3/arch/sparc/Kconfig
+--- linux-3.18.5/arch/sparc/Kconfig	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sparc/Kconfig	2015-01-19 10:57:46.000000000 +0000
+@@ -557,6 +557,8 @@ source "fs/Kconfig"
  
  source "arch/sparc/Kconfig.debug"
  
@@ -612,9 +612,9 @@ diff -NurpP --minimal linux-3.13.10/arch/sparc/Kconfig linux-3.13.10-vs2.3.6.11/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/sparc/include/uapi/asm/unistd.h linux-3.13.10-vs2.3.6.11/arch/sparc/include/uapi/asm/unistd.h
---- linux-3.13.10/arch/sparc/include/uapi/asm/unistd.h	2013-02-19 13:57:17.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sparc/include/uapi/asm/unistd.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/sparc/include/uapi/asm/unistd.h linux-3.18.5-vs2.3.7.3/arch/sparc/include/uapi/asm/unistd.h
+--- linux-3.18.5/arch/sparc/include/uapi/asm/unistd.h	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sparc/include/uapi/asm/unistd.h	2015-01-19 10:57:46.000000000 +0000
 @@ -332,7 +332,7 @@
  #define __NR_timer_getoverrun	264
  #define __NR_timer_delete	265
@@ -624,9 +624,9 @@ diff -NurpP --minimal linux-3.13.10/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.13.10/arch/sparc/kernel/systbls_32.S linux-3.13.10-vs2.3.6.11/arch/sparc/kernel/systbls_32.S
---- linux-3.13.10/arch/sparc/kernel/systbls_32.S	2013-05-31 13:44:48.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sparc/kernel/systbls_32.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/sparc/kernel/systbls_32.S linux-3.18.5-vs2.3.7.3/arch/sparc/kernel/systbls_32.S
+--- linux-3.18.5/arch/sparc/kernel/systbls_32.S	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sparc/kernel/systbls_32.S	2015-01-19 10:57:46.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
@@ -636,9 +636,9 @@ diff -NurpP --minimal linux-3.13.10/arch/sparc/kernel/systbls_32.S linux-3.13.10
  /*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.13.10/arch/sparc/kernel/systbls_64.S linux-3.13.10-vs2.3.6.11/arch/sparc/kernel/systbls_64.S
---- linux-3.13.10/arch/sparc/kernel/systbls_64.S	2013-07-14 17:00:35.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/sparc/kernel/systbls_64.S	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/sparc/kernel/systbls_64.S linux-3.18.5-vs2.3.7.3/arch/sparc/kernel/systbls_64.S
+--- linux-3.18.5/arch/sparc/kernel/systbls_64.S	2015-01-17 02:39:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/sparc/kernel/systbls_64.S	2015-01-19 10:57:46.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
@@ -648,7 +648,7 @@ diff -NurpP --minimal linux-3.13.10/arch/sparc/kernel/systbls_64.S linux-3.13.10
  /*270*/	.word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
  	.word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
  /*280*/	.word sys_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
-@@ -149,7 +149,7 @@ sys_call_table:
+@@ -150,7 +150,7 @@ sys_call_table:
  /*250*/	.word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
  	.word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
  /*260*/	.word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
@@ -657,9 +657,9 @@ diff -NurpP --minimal linux-3.13.10/arch/sparc/kernel/systbls_64.S linux-3.13.10
  /*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.13.10/arch/um/Kconfig.rest linux-3.13.10-vs2.3.6.11/arch/um/Kconfig.rest
---- linux-3.13.10/arch/um/Kconfig.rest	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/um/Kconfig.rest	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/um/Kconfig.rest linux-3.18.5-vs2.3.7.3/arch/um/Kconfig.rest
+--- linux-3.18.5/arch/um/Kconfig.rest	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/um/Kconfig.rest	2015-01-19 10:57:46.000000000 +0000
 @@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
  
  source "fs/Kconfig"
@@ -669,10 +669,10 @@ diff -NurpP --minimal linux-3.13.10/arch/um/Kconfig.rest linux-3.13.10-vs2.3.6.1
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/x86/Kconfig linux-3.13.10-vs2.3.6.11/arch/x86/Kconfig
---- linux-3.13.10/arch/x86/Kconfig	2014-01-22 20:38:25.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/x86/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -2403,6 +2403,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.18.5/arch/x86/Kconfig linux-3.18.5-vs2.3.7.3/arch/x86/Kconfig
+--- linux-3.18.5/arch/x86/Kconfig	2015-02-05 18:02:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/x86/Kconfig	2015-02-05 18:08:00.000000000 +0000
+@@ -2506,6 +2506,8 @@ source "fs/Kconfig"
  
  source "arch/x86/Kconfig.debug"
  
@@ -681,9 +681,9 @@ diff -NurpP --minimal linux-3.13.10/arch/x86/Kconfig linux-3.13.10-vs2.3.6.11/ar
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.13.10/arch/x86/syscalls/syscall_32.tbl linux-3.13.10-vs2.3.6.11/arch/x86/syscalls/syscall_32.tbl
---- linux-3.13.10/arch/x86/syscalls/syscall_32.tbl	2013-07-14 17:00:37.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/x86/syscalls/syscall_32.tbl	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/x86/syscalls/syscall_32.tbl linux-3.18.5-vs2.3.7.3/arch/x86/syscalls/syscall_32.tbl
+--- linux-3.18.5/arch/x86/syscalls/syscall_32.tbl	2015-01-17 02:39:43.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/x86/syscalls/syscall_32.tbl	2015-01-19 10:57:46.000000000 +0000
 @@ -279,7 +279,7 @@
  270	i386	tgkill			sys_tgkill
  271	i386	utimes			sys_utimes			compat_sys_utimes
@@ -693,9 +693,9 @@ diff -NurpP --minimal linux-3.13.10/arch/x86/syscalls/syscall_32.tbl linux-3.13.
  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.13.10/arch/x86/syscalls/syscall_64.tbl linux-3.13.10-vs2.3.6.11/arch/x86/syscalls/syscall_64.tbl
---- linux-3.13.10/arch/x86/syscalls/syscall_64.tbl	2013-05-31 13:44:50.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/arch/x86/syscalls/syscall_64.tbl	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/arch/x86/syscalls/syscall_64.tbl linux-3.18.5-vs2.3.7.3/arch/x86/syscalls/syscall_64.tbl
+--- linux-3.18.5/arch/x86/syscalls/syscall_64.tbl	2015-01-17 02:39:43.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/arch/x86/syscalls/syscall_64.tbl	2015-01-19 10:57:46.000000000 +0000
 @@ -242,7 +242,7 @@
  233	common	epoll_ctl		sys_epoll_ctl
  234	common	tgkill			sys_tgkill
@@ -705,10 +705,39 @@ diff -NurpP --minimal linux-3.13.10/arch/x86/syscalls/syscall_64.tbl linux-3.13.
  237	common	mbind			sys_mbind
  238	common	set_mempolicy		sys_set_mempolicy
  239	common	get_mempolicy		sys_get_mempolicy
-diff -NurpP --minimal linux-3.13.10/drivers/block/Kconfig linux-3.13.10-vs2.3.6.11/drivers/block/Kconfig
---- linux-3.13.10/drivers/block/Kconfig	2014-01-22 20:38:27.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/block/Kconfig	2014-01-31 20:38:03.000000000 +0000
-@@ -281,6 +281,13 @@ config BLK_DEV_CRYPTOLOOP
+diff -NurpP --minimal linux-3.18.5/block/ioprio.c linux-3.18.5-vs2.3.7.3/block/ioprio.c
+--- linux-3.18.5/block/ioprio.c	2015-01-17 02:39:43.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/block/ioprio.c	2015-01-19 13:00:07.000000000 +0000
+@@ -28,6 +28,7 @@
+ #include <linux/syscalls.h>
+ #include <linux/security.h>
+ #include <linux/pid_namespace.h>
++#include <linux/vs_base.h>
+ 
+ int set_task_ioprio(struct task_struct *task, int ioprio)
+ {
+@@ -105,6 +106,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
+ 			else
+ 				pgrp = find_vpid(who);
+ 			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
++				if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
++					continue;
+ 				ret = set_task_ioprio(p, ioprio);
+ 				if (ret)
+ 					break;
+@@ -200,6 +203,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
+ 			else
+ 				pgrp = find_vpid(who);
+ 			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
++				if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
++					continue;
+ 				tmpio = get_task_ioprio(p);
+ 				if (tmpio < 0)
+ 					continue;
+diff -NurpP --minimal linux-3.18.5/drivers/block/Kconfig linux-3.18.5-vs2.3.7.3/drivers/block/Kconfig
+--- linux-3.18.5/drivers/block/Kconfig	2014-06-12 11:33:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/block/Kconfig	2015-01-19 10:57:46.000000000 +0000
+@@ -283,6 +283,13 @@ config BLK_DEV_CRYPTOLOOP
  
  source "drivers/block/drbd/Kconfig"
  
@@ -722,20 +751,20 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/Kconfig linux-3.13.10-vs2.3.6.
  config BLK_DEV_NBD
  	tristate "Network block device support"
  	depends on NET
-diff -NurpP --minimal linux-3.13.10/drivers/block/Makefile linux-3.13.10-vs2.3.6.11/drivers/block/Makefile
---- linux-3.13.10/drivers/block/Makefile	2014-01-22 20:38:27.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/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
+diff -NurpP --minimal linux-3.18.5/drivers/block/Makefile linux-3.18.5-vs2.3.7.3/drivers/block/Makefile
+--- linux-3.18.5/drivers/block/Makefile	2014-06-12 11:33:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/block/Makefile	2015-01-19 10:57:46.000000000 +0000
+@@ -33,6 +33,7 @@ obj-$(CONFIG_VIRTIO_BLK)	+= virtio_blk.o
+ 
  obj-$(CONFIG_BLK_DEV_SX8)	+= sx8.o
  obj-$(CONFIG_BLK_DEV_HD)	+= hd.o
 +obj-$(CONFIG_BLK_DEV_VROOT)	+= vroot.o
  
  obj-$(CONFIG_XEN_BLKDEV_FRONTEND)	+= xen-blkfront.o
  obj-$(CONFIG_XEN_BLKDEV_BACKEND)	+= xen-blkback/
-diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.11/drivers/block/loop.c
---- linux-3.13.10/drivers/block/loop.c	2014-01-22 20:38:27.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/block/loop.c	2014-01-31 20:55:14.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/block/loop.c linux-3.18.5-vs2.3.7.3/drivers/block/loop.c
+--- linux-3.18.5/drivers/block/loop.c	2014-09-03 13:18:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/block/loop.c	2015-01-19 10:57:46.000000000 +0000
 @@ -75,6 +75,7 @@
  #include <linux/sysfs.h>
  #include <linux/miscdevice.h>
@@ -744,7 +773,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  #include "loop.h"
  
  #include <asm/uaccess.h>
-@@ -884,6 +885,7 @@ static int loop_set_fd(struct loop_devic
+@@ -885,6 +886,7 @@ static int loop_set_fd(struct loop_devic
  	lo->lo_blocksize = lo_blocksize;
  	lo->lo_device = bdev;
  	lo->lo_flags = lo_flags;
@@ -752,7 +781,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  	lo->lo_backing_file = file;
  	lo->transfer = transfer_none;
  	lo->ioctl = NULL;
-@@ -1028,6 +1030,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1029,6 +1031,7 @@ static int loop_clr_fd(struct loop_devic
  	lo->lo_sizelimit = 0;
  	lo->lo_encrypt_key_size = 0;
  	lo->lo_thread = NULL;
@@ -760,7 +789,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  	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);
-@@ -1071,7 +1074,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1072,7 +1075,7 @@ loop_set_status(struct loop_device *lo,
  
  	if (lo->lo_encrypt_key_size &&
  	    !uid_eq(lo->lo_key_owner, uid) &&
@@ -769,7 +798,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  		return -EPERM;
  	if (lo->lo_state != Lo_bound)
  		return -ENXIO;
-@@ -1161,7 +1164,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1162,7 +1165,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;
@@ -779,7 +808,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  		info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
  		memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
  		       lo->lo_encrypt_key_size);
-@@ -1503,6 +1507,11 @@ static int lo_open(struct block_device *
+@@ -1504,6 +1508,11 @@ static int lo_open(struct block_device *
  		goto out;
  	}
  
@@ -791,9 +820,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.c linux-3.13.10-vs2.3.6.1
  	mutex_lock(&lo->lo_ctl_mutex);
  	lo->lo_refcnt++;
  	mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.13.10/drivers/block/loop.h linux-3.13.10-vs2.3.6.11/drivers/block/loop.h
---- linux-3.13.10/drivers/block/loop.h	2013-11-25 15:44:28.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/block/loop.h	2014-02-01 01:57:49.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/block/loop.h linux-3.18.5-vs2.3.7.3/drivers/block/loop.h
+--- linux-3.18.5/drivers/block/loop.h	2013-11-25 15:44:28.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/block/loop.h	2015-01-19 10:57:46.000000000 +0000
 @@ -41,6 +41,7 @@ struct loop_device {
  	struct loop_func_table *lo_encryption;
  	__u32           lo_init[2];
@@ -802,9 +831,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/loop.h linux-3.13.10-vs2.3.6.1
  	int		(*ioctl)(struct loop_device *, int cmd, 
  				 unsigned long arg); 
  
-diff -NurpP --minimal linux-3.13.10/drivers/block/vroot.c linux-3.13.10-vs2.3.6.11/drivers/block/vroot.c
---- linux-3.13.10/drivers/block/vroot.c	1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/block/vroot.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/block/vroot.c linux-3.18.5-vs2.3.7.3/drivers/block/vroot.c
+--- linux-3.18.5/drivers/block/vroot.c	1970-01-01 00:00:00.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/block/vroot.c	2015-01-19 10:57:46.000000000 +0000
 @@ -0,0 +1,290 @@
 +/*
 + *  linux/drivers/block/vroot.c
@@ -1096,10 +1125,10 @@ diff -NurpP --minimal linux-3.13.10/drivers/block/vroot.c linux-3.13.10-vs2.3.6.
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.13.10/drivers/infiniband/core/addr.c linux-3.13.10-vs2.3.6.11/drivers/infiniband/core/addr.c
---- linux-3.13.10/drivers/infiniband/core/addr.c	2013-11-25 15:44:35.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/infiniband/core/addr.c	2014-01-31 20:38:03.000000000 +0000
-@@ -277,7 +277,7 @@ static int addr6_resolve(struct sockaddr
+diff -NurpP --minimal linux-3.18.5/drivers/infiniband/core/addr.c linux-3.18.5-vs2.3.7.3/drivers/infiniband/core/addr.c
+--- linux-3.18.5/drivers/infiniband/core/addr.c	2014-06-12 11:33:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/infiniband/core/addr.c	2015-01-19 10:57:46.000000000 +0000
+@@ -284,7 +284,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,
@@ -1108,9 +1137,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/infiniband/core/addr.c linux-3.13.10
  		if (ret)
  			goto put;
  
-diff -NurpP --minimal linux-3.13.10/drivers/md/dm-ioctl.c linux-3.13.10-vs2.3.6.11/drivers/md/dm-ioctl.c
---- linux-3.13.10/drivers/md/dm-ioctl.c	2014-01-22 20:38:36.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/md/dm-ioctl.c	2014-01-31 21:01:49.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/md/dm-ioctl.c linux-3.18.5-vs2.3.7.3/drivers/md/dm-ioctl.c
+--- linux-3.18.5/drivers/md/dm-ioctl.c	2015-01-17 02:39:51.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/md/dm-ioctl.c	2015-01-19 10:57:46.000000000 +0000
 @@ -16,6 +16,7 @@
  #include <linux/dm-ioctl.h>
  #include <linux/hdreg.h>
@@ -1196,9 +1225,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm-ioctl.c linux-3.13.10-vs2.3.6.
  		return -EACCES;
  
  	if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/drivers/md/dm.c
---- linux-3.13.10/drivers/md/dm.c	2014-04-17 01:12:19.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/md/dm.c	2014-02-25 11:26:09.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/md/dm.c linux-3.18.5-vs2.3.7.3/drivers/md/dm.c
+--- linux-3.18.5/drivers/md/dm.c	2015-02-05 18:02:42.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/md/dm.c	2015-01-28 11:48:02.000000000 +0000
 @@ -19,6 +19,7 @@
  #include <linux/idr.h>
  #include <linux/hdreg.h>
@@ -1207,7 +1236,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/dri
  
  #include <trace/events/block.h>
  
-@@ -139,6 +140,7 @@ struct mapped_device {
+@@ -134,6 +135,7 @@ struct mapped_device {
  	struct mutex suspend_lock;
  	atomic_t holders;
  	atomic_t open_count;
@@ -1215,7 +1244,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/dri
  
  	/*
  	 * The current mapping.
-@@ -384,6 +386,7 @@ int dm_deleting_md(struct mapped_device
+@@ -397,6 +399,7 @@ int dm_deleting_md(struct mapped_device
  static int dm_blk_open(struct block_device *bdev, fmode_t mode)
  {
  	struct mapped_device *md;
@@ -1223,7 +1252,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/dri
  
  	spin_lock(&_minor_lock);
  
-@@ -392,18 +395,19 @@ static int dm_blk_open(struct block_devi
+@@ -405,18 +408,19 @@ static int dm_blk_open(struct block_devi
  		goto out;
  
  	if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1249,7 +1278,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/dri
  }
  
  static void dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -687,6 +691,14 @@ int dm_set_geometry(struct mapped_device
+@@ -819,6 +823,14 @@ int dm_set_geometry(struct mapped_device
  	return 0;
  }
  
@@ -1264,17 +1293,17 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.c linux-3.13.10-vs2.3.6.11/dri
  /*-----------------------------------------------------------------
   * CRUD START:
   *   A more elegant soln is in the works that uses the queue
-@@ -2026,6 +2038,7 @@ static struct mapped_device *alloc_dev(i
- 	INIT_LIST_HEAD(&md->uevent_list);
+@@ -2077,6 +2089,7 @@ static struct mapped_device *alloc_dev(i
+ 	INIT_LIST_HEAD(&md->table_devices);
  	spin_lock_init(&md->uevent_lock);
  
 +	md->xid = vx_current_xid();
  	md->queue = blk_alloc_queue(GFP_KERNEL);
  	if (!md->queue)
  		goto bad_queue;
-diff -NurpP --minimal linux-3.13.10/drivers/md/dm.h linux-3.13.10-vs2.3.6.11/drivers/md/dm.h
---- linux-3.13.10/drivers/md/dm.h	2014-04-17 01:12:19.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/md/dm.h	2014-02-25 11:26:09.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/md/dm.h linux-3.18.5-vs2.3.7.3/drivers/md/dm.h
+--- linux-3.18.5/drivers/md/dm.h	2015-01-17 02:39:51.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/md/dm.h	2015-01-19 10:57:46.000000000 +0000
 @@ -50,6 +50,8 @@ struct dm_dev_internal {
  struct dm_table;
  struct dm_md_mempools;
@@ -1284,18 +1313,18 @@ diff -NurpP --minimal linux-3.13.10/drivers/md/dm.h linux-3.13.10-vs2.3.6.11/dri
  /*-----------------------------------------------------------------
   * Internal table functions.
   *---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/drivers/net/tun.c
---- linux-3.13.10/drivers/net/tun.c	2014-04-17 01:12:21.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/net/tun.c	2014-04-17 01:17:10.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/net/tun.c linux-3.18.5-vs2.3.7.3/drivers/net/tun.c
+--- linux-3.18.5/drivers/net/tun.c	2015-01-17 02:40:00.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/net/tun.c	2015-01-19 10:57:46.000000000 +0000
 @@ -65,6 +65,7 @@
  #include <linux/nsproxy.h>
  #include <linux/virtio_net.h>
  #include <linux/rcupdate.h>
 +#include <linux/vs_network.h>
+ #include <net/ipv6.h>
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
- #include <net/rtnetlink.h>
-@@ -168,6 +169,7 @@ struct tun_struct {
+@@ -171,6 +172,7 @@ struct tun_struct {
  	unsigned int 		flags;
  	kuid_t			owner;
  	kgid_t			group;
@@ -1303,7 +1332,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/d
  
  	struct net_device	*dev;
  	netdev_features_t	set_features;
-@@ -385,6 +387,7 @@ static inline bool tun_not_capable(struc
+@@ -404,6 +406,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);
@@ -1311,7 +1340,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/d
  }
  
  static void tun_set_real_num_queues(struct tun_struct *tun)
-@@ -1382,6 +1385,7 @@ static void tun_setup(struct net_device
+@@ -1413,6 +1416,7 @@ static void tun_setup(struct net_device
  
  	tun->owner = INVALID_UID;
  	tun->group = INVALID_GID;
@@ -1319,7 +1348,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/d
  
  	dev->ethtool_ops = &tun_ethtool_ops;
  	dev->destructor = tun_free_netdev;
-@@ -1598,7 +1602,7 @@ static int tun_set_iff(struct net *net,
+@@ -1629,7 +1633,7 @@ static int tun_set_iff(struct net *net,
  		int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ?
  			     MAX_TAP_QUEUES : 1;
  
@@ -1328,7 +1357,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/d
  			return -EPERM;
  		err = security_tun_dev_create();
  		if (err < 0)
-@@ -1969,6 +1973,16 @@ static long __tun_chr_ioctl(struct file
+@@ -1996,6 +2000,16 @@ static long __tun_chr_ioctl(struct file
  			  from_kgid(&init_user_ns, tun->group));
  		break;
  
@@ -1345,18 +1374,31 @@ diff -NurpP --minimal linux-3.13.10/drivers/net/tun.c linux-3.13.10-vs2.3.6.11/d
  	case TUNSETLINK:
  		/* Only allow setting the type when the interface is down */
  		if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.13.10/drivers/tty/sysrq.c linux-3.13.10-vs2.3.6.11/drivers/tty/sysrq.c
---- linux-3.13.10/drivers/tty/sysrq.c	2014-01-22 20:39:02.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/tty/sysrq.c	2014-01-31 20:55:49.000000000 +0000
-@@ -46,6 +46,7 @@
- #include <linux/jiffies.h>
+diff -NurpP --minimal linux-3.18.5/drivers/scsi/cxgbi/libcxgbi.c linux-3.18.5-vs2.3.7.3/drivers/scsi/cxgbi/libcxgbi.c
+--- linux-3.18.5/drivers/scsi/cxgbi/libcxgbi.c	2015-01-17 02:40:05.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/scsi/cxgbi/libcxgbi.c	2015-02-06 01:59:47.000000000 +0000
+@@ -764,7 +764,8 @@ static struct cxgbi_sock *cxgbi_check_ro
+ 		struct inet6_dev *idev = ip6_dst_idev((struct dst_entry *)rt);
+ 
+ 		err = ipv6_dev_get_saddr(&init_net, idev ? idev->dev : NULL,
+-					 &daddr6->sin6_addr, 0, &pref_saddr);
++					 &daddr6->sin6_addr, 0, &pref_saddr,
++					 NULL);
+ 		if (err) {
+ 			pr_info("failed to get source address to reach %pI6\n",
+ 				&daddr6->sin6_addr);
+diff -NurpP --minimal linux-3.18.5/drivers/tty/sysrq.c linux-3.18.5-vs2.3.7.3/drivers/tty/sysrq.c
+--- linux-3.18.5/drivers/tty/sysrq.c	2015-01-16 22:19:12.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/tty/sysrq.c	2015-01-19 11:01:25.000000000 +0000
+@@ -47,6 +47,7 @@
  #include <linux/syscalls.h>
  #include <linux/of.h>
+ #include <linux/rcupdate.h>
 +#include <linux/vserver/debug.h>
  
  #include <asm/ptrace.h>
  #include <asm/irq_regs.h>
-@@ -407,6 +408,21 @@ static struct sysrq_key_op sysrq_unrt_op
+@@ -408,6 +409,21 @@ static struct sysrq_key_op sysrq_unrt_op
  	.enable_mask	= SYSRQ_ENABLE_RTNICE,
  };
  
@@ -1378,7 +1420,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/sysrq.c linux-3.13.10-vs2.3.6.11
  /* Key Operations table and lock */
  static DEFINE_SPINLOCK(sysrq_key_table_lock);
  
-@@ -462,7 +478,11 @@ static struct sysrq_key_op *sysrq_key_ta
+@@ -463,7 +479,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 */
@@ -1390,7 +1432,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/sysrq.c linux-3.13.10-vs2.3.6.11
  	/* y: May be registered on sparc64 for global register dump */
  	NULL,				/* y */
  	&sysrq_ftrace_dump_op,		/* z */
-@@ -477,6 +497,8 @@ static int sysrq_key_table_key2index(int
+@@ -478,6 +498,8 @@ static int sysrq_key_table_key2index(int
  		retval = key - '0';
  	else if ((key >= 'a') && (key <= 'z'))
  		retval = key + 10 - 'a';
@@ -1399,9 +1441,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/sysrq.c linux-3.13.10-vs2.3.6.11
  	else
  		retval = -1;
  	return retval;
-diff -NurpP --minimal linux-3.13.10/drivers/tty/tty_io.c linux-3.13.10-vs2.3.6.11/drivers/tty/tty_io.c
---- linux-3.13.10/drivers/tty/tty_io.c	2014-01-22 20:39:02.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/drivers/tty/tty_io.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/drivers/tty/tty_io.c linux-3.18.5-vs2.3.7.3/drivers/tty/tty_io.c
+--- linux-3.18.5/drivers/tty/tty_io.c	2015-01-17 02:40:14.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/drivers/tty/tty_io.c	2015-01-19 10:57:46.000000000 +0000
 @@ -104,6 +104,7 @@
  
  #include <linux/kmod.h>
@@ -1410,7 +1452,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/tty_io.c linux-3.13.10-vs2.3.6.1
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -2218,7 +2219,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2237,7 +2238,8 @@ static int tiocsti(struct tty_struct *tt
  	char ch, mbz = 0;
  	struct tty_ldisc *ld;
  
@@ -1420,7 +1462,7 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/tty_io.c linux-3.13.10-vs2.3.6.1
  		return -EPERM;
  	if (get_user(ch, p))
  		return -EFAULT;
-@@ -2506,6 +2508,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2525,6 +2527,7 @@ static int tiocspgrp(struct tty_struct *
  		return -ENOTTY;
  	if (get_user(pgrp_nr, p))
  		return -EFAULT;
@@ -1428,9 +1470,9 @@ diff -NurpP --minimal linux-3.13.10/drivers/tty/tty_io.c linux-3.13.10-vs2.3.6.1
  	if (pgrp_nr < 0)
  		return -EINVAL;
  	rcu_read_lock();
-diff -NurpP --minimal linux-3.13.10/fs/attr.c linux-3.13.10-vs2.3.6.11/fs/attr.c
---- linux-3.13.10/fs/attr.c	2014-04-17 01:12:31.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/attr.c	2014-03-12 15:51:07.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/attr.c linux-3.18.5-vs2.3.7.3/fs/attr.c
+--- linux-3.18.5/fs/attr.c	2014-09-03 13:19:35.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/attr.c	2015-01-19 10:57:46.000000000 +0000
 @@ -15,6 +15,9 @@
  #include <linux/security.h>
  #include <linux/evm.h>
@@ -1471,9 +1513,9 @@ diff -NurpP --minimal linux-3.13.10/fs/attr.c linux-3.13.10-vs2.3.6.11/fs/attr.c
  		if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
  			return -EPERM;
  	}
-diff -NurpP --minimal linux-3.13.10/fs/block_dev.c linux-3.13.10-vs2.3.6.11/fs/block_dev.c
---- linux-3.13.10/fs/block_dev.c	2013-11-25 15:46:58.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/block_dev.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/block_dev.c linux-3.18.5-vs2.3.7.3/fs/block_dev.c
+--- linux-3.18.5/fs/block_dev.c	2015-01-17 02:40:16.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/block_dev.c	2015-01-19 10:57:46.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/log2.h>
  #include <linux/cleancache.h>
@@ -1482,7 +1524,7 @@ diff -NurpP --minimal linux-3.13.10/fs/block_dev.c linux-3.13.10-vs2.3.6.11/fs/b
  #include <asm/uaccess.h>
  #include "internal.h"
  
-@@ -515,6 +516,7 @@ struct block_device *bdget(dev_t dev)
+@@ -575,6 +576,7 @@ struct block_device *bdget(dev_t dev)
  		bdev->bd_invalidated = 0;
  		inode->i_mode = S_IFBLK;
  		inode->i_rdev = dev;
@@ -1490,7 +1532,7 @@ diff -NurpP --minimal linux-3.13.10/fs/block_dev.c linux-3.13.10-vs2.3.6.11/fs/b
  		inode->i_bdev = bdev;
  		inode->i_data.a_ops = &def_blk_aops;
  		mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -562,6 +564,11 @@ EXPORT_SYMBOL(bdput);
+@@ -622,6 +624,11 @@ EXPORT_SYMBOL(bdput);
  static struct block_device *bd_acquire(struct inode *inode)
  {
  	struct block_device *bdev;
@@ -1502,7 +1544,7 @@ diff -NurpP --minimal linux-3.13.10/fs/block_dev.c linux-3.13.10-vs2.3.6.11/fs/b
  
  	spin_lock(&bdev_lock);
  	bdev = inode->i_bdev;
-@@ -572,7 +579,7 @@ static struct block_device *bd_acquire(s
+@@ -632,7 +639,7 @@ static struct block_device *bd_acquire(s
  	}
  	spin_unlock(&bdev_lock);
  
@@ -1511,10 +1553,10 @@ diff -NurpP --minimal linux-3.13.10/fs/block_dev.c linux-3.13.10-vs2.3.6.11/fs/b
  	if (bdev) {
  		spin_lock(&bdev_lock);
  		if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.13.10/fs/btrfs/ctree.h linux-3.13.10-vs2.3.6.11/fs/btrfs/ctree.h
---- linux-3.13.10/fs/btrfs/ctree.h	2014-01-22 20:39:05.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/btrfs/ctree.h	2014-01-31 23:58:35.000000000 +0000
-@@ -718,11 +718,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-3.18.5/fs/btrfs/ctree.h linux-3.18.5-vs2.3.7.3/fs/btrfs/ctree.h
+--- linux-3.18.5/fs/btrfs/ctree.h	2015-01-17 02:40:16.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/btrfs/ctree.h	2015-01-19 10:57:46.000000000 +0000
+@@ -728,11 +728,14 @@ struct btrfs_inode_item {
  	/* modification sequence number for NFS */
  	__le64 sequence;
  
@@ -1530,16 +1572,16 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ctree.h linux-3.13.10-vs2.3.6.11/fs
  	struct btrfs_timespec atime;
  	struct btrfs_timespec ctime;
  	struct btrfs_timespec mtime;
-@@ -2000,6 +2003,8 @@ struct btrfs_ioctl_defrag_range_args {
- 
+@@ -2098,6 +2101,8 @@ struct btrfs_ioctl_defrag_range_args {
  #define BTRFS_DEFAULT_COMMIT_INTERVAL	(30)
+ #define BTRFS_DEFAULT_MAX_INLINE	(8192)
  
 +#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)
-@@ -2269,6 +2274,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -2381,6 +2386,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);
@@ -1547,7 +1589,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ctree.h linux-3.13.10-vs2.3.6.11/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);
-@@ -2341,6 +2347,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -2453,6 +2459,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
  
  BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
  
@@ -1558,7 +1600,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ctree.h linux-3.13.10-vs2.3.6.11/fs
  
  BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
  
-@@ -3722,6 +3732,7 @@ long btrfs_ioctl(struct file *file, unsi
+@@ -3864,6 +3874,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);
@@ -1566,10 +1608,10 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ctree.h linux-3.13.10-vs2.3.6.11/fs
  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.13.10/fs/btrfs/disk-io.c linux-3.13.10-vs2.3.6.11/fs/btrfs/disk-io.c
---- linux-3.13.10/fs/btrfs/disk-io.c	2014-01-22 20:39:05.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/btrfs/disk-io.c	2014-01-31 20:38:03.000000000 +0000
-@@ -2388,6 +2388,9 @@ int open_ctree(struct super_block *sb,
+diff -NurpP --minimal linux-3.18.5/fs/btrfs/disk-io.c linux-3.18.5-vs2.3.7.3/fs/btrfs/disk-io.c
+--- linux-3.18.5/fs/btrfs/disk-io.c	2015-02-05 18:02:44.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/btrfs/disk-io.c	2015-01-19 10:57:46.000000000 +0000
+@@ -2460,6 +2460,9 @@ int open_ctree(struct super_block *sb,
  		goto fail_alloc;
  	}
  
@@ -1579,9 +1621,9 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/disk-io.c linux-3.13.10-vs2.3.6.11/
  	features = btrfs_super_incompat_flags(disk_super) &
  		~BTRFS_FEATURE_INCOMPAT_SUPP;
  	if (features) {
-diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs/btrfs/inode.c
---- linux-3.13.10/fs/btrfs/inode.c	2014-04-17 01:12:31.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/btrfs/inode.c	2014-03-12 15:51:07.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/btrfs/inode.c linux-3.18.5-vs2.3.7.3/fs/btrfs/inode.c
+--- linux-3.18.5/fs/btrfs/inode.c	2015-01-17 02:40:16.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/btrfs/inode.c	2015-01-19 12:26:30.000000000 +0000
 @@ -43,6 +43,7 @@
  #include <linux/btrfs.h>
  #include <linux/blkdev.h>
@@ -1590,8 +1632,8 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs
  #include "ctree.h"
  #include "disk-io.h"
  #include "transaction.h"
-@@ -3317,6 +3318,9 @@ static void btrfs_read_locked_inode(stru
- 	struct btrfs_key location;
+@@ -3477,6 +3478,9 @@ static void btrfs_read_locked_inode(stru
+ 	unsigned long ptr;
  	int maybe_acls;
  	u32 rdev;
 +	kuid_t kuid;
@@ -1599,8 +1641,8 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs
 +	ktag_t ktag;
  	int ret;
  	bool filled = false;
- 
-@@ -3344,8 +3348,14 @@ static void btrfs_read_locked_inode(stru
+ 	int first_xattr_slot;
+@@ -3504,8 +3508,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));
@@ -1617,7 +1659,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs
  	btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
  
  	tspec = btrfs_inode_atime(inode_item);
-@@ -3436,11 +3446,18 @@ static void fill_inode_item(struct btrfs
+@@ -3629,11 +3639,18 @@ static void fill_inode_item(struct btrfs
  			    struct inode *inode)
  {
  	struct btrfs_map_token token;
@@ -1638,7 +1680,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/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);
-@@ -8652,14 +8669,17 @@ static const struct inode_operations btr
+@@ -9459,6 +9476,7 @@ static const struct inode_operations btr
  	.listxattr	= btrfs_listxattr,
  	.removexattr	= btrfs_removexattr,
  	.permission	= btrfs_permission,
@@ -1646,8 +1688,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs
  	.get_acl	= btrfs_get_acl,
  	.set_acl	= btrfs_set_acl,
  	.update_time	= btrfs_update_time,
- };
-+
+@@ -9467,6 +9485,7 @@ static const struct inode_operations btr
  static const struct inode_operations btrfs_dir_ro_inode_operations = {
  	.lookup		= btrfs_lookup,
  	.permission	= btrfs_permission,
@@ -1655,19 +1696,18 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/inode.c linux-3.13.10-vs2.3.6.11/fs
  	.get_acl	= btrfs_get_acl,
  	.set_acl	= btrfs_set_acl,
  	.update_time	= btrfs_update_time,
- };
-@@ -8727,6 +8747,7 @@ static const struct inode_operations btr
+@@ -9537,6 +9556,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,
+ 	.set_acl	= btrfs_set_acl,
  	.update_time	= btrfs_update_time,
- };
-diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs/btrfs/ioctl.c
---- linux-3.13.10/fs/btrfs/ioctl.c	2014-04-17 01:12:31.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/btrfs/ioctl.c	2014-02-25 11:26:09.000000000 +0000
-@@ -78,10 +78,13 @@ static unsigned int btrfs_flags_to_ioctl
+diff -NurpP --minimal linux-3.18.5/fs/btrfs/ioctl.c linux-3.18.5-vs2.3.7.3/fs/btrfs/ioctl.c
+--- linux-3.18.5/fs/btrfs/ioctl.c	2015-01-17 02:40:16.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/btrfs/ioctl.c	2015-01-21 09:54:51.000000000 +0000
+@@ -107,10 +107,13 @@ static unsigned int btrfs_flags_to_ioctl
  {
  	unsigned int iflags = 0;
  
@@ -1683,7 +1723,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  	if (flags & BTRFS_INODE_APPEND)
  		iflags |= FS_APPEND_FL;
  	if (flags & BTRFS_INODE_NODUMP)
-@@ -98,28 +101,78 @@ static unsigned int btrfs_flags_to_ioctl
+@@ -127,34 +130,84 @@ static unsigned int btrfs_flags_to_ioctl
  	else if (flags & BTRFS_INODE_NOCOMPRESS)
  		iflags |= FS_NOCOMP_FL;
  
@@ -1701,36 +1741,40 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  void btrfs_update_iflags(struct inode *inode)
  {
  	struct btrfs_inode *ip = BTRFS_I(inode);
- 
--	inode->i_flags &= ~(S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC);
-+	inode->i_flags &= ~(S_IMMUTABLE | S_IXUNLINK |
-+		S_SYNC | S_APPEND | S_NOATIME | S_DIRSYNC);
+ 	unsigned int new_fl = 0;
  
 -	if (ip->flags & BTRFS_INODE_SYNC)
--		inode->i_flags |= S_SYNC;
+-		new_fl |= S_SYNC;
  	if (ip->flags & BTRFS_INODE_IMMUTABLE)
- 		inode->i_flags |= S_IMMUTABLE;
+ 		new_fl |= S_IMMUTABLE;
 +	if (ip->flags & BTRFS_INODE_IXUNLINK)
-+		inode->i_flags |= S_IXUNLINK;
++		new_fl |= S_IXUNLINK;
 +
 +	if (ip->flags & BTRFS_INODE_SYNC)
-+		inode->i_flags |= S_SYNC;
++		new_fl |= S_SYNC;
  	if (ip->flags & BTRFS_INODE_APPEND)
- 		inode->i_flags |= S_APPEND;
+ 		new_fl |= S_APPEND;
  	if (ip->flags & BTRFS_INODE_NOATIME)
- 		inode->i_flags |= S_NOATIME;
+ 		new_fl |= S_NOATIME;
  	if (ip->flags & BTRFS_INODE_DIRSYNC)
- 		inode->i_flags |= S_DIRSYNC;
-+
-+	inode->i_vflags &= ~(V_BARRIER | V_COW);
+ 		new_fl |= S_DIRSYNC;
+-
+ 	set_mask_bits(&inode->i_flags,
+-		      S_SYNC | S_APPEND | S_IMMUTABLE | S_NOATIME | S_DIRSYNC,
++		      S_SYNC | S_APPEND | S_IMMUTABLE | S_IXUNLINK | S_NOATIME | S_DIRSYNC,
+ 		      new_fl);
 +
++	new_fl = 0;
 +	if (ip->flags & BTRFS_INODE_BARRIER)
-+		inode->i_vflags |= V_BARRIER;
++		new_fl |= V_BARRIER;
 +	if (ip->flags & BTRFS_INODE_COW)
-+		inode->i_vflags |= V_COW;
-+}
++		new_fl |= V_COW;
 +
-+/*
++	set_mask_bits(&inode->i_vflags,
++		V_BARRIER | V_COW, new_fl);
+ }
+ 
+ /*
 + * Update btrfs internal flags from inode->i_(v)flags.
 + */
 +void btrfs_update_flags(struct inode *inode)
@@ -1763,10 +1807,13 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
 +		ip->flags |= BTRFS_INODE_BARRIER;
 +	if (vflags & V_COW)
 +		ip->flags |= BTRFS_INODE_COW;
- }
- 
- /*
-@@ -135,6 +188,7 @@ void btrfs_inherit_iflags(struct inode *
++ }
++
++/*
+  * Inherit flags from the parent inode.
+  *
+  * Currently only the compression flags and the cow flags are inherited.
+@@ -167,6 +220,7 @@ void btrfs_inherit_iflags(struct inode *
  		return;
  
  	flags = BTRFS_I(dir)->flags;
@@ -1774,7 +1821,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  
  	if (flags & BTRFS_INODE_NOCOMPRESS) {
  		BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS;
-@@ -153,6 +207,30 @@ void btrfs_inherit_iflags(struct inode *
+@@ -185,6 +239,30 @@ void btrfs_inherit_iflags(struct inode *
  	btrfs_update_iflags(inode);
  }
  
@@ -1805,7 +1852,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
  {
  	struct btrfs_inode *ip = BTRFS_I(file_inode(file));
-@@ -215,21 +293,27 @@ static int btrfs_ioctl_setflags(struct f
+@@ -247,21 +325,27 @@ static int btrfs_ioctl_setflags(struct f
  
  	flags = btrfs_mask_flags(inode->i_mode, flags);
  	oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1838,10 +1885,10 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  	if (flags & FS_APPEND_FL)
  		ip->flags |= BTRFS_INODE_APPEND;
  	else
-diff -NurpP --minimal linux-3.13.10/fs/btrfs/super.c linux-3.13.10-vs2.3.6.11/fs/btrfs/super.c
---- linux-3.13.10/fs/btrfs/super.c	2014-01-22 20:39:05.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/btrfs/super.c	2014-01-31 23:58:08.000000000 +0000
-@@ -323,7 +323,7 @@ enum {
+diff -NurpP --minimal linux-3.18.5/fs/btrfs/super.c linux-3.18.5-vs2.3.7.3/fs/btrfs/super.c
+--- linux-3.18.5/fs/btrfs/super.c	2015-02-05 18:02:44.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/btrfs/super.c	2015-01-19 10:57:46.000000000 +0000
+@@ -325,7 +325,7 @@ enum {
  	Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
  	Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow,
  	Opt_datasum, Opt_treelog, Opt_noinode_cache,
@@ -1850,7 +1897,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/super.c linux-3.13.10-vs2.3.6.11/fs
  };
  
  static match_table_t tokens = {
-@@ -365,6 +365,9 @@ static match_table_t tokens = {
+@@ -377,6 +377,9 @@ static match_table_t tokens = {
  	{Opt_rescan_uuid_tree, "rescan_uuid_tree"},
  	{Opt_fatal_errors, "fatal_errors=%s"},
  	{Opt_commit_interval, "commit=%d"},
@@ -1860,7 +1907,7 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/super.c linux-3.13.10-vs2.3.6.11/fs
  	{Opt_err, NULL},
  };
  
-@@ -674,6 +677,22 @@ int btrfs_parse_options(struct btrfs_roo
+@@ -743,6 +746,22 @@ int btrfs_parse_options(struct btrfs_roo
  				info->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
  			}
  			break;
@@ -1881,9 +1928,9 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/super.c linux-3.13.10-vs2.3.6.11/fs
 +			break;
 +#endif
  		case Opt_err:
- 			printk(KERN_INFO "btrfs: unrecognized mount option "
- 			       "'%s'\n", p);
-@@ -1320,6 +1339,12 @@ static int btrfs_remount(struct super_bl
+ 			btrfs_info(root->fs_info, "unrecognized mount option '%s'", p);
+ 			ret = -EINVAL;
+@@ -1495,6 +1514,12 @@ static int btrfs_remount(struct super_bl
  	btrfs_resize_thread_pool(fs_info,
  		fs_info->thread_pool_size, old_thread_pool_size);
  
@@ -1896,9 +1943,9 @@ diff -NurpP --minimal linux-3.13.10/fs/btrfs/super.c linux-3.13.10-vs2.3.6.11/fs
  	if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
  		goto out;
  
-diff -NurpP --minimal linux-3.13.10/fs/char_dev.c linux-3.13.10-vs2.3.6.11/fs/char_dev.c
---- linux-3.13.10/fs/char_dev.c	2014-01-22 20:39:05.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/char_dev.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/char_dev.c linux-3.18.5-vs2.3.7.3/fs/char_dev.c
+--- linux-3.18.5/fs/char_dev.c	2014-01-22 20:39:05.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/char_dev.c	2015-01-19 10:57:46.000000000 +0000
 @@ -21,6 +21,8 @@
  #include <linux/mutex.h>
  #include <linux/backing-dev.h>
@@ -1931,9 +1978,9 @@ diff -NurpP --minimal linux-3.13.10/fs/char_dev.c linux-3.13.10-vs2.3.6.11/fs/ch
  		if (!kobj)
  			return -ENXIO;
  		new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcache.c
---- linux-3.13.10/fs/dcache.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/dcache.c	2014-04-17 01:17:10.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/dcache.c linux-3.18.5-vs2.3.7.3/fs/dcache.c
+--- linux-3.18.5/fs/dcache.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/dcache.c	2015-01-19 12:06:59.000000000 +0000
 @@ -38,6 +38,7 @@
  #include <linux/prefetch.h>
  #include <linux/ratelimit.h>
@@ -1942,16 +1989,7 @@ diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcac
  #include "internal.h"
  #include "mount.h"
  
-@@ -640,6 +641,8 @@ int d_invalidate(struct dentry * dentry)
- 		spin_lock(&dentry->d_lock);
- 	}
- 
-+	vx_dentry_dec(dentry);
-+
- 	/*
- 	 * Somebody else still using it?
- 	 *
-@@ -669,6 +672,7 @@ EXPORT_SYMBOL(d_invalidate);
+@@ -654,6 +655,7 @@ EXPORT_SYMBOL(dput);
  static inline void __dget_dlock(struct dentry *dentry)
  {
  	dentry->d_lockref.count++;
@@ -1959,7 +1997,16 @@ diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcac
  }
  
  static inline void __dget(struct dentry *dentry)
-@@ -1483,6 +1487,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -666,6 +668,8 @@ struct dentry *dget_parent(struct dentry
+ 	int gotref;
+ 	struct dentry *ret;
+ 
++	vx_dentry_dec(dentry);
++
+ 	/*
+ 	 * Do optimistic parent lookup without any
+ 	 * locking.
+@@ -1410,6 +1414,9 @@ struct dentry *__d_alloc(struct super_bl
  	struct dentry *dentry;
  	char *dname;
  
@@ -1969,7 +2016,7 @@ diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcac
  	dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
  	if (!dentry)
  		return NULL;
-@@ -1515,6 +1522,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1445,6 +1452,7 @@ struct dentry *__d_alloc(struct super_bl
  
  	dentry->d_lockref.count = 1;
  	dentry->d_flags = 0;
@@ -1977,7 +2024,7 @@ diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcac
  	spin_lock_init(&dentry->d_lock);
  	seqcount_init(&dentry->d_seq);
  	dentry->d_inode = NULL;
-@@ -2278,6 +2286,7 @@ struct dentry *__d_lookup(const struct d
+@@ -2184,6 +2192,7 @@ struct dentry *__d_lookup(const struct d
  		}
  
  		dentry->d_lockref.count++;
@@ -1985,10 +2032,10 @@ diff -NurpP --minimal linux-3.13.10/fs/dcache.c linux-3.13.10-vs2.3.6.11/fs/dcac
  		found = dentry;
  		spin_unlock(&dentry->d_lock);
  		break;
-diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/fs/devpts/inode.c
---- linux-3.13.10/fs/devpts/inode.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/devpts/inode.c	2014-02-01 01:40:53.000000000 +0000
-@@ -25,6 +25,7 @@
+diff -NurpP --minimal linux-3.18.5/fs/devpts/inode.c linux-3.18.5-vs2.3.7.3/fs/devpts/inode.c
+--- linux-3.18.5/fs/devpts/inode.c	2014-09-03 13:19:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/devpts/inode.c	2015-01-19 10:57:47.000000000 +0000
+@@ -27,6 +27,7 @@
  #include <linux/parser.h>
  #include <linux/fsnotify.h>
  #include <linux/seq_file.h>
@@ -1996,7 +2043,7 @@ diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/f
  
  #define DEVPTS_DEFAULT_MODE 0600
  /*
-@@ -36,6 +37,21 @@
+@@ -38,6 +39,21 @@
  #define DEVPTS_DEFAULT_PTMX_MODE 0000
  #define PTMX_MINOR	2
  
@@ -2018,7 +2065,7 @@ diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/f
  /*
   * sysctl support for setting limits on the number of Unix98 ptys allocated.
   * Otherwise one can eat up all kernel memory by opening /dev/ptmx repeatedly.
-@@ -345,6 +361,34 @@ static int devpts_show_options(struct se
+@@ -350,6 +366,34 @@ static int devpts_show_options(struct se
  	return 0;
  }
  
@@ -2053,7 +2100,7 @@ diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/f
  static const struct super_operations devpts_sops = {
  	.statfs		= simple_statfs,
  	.remount_fs	= devpts_remount,
-@@ -388,8 +432,10 @@ devpts_fill_super(struct super_block *s,
+@@ -393,8 +437,10 @@ devpts_fill_super(struct super_block *s,
  	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
  	inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
  	inode->i_op = &simple_dir_inode_operations;
@@ -2065,7 +2112,7 @@ diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/f
  
  	s->s_root = d_make_root(inode);
  	if (s->s_root)
-@@ -593,6 +639,9 @@ struct inode *devpts_pty_new(struct inod
+@@ -598,6 +644,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);
@@ -2075,9 +2122,9 @@ diff -NurpP --minimal linux-3.13.10/fs/devpts/inode.c linux-3.13.10-vs2.3.6.11/f
  	inode->i_private = priv;
  
  	sprintf(s, "%d", index);
-diff -NurpP --minimal linux-3.13.10/fs/ext2/balloc.c linux-3.13.10-vs2.3.6.11/fs/ext2/balloc.c
---- linux-3.13.10/fs/ext2/balloc.c	2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/balloc.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/balloc.c linux-3.18.5-vs2.3.7.3/fs/ext2/balloc.c
+--- linux-3.18.5/fs/ext2/balloc.c	2013-05-31 13:45:23.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/balloc.c	2015-01-19 10:57:47.000000000 +0000
 @@ -693,7 +693,6 @@ ext2_try_to_allocate(struct super_block
  			start = 0;
  		end = EXT2_BLOCKS_PER_GROUP(sb);
@@ -2086,9 +2133,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/balloc.c linux-3.13.10-vs2.3.6.11/fs
  	BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
  
  repeat:
-diff -NurpP --minimal linux-3.13.10/fs/ext2/ext2.h linux-3.13.10-vs2.3.6.11/fs/ext2/ext2.h
---- linux-3.13.10/fs/ext2/ext2.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/ext2.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/ext2.h linux-3.18.5-vs2.3.7.3/fs/ext2/ext2.h
+--- linux-3.18.5/fs/ext2/ext2.h	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/ext2.h	2015-01-19 10:57:47.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) */
@@ -2136,18 +2183,18 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/ext2.h linux-3.13.10-vs2.3.6.11/fs/e
  
  /* ioctl.c */
  extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.13.10/fs/ext2/file.c linux-3.13.10-vs2.3.6.11/fs/ext2/file.c
---- linux-3.13.10/fs/ext2/file.c	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/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,
+diff -NurpP --minimal linux-3.18.5/fs/ext2/file.c linux-3.18.5-vs2.3.7.3/fs/ext2/file.c
+--- linux-3.18.5/fs/ext2/file.c	2014-09-03 13:19:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/file.c	2015-01-19 10:57:47.000000000 +0000
+@@ -105,4 +105,5 @@ const struct inode_operations ext2_file_
  	.get_acl	= ext2_get_acl,
+ 	.set_acl	= ext2_set_acl,
  	.fiemap		= ext2_fiemap,
 +	.sync_flags	= ext2_sync_flags,
  };
-diff -NurpP --minimal linux-3.13.10/fs/ext2/ialloc.c linux-3.13.10-vs2.3.6.11/fs/ext2/ialloc.c
---- linux-3.13.10/fs/ext2/ialloc.c	2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/ialloc.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/ialloc.c linux-3.18.5-vs2.3.7.3/fs/ext2/ialloc.c
+--- linux-3.18.5/fs/ext2/ialloc.c	2014-06-12 13:02:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/ialloc.c	2015-01-19 10:57:47.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/backing-dev.h>
  #include <linux/buffer_head.h>
@@ -2164,9 +2211,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/ialloc.c linux-3.13.10-vs2.3.6.11/fs
  	} else
  		inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.13.10/fs/ext2/inode.c linux-3.13.10-vs2.3.6.11/fs/ext2/inode.c
---- linux-3.13.10/fs/ext2/inode.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/inode.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/inode.c linux-3.18.5-vs2.3.7.3/fs/ext2/inode.c
+--- linux-3.18.5/fs/ext2/inode.c	2014-09-03 13:19:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/inode.c	2015-01-19 10:57:47.000000000 +0000
 @@ -32,6 +32,7 @@
  #include <linux/fiemap.h>
  #include <linux/namei.h>
@@ -2299,9 +2346,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		error = dquot_transfer(inode, iattr);
  		if (error)
  			return error;
-diff -NurpP --minimal linux-3.13.10/fs/ext2/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ext2/ioctl.c
---- linux-3.13.10/fs/ext2/ioctl.c	2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/ioctl.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/ioctl.c linux-3.18.5-vs2.3.7.3/fs/ext2/ioctl.c
+--- linux-3.18.5/fs/ext2/ioctl.c	2013-05-31 13:45:23.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/ioctl.c	2015-01-19 10:57:47.000000000 +0000
 @@ -17,6 +17,16 @@
  #include <asm/uaccess.h>
  
@@ -2351,9 +2398,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  		flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
  		ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.13.10/fs/ext2/namei.c linux-3.13.10-vs2.3.6.11/fs/ext2/namei.c
---- linux-3.13.10/fs/ext2/namei.c	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/namei.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/namei.c linux-3.18.5-vs2.3.7.3/fs/ext2/namei.c
+--- linux-3.18.5/fs/ext2/namei.c	2014-06-12 11:34:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/namei.c	2015-01-19 10:57:47.000000000 +0000
 @@ -32,6 +32,7 @@
  
  #include <linux/pagemap.h>
@@ -2370,16 +2417,17 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/namei.c linux-3.13.10-vs2.3.6.11/fs/
  	}
  	return d_splice_alias(inode, dentry);
  }
-@@ -432,5 +434,6 @@ const struct inode_operations ext2_speci
+@@ -433,6 +435,7 @@ const struct inode_operations ext2_speci
  	.removexattr	= generic_removexattr,
  #endif
  	.setattr	= ext2_setattr,
 +	.sync_flags	= ext2_sync_flags,
  	.get_acl	= ext2_get_acl,
+ 	.set_acl	= ext2_set_acl,
  };
-diff -NurpP --minimal linux-3.13.10/fs/ext2/super.c linux-3.13.10-vs2.3.6.11/fs/ext2/super.c
---- linux-3.13.10/fs/ext2/super.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext2/super.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext2/super.c linux-3.18.5-vs2.3.7.3/fs/ext2/super.c
+--- linux-3.18.5/fs/ext2/super.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext2/super.c	2015-01-19 10:57:47.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,
@@ -2430,7 +2478,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/super.c linux-3.13.10-vs2.3.6.11/fs/
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
  		 MS_POSIXACL : 0);
-@@ -1269,6 +1289,14 @@ static int ext2_remount (struct super_bl
+@@ -1270,6 +1290,14 @@ static int ext2_remount (struct super_bl
  		err = -EINVAL;
  		goto restore_opts;
  	}
@@ -2445,9 +2493,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext2/super.c linux-3.13.10-vs2.3.6.11/fs/
  
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/ext3/ext3.h
---- linux-3.13.10/fs/ext3/ext3.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/ext3.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/ext3.h linux-3.18.5-vs2.3.7.3/fs/ext3/ext3.h
+--- linux-3.18.5/fs/ext3/ext3.h	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/ext3.h	2015-01-19 10:57:47.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) */
@@ -2465,7 +2513,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/e
  
  /* Flags that should be inherited by new inodes from their parent. */
  #define EXT3_FL_INHERITED (EXT3_SECRM_FL | EXT3_UNRM_FL | EXT3_COMPR_FL |\
-@@ -290,7 +294,8 @@ struct ext3_inode {
+@@ -292,7 +296,8 @@ struct ext3_inode {
  			__u16	i_pad1;
  			__le16	l_i_uid_high;	/* these 2 fields    */
  			__le16	l_i_gid_high;	/* were reserved2[0] */
@@ -2475,7 +2523,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/e
  		} linux2;
  		struct {
  			__u8	h_i_frag;	/* Fragment number */
-@@ -320,6 +325,7 @@ struct ext3_inode {
+@@ -322,6 +327,7 @@ struct ext3_inode {
  #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
@@ -2483,7 +2531,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/e
  #define i_reserved2	osd2.linux2.l_i_reserved2
  
  /*
-@@ -364,6 +370,7 @@ struct ext3_inode {
+@@ -366,6 +372,7 @@ struct ext3_inode {
  #define EXT3_MOUNT_GRPQUOTA		0x200000 /* "old" group quota */
  #define EXT3_MOUNT_DATA_ERR_ABORT	0x400000 /* Abort on file data write
  						  * error in ordered mode */
@@ -2491,7 +2539,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/e
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef _LINUX_EXT2_FS_H
-@@ -1061,6 +1068,7 @@ extern void ext3_get_inode_flags(struct
+@@ -1063,6 +1070,7 @@ extern void ext3_get_inode_flags(struct
  extern void ext3_set_aops(struct inode *inode);
  extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
  		       u64 start, u64 len);
@@ -2499,19 +2547,19 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ext3.h linux-3.13.10-vs2.3.6.11/fs/e
  
  /* ioctl.c */
  extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.13.10/fs/ext3/file.c linux-3.13.10-vs2.3.6.11/fs/ext3/file.c
---- linux-3.13.10/fs/ext3/file.c	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/file.c	2014-01-31 20:38:03.000000000 +0000
-@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
- #endif
+diff -NurpP --minimal linux-3.18.5/fs/ext3/file.c linux-3.18.5-vs2.3.7.3/fs/ext3/file.c
+--- linux-3.18.5/fs/ext3/file.c	2014-09-03 13:19:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/file.c	2015-01-19 10:57:47.000000000 +0000
+@@ -77,5 +77,6 @@ const struct inode_operations ext3_file_
  	.get_acl	= ext3_get_acl,
+ 	.set_acl	= ext3_set_acl,
  	.fiemap		= ext3_fiemap,
 +	.sync_flags	= ext3_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.13.10/fs/ext3/ialloc.c linux-3.13.10-vs2.3.6.11/fs/ext3/ialloc.c
---- linux-3.13.10/fs/ext3/ialloc.c	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/ialloc.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/ialloc.c linux-3.18.5-vs2.3.7.3/fs/ext3/ialloc.c
+--- linux-3.18.5/fs/ext3/ialloc.c	2014-06-12 13:02:41.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/ialloc.c	2015-01-19 10:57:47.000000000 +0000
 @@ -14,6 +14,7 @@
  
  #include <linux/quotaops.h>
@@ -2528,9 +2576,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ialloc.c linux-3.13.10-vs2.3.6.11/fs
  	} else
  		inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/ext3/inode.c
---- linux-3.13.10/fs/ext3/inode.c	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/inode.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/inode.c linux-3.18.5-vs2.3.7.3/fs/ext3/inode.c
+--- linux-3.18.5/fs/ext3/inode.c	2014-09-03 13:19:39.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/inode.c	2015-01-19 10:57:47.000000000 +0000
 @@ -28,6 +28,8 @@
  #include <linux/mpage.h>
  #include <linux/namei.h>
@@ -2540,7 +2588,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  #include "ext3.h"
  #include "xattr.h"
  #include "acl.h"
-@@ -2855,36 +2857,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2813,36 +2815,60 @@ void ext3_set_inode_flags(struct inode *
  {
  	unsigned int flags = EXT3_I(inode)->i_flags;
  
@@ -2608,7 +2656,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  }
  
  struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2922,8 +2948,10 @@ struct inode *ext3_iget(struct super_blo
+@@ -2880,8 +2906,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;
  	}
@@ -2621,7 +2669,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	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);
-@@ -3095,8 +3123,10 @@ again:
+@@ -3053,8 +3081,10 @@ again:
  
  	ext3_get_inode_flags(ei);
  	raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -2634,7 +2682,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	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));
-@@ -3121,6 +3151,9 @@ again:
+@@ -3079,6 +3109,9 @@ again:
  		raw_inode->i_uid_high = 0;
  		raw_inode->i_gid_high = 0;
  	}
@@ -2644,7 +2692,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  	disksize = cpu_to_le32(ei->i_disksize);
  	if (disksize != raw_inode->i_size) {
-@@ -3289,7 +3322,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3251,7 +3284,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)) ||
@@ -2654,7 +2702,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		handle_t *handle;
  
  		/* (user+group)*(old+new) structure, inode write (sb,
-@@ -3311,6 +3345,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3273,6 +3307,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;
@@ -2663,9 +2711,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		error = ext3_mark_inode_dirty(handle, inode);
  		ext3_journal_stop(handle);
  	}
-diff -NurpP --minimal linux-3.13.10/fs/ext3/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ext3/ioctl.c
---- linux-3.13.10/fs/ext3/ioctl.c	2013-05-31 13:45:23.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/ioctl.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/ioctl.c linux-3.18.5-vs2.3.7.3/fs/ext3/ioctl.c
+--- linux-3.18.5/fs/ext3/ioctl.c	2013-05-31 13:45:23.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/ioctl.c	2015-01-19 10:57:47.000000000 +0000
 @@ -12,6 +12,34 @@
  #include <asm/uaccess.h>
  #include "ext3.h"
@@ -2733,9 +2781,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  		flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
  		ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.13.10/fs/ext3/namei.c linux-3.13.10-vs2.3.6.11/fs/ext3/namei.c
---- linux-3.13.10/fs/ext3/namei.c	2013-11-25 15:46:59.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/namei.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/namei.c linux-3.18.5-vs2.3.7.3/fs/ext3/namei.c
+--- linux-3.18.5/fs/ext3/namei.c	2014-06-12 11:34:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/namei.c	2015-01-19 10:57:47.000000000 +0000
 @@ -25,6 +25,8 @@
   */
  
@@ -2759,11 +2807,11 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/namei.c linux-3.13.10-vs2.3.6.11/fs/
  #endif
 +	.sync_flags	= ext3_sync_flags,
  	.get_acl	= ext3_get_acl,
+ 	.set_acl	= ext3_set_acl,
  };
- 
-diff -NurpP --minimal linux-3.13.10/fs/ext3/super.c linux-3.13.10-vs2.3.6.11/fs/ext3/super.c
---- linux-3.13.10/fs/ext3/super.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext3/super.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext3/super.c linux-3.18.5-vs2.3.7.3/fs/ext3/super.c
+--- linux-3.18.5/fs/ext3/super.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext3/super.c	2015-01-19 10:57:47.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,
@@ -2805,7 +2853,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/super.c linux-3.13.10-vs2.3.6.11/fs/
  		case Opt_nocheck:
  			clear_opt (sbi->s_mount_opt, CHECK);
  			break;
-@@ -1788,6 +1806,9 @@ static int ext3_fill_super (struct super
+@@ -1781,6 +1799,9 @@ static int ext3_fill_super (struct super
  			    NULL, 0))
  		goto failed_mount;
  
@@ -2815,7 +2863,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/super.c linux-3.13.10-vs2.3.6.11/fs/
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -2683,6 +2704,14 @@ static int ext3_remount (struct super_bl
+@@ -2678,6 +2699,14 @@ static int ext3_remount (struct super_bl
  	if (test_opt(sb, ABORT))
  		ext3_abort(sb, __func__, "Abort forced by user");
  
@@ -2830,9 +2878,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext3/super.c linux-3.13.10-vs2.3.6.11/fs/
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/ext4/ext4.h
---- linux-3.13.10/fs/ext4/ext4.h	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/ext4.h	2014-03-12 15:51:07.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext4/ext4.h linux-3.18.5-vs2.3.7.3/fs/ext4/ext4.h
+--- linux-3.18.5/fs/ext4/ext4.h	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/ext4.h	2015-01-19 10:57:47.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 */
@@ -2844,7 +2892,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/e
  #define EXT4_RESERVED_FL		0x80000000 /* reserved for ext4 lib */
  
  #define EXT4_FL_USER_VISIBLE		0x004BDFFF /* User visible flags */
-@@ -670,7 +673,7 @@ struct ext4_inode {
+@@ -671,7 +674,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 */
@@ -2853,7 +2901,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/e
  		} linux2;
  		struct {
  			__le16	h_i_reserved1;	/* Obsoleted fragment number/size which are removed in ext4 */
-@@ -790,6 +793,7 @@ do {									       \
+@@ -791,6 +794,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
@@ -2861,7 +2909,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/e
  #define i_checksum_lo	osd2.linux2.l_i_checksum_lo
  
  #elif defined(__GNU__)
-@@ -976,6 +980,7 @@ struct ext4_inode_info {
+@@ -980,6 +984,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 */
@@ -2869,7 +2917,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/e
  #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 */
-@@ -2653,6 +2658,7 @@ extern struct buffer_head *ext4_get_firs
+@@ -2644,6 +2649,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);
@@ -2877,19 +2925,19 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ext4.h linux-3.13.10-vs2.3.6.11/fs/e
  extern int ext4_try_to_evict_inline_data(handle_t *handle,
  					 struct inode *inode,
  					 int needed);
-diff -NurpP --minimal linux-3.13.10/fs/ext4/file.c linux-3.13.10-vs2.3.6.11/fs/ext4/file.c
---- linux-3.13.10/fs/ext4/file.c	2013-11-25 15:46:59.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/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,
+diff -NurpP --minimal linux-3.18.5/fs/ext4/file.c linux-3.18.5-vs2.3.7.3/fs/ext4/file.c
+--- linux-3.18.5/fs/ext4/file.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/file.c	2015-01-19 10:57:47.000000000 +0000
+@@ -610,5 +610,6 @@ const struct inode_operations ext4_file_
  	.get_acl	= ext4_get_acl,
+ 	.set_acl	= ext4_set_acl,
  	.fiemap		= ext4_fiemap,
 +	.sync_flags	= ext4_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.13.10/fs/ext4/ialloc.c linux-3.13.10-vs2.3.6.11/fs/ext4/ialloc.c
---- linux-3.13.10/fs/ext4/ialloc.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/ialloc.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext4/ialloc.c linux-3.18.5-vs2.3.7.3/fs/ext4/ialloc.c
+--- linux-3.18.5/fs/ext4/ialloc.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/ialloc.c	2015-01-19 10:57:47.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/random.h>
  #include <linux/bitops.h>
@@ -2898,7 +2946,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ialloc.c linux-3.13.10-vs2.3.6.11/fs
  #include <asm/byteorder.h>
  
  #include "ext4.h"
-@@ -731,6 +732,7 @@ struct inode *__ext4_new_inode(handle_t
+@@ -754,6 +755,7 @@ struct inode *__ext4_new_inode(handle_t
  		inode->i_mode = mode;
  		inode->i_uid = current_fsuid();
  		inode->i_gid = dir->i_gid;
@@ -2906,9 +2954,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ialloc.c linux-3.13.10-vs2.3.6.11/fs
  	} else
  		inode_init_owner(inode, dir, mode);
  	dquot_initialize(inode);
-diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/ext4/inode.c
---- linux-3.13.10/fs/ext4/inode.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/inode.c	2014-04-17 01:28:13.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext4/inode.c linux-3.18.5-vs2.3.7.3/fs/ext4/inode.c
+--- linux-3.18.5/fs/ext4/inode.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/inode.c	2015-01-19 12:50:18.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <linux/ratelimit.h>
  #include <linux/aio.h>
@@ -2917,7 +2965,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  
  #include "ext4_jbd2.h"
  #include "xattr.h"
-@@ -3929,42 +3930,67 @@ void ext4_set_inode_flags(struct inode *
+@@ -3811,42 +3812,66 @@ void ext4_set_inode_flags(struct inode *
  	unsigned int flags = EXT4_I(inode)->i_flags;
  	unsigned int new_fl = 0;
  
@@ -2936,7 +2984,6 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		new_fl |= S_NOATIME;
  	if (flags & EXT4_DIRSYNC_FL)
  		new_fl |= S_DIRSYNC;
-+
  	inode_set_flags(inode, new_fl,
 -			S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC);
 +		S_IXUNLINK | S_IMMUTABLE |
@@ -2992,7 +3039,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	} while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
  }
  
-@@ -4069,8 +4095,10 @@ struct inode *ext4_iget(struct super_blo
+@@ -3950,8 +3975,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;
  	}
@@ -3005,7 +3052,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
  
  	ext4_clear_state_flags(ei);	/* Only relevant on 32-bit archs */
-@@ -4298,8 +4326,10 @@ static int ext4_do_update_inode(handle_t
+@@ -4191,8 +4218,10 @@ static int ext4_do_update_inode(handle_t
  
  	ext4_get_inode_flags(ei);
  	raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -3018,7 +3065,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	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));
-@@ -4322,6 +4352,9 @@ static int ext4_do_update_inode(handle_t
+@@ -4215,6 +4244,9 @@ static int ext4_do_update_inode(handle_t
  		raw_inode->i_uid_high = 0;
  		raw_inode->i_gid_high = 0;
  	}
@@ -3028,7 +3075,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  	raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  
  	EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4553,7 +4586,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4458,7 +4490,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)) ||
@@ -3038,7 +3085,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		handle_t *handle;
  
  		/* (user+group)*(old+new) structure, inode write (sb,
-@@ -4576,6 +4610,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4481,6 +4514,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;
@@ -3047,9 +3094,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/inode.c linux-3.13.10-vs2.3.6.11/fs/
  		error = ext4_mark_inode_dirty(handle, inode);
  		ext4_journal_stop(handle);
  	}
-diff -NurpP --minimal linux-3.13.10/fs/ext4/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ext4/ioctl.c
---- linux-3.13.10/fs/ext4/ioctl.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/ioctl.c	2014-03-12 15:51:07.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext4/ioctl.c linux-3.18.5-vs2.3.7.3/fs/ext4/ioctl.c
+--- linux-3.18.5/fs/ext4/ioctl.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/ioctl.c	2015-01-19 10:57:47.000000000 +0000
 @@ -14,6 +14,7 @@
  #include <linux/compat.h>
  #include <linux/mount.h>
@@ -3058,7 +3105,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  #include <asm/uaccess.h>
  #include "ext4_jbd2.h"
  #include "ext4.h"
-@@ -214,6 +215,33 @@ swap_boot_out:
+@@ -198,6 +199,33 @@ journal_err_out:
  	return err;
  }
  
@@ -3092,7 +3139,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  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
+@@ -231,6 +259,11 @@ long ext4_ioctl(struct file *filp, unsig
  
  		flags = ext4_mask_flags(inode->i_mode, flags);
  
@@ -3104,7 +3151,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  		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
+@@ -248,7 +281,9 @@ long ext4_ioctl(struct file *filp, unsig
  		 *
  		 * This test looks nicer. Thanks to Pauline Middelink
  		 */
@@ -3115,9 +3162,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/ioctl.c linux-3.13.10-vs2.3.6.11/fs/
  			if (!capable(CAP_LINUX_IMMUTABLE))
  				goto flags_out;
  		}
-diff -NurpP --minimal linux-3.13.10/fs/ext4/namei.c linux-3.13.10-vs2.3.6.11/fs/ext4/namei.c
---- linux-3.13.10/fs/ext4/namei.c	2013-11-25 15:46:59.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/namei.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ext4/namei.c linux-3.18.5-vs2.3.7.3/fs/ext4/namei.c
+--- linux-3.18.5/fs/ext4/namei.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/namei.c	2015-01-19 10:57:47.000000000 +0000
 @@ -34,6 +34,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -3126,7 +3173,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/namei.c linux-3.13.10-vs2.3.6.11/fs/
  #include "ext4.h"
  #include "ext4_jbd2.h"
  
-@@ -1299,6 +1300,7 @@ restart:
+@@ -1279,6 +1280,7 @@ restart:
  					ll_rw_block(READ | REQ_META | REQ_PRIO,
  						    1, &bh);
  			}
@@ -3134,18 +3181,18 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/namei.c linux-3.13.10-vs2.3.6.11/fs/
  		}
  		if ((bh = bh_use[ra_ptr++]) == NULL)
  			goto next;
-@@ -3226,6 +3228,7 @@ const struct inode_operations ext4_dir_i
- 	.removexattr	= generic_removexattr,
+@@ -3539,6 +3541,7 @@ const struct inode_operations ext4_dir_i
  	.get_acl	= ext4_get_acl,
+ 	.set_acl	= ext4_set_acl,
  	.fiemap         = ext4_fiemap,
 +	.sync_flags	= ext4_sync_flags,
  };
  
  const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/ext4/super.c
---- linux-3.13.10/fs/ext4/super.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ext4/super.c	2014-03-12 15:51:07.000000000 +0000
-@@ -1162,7 +1162,7 @@ enum {
+diff -NurpP --minimal linux-3.18.5/fs/ext4/super.c linux-3.18.5-vs2.3.7.3/fs/ext4/super.c
+--- linux-3.18.5/fs/ext4/super.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ext4/super.c	2015-01-19 10:57:47.000000000 +0000
+@@ -1146,7 +1146,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,
@@ -3154,7 +3201,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/
  };
  
  static const match_table_t tokens = {
-@@ -1243,6 +1243,9 @@ static const match_table_t tokens = {
+@@ -1227,6 +1227,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 */
@@ -3164,7 +3211,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/
  	{Opt_err, NULL},
  };
  
-@@ -1475,6 +1478,20 @@ static int handle_mount_opt(struct super
+@@ -1459,6 +1462,20 @@ static int handle_mount_opt(struct super
  	case Opt_i_version:
  		sb->s_flags |= MS_I_VERSION;
  		return 1;
@@ -3185,7 +3232,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/
  	}
  
  	for (m = ext4_mount_opts; m->token != Opt_err; m++)
-@@ -3564,6 +3581,9 @@ static int ext4_fill_super(struct super_
+@@ -3600,6 +3617,9 @@ static int ext4_fill_super(struct super_
  			clear_opt(sb, DELALLOC);
  	}
  
@@ -3195,7 +3242,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -4818,6 +4838,14 @@ static int ext4_remount(struct super_blo
+@@ -4872,6 +4892,14 @@ static int ext4_remount(struct super_blo
  	if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
  		ext4_abort(sb, "Abort forced by user");
  
@@ -3210,18 +3257,18 @@ diff -NurpP --minimal linux-3.13.10/fs/ext4/super.c linux-3.13.10-vs2.3.6.11/fs/
  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
  		(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.13.10/fs/fcntl.c linux-3.13.10-vs2.3.6.11/fs/fcntl.c
---- linux-3.13.10/fs/fcntl.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/fcntl.c	2014-01-31 20:38:03.000000000 +0000
-@@ -21,6 +21,7 @@
- #include <linux/rcupdate.h>
+diff -NurpP --minimal linux-3.18.5/fs/fcntl.c linux-3.18.5-vs2.3.7.3/fs/fcntl.c
+--- linux-3.18.5/fs/fcntl.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/fcntl.c	2015-01-19 11:48:08.000000000 +0000
+@@ -22,6 +22,7 @@
  #include <linux/pid_namespace.h>
  #include <linux/user_namespace.h>
+ #include <linux/shmem_fs.h>
 +#include <linux/vs_limit.h>
  
  #include <asm/poll.h>
  #include <asm/siginfo.h>
-@@ -377,6 +378,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
+@@ -385,6 +386,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
  
  	if (!f.file)
  		goto out;
@@ -3230,9 +3277,9 @@ diff -NurpP --minimal linux-3.13.10/fs/fcntl.c linux-3.13.10-vs2.3.6.11/fs/fcntl
  
  	if (unlikely(f.file->f_mode & FMODE_PATH)) {
  		if (!check_fcntl_cmd(cmd))
-diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
---- linux-3.13.10/fs/file.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/file.c	2014-02-25 11:26:09.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/file.c linux-3.18.5-vs2.3.7.3/fs/file.c
+--- linux-3.18.5/fs/file.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/file.c	2015-01-19 10:57:47.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/spinlock.h>
  #include <linux/rcupdate.h>
@@ -3241,7 +3288,7 @@ diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
  
  int sysctl_nr_open __read_mostly = 1024*1024;
  int sysctl_nr_open_min = BITS_PER_LONG;
-@@ -311,6 +312,8 @@ struct files_struct *dup_fd(struct files
+@@ -309,6 +310,8 @@ struct files_struct *dup_fd(struct files
  		struct file *f = *old_fds++;
  		if (f) {
  			get_file(f);
@@ -3250,9 +3297,9 @@ diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
  		} else {
  			/*
  			 * The fd may be claimed in the fd bitmap but not yet
-@@ -376,9 +379,11 @@ static void close_files(struct files_str
+@@ -369,9 +372,11 @@ static struct fdtable *close_files(struc
  					filp_close(file, files);
- 					cond_resched();
+ 					cond_resched_rcu_qs();
  				}
 +				vx_openfd_dec(i);
  			}
@@ -3261,16 +3308,16 @@ diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
 +			cond_resched();
  		}
  	}
- }
-@@ -503,6 +508,7 @@ repeat:
+ 
+@@ -487,6 +492,7 @@ repeat:
  	else
  		__clear_close_on_exec(fd, fdt);
  	error = fd;
 +	vx_openfd_inc(fd);
  #if 1
  	/* Sanity check */
- 	if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-@@ -533,6 +539,7 @@ static void __put_unused_fd(struct files
+ 	if (rcu_access_pointer(fdt->fd[fd]) != NULL) {
+@@ -517,6 +523,7 @@ static void __put_unused_fd(struct files
  	__clear_open_fd(fd, fdt);
  	if (fd < files->next_fd)
  		files->next_fd = fd;
@@ -3278,7 +3325,7 @@ diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
  }
  
  void put_unused_fd(unsigned int fd)
-@@ -812,6 +819,8 @@ static int do_dup2(struct files_struct *
+@@ -784,6 +791,8 @@ __releases(&files->file_lock)
  
  	if (tofree)
  		filp_close(tofree, files);
@@ -3287,9 +3334,9 @@ diff -NurpP --minimal linux-3.13.10/fs/file.c linux-3.13.10-vs2.3.6.11/fs/file.c
  
  	return fd;
  
-diff -NurpP --minimal linux-3.13.10/fs/file_table.c linux-3.13.10-vs2.3.6.11/fs/file_table.c
---- linux-3.13.10/fs/file_table.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/file_table.c	2014-02-01 00:00:01.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/file_table.c linux-3.18.5-vs2.3.7.3/fs/file_table.c
+--- linux-3.18.5/fs/file_table.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/file_table.c	2015-01-19 12:36:42.000000000 +0000
 @@ -26,6 +26,8 @@
  #include <linux/hardirq.h>
  #include <linux/task_work.h>
@@ -3300,7 +3347,7 @@ diff -NurpP --minimal linux-3.13.10/fs/file_table.c linux-3.13.10-vs2.3.6.11/fs/
  #include <linux/atomic.h>
  
 @@ -137,6 +139,8 @@ struct file *get_empty_filp(void)
- 	spin_lock_init(&f->f_lock);
+ 	mutex_init(&f->f_pos_lock);
  	eventpoll_init_file(f);
  	/* f->f_version: 0 */
 +	f->f_xid = vx_current_xid();
@@ -3308,7 +3355,7 @@ diff -NurpP --minimal linux-3.13.10/fs/file_table.c linux-3.13.10-vs2.3.6.11/fs/
  	return f;
  
  over:
-@@ -254,6 +258,8 @@ static void __fput(struct file *file)
+@@ -219,6 +223,8 @@ static void __fput(struct file *file)
  		put_write_access(inode);
  		__mnt_drop_write(mnt);
  	}
@@ -3317,7 +3364,7 @@ diff -NurpP --minimal linux-3.13.10/fs/file_table.c linux-3.13.10-vs2.3.6.11/fs/
  	file->f_path.dentry = NULL;
  	file->f_path.mnt = NULL;
  	file->f_inode = NULL;
-@@ -340,6 +346,8 @@ void put_filp(struct file *file)
+@@ -305,6 +311,8 @@ void put_filp(struct file *file)
  {
  	if (atomic_long_dec_and_test(&file->f_count)) {
  		security_file_free(file);
@@ -3326,9 +3373,9 @@ diff -NurpP --minimal linux-3.13.10/fs/file_table.c linux-3.13.10-vs2.3.6.11/fs/
  		file_free(file);
  	}
  }
-diff -NurpP --minimal linux-3.13.10/fs/fs_struct.c linux-3.13.10-vs2.3.6.11/fs/fs_struct.c
---- linux-3.13.10/fs/fs_struct.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/fs_struct.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/fs_struct.c linux-3.18.5-vs2.3.7.3/fs/fs_struct.c
+--- linux-3.18.5/fs/fs_struct.c	2014-01-22 20:39:06.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/fs_struct.c	2015-01-19 10:57:47.000000000 +0000
 @@ -4,6 +4,7 @@
  #include <linux/path.h>
  #include <linux/slab.h>
@@ -3353,10 +3400,10 @@ diff -NurpP --minimal linux-3.13.10/fs/fs_struct.c linux-3.13.10-vs2.3.6.11/fs/f
  	}
  	return fs;
  }
-diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/gfs2/file.c
---- linux-3.13.10/fs/gfs2/file.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/gfs2/file.c	2014-01-31 20:38:03.000000000 +0000
-@@ -137,6 +137,9 @@ static const u32 fsflags_to_gfs2[32] = {
+diff -NurpP --minimal linux-3.18.5/fs/gfs2/file.c linux-3.18.5-vs2.3.7.3/fs/gfs2/file.c
+--- linux-3.18.5/fs/gfs2/file.c	2015-01-17 02:40:17.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/gfs2/file.c	2015-01-19 10:57:47.000000000 +0000
+@@ -138,6 +138,9 @@ static const u32 fsflags_to_gfs2[32] = {
  	[12] = GFS2_DIF_EXHASH,
  	[14] = GFS2_DIF_INHERIT_JDATA,
  	[17] = GFS2_DIF_TOPDIR,
@@ -3366,7 +3413,7 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/g
  };
  
  static const u32 gfs2_to_fsflags[32] = {
-@@ -147,6 +150,9 @@ static const u32 gfs2_to_fsflags[32] = {
+@@ -148,6 +151,9 @@ static const u32 gfs2_to_fsflags[32] = {
  	[gfs2fl_ExHash] = FS_INDEX_FL,
  	[gfs2fl_TopLevel] = FS_TOPDIR_FL,
  	[gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL,
@@ -3376,7 +3423,7 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/g
  };
  
  static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
-@@ -177,12 +183,18 @@ void gfs2_set_inode_flags(struct inode *
+@@ -178,12 +184,18 @@ void gfs2_set_inode_flags(struct inode *
  {
  	struct gfs2_inode *ip = GFS2_I(inode);
  	unsigned int flags = inode->i_flags;
@@ -3396,7 +3443,7 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/g
  	if (ip->i_diskflags & GFS2_DIF_APPENDONLY)
  		flags |= S_APPEND;
  	if (ip->i_diskflags & GFS2_DIF_NOATIME)
-@@ -190,6 +202,43 @@ void gfs2_set_inode_flags(struct inode *
+@@ -191,6 +203,43 @@ void gfs2_set_inode_flags(struct inode *
  	if (ip->i_diskflags & GFS2_DIF_SYNC)
  		flags |= S_SYNC;
  	inode->i_flags = flags;
@@ -3440,7 +3487,7 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/g
  }
  
  /* Flags that can be set by user space */
-@@ -303,6 +352,37 @@ static int gfs2_set_flags(struct file *f
+@@ -304,6 +353,37 @@ static int gfs2_set_flags(struct file *f
  	return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA);
  }
  
@@ -3478,9 +3525,9 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/file.c linux-3.13.10-vs2.3.6.11/fs/g
  static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
  	switch(cmd) {
-diff -NurpP --minimal linux-3.13.10/fs/gfs2/inode.h linux-3.13.10-vs2.3.6.11/fs/gfs2/inode.h
---- linux-3.13.10/fs/gfs2/inode.h	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/gfs2/inode.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/gfs2/inode.h linux-3.18.5-vs2.3.7.3/fs/gfs2/inode.h
+--- linux-3.18.5/fs/gfs2/inode.h	2013-11-25 15:45:01.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/gfs2/inode.h	2015-01-19 10:57:47.000000000 +0000
 @@ -118,6 +118,7 @@ extern const struct file_operations gfs2
  extern const struct file_operations gfs2_dir_fops_nolock;
  
@@ -3489,9 +3536,9 @@ diff -NurpP --minimal linux-3.13.10/fs/gfs2/inode.h linux-3.13.10-vs2.3.6.11/fs/
   
  #ifdef CONFIG_GFS2_FS_LOCKING_DLM
  extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.13.10/fs/hostfs/hostfs.h linux-3.13.10-vs2.3.6.11/fs/hostfs/hostfs.h
---- linux-3.13.10/fs/hostfs/hostfs.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/hostfs/hostfs.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/hostfs/hostfs.h linux-3.18.5-vs2.3.7.3/fs/hostfs/hostfs.h
+--- linux-3.18.5/fs/hostfs/hostfs.h	2015-01-16 22:19:18.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/hostfs/hostfs.h	2015-01-19 10:57:47.000000000 +0000
 @@ -42,6 +42,7 @@ struct hostfs_iattr {
  	unsigned short	ia_mode;
  	uid_t		ia_uid;
@@ -3500,9 +3547,9 @@ diff -NurpP --minimal linux-3.13.10/fs/hostfs/hostfs.h linux-3.13.10-vs2.3.6.11/
  	loff_t		ia_size;
  	struct timespec	ia_atime;
  	struct timespec	ia_mtime;
-diff -NurpP --minimal linux-3.13.10/fs/inode.c linux-3.13.10-vs2.3.6.11/fs/inode.c
---- linux-3.13.10/fs/inode.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/inode.c	2014-01-31 23:33:47.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/inode.c linux-3.18.5-vs2.3.7.3/fs/inode.c
+--- linux-3.18.5/fs/inode.c	2015-01-16 22:19:18.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/inode.c	2015-01-19 10:57:47.000000000 +0000
 @@ -18,6 +18,7 @@
  #include <linux/buffer_head.h> /* for inode_has_buffers */
  #include <linux/ratelimit.h>
@@ -3536,7 +3583,7 @@ diff -NurpP --minimal linux-3.13.10/fs/inode.c linux-3.13.10-vs2.3.6.11/fs/inode
  	inode->dirtied_when = 0;
  
  	if (security_inode_alloc(inode))
-@@ -477,6 +482,8 @@ void __insert_inode_hash(struct inode *i
+@@ -478,6 +483,8 @@ void __insert_inode_hash(struct inode *i
  }
  EXPORT_SYMBOL(__insert_inode_hash);
  
@@ -3545,7 +3592,7 @@ diff -NurpP --minimal linux-3.13.10/fs/inode.c linux-3.13.10-vs2.3.6.11/fs/inode
  /**
   *	__remove_inode_hash - remove an inode from the hash
   *	@inode: inode to unhash
-@@ -1802,9 +1809,11 @@ void init_special_inode(struct inode *in
+@@ -1795,9 +1802,11 @@ void init_special_inode(struct inode *in
  	if (S_ISCHR(mode)) {
  		inode->i_fop = &def_chr_fops;
  		inode->i_rdev = rdev;
@@ -3557,7 +3604,7 @@ diff -NurpP --minimal linux-3.13.10/fs/inode.c linux-3.13.10-vs2.3.6.11/fs/inode
  	} else if (S_ISFIFO(mode))
  		inode->i_fop = &pipefifo_fops;
  	else if (S_ISSOCK(mode))
-@@ -1833,6 +1842,7 @@ void inode_init_owner(struct inode *inod
+@@ -1826,6 +1835,7 @@ void inode_init_owner(struct inode *inod
  	} else
  		inode->i_gid = current_fsgid();
  	inode->i_mode = mode;
@@ -3565,9 +3612,9 @@ diff -NurpP --minimal linux-3.13.10/fs/inode.c linux-3.13.10-vs2.3.6.11/fs/inode
  }
  EXPORT_SYMBOL(inode_init_owner);
  
-diff -NurpP --minimal linux-3.13.10/fs/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ioctl.c
---- linux-3.13.10/fs/ioctl.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ioctl.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ioctl.c linux-3.18.5-vs2.3.7.3/fs/ioctl.c
+--- linux-3.18.5/fs/ioctl.c	2014-01-22 20:39:06.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ioctl.c	2015-01-19 10:57:47.000000000 +0000
 @@ -15,6 +15,9 @@
  #include <linux/writeback.h>
  #include <linux/buffer_head.h>
@@ -3578,39 +3625,10 @@ diff -NurpP --minimal linux-3.13.10/fs/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ioctl
  
  #include <asm/ioctls.h>
  
-diff -NurpP --minimal linux-3.13.10/fs/ioprio.c linux-3.13.10-vs2.3.6.11/fs/ioprio.c
---- linux-3.13.10/fs/ioprio.c	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ioprio.c	2014-01-31 20:38:03.000000000 +0000
-@@ -28,6 +28,7 @@
- #include <linux/syscalls.h>
- #include <linux/security.h>
- #include <linux/pid_namespace.h>
-+#include <linux/vs_base.h>
- 
- int set_task_ioprio(struct task_struct *task, int ioprio)
- {
-@@ -105,6 +106,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
- 			else
- 				pgrp = find_vpid(who);
- 			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
-+				if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
-+					continue;
- 				ret = set_task_ioprio(p, ioprio);
- 				if (ret)
- 					break;
-@@ -198,6 +201,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
- 			else
- 				pgrp = find_vpid(who);
- 			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
-+				if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
-+					continue;
- 				tmpio = get_task_ioprio(p);
- 				if (tmpio < 0)
- 					continue;
-diff -NurpP --minimal linux-3.13.10/fs/jfs/file.c linux-3.13.10-vs2.3.6.11/fs/jfs/file.c
---- linux-3.13.10/fs/jfs/file.c	2013-02-19 13:58:48.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/file.c	2014-01-31 20:38:03.000000000 +0000
-@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
+diff -NurpP --minimal linux-3.18.5/fs/jfs/file.c linux-3.18.5-vs2.3.7.3/fs/jfs/file.c
+--- linux-3.18.5/fs/jfs/file.c	2014-09-03 13:19:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/file.c	2015-01-19 10:58:03.000000000 +0000
+@@ -110,7 +110,8 @@ int jfs_setattr(struct dentry *dentry, s
  	if (is_quota_modification(inode, iattr))
  		dquot_initialize(inode);
  	if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
@@ -3620,17 +3638,17 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/file.c linux-3.13.10-vs2.3.6.11/fs/jf
  		rc = dquot_transfer(inode, iattr);
  		if (rc)
  			return rc;
-@@ -144,6 +145,7 @@ const struct inode_operations jfs_file_i
- #ifdef CONFIG_JFS_POSIX_ACL
+@@ -146,6 +147,7 @@ const struct inode_operations jfs_file_i
  	.get_acl	= jfs_get_acl,
+ 	.set_acl	= jfs_set_acl,
  #endif
 +	.sync_flags	= jfs_sync_flags,
  };
  
  const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.13.10/fs/jfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs/jfs/ioctl.c
---- linux-3.13.10/fs/jfs/ioctl.c	2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/ioctl.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/ioctl.c linux-3.18.5-vs2.3.7.3/fs/jfs/ioctl.c
+--- linux-3.18.5/fs/jfs/ioctl.c	2013-05-31 13:45:24.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/ioctl.c	2015-01-19 10:58:03.000000000 +0000
 @@ -12,6 +12,7 @@
  #include <linux/time.h>
  #include <linux/sched.h>
@@ -3688,9 +3706,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/ioctl.c linux-3.13.10-vs2.3.6.11/fs/j
  		flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
  		jfs_inode->mode2 = flags;
  
-diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_dinode.h linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_dinode.h
---- linux-3.13.10/fs/jfs/jfs_dinode.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_dinode.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/jfs_dinode.h linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_dinode.h
+--- linux-3.18.5/fs/jfs/jfs_dinode.h	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_dinode.h	2015-01-19 10:58:03.000000000 +0000
 @@ -161,9 +161,13 @@ struct dinode {
  
  #define JFS_APPEND_FL		0x01000000 /* writes to file may only append */
@@ -3707,9 +3725,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_dinode.h linux-3.13.10-vs2.3.6.11
  #define JFS_FL_INHERIT		0x03C80000
  
  /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_filsys.h linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_filsys.h
---- linux-3.13.10/fs/jfs/jfs_filsys.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_filsys.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/jfs_filsys.h linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_filsys.h
+--- linux-3.18.5/fs/jfs/jfs_filsys.h	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_filsys.h	2015-01-19 10:58:03.000000000 +0000
 @@ -266,6 +266,7 @@
  #define JFS_NAME_MAX	255
  #define JFS_PATH_MAX	BPSIZE
@@ -3718,9 +3736,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_filsys.h linux-3.13.10-vs2.3.6.11
  
  /*
   *	file system state (superblock state)
-diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_imap.c linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_imap.c
---- linux-3.13.10/fs/jfs/jfs_imap.c	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_imap.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/jfs_imap.c linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_imap.c
+--- linux-3.18.5/fs/jfs/jfs_imap.c	2013-11-25 15:45:01.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_imap.c	2015-01-19 10:58:03.000000000 +0000
 @@ -46,6 +46,7 @@
  #include <linux/pagemap.h>
  #include <linux/quotaops.h>
@@ -3784,9 +3802,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_imap.c linux-3.13.10-vs2.3.6.11/f
  	jfs_get_inode_flags(jfs_ip);
  	/*
  	 * mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.c linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_inode.c
---- linux-3.13.10/fs/jfs/jfs_inode.c	2013-11-25 15:46:59.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_inode.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/jfs_inode.c linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_inode.c
+--- linux-3.18.5/fs/jfs/jfs_inode.c	2014-09-03 13:19:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_inode.c	2015-01-21 09:53:08.000000000 +0000
 @@ -18,6 +18,7 @@
  
  #include <linux/fs.h>
@@ -3795,37 +3813,35 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.c linux-3.13.10-vs2.3.6.11/
  #include "jfs_incore.h"
  #include "jfs_inode.h"
  #include "jfs_filsys.h"
-@@ -30,29 +31,46 @@ void jfs_set_inode_flags(struct inode *i
- {
- 	unsigned int flags = JFS_IP(inode)->mode2;
- 
--	inode->i_flags &= ~(S_IMMUTABLE | S_APPEND |
--		S_NOATIME | S_DIRSYNC | S_SYNC);
-+	inode->i_flags &= ~(S_IMMUTABLE | S_IXUNLINK |
-+		S_SYNC | S_APPEND | S_NOATIME | S_DIRSYNC);
+@@ -33,26 +34,45 @@ void jfs_set_inode_flags(struct inode *i
  
  	if (flags & JFS_IMMUTABLE_FL)
- 		inode->i_flags |= S_IMMUTABLE;
+ 		new_fl |= S_IMMUTABLE;
 +	if (flags & JFS_IXUNLINK_FL)
 +		inode->i_flags |= S_IXUNLINK;
 +
 +	if (flags & JFS_SYNC_FL)
 +		inode->i_flags |= S_SYNC;
  	if (flags & JFS_APPEND_FL)
- 		inode->i_flags |= S_APPEND;
+ 		new_fl |= S_APPEND;
  	if (flags & JFS_NOATIME_FL)
- 		inode->i_flags |= S_NOATIME;
+ 		new_fl |= S_NOATIME;
  	if (flags & JFS_DIRSYNC_FL)
- 		inode->i_flags |= S_DIRSYNC;
+ 		new_fl |= S_DIRSYNC;
 -	if (flags & JFS_SYNC_FL)
--		inode->i_flags |= S_SYNC;
-+
-+	inode->i_vflags &= ~(V_BARRIER | V_COW);
+-		new_fl |= S_SYNC;
+-	inode_set_flags(inode, new_fl, S_IMMUTABLE | S_APPEND | S_NOATIME |
++	inode_set_flags(inode, new_fl, S_IMMUTABLE | S_IXUNLINK | S_APPEND | S_NOATIME |
+ 			S_DIRSYNC | S_SYNC);
 +
++	new_fl = 0;
 +	if (flags & JFS_BARRIER_FL)
-+		inode->i_vflags |= V_BARRIER;
++		new_fl |= V_BARRIER;
 +	if (flags & JFS_COW_FL)
-+		inode->i_vflags |= V_COW;
++		new_fl |= V_COW;
++
++	set_mask_bits(&inode->i_vflags,
++		V_BARRIER | V_COW, new_fl);
  }
  
  void jfs_get_inode_flags(struct jfs_inode_info *jfs_ip)
@@ -3848,7 +3864,7 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.c linux-3.13.10-vs2.3.6.11/
  	if (flags & S_APPEND)
  		jfs_ip->mode2 |= JFS_APPEND_FL;
  	if (flags & S_NOATIME)
-@@ -61,6 +79,11 @@ void jfs_get_inode_flags(struct jfs_inod
+@@ -61,6 +81,11 @@ void jfs_get_inode_flags(struct jfs_inod
  		jfs_ip->mode2 |= JFS_DIRSYNC_FL;
  	if (flags & S_SYNC)
  		jfs_ip->mode2 |= JFS_SYNC_FL;
@@ -3860,9 +3876,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.c linux-3.13.10-vs2.3.6.11/
  }
  
  /*
-diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.h linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_inode.h
---- linux-3.13.10/fs/jfs/jfs_inode.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/jfs_inode.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/jfs_inode.h linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_inode.h
+--- linux-3.18.5/fs/jfs/jfs_inode.h	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/jfs_inode.h	2015-01-19 10:58: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);
@@ -3871,9 +3887,9 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/jfs_inode.h linux-3.13.10-vs2.3.6.11/
  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.13.10/fs/jfs/namei.c linux-3.13.10-vs2.3.6.11/fs/jfs/namei.c
---- linux-3.13.10/fs/jfs/namei.c	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/namei.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/namei.c linux-3.18.5-vs2.3.7.3/fs/jfs/namei.c
+--- linux-3.18.5/fs/jfs/namei.c	2014-06-12 11:34:58.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/namei.c	2015-01-19 10:58:03.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/ctype.h>
  #include <linux/quotaops.h>
@@ -3890,17 +3906,17 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/namei.c linux-3.13.10-vs2.3.6.11/fs/j
  	return d_splice_alias(ip, dentry);
  }
  
-@@ -1525,6 +1527,7 @@ const struct inode_operations jfs_dir_in
- #ifdef CONFIG_JFS_POSIX_ACL
+@@ -1526,6 +1528,7 @@ const struct inode_operations jfs_dir_in
  	.get_acl	= jfs_get_acl,
+ 	.set_acl	= jfs_set_acl,
  #endif
 +	.sync_flags	= jfs_sync_flags,
  };
  
  const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.13.10/fs/jfs/super.c linux-3.13.10-vs2.3.6.11/fs/jfs/super.c
---- linux-3.13.10/fs/jfs/super.c	2013-11-25 15:45:01.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/jfs/super.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/jfs/super.c linux-3.18.5-vs2.3.7.3/fs/jfs/super.c
+--- linux-3.18.5/fs/jfs/super.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/jfs/super.c	2015-01-19 10:58: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,
@@ -3922,8 +3938,8 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/super.c linux-3.13.10-vs2.3.6.11/fs/j
  	{Opt_ignore, "noquota"},
  	{Opt_ignore, "quota"},
  	{Opt_usrquota, "usrquota"},
-@@ -389,7 +394,20 @@ static int parse_options(char *options,
- 			}
+@@ -402,7 +407,20 @@ static int parse_options(char *options,
+ 				pr_err("JFS: discard option not supported on device\n");
  			break;
  		}
 -
@@ -3942,11 +3958,11 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/super.c linux-3.13.10-vs2.3.6.11/fs/j
 +			break;
 +#endif
  		default:
- 			printk("jfs: Unrecognized mount option \"%s\" "
- 					" or missing value\n", p);
-@@ -421,6 +439,12 @@ static int jfs_remount(struct super_bloc
+ 			printk("jfs: Unrecognized mount option \"%s\" or missing value\n",
+ 			       p);
+@@ -434,6 +452,12 @@ static int jfs_remount(struct super_bloc
+ 	if (!parse_options(data, sb, &newLVSize, &flag))
  		return -EINVAL;
- 	}
  
 +	if ((flag & JFS_TAGGED) && !(sb->s_flags & MS_TAGGED)) {
 +		printk(KERN_ERR "JFS: %s: tagging not permitted on remount.\n",
@@ -3956,8 +3972,8 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/super.c linux-3.13.10-vs2.3.6.11/fs/j
 +
  	if (newLVSize) {
  		if (sb->s_flags & MS_RDONLY) {
- 			pr_err("JFS: resize requires volume" \
-@@ -506,6 +530,9 @@ static int jfs_fill_super(struct super_b
+ 			pr_err("JFS: resize requires volume to be mounted read-write\n");
+@@ -517,6 +541,9 @@ static int jfs_fill_super(struct super_b
  #ifdef CONFIG_JFS_POSIX_ACL
  	sb->s_flags |= MS_POSIXACL;
  #endif
@@ -3967,10 +3983,10 @@ diff -NurpP --minimal linux-3.13.10/fs/jfs/super.c linux-3.13.10-vs2.3.6.11/fs/j
  
  	if (newLVSize) {
  		pr_err("resize option for remount only\n");
-diff -NurpP --minimal linux-3.13.10/fs/libfs.c linux-3.13.10-vs2.3.6.11/fs/libfs.c
---- linux-3.13.10/fs/libfs.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/libfs.c	2014-02-01 01:35:46.000000000 +0000
-@@ -145,13 +145,14 @@ static inline unsigned char dt_type(stru
+diff -NurpP --minimal linux-3.18.5/fs/libfs.c linux-3.18.5-vs2.3.7.3/fs/libfs.c
+--- linux-3.18.5/fs/libfs.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/libfs.c	2015-01-22 07:27:38.000000000 +0000
+@@ -146,13 +146,14 @@ static inline unsigned char dt_type(stru
   * both impossible due to the lock on directory.
   */
  
@@ -3982,23 +3998,23 @@ diff -NurpP --minimal linux-3.13.10/fs/libfs.c linux-3.13.10-vs2.3.6.11/fs/libfs
 -	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;
+ 	struct list_head *p, *q = &cursor->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
+@@ -160,6 +161,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);
+ 		struct dentry *next = list_entry(p, struct dentry, 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
+@@ -182,8 +185,22 @@ int dcache_readdir(struct file *file, st
  	spin_unlock(&dentry->d_lock);
  	return 0;
  }
@@ -4021,9 +4037,9 @@ diff -NurpP --minimal linux-3.13.10/fs/libfs.c linux-3.13.10-vs2.3.6.11/fs/libfs
  ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
  {
  	return -EISDIR;
-diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks.c
---- linux-3.13.10/fs/locks.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/locks.c	2014-01-31 23:51:55.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/locks.c linux-3.18.5-vs2.3.7.3/fs/locks.c
+--- linux-3.18.5/fs/locks.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/locks.c	2015-01-28 11:48:02.000000000 +0000
 @@ -129,6 +129,8 @@
  #include <linux/hashtable.h>
  #include <linux/percpu.h>
@@ -4031,9 +4047,9 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
 +#include <linux/vs_base.h>
 +#include <linux/vs_limit.h>
  
- #include <asm/uaccess.h>
- 
-@@ -210,11 +212,17 @@ static void locks_init_lock_heads(struct
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/filelock.h>
+@@ -214,11 +216,17 @@ static void locks_init_lock_heads(struct
  /* Allocate an empty lock structure. */
  struct file_lock *locks_alloc_lock(void)
  {
@@ -4054,7 +4070,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	return fl;
  }
  EXPORT_SYMBOL_GPL(locks_alloc_lock);
-@@ -238,6 +246,7 @@ void locks_free_lock(struct file_lock *f
+@@ -246,6 +254,7 @@ void locks_free_lock(struct file_lock *f
  	BUG_ON(!list_empty(&fl->fl_block));
  	BUG_ON(!hlist_unhashed(&fl->fl_link));
  
@@ -4062,7 +4078,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	locks_release_private(fl);
  	kmem_cache_free(filelock_cache, fl);
  }
-@@ -247,6 +256,7 @@ void locks_init_lock(struct file_lock *f
+@@ -267,6 +276,7 @@ void locks_init_lock(struct file_lock *f
  {
  	memset(fl, 0, sizeof(struct file_lock));
  	locks_init_lock_heads(fl);
@@ -4070,15 +4086,15 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  }
  
  EXPORT_SYMBOL(locks_init_lock);
-@@ -287,6 +297,7 @@ void locks_copy_lock(struct file_lock *n
- 	new->fl_file = fl->fl_file;
- 	new->fl_ops = fl->fl_ops;
+@@ -284,6 +294,7 @@ void locks_copy_conflock(struct file_loc
+ 	new->fl_start = fl->fl_start;
+ 	new->fl_end = fl->fl_end;
  	new->fl_lmops = fl->fl_lmops;
 +	new->fl_xid = fl->fl_xid;
+ 	new->fl_ops = NULL;
  
- 	locks_copy_private(new, fl);
- }
-@@ -325,6 +336,11 @@ static int flock_make_lock(struct file *
+ 	if (fl->fl_lmops) {
+@@ -345,6 +356,11 @@ flock_make_lock(struct file *filp, unsig
  	fl->fl_flags = FL_FLOCK;
  	fl->fl_type = type;
  	fl->fl_end = OFFSET_MAX;
@@ -4088,17 +4104,17 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
 +	fl->fl_xid = filp->f_xid;
 +	vx_locks_inc(fl);
  	
- 	*lock = fl;
- 	return 0;
-@@ -464,6 +480,7 @@ static int lease_init(struct file *filp,
+ 	return fl;
+ }
+@@ -467,6 +483,7 @@ static int lease_init(struct file *filp,
  
- 	fl->fl_owner = current->files;
+ 	fl->fl_owner = filp;
  	fl->fl_pid = current->tgid;
 +	fl->fl_xid = vx_current_xid();
  
  	fl->fl_file = filp;
  	fl->fl_flags = FL_LEASE;
-@@ -483,6 +500,11 @@ static struct file_lock *lease_alloc(str
+@@ -486,6 +503,11 @@ static struct file_lock *lease_alloc(str
  	if (fl == NULL)
  		return ERR_PTR(error);
  
@@ -4110,7 +4126,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	error = lease_init(filp, type, fl);
  	if (error) {
  		locks_free_lock(fl);
-@@ -858,6 +880,7 @@ static int flock_lock_file(struct file *
+@@ -892,6 +914,7 @@ static int flock_lock_file(struct file *
  		spin_lock(&inode->i_lock);
  	}
  
@@ -4118,7 +4134,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  find_conflict:
  	for_each_lock(inode, before) {
  		struct file_lock *fl = *before;
-@@ -878,6 +901,7 @@ find_conflict:
+@@ -912,6 +935,7 @@ find_conflict:
  		goto out;
  	locks_copy_lock(new_fl, request);
  	locks_insert_lock(before, new_fl);
@@ -4126,7 +4142,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	new_fl = NULL;
  	error = 0;
  
-@@ -888,7 +912,8 @@ out:
+@@ -923,7 +947,8 @@ out:
  	return error;
  }
  
@@ -4136,16 +4152,16 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  {
  	struct file_lock *fl;
  	struct file_lock *new_fl = NULL;
-@@ -899,6 +924,8 @@ static int __posix_lock_file(struct inod
- 	int error;
+@@ -935,6 +960,8 @@ static int __posix_lock_file(struct inod
  	bool added = false;
+ 	LIST_HEAD(dispose);
  
 +	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.
-@@ -909,7 +936,11 @@ static int __posix_lock_file(struct inod
+@@ -945,7 +972,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();
@@ -4157,7 +4173,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	}
  
  	spin_lock(&inode->i_lock);
-@@ -1118,7 +1149,8 @@ static int __posix_lock_file(struct inod
+@@ -1158,7 +1189,8 @@ static int __posix_lock_file(struct inod
  int posix_lock_file(struct file *filp, struct file_lock *fl,
  			struct file_lock *conflock)
  {
@@ -4167,51 +4183,33 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  }
  EXPORT_SYMBOL(posix_lock_file);
  
-@@ -1168,6 +1170,7 @@ int locks_mandatory_area(int read_write,
- 	struct file_lock fl;
- 	int error;
- 	bool sleep = false;
-+	vxid_t xid;
- 
- 	locks_init_lock(&fl);
- 	fl.fl_pid = current->tgid;
-@@ -1208,20 +1240,24 @@ int locks_mandatory_area(int read_write,
- 	fl.fl_type = (read_write == FLOCK_VERIFY_WRITE) ? F_WRLCK : F_RDLCK;
- 	fl.fl_start = offset;
- 	fl.fl_end = offset + count - 1;
-+	if (filp)
-+		xid = filp->f_xid;
-+	else
-+		xid = vx_current_xid();
- 
- 	for (;;) {
+@@ -1252,7 +1284,7 @@ int locks_mandatory_area(int read_write,
  		if (filp) {
- 			fl.fl_owner = (fl_owner_t)filp;
+ 			fl.fl_owner = filp;
  			fl.fl_flags &= ~FL_SLEEP;
 -			error = __posix_lock_file(inode, &fl, NULL);
-+			error = __posix_lock_file(inode, &fl, NULL, xid);
++			error = __posix_lock_file(inode, &fl, NULL, filp->f_xid);
  			if (!error)
  				break;
  		}
- 
+@@ -1260,7 +1292,7 @@ int locks_mandatory_area(int read_write,
  		if (sleep)
  			fl.fl_flags |= FL_SLEEP;
  		fl.fl_owner = current->files;
 -		error = __posix_lock_file(inode, &fl, NULL);
-+		error = __posix_lock_file(inode, &fl, NULL, xid);
++		error = __posix_lock_file(inode, &fl, NULL, filp->f_xid);
  		if (error != FILE_LOCK_DEFERRED)
  			break;
  		error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
-@@ -1549,6 +1581,8 @@ static int generic_add_lease(struct file
- 	error = check_conflicting_open(dentry, arg);
- 	if (error)
- 		locks_unlink_lock(flp);
-+	else
-+		vx_locks_inc(lease);
- out:
- 	if (is_deleg)
- 		mutex_unlock(&inode->i_mutex);
-@@ -1991,6 +2024,11 @@ int fcntl_setlk(unsigned int fd, struct
+@@ -1655,6 +1687,7 @@ generic_add_lease(struct file *filp, lon
+ 		goto out;
+ 
+ 	locks_insert_lock(before, lease);
++	vx_locks_inc(lease);
+ 	/*
+ 	 * The check in break_lease() is lockless. It's possible for another
+ 	 * open to race in after we did the earlier check for a conflicting
+@@ -2110,6 +2143,11 @@ int fcntl_setlk(unsigned int fd, struct
  	if (file_lock == NULL)
  		return -ENOLCK;
  
@@ -4223,7 +4221,7 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	/*
  	 * This might block, so we do it before checking the inode.
  	 */
-@@ -2109,6 +2147,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -2250,6 +2288,11 @@ int fcntl_setlk64(unsigned int fd, struc
  	if (file_lock == NULL)
  		return -ENOLCK;
  
@@ -4235,35 +4233,34 @@ diff -NurpP --minimal linux-3.13.10/fs/locks.c linux-3.13.10-vs2.3.6.11/fs/locks
  	/*
  	 * This might block, so we do it before checking the inode.
  	 */
-@@ -2378,8 +2421,11 @@ static int locks_show(struct seq_file *f
+@@ -2557,8 +2600,11 @@ static int locks_show(struct seq_file *f
  
  	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, iter->li_pos, " ->");
+ 		lock_get_status(f, bfl, iter->li_pos, " ->");
 +	}
  
  	return 0;
  }
-diff -NurpP --minimal linux-3.13.10/fs/mount.h linux-3.13.10-vs2.3.6.11/fs/mount.h
---- linux-3.13.10/fs/mount.h	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/mount.h	2014-04-17 01:17:10.000000000 +0000
-@@ -57,6 +57,7 @@ struct mount {
+diff -NurpP --minimal linux-3.18.5/fs/mount.h linux-3.18.5-vs2.3.7.3/fs/mount.h
+--- linux-3.18.5/fs/mount.h	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/mount.h	2015-01-19 10:58:03.000000000 +0000
+@@ -62,6 +62,7 @@ struct mount {
  	int mnt_expiry_mark;		/* true if marked for expiry */
- 	int mnt_pinned;
+ 	struct hlist_head mnt_pins;
  	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.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei.c
---- linux-3.13.10/fs/namei.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/namei.c	2014-04-17 01:17:10.000000000 +0000
-@@ -34,9 +34,19 @@
+diff -NurpP --minimal linux-3.18.5/fs/namei.c linux-3.18.5-vs2.3.7.3/fs/namei.c
+--- linux-3.18.5/fs/namei.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/namei.c	2015-01-22 08:31:30.000000000 +0000
+@@ -34,10 +34,20 @@
  #include <linux/device_cgroup.h>
  #include <linux/fs_struct.h>
  #include <linux/posix_acl.h>
@@ -4276,6 +4273,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +#include <linux/vs_device.h>
 +#include <linux/vs_context.h>
 +#include <linux/pid_namespace.h>
+ #include <linux/hash.h>
  #include <asm/uaccess.h>
  
  #include "internal.h"
@@ -4283,7 +4281,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  #include "mount.h"
  
  /* [Feb-1997 T. Schoebel-Theuer]
-@@ -266,6 +276,89 @@ static int check_acl(struct inode *inode
+@@ -278,6 +288,93 @@ static int check_acl(struct inode *inode
  	return -EAGAIN;
  }
  
@@ -4313,8 +4311,12 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +	else if (inode->i_sb->s_magic == PROC_SUPER_MAGIC) {
 +		struct proc_dir_entry *de = PDE(inode);
 +
-+		if (de && !vx_hide_check(0, de->vx_flags))
++		if (de && !vx_hide_check(0, de->vx_flags)) {
++			vxdprintk(VXD_CBIT(misc, 9),
++				VS_Q("%*s") " hidden by _dx_permission",
++				de->namelen, de->name);
 +			goto out;
++		}
 +
 +		if ((mask & (MAY_WRITE | MAY_APPEND))) {
 +			struct pid *pid;
@@ -4373,7 +4375,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  /*
   * This does the basic permission checking
   */
-@@ -388,10 +481,14 @@ int __inode_permission(struct inode *ino
+@@ -402,10 +499,14 @@ int __inode_permission(struct inode *ino
  		/*
  		 * Nobody gets write access to an immutable file.
  		 */
@@ -4389,17 +4391,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  	retval = do_inode_permission(inode, mask);
  	if (retval)
  		return retval;
-@@ -1238,7 +1335,8 @@ static void follow_dotdot(struct nameida
- 
- 		if (nd->path.dentry == nd->root.dentry &&
- 		    nd->path.mnt == nd->root.mnt) {
--			break;
-+			/* for sane '/' avoid follow_mount() */
-+			return;
- 		}
- 		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
+@@ -1416,6 +1517,9 @@ static int lookup_fast(struct nameidata
  				goto unlazy;
  			}
  		}
@@ -4408,9 +4400,9 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +
  		path->mnt = mnt;
  		path->dentry = dentry;
- 		if (unlikely(!__follow_mount_rcu(nd, path, inode)))
-@@ -1413,6 +1514,8 @@ unlazy:
- 		}
+ 		if (likely(__follow_mount_rcu(nd, path, inode)))
+@@ -1442,6 +1546,8 @@ unlazy:
+ 		goto need_lookup;
  	}
  
 +	/* FIXME: check dx permission */
@@ -4418,7 +4410,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  	path->mnt = mnt;
  	path->dentry = dentry;
  	err = follow_managed(path, nd->flags);
-@@ -2400,7 +2503,7 @@ static int may_delete(struct inode *dir,
+@@ -2434,7 +2540,7 @@ static int may_delete(struct inode *dir,
  		return -EPERM;
  
  	if (check_sticky(dir, inode) || IS_APPEND(inode) ||
@@ -4426,8 +4418,8 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +		IS_IXORUNLINK(inode) || IS_SWAPFILE(inode))
  		return -EPERM;
  	if (isdir) {
- 		if (!d_is_directory(victim) && !d_is_autodir(victim))
-@@ -2480,19 +2583,25 @@ int vfs_create(struct inode *dir, struct
+ 		if (!d_is_dir(victim))
+@@ -2516,19 +2622,25 @@ int vfs_create(struct inode *dir, struct
  		bool want_excl)
  {
  	int error = may_create(dir, dentry);
@@ -4454,8 +4446,8 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +		vxdprintk(VXD_CBIT(misc, 3), "i_op->create failed with %d", error);
  	return error;
  }
- 
-@@ -2527,6 +2636,15 @@ static int may_open(struct path *path, i
+ EXPORT_SYMBOL(vfs_create);
+@@ -2564,6 +2676,15 @@ static int may_open(struct path *path, i
  		break;
  	}
  
@@ -4471,7 +4463,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  	error = inode_permission(inode, acc_mode);
  	if (error)
  		return error;
-@@ -3022,6 +3140,16 @@ finish_open:
+@@ -3058,6 +3179,16 @@ finish_open:
  	}
  finish_open_created:
  	error = may_open(&nd->path, acc_mode, open_flag);
@@ -4487,8 +4479,8 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +#endif
  	if (error)
  		goto out;
- 	file->f_path.mnt = nd->path.mnt;
-@@ -3147,6 +3275,7 @@ static struct file *path_openat(int dfd,
+ 
+@@ -3187,6 +3318,7 @@ static struct file *path_openat(int dfd,
  	int opened = 0;
  	int error;
  
@@ -4496,7 +4488,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  	file = get_empty_filp();
  	if (IS_ERR(file))
  		return file;
-@@ -3188,6 +3317,16 @@ static struct file *path_openat(int dfd,
+@@ -3228,6 +3360,16 @@ static struct file *path_openat(int dfd,
  		error = do_last(nd, &path, file, op, &opened, pathname);
  		put_link(nd, &link, cookie);
  	}
@@ -4513,7 +4505,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  out:
  	if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
  		path_put(&nd->root);
-@@ -3303,6 +3442,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -3343,6 +3485,11 @@ struct dentry *kern_path_create(int dfd,
  		goto fail;
  	}
  	*path = nd.path;
@@ -4525,7 +4517,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  	return dentry;
  fail:
  	dput(dentry);
-@@ -3850,7 +3994,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -3899,7 +4046,7 @@ int vfs_link(struct dentry *old_dentry,
  	/*
  	 * A link to an append-only or immutable file cannot be created.
  	 */
@@ -4534,9 +4526,9 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
  		return -EPERM;
  	if (!dir->i_op->link)
  		return -EPERM;
-@@ -4305,6 +4449,288 @@ int generic_readlink(struct dentry *dent
- 	return res;
+@@ -4404,6 +4551,289 @@ int generic_readlink(struct dentry *dent
  }
+ EXPORT_SYMBOL(generic_readlink);
  
 +
 +#ifdef	CONFIG_VSERVER_COWBL
@@ -4818,18 +4810,19 @@ diff -NurpP --minimal linux-3.13.10/fs/namei.c linux-3.13.10-vs2.3.6.11/fs/namei
 +	kfree(pstr);
 +	return length;
 +}
++
 +EXPORT_SYMBOL(vx_info_mnt_namespace);
 +
  /* get the link contents into pagecache */
  static char *page_getlink(struct dentry * dentry, struct page **ppage)
  {
-diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/namespace.c
---- linux-3.13.10/fs/namespace.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/namespace.c	2014-04-17 01:18:37.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/namespace.c linux-3.18.5-vs2.3.7.3/fs/namespace.c
+--- linux-3.18.5/fs/namespace.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/namespace.c	2015-01-19 12:08:57.000000000 +0000
 @@ -24,6 +24,11 @@
- #include <linux/proc_ns.h>
  #include <linux/magic.h>
  #include <linux/bootmem.h>
+ #include <linux/task_work.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_tag.h>
@@ -4838,7 +4831,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  #include "pnode.h"
  #include "internal.h"
  
-@@ -839,6 +844,10 @@ vfs_kern_mount(struct file_system_type *
+@@ -897,6 +902,10 @@ vfs_kern_mount(struct file_system_type *
  	if (!type)
  		return ERR_PTR(-ENODEV);
  
@@ -4849,7 +4842,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	mnt = alloc_vfsmnt(name);
  	if (!mnt)
  		return ERR_PTR(-ENOMEM);
-@@ -899,6 +908,7 @@ static struct mount *clone_mnt(struct mo
+@@ -971,6 +980,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;
@@ -4857,7 +4850,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	lock_mount_hash();
  	list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
  	unlock_mount_hash();
-@@ -1369,7 +1379,8 @@ static int do_umount(struct mount *mnt,
+@@ -1508,7 +1518,8 @@ out_unlock:
   */
  static inline bool may_mount(void)
  {
@@ -4867,7 +4860,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  }
  
  /*
-@@ -1785,6 +1796,7 @@ static int do_change_type(struct path *p
+@@ -1969,6 +1980,7 @@ static int do_change_type(struct path *p
  		if (err)
  			goto out_unlock;
  	}
@@ -4875,7 +4868,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	lock_mount_hash();
  	for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -1813,12 +1825,14 @@ static bool has_locked_children(struct m
+@@ -1997,12 +2009,14 @@ static bool has_locked_children(struct m
   * do loopback mount.
   */
  static int do_loopback(struct path *path, const char *old_name,
@@ -4891,7 +4884,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	if (!old_name || !*old_name)
  		return -EINVAL;
  	err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path);
-@@ -1898,7 +1912,7 @@ static int change_mount_flags(struct vfs
+@@ -2079,7 +2093,7 @@ static int change_mount_flags(struct vfs
   * on it - tough luck.
   */
  static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -4900,7 +4893,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  {
  	int err;
  	struct super_block *sb = path->mnt->mnt_sb;
-@@ -2377,6 +2391,7 @@ long do_mount(const char *dev_name, cons
+@@ -2579,6 +2593,7 @@ long do_mount(const char *dev_name, cons
  	struct path path;
  	int retval = 0;
  	int mnt_flags = 0;
@@ -4908,7 +4901,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	/* Discard magic */
  	if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2406,6 +2421,12 @@ long do_mount(const char *dev_name, cons
+@@ -2604,6 +2619,12 @@ long do_mount(const char *dev_name, cons
  	if (!(flags & MS_NOATIME))
  		mnt_flags |= MNT_RELATIME;
  
@@ -4921,9 +4914,9 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	/* Separate the per-mountpoint flags */
  	if (flags & MS_NOSUID)
  		mnt_flags |= MNT_NOSUID;
-@@ -2422,15 +2443,17 @@ long do_mount(const char *dev_name, cons
- 	if (flags & MS_RDONLY)
- 		mnt_flags |= MNT_READONLY;
+@@ -2628,15 +2649,17 @@ long do_mount(const char *dev_name, cons
+ 		mnt_flags |= path.mnt->mnt_flags & MNT_ATIME_MASK;
+ 	}
  
 +	if (!vx_capable(CAP_SYS_ADMIN, VXC_DEV_MOUNT))
 +		mnt_flags |= MNT_NODEV;
@@ -4941,7 +4934,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
  		retval = do_change_type(&path, flags);
  	else if (flags & MS_MOVE)
-@@ -2546,6 +2569,7 @@ struct mnt_namespace *copy_mnt_ns(unsign
+@@ -2752,6 +2775,7 @@ struct mnt_namespace *copy_mnt_ns(unsign
  			p = next_mnt(p, old);
  	}
  	namespace_unlock();
@@ -4949,7 +4942,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	if (rootmnt)
  		mntput(rootmnt);
-@@ -2727,9 +2751,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2926,9 +2950,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);
@@ -4962,7 +4955,7 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  		goto out4;
  	if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
  		goto out4;
-@@ -2859,6 +2884,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -3063,6 +3088,7 @@ void put_mnt_ns(struct mnt_namespace *ns
  	if (!atomic_dec_and_test(&ns->count))
  		return;
  	drop_collected_mounts(&ns->root->mnt);
@@ -4970,10 +4963,10 @@ diff -NurpP --minimal linux-3.13.10/fs/namespace.c linux-3.13.10-vs2.3.6.11/fs/n
  	free_mnt_ns(ns);
  }
  
-diff -NurpP --minimal linux-3.13.10/fs/nfs/client.c linux-3.13.10-vs2.3.6.11/fs/nfs/client.c
---- linux-3.13.10/fs/nfs/client.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfs/client.c	2014-01-31 20:38:03.000000000 +0000
-@@ -685,6 +685,9 @@ int nfs_init_server_rpcclient(struct nfs
+diff -NurpP --minimal linux-3.18.5/fs/nfs/client.c linux-3.18.5-vs2.3.7.3/fs/nfs/client.c
+--- linux-3.18.5/fs/nfs/client.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfs/client.c	2015-01-19 10:58:03.000000000 +0000
+@@ -693,6 +693,9 @@ int nfs_init_server_rpcclient(struct nfs
  	if (server->flags & NFS_MOUNT_SOFT)
  		server->client->cl_softrtry = 1;
  
@@ -4983,7 +4976,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/client.c linux-3.13.10-vs2.3.6.11/fs/
  	return 0;
  }
  EXPORT_SYMBOL_GPL(nfs_init_server_rpcclient);
-@@ -863,6 +866,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -871,6 +874,10 @@ static void nfs_server_set_fsinfo(struct
  		server->acdirmin = server->acdirmax = 0;
  	}
  
@@ -4994,9 +4987,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/client.c linux-3.13.10-vs2.3.6.11/fs/
  	server->maxfilesize = fsinfo->maxfilesize;
  
  	server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.13.10/fs/nfs/dir.c linux-3.13.10-vs2.3.6.11/fs/nfs/dir.c
---- linux-3.13.10/fs/nfs/dir.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfs/dir.c	2014-02-25 11:26:10.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfs/dir.c linux-3.18.5-vs2.3.7.3/fs/nfs/dir.c
+--- linux-3.18.5/fs/nfs/dir.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfs/dir.c	2015-01-19 10:58:03.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/sched.h>
  #include <linux/kmemleak.h>
@@ -5005,7 +4998,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/dir.c linux-3.13.10-vs2.3.6.11/fs/nfs
  
  #include "delegation.h"
  #include "iostat.h"
-@@ -1319,6 +1320,7 @@ struct dentry *nfs_lookup(struct inode *
+@@ -1392,6 +1393,7 @@ struct dentry *nfs_lookup(struct inode *
  	/* Success: notify readdir to use READDIRPLUS */
  	nfs_advise_use_readdirplus(dir);
  
@@ -5013,9 +5006,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/dir.c linux-3.13.10-vs2.3.6.11/fs/nfs
  no_entry:
  	res = d_materialise_unique(dentry, inode);
  	if (res != NULL) {
-diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/nfs/inode.c
---- linux-3.13.10/fs/nfs/inode.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfs/inode.c	2014-03-12 15:51:07.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfs/inode.c linux-3.18.5-vs2.3.7.3/fs/nfs/inode.c
+--- linux-3.18.5/fs/nfs/inode.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfs/inode.c	2015-01-19 11:44:24.000000000 +0000
 @@ -38,6 +38,7 @@
  #include <linux/slab.h>
  #include <linux/compat.h>
@@ -5024,7 +5017,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  #include <asm/uaccess.h>
  
-@@ -359,6 +360,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -368,6 +369,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;
@@ -5033,7 +5026,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  		/* We set i_ino for the few things that still rely on it,
  		 * such as stat(2) */
-@@ -403,8 +406,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -412,8 +415,8 @@ nfs_fhget(struct super_block *sb, struct
  		inode->i_version = 0;
  		inode->i_size = 0;
  		clear_nlink(inode);
@@ -5044,21 +5037,21 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  		inode->i_blocks = 0;
  		memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
  		nfsi->write_io = 0;
-@@ -438,11 +441,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -447,11 +450,11 @@ nfs_fhget(struct super_block *sb, struct
  		else if (nfs_server_capable(inode, NFS_CAP_NLINK))
- 			nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
+ 			nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATTR);
  		if (fattr->valid & NFS_ATTR_FATTR_OWNER)
 -			inode->i_uid = fattr->uid;
 +			kuid = fattr->uid;
  		else if (nfs_server_capable(inode, NFS_CAP_OWNER))
- 			nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
+ 			nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATTR);
  		if (fattr->valid & NFS_ATTR_FATTR_GROUP)
 -			inode->i_gid = fattr->gid;
 +			kgid = fattr->gid;
  		else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
- 			nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
+ 			nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATTR);
  		if (fattr->valid & NFS_ATTR_FATTR_BLOCKS_USED)
-@@ -453,6 +456,10 @@ nfs_fhget(struct super_block *sb, struct
+@@ -462,6 +465,10 @@ nfs_fhget(struct super_block *sb, struct
  			 */
  			inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
  		}
@@ -5069,16 +5062,16 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  		nfs_setsecurity(inode, fattr, label);
  
-@@ -578,6 +585,8 @@ void nfs_setattr_update_inode(struct ino
+@@ -592,6 +599,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;
 +		if ((attr->ia_valid & ATTR_TAG) && IS_TAGGED(inode))
 +			inode->i_tag = attr->ia_tag;
- 		NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
+ 		nfs_set_cache_invalid(inode, NFS_INO_INVALID_ACCESS
+ 				| NFS_INO_INVALID_ACL);
  		spin_unlock(&inode->i_lock);
- 	}
-@@ -1092,7 +1101,9 @@ static int nfs_check_inode_attributes(st
+@@ -1171,7 +1180,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;
@@ -5089,7 +5082,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	if (nfs_have_delegated_attributes(inode))
  		return 0;
-@@ -1117,13 +1128,18 @@ static int nfs_check_inode_attributes(st
+@@ -1196,13 +1207,18 @@ static int nfs_check_inode_attributes(st
  			invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
  	}
  
@@ -5110,7 +5103,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	/* Has the link count changed? */
  	if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1440,6 +1456,9 @@ static int nfs_update_inode(struct inode
+@@ -1533,6 +1549,9 @@ static int nfs_update_inode(struct inode
  	unsigned long invalid = 0;
  	unsigned long now = jiffies;
  	unsigned long save_cache_validity;
@@ -5118,9 +5111,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
 +	kgid_t kgid;
 +	ktag_t ktag;
  
- 	dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n",
+ 	dfprintk(VFS, "NFS: %s(%s/%lu fh_crc=0x%08x ct=%d info=0x%x)\n",
  			__func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1541,6 +1560,9 @@ static int nfs_update_inode(struct inode
+@@ -1637,6 +1656,9 @@ static int nfs_update_inode(struct inode
  				| NFS_INO_REVAL_PAGECACHE
  				| NFS_INO_REVAL_FORCED);
  
@@ -5130,7 +5123,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	if (fattr->valid & NFS_ATTR_FATTR_ATIME)
  		memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1583,6 +1605,10 @@ static int nfs_update_inode(struct inode
+@@ -1683,6 +1705,10 @@ static int nfs_update_inode(struct inode
  				| NFS_INO_INVALID_ACL
  				| NFS_INO_REVAL_FORCED);
  
@@ -5141,9 +5134,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/inode.c linux-3.13.10-vs2.3.6.11/fs/n
  	if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
  		if (inode->i_nlink != fattr->nlink) {
  			invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.13.10/fs/nfs/nfs3xdr.c linux-3.13.10-vs2.3.6.11/fs/nfs/nfs3xdr.c
---- linux-3.13.10/fs/nfs/nfs3xdr.c	2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfs/nfs3xdr.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfs/nfs3xdr.c linux-3.18.5-vs2.3.7.3/fs/nfs/nfs3xdr.c
+--- linux-3.18.5/fs/nfs/nfs3xdr.c	2014-09-03 13:19:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfs/nfs3xdr.c	2015-01-19 10:58:03.000000000 +0000
 @@ -20,6 +20,7 @@
  #include <linux/nfs3.h>
  #include <linux/nfs_fs.h>
@@ -5289,9 +5282,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/nfs3xdr.c linux-3.13.10-vs2.3.6.11/fs
  }
  
  /*
-diff -NurpP --minimal linux-3.13.10/fs/nfs/super.c linux-3.13.10-vs2.3.6.11/fs/nfs/super.c
---- linux-3.13.10/fs/nfs/super.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfs/super.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfs/super.c linux-3.18.5-vs2.3.7.3/fs/nfs/super.c
+--- linux-3.18.5/fs/nfs/super.c	2015-01-17 02:40:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfs/super.c	2015-01-19 10:58:03.000000000 +0000
 @@ -55,6 +55,7 @@
  #include <linux/parser.h>
  #include <linux/nsproxy.h>
@@ -5337,7 +5330,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/super.c linux-3.13.10-vs2.3.6.11/fs/n
  		{ 0, NULL, NULL }
  	};
  	const struct proc_nfs_info *nfs_infop;
-@@ -1321,6 +1331,14 @@ static int nfs_parse_mount_options(char
+@@ -1320,6 +1330,14 @@ static int nfs_parse_mount_options(char
  		case Opt_nomigration:
  			mnt->options &= NFS_OPTION_MIGRATION;
  			break;
@@ -5352,7 +5345,7 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/super.c linux-3.13.10-vs2.3.6.11/fs/n
  
  		/*
  		 * options that take numeric values
-@@ -1407,6 +1425,12 @@ static int nfs_parse_mount_options(char
+@@ -1406,6 +1424,12 @@ static int nfs_parse_mount_options(char
  				goto out_invalid_value;
  			mnt->minorversion = option;
  			break;
@@ -5365,18 +5358,18 @@ diff -NurpP --minimal linux-3.13.10/fs/nfs/super.c linux-3.13.10-vs2.3.6.11/fs/n
  
  		/*
  		 * options that take text values
-diff -NurpP --minimal linux-3.13.10/fs/nfsd/auth.c linux-3.13.10-vs2.3.6.11/fs/nfsd/auth.c
---- linux-3.13.10/fs/nfsd/auth.c	2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfsd/auth.c	2014-01-31 20:38:03.000000000 +0000
-@@ -2,6 +2,7 @@
+diff -NurpP --minimal linux-3.18.5/fs/nfsd/auth.c linux-3.18.5-vs2.3.7.3/fs/nfsd/auth.c
+--- linux-3.18.5/fs/nfsd/auth.c	2015-01-16 22:19:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfsd/auth.c	2015-01-19 12:46:19.000000000 +0000
+@@ -1,6 +1,7 @@
+ /* Copyright (C) 1995, 1996 Olaf Kirch <okir at monad.swb.de> */
  
  #include <linux/sched.h>
- #include <linux/user_namespace.h>
 +#include <linux/vs_tag.h>
  #include "nfsd.h"
  #include "auth.h"
  
-@@ -37,6 +38,9 @@ int nfsd_setuser(struct svc_rqst *rqstp,
+@@ -35,6 +36,9 @@ int nfsd_setuser(struct svc_rqst *rqstp,
  
  	new->fsuid = rqstp->rq_cred.cr_uid;
  	new->fsgid = rqstp->rq_cred.cr_gid;
@@ -5386,9 +5379,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfsd/auth.c linux-3.13.10-vs2.3.6.11/fs/n
  
  	rqgi = rqstp->rq_cred.cr_group_info;
  
-diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfs3xdr.c linux-3.13.10-vs2.3.6.11/fs/nfsd/nfs3xdr.c
---- linux-3.13.10/fs/nfsd/nfs3xdr.c	2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfsd/nfs3xdr.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfsd/nfs3xdr.c linux-3.18.5-vs2.3.7.3/fs/nfsd/nfs3xdr.c
+--- linux-3.18.5/fs/nfsd/nfs3xdr.c	2015-01-16 22:19:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfsd/nfs3xdr.c	2015-01-19 10:58:03.000000000 +0000
 @@ -8,6 +8,7 @@
  
  #include <linux/namei.h>
@@ -5427,9 +5420,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfs3xdr.c linux-3.13.10-vs2.3.6.11/f
  	if (*p++) {
  		u64	newsize;
  
-@@ -170,8 +176,12 @@ encode_fattr3(struct svc_rqst *rqstp, __
+@@ -167,8 +173,12 @@ encode_fattr3(struct svc_rqst *rqstp, __
  	*p++ = htonl(nfs3_ftypes[(stat->mode & S_IFMT) >> 12]);
- 	*p++ = htonl((u32) stat->mode);
+ 	*p++ = htonl((u32) (stat->mode & S_IALLUGO));
  	*p++ = htonl((u32) stat->nlink);
 -	*p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid));
 -	*p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid));
@@ -5442,10 +5435,10 @@ diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfs3xdr.c linux-3.13.10-vs2.3.6.11/f
  	if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
  		p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
  	} else {
-diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfs4xdr.c linux-3.13.10-vs2.3.6.11/fs/nfsd/nfs4xdr.c
---- linux-3.13.10/fs/nfsd/nfs4xdr.c	2014-01-22 20:39:06.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfsd/nfs4xdr.c	2014-01-31 20:38:03.000000000 +0000
-@@ -46,6 +46,7 @@
+diff -NurpP --minimal linux-3.18.5/fs/nfsd/nfs4xdr.c linux-3.18.5-vs2.3.7.3/fs/nfsd/nfs4xdr.c
+--- linux-3.18.5/fs/nfsd/nfs4xdr.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfsd/nfs4xdr.c	2015-01-19 12:45:51.000000000 +0000
+@@ -39,6 +39,7 @@
  #include <linux/utsname.h>
  #include <linux/pagemap.h>
  #include <linux/sunrpc/svcauth_gss.h>
@@ -5453,28 +5446,28 @@ diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfs4xdr.c linux-3.13.10-vs2.3.6.11/f
  
  #include "idmap.h"
  #include "acl.h"
-@@ -2430,10 +2431,14 @@ out_acl:
- 		WRITE32(stat.nlink);
+@@ -2436,12 +2437,16 @@ out_acl:
+ 		*p++ = cpu_to_be32(stat.nlink);
  	}
  	if (bmval1 & FATTR4_WORD1_OWNER) {
--		status = nfsd4_encode_user(rqstp, stat.uid, &p, &buflen);
-+		status = nfsd4_encode_user(rqstp,
+-		status = nfsd4_encode_user(xdr, rqstp, stat.uid);
++		status = nfsd4_encode_user(xdr, rqstp,
 +			TAGINO_KUID(DX_TAG(dentry->d_inode),
-+			stat.uid, stat.tag), &p, &buflen);
++				stat.uid, stat.tag));
  		if (status)
  			goto out;
  	}
  	if (bmval1 & FATTR4_WORD1_OWNER_GROUP) {
--		status = nfsd4_encode_group(rqstp, stat.gid, &p, &buflen);
-+		status = nfsd4_encode_group(rqstp,
+-		status = nfsd4_encode_group(xdr, rqstp, stat.gid);
++		status = nfsd4_encode_group(xdr, rqstp,
 +			TAGINO_KGID(DX_TAG(dentry->d_inode),
-+			stat.gid, stat.tag), &p, &buflen);
++				stat.gid, stat.tag));
  		if (status)
  			goto out;
  	}
-diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfsxdr.c linux-3.13.10-vs2.3.6.11/fs/nfsd/nfsxdr.c
---- linux-3.13.10/fs/nfsd/nfsxdr.c	2013-05-31 13:45:24.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/nfsd/nfsxdr.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/nfsd/nfsxdr.c linux-3.18.5-vs2.3.7.3/fs/nfsd/nfsxdr.c
+--- linux-3.18.5/fs/nfsd/nfsxdr.c	2015-01-16 22:19:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/nfsd/nfsxdr.c	2015-01-19 10:58:03.000000000 +0000
 @@ -7,6 +7,7 @@
  #include "vfs.h"
  #include "xdr.h"
@@ -5526,9 +5519,9 @@ diff -NurpP --minimal linux-3.13.10/fs/nfsd/nfsxdr.c linux-3.13.10-vs2.3.6.11/fs
  
  	if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
  		*p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/dlmglue.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/dlmglue.c
---- linux-3.13.10/fs/ocfs2/dlmglue.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/dlmglue.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/dlmglue.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/dlmglue.c
+--- linux-3.18.5/fs/ocfs2/dlmglue.c	2015-01-17 02:40:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/dlmglue.c	2015-01-19 10:58: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));
@@ -5545,9 +5538,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/dlmglue.c linux-3.13.10-vs2.3.6.11/
  	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.13.10/fs/ocfs2/dlmglue.h linux-3.13.10-vs2.3.6.11/fs/ocfs2/dlmglue.h
---- linux-3.13.10/fs/ocfs2/dlmglue.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/dlmglue.h	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/dlmglue.h linux-3.18.5-vs2.3.7.3/fs/ocfs2/dlmglue.h
+--- linux-3.18.5/fs/ocfs2/dlmglue.h	2014-06-12 13:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/dlmglue.h	2015-01-19 10:58:03.000000000 +0000
 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
  	__be16       lvb_inlink;
  	__be32       lvb_iattr;
@@ -5558,10 +5551,10 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/dlmglue.h linux-3.13.10-vs2.3.6.11/
  };
  
  #define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/file.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/file.c
---- linux-3.13.10/fs/ocfs2/file.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/file.c	2014-04-17 01:17:10.000000000 +0000
-@@ -1119,7 +1119,7 @@ int ocfs2_setattr(struct dentry *dentry,
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/file.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/file.c
+--- linux-3.18.5/fs/ocfs2/file.c	2015-01-17 02:40:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/file.c	2015-01-19 10:58:03.000000000 +0000
+@@ -1139,7 +1139,7 @@ int ocfs2_setattr(struct dentry *dentry,
  		attr->ia_valid &= ~ATTR_SIZE;
  
  #define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \
@@ -5570,9 +5563,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/file.c linux-3.13.10-vs2.3.6.11/fs/
  	if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
  		return 0;
  
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/inode.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/inode.c
---- linux-3.13.10/fs/ocfs2/inode.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/inode.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/inode.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/inode.c
+--- linux-3.18.5/fs/ocfs2/inode.c	2014-06-12 13:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/inode.c	2015-01-19 10:58:03.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/highmem.h>
  #include <linux/pagemap.h>
@@ -5645,7 +5638,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/inode.c linux-3.13.10-vs2.3.6.11/fs
  }
  
  struct inode *ocfs2_ilookup(struct super_block *sb, u64 blkno)
-@@ -241,6 +263,8 @@ void ocfs2_populate_inode(struct inode *
+@@ -268,6 +290,8 @@ void ocfs2_populate_inode(struct inode *
  	struct super_block *sb;
  	struct ocfs2_super *osb;
  	int use_plocks = 1;
@@ -5654,7 +5647,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/inode.c linux-3.13.10-vs2.3.6.11/fs
  
  	sb = inode->i_sb;
  	osb = OCFS2_SB(sb);
-@@ -269,8 +293,12 @@ void ocfs2_populate_inode(struct inode *
+@@ -296,8 +320,12 @@ void ocfs2_populate_inode(struct inode *
  	inode->i_generation = le32_to_cpu(fe->i_generation);
  	inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
  	inode->i_mode = le16_to_cpu(fe->i_mode);
@@ -5669,10 +5662,10 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/inode.c linux-3.13.10-vs2.3.6.11/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.13.10/fs/ocfs2/inode.h linux-3.13.10-vs2.3.6.11/fs/ocfs2/inode.h
---- linux-3.13.10/fs/ocfs2/inode.h	2013-07-14 17:01:29.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/inode.h	2014-01-31 20:38:03.000000000 +0000
-@@ -152,6 +152,7 @@ struct buffer_head *ocfs2_bread(struct i
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/inode.h linux-3.18.5-vs2.3.7.3/fs/ocfs2/inode.h
+--- linux-3.18.5/fs/ocfs2/inode.h	2015-01-17 02:40:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/inode.h	2015-01-19 10:58:03.000000000 +0000
+@@ -157,6 +157,7 @@ struct buffer_head *ocfs2_bread(struct i
  
  void ocfs2_set_inode_flags(struct inode *inode);
  void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi);
@@ -5680,9 +5673,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/inode.h linux-3.13.10-vs2.3.6.11/fs
  
  static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
  {
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/ioctl.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/ioctl.c
---- linux-3.13.10/fs/ocfs2/ioctl.c	2013-11-25 15:47:00.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/ioctl.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/ioctl.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/ioctl.c
+--- linux-3.18.5/fs/ocfs2/ioctl.c	2015-01-16 22:19:19.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/ioctl.c	2015-01-19 10:58:03.000000000 +0000
 @@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
  	return status;
  }
@@ -5738,7 +5731,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  	handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
  	if (IS_ERR(handle)) {
  		status = PTR_ERR(handle);
-@@ -881,6 +920,7 @@ bail:
+@@ -841,6 +880,7 @@ bail:
  	return status;
  }
  
@@ -5746,9 +5739,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/ioctl.c linux-3.13.10-vs2.3.6.11/fs
  long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
  	struct inode *inode = file_inode(filp);
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/namei.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/namei.c
---- linux-3.13.10/fs/ocfs2/namei.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/namei.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/namei.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/namei.c
+--- linux-3.18.5/fs/ocfs2/namei.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/namei.c	2015-01-19 12:15:49.000000000 +0000
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/highmem.h>
@@ -5757,7 +5750,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/namei.c linux-3.13.10-vs2.3.6.11/fs
  
  #include <cluster/masklog.h>
  
-@@ -475,6 +476,7 @@ static int __ocfs2_mknod_locked(struct i
+@@ -524,6 +525,7 @@ static int __ocfs2_mknod_locked(struct i
  	struct ocfs2_extent_list *fel;
  	u16 feat;
  	struct ocfs2_inode_info *oi = OCFS2_I(inode);
@@ -5765,7 +5758,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/namei.c linux-3.13.10-vs2.3.6.11/fs
  
  	*new_fe_bh = NULL;
  
-@@ -512,8 +514,13 @@ static int __ocfs2_mknod_locked(struct i
+@@ -561,8 +563,13 @@ static int __ocfs2_mknod_locked(struct i
  	fe->i_suballoc_loc = cpu_to_le64(suballoc_loc);
  	fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
  	fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
@@ -5781,20 +5774,20 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/namei.c linux-3.13.10-vs2.3.6.11/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.13.10/fs/ocfs2/ocfs2.h linux-3.13.10-vs2.3.6.11/fs/ocfs2/ocfs2.h
---- linux-3.13.10/fs/ocfs2/ocfs2.h	2013-11-25 15:45:04.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/ocfs2.h	2014-01-31 20:38:03.000000000 +0000
-@@ -272,6 +272,7 @@ enum ocfs2_mount_options
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/ocfs2.h linux-3.18.5-vs2.3.7.3/fs/ocfs2/ocfs2.h
+--- linux-3.18.5/fs/ocfs2/ocfs2.h	2014-09-03 13:19:40.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/ocfs2.h	2015-01-19 10:58:03.000000000 +0000
+@@ -273,6 +273,7 @@ enum ocfs2_mount_options
  						     writes */
  	OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
  	OCFS2_MOUNT_HB_GLOBAL = 1 << 14, /* Global heartbeat */
 +	OCFS2_MOUNT_TAGGED = 1 << 15, /* use tagging */
  };
  
- #define OCFS2_OSB_SOFT_RO			0x0001
-diff -NurpP --minimal linux-3.13.10/fs/ocfs2/ocfs2_fs.h linux-3.13.10-vs2.3.6.11/fs/ocfs2/ocfs2_fs.h
---- linux-3.13.10/fs/ocfs2/ocfs2_fs.h	2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/ocfs2_fs.h	2014-01-31 20:38:03.000000000 +0000
+ #define OCFS2_OSB_SOFT_RO	0x0001
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/ocfs2_fs.h linux-3.18.5-vs2.3.7.3/fs/ocfs2/ocfs2_fs.h
+--- linux-3.18.5/fs/ocfs2/ocfs2_fs.h	2012-12-11 03:30:57.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/ocfs2_fs.h	2015-01-19 10:58: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 */
@@ -5807,9 +5800,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/ocfs2_fs.h linux-3.13.10-vs2.3.6.11
  #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.13.10/fs/ocfs2/super.c linux-3.13.10-vs2.3.6.11/fs/ocfs2/super.c
---- linux-3.13.10/fs/ocfs2/super.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/ocfs2/super.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/ocfs2/super.c linux-3.18.5-vs2.3.7.3/fs/ocfs2/super.c
+--- linux-3.18.5/fs/ocfs2/super.c	2015-01-17 02:40:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/ocfs2/super.c	2015-01-19 10:58:03.000000000 +0000
 @@ -185,6 +185,7 @@ enum {
  	Opt_coherency_full,
  	Opt_resv_level,
@@ -5828,7 +5821,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/super.c linux-3.13.10-vs2.3.6.11/fs
  	{Opt_err, NULL}
  };
  
-@@ -661,6 +665,13 @@ static int ocfs2_remount(struct super_bl
+@@ -666,6 +670,13 @@ static int ocfs2_remount(struct super_bl
  		goto out;
  	}
  
@@ -5842,7 +5835,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/super.c linux-3.13.10-vs2.3.6.11/fs
  	/* We're going to/from readonly mode. */
  	if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
  		/* Disable quota accounting before remounting RO */
-@@ -1176,6 +1187,9 @@ static int ocfs2_fill_super(struct super
+@@ -1185,6 +1196,9 @@ static int ocfs2_fill_super(struct super
  
  	ocfs2_complete_mount_recovery(osb);
  
@@ -5852,7 +5845,7 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/super.c linux-3.13.10-vs2.3.6.11/fs
  	if (ocfs2_mount_local(osb))
  		snprintf(nodestr, sizeof(nodestr), "local");
  	else
-@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su
+@@ -1493,6 +1507,20 @@ static int ocfs2_parse_options(struct su
  			    option < OCFS2_MAX_RESV_LEVEL)
  				mopt->dir_resv_level = option;
  			break;
@@ -5873,9 +5866,9 @@ diff -NurpP --minimal linux-3.13.10/fs/ocfs2/super.c linux-3.13.10-vs2.3.6.11/fs
  		default:
  			mlog(ML_ERROR,
  			     "Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.13.10/fs/open.c linux-3.13.10-vs2.3.6.11/fs/open.c
---- linux-3.13.10/fs/open.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/open.c	2014-01-31 20:38:03.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/open.c linux-3.18.5-vs2.3.7.3/fs/open.c
+--- linux-3.18.5/fs/open.c	2015-01-17 02:40:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/open.c	2015-01-19 10:58:03.000000000 +0000
 @@ -31,6 +31,11 @@
  #include <linux/ima.h>
  #include <linux/dnotify.h>
@@ -5900,7 +5893,7 @@ diff -NurpP --minimal linux-3.13.10/fs/open.c linux-3.13.10-vs2.3.6.11/fs/open.c
  	inode = path->dentry->d_inode;
  
  	/* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -511,6 +521,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+@@ -530,6 +540,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
  	unsigned int lookup_flags = LOOKUP_FOLLOW;
  retry:
  	error = user_path_at(dfd, filename, lookup_flags, &path);
@@ -5914,7 +5907,7 @@ diff -NurpP --minimal linux-3.13.10/fs/open.c linux-3.13.10-vs2.3.6.11/fs/open.c
  	if (!error) {
  		error = chmod_common(&path, mode);
  		path_put(&path);
-@@ -544,13 +561,15 @@ static int chown_common(struct path *pat
+@@ -563,13 +580,15 @@ static int chown_common(struct path *pat
  		if (!uid_valid(uid))
  			return -EINVAL;
  		newattrs.ia_valid |= ATTR_UID;
@@ -5932,7 +5925,7 @@ diff -NurpP --minimal linux-3.13.10/fs/open.c linux-3.13.10-vs2.3.6.11/fs/open.c
  	}
  	if (!S_ISDIR(inode->i_mode))
  		newattrs.ia_valid |=
-@@ -589,6 +608,18 @@ retry:
+@@ -608,6 +627,18 @@ retry:
  	error = mnt_want_write(path.mnt);
  	if (error)
  		goto out_release;
@@ -5951,9 +5944,9 @@ diff -NurpP --minimal linux-3.13.10/fs/open.c linux-3.13.10-vs2.3.6.11/fs/open.c
  	error = chown_common(&path, user, group);
  	mnt_drop_write(path.mnt);
  out_release:
-diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/proc/array.c
---- linux-3.13.10/fs/proc/array.c	2014-01-22 20:39:07.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/proc/array.c	2014-02-01 01:44:54.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/proc/array.c linux-3.18.5-vs2.3.7.3/fs/proc/array.c
+--- linux-3.18.5/fs/proc/array.c	2015-01-16 22:19:20.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/proc/array.c	2015-01-21 06:37:56.000000000 +0000
 @@ -82,6 +82,8 @@
  #include <linux/ptrace.h>
  #include <linux/tracehook.h>
@@ -5963,7 +5956,7 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-@@ -173,6 +175,9 @@ static inline void task_state(struct seq
+@@ -164,6 +166,9 @@ static inline void task_state(struct seq
  	rcu_read_lock();
  	ppid = pid_alive(p) ?
  		task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
@@ -5973,18 +5966,20 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
  	tpid = 0;
  	if (pid_alive(p)) {
  		struct task_struct *tracer = ptrace_parent(p);
-@@ -299,7 +304,7 @@ static inline void task_sig(struct seq_f
+@@ -289,8 +294,8 @@ static inline void task_sig(struct seq_f
+ 	render_sigset_t(m, "SigCgt:\t", &caught);
  }
  
- static void render_cap_t(struct seq_file *m, const char *header,
+-static void render_cap_t(struct seq_file *m, const char *header,
 -			kernel_cap_t *a)
++void render_cap_t(struct seq_file *m, const char *header,
 +			struct vx_info *vxi, kernel_cap_t *a)
  {
  	unsigned __capi;
  
-@@ -333,10 +338,11 @@ static inline void task_cap(struct seq_f
- 	NORM_CAPS(cap_effective);
- 	NORM_CAPS(cap_bset);
+@@ -315,10 +320,11 @@ static inline void task_cap(struct seq_f
+ 	cap_bset	= cred->cap_bset;
+ 	rcu_read_unlock();
  
 -	render_cap_t(m, "CapInh:\t", &cap_inheritable);
 -	render_cap_t(m, "CapPrm:\t", &cap_permitted);
@@ -5998,7 +5993,7 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
  }
  
  static inline void task_seccomp(struct seq_file *m, struct task_struct *p)
-@@ -365,6 +371,43 @@ static void task_cpus_allowed(struct seq
+@@ -347,6 +353,43 @@ static void task_cpus_allowed(struct seq
  	seq_putc(m, '\n');
  }
  
@@ -6034,15 +6029,15 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
 +	if (task_vx_flags(task, VXF_HIDE_VINFO, 0))
 +		return;
 +
-+	seq_printf(m, "VxID: %d\n", vx_task_xid(task));
-+	seq_printf(m, "NxID: %d\n", nx_task_nid(task));
++	seq_printf(m, "VxID:\t%d\n", vx_task_xid(task));
++	seq_printf(m, "NxID:\t%d\n", nx_task_nid(task));
 +}
 +
 +
  int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
  			struct pid *pid, struct task_struct *task)
  {
-@@ -382,6 +425,7 @@ int proc_pid_status(struct seq_file *m,
+@@ -364,6 +407,7 @@ int proc_pid_status(struct seq_file *m,
  	task_seccomp(m, task);
  	task_cpus_allowed(m, task);
  	cpuset_task_status_allowed(m, task);
@@ -6050,9 +6045,9 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
  	task_context_switch_counts(m, task);
  	return 0;
  }
-@@ -491,6 +535,17 @@ static int do_task_stat(struct seq_file
+@@ -467,6 +511,17 @@ static int do_task_stat(struct seq_file
  	/* convert nsec -> ticks */
- 	start_time = nsec_to_clock_t(start_time);
+ 	start_time = nsec_to_clock_t(task->real_start_time);
  
 +	/* fixup start time for virt uptime */
 +	if (vx_flags(VXF_VIRT_UPTIME, 0)) {
@@ -6068,9 +6063,9 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/array.c linux-3.13.10-vs2.3.6.11/fs/
  	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.13.10/fs/proc/base.c linux-3.13.10-vs2.3.6.11/fs/proc/base.c
---- linux-3.13.10/fs/proc/base.c	2014-04-17 01:12:32.000000000 +0000
-+++ linux-3.13.10-vs2.3.6.11/fs/proc/base.c	2014-04-17 01:17:10.000000000 +0000
+diff -NurpP --minimal linux-3.18.5/fs/proc/base.c linux-3.18.5-vs2.3.7.3/fs/proc/base.c
+--- linux-3.18.5/fs/proc/base.c	2015-02-05 18:02:45.000000000 +0000
++++ linux-3.18.5-vs2.3.7.3/fs/proc/base.c	2015-01-22 09:04:57.000000000 +0000
 @@ -87,6 +87,8 @@
  #include <linux/slab.h>
  #include <linux/flex_array.h>
@@ -6080,7 +6075,7 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/base.c linux-3.13.10-vs2.3.6.11/fs/p
  #ifdef CONFIG_HARDWALL
  #include <asm/hardwall.h>
  #endif
-@@ -976,11 +978,15 @@ static ssize_t oom_adj_write(struct file
+@@ -884,11 +886,15 @@ static ssize_t oom_adj_write(struct file
  		oom_adj = (oom_adj * OOM_SCORE_ADJ_MAX) / -OOM_DISABLE;
  
  	if (oom_adj < task->signal->oom_score_adj &&
@@ -6097,7 +6092,7 @@ diff -NurpP --minimal linux-3.13.10/fs/proc/base.c linux-3.13.10-vs2.3.6.11/fs/p
  	/*
  	 * /proc/pid/oom_adj is provided for legacy purposes, ask users to use
  	 * /proc/pid/oom_score_adj instead.
-@@ -1565,6 +1571,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1476,6 +1482,8 @@ struct inode *proc_pid_make_inode(struct
  		inode->i_gid = cred->egid;
  		rcu_read_unlock();
  	}
<Skipped 5929 lines>
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/bb20add7595f132e8fac3861395c255acbefe494




More information about the pld-cvs-commit mailing list