]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- vserver patch patch-3.9.4-vs2.3.6.1.diff (early 3.9 version); builds with vs, too
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 1 Jun 2013 08:06:11 +0000 (10:06 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 1 Jun 2013 08:06:11 +0000 (10:06 +0200)
kernel-vserver-2.3.patch
kernel.spec

index dabeb95ab71e97b08952c79c7b3aaa816aa5612d..161ea162646572c927cfdf01147fd4dbeb91e2ac 100644 (file)
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-3.7.7/Documentation/vserver/debug.txt linux-3.7.7-vs2.3.5.6/Documentation/vserver/debug.txt
---- linux-3.7.7/Documentation/vserver/debug.txt        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/Documentation/vserver/debug.txt      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/Documentation/vserver/debug.txt linux-3.9.4-vs2.3.6.1/Documentation/vserver/debug.txt
+--- linux-3.9.4/Documentation/vserver/debug.txt        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/Documentation/vserver/debug.txt      2013-05-31 14:47:10.000000000 +0000
 @@ -0,0 +1,154 @@
 +
 +debug_cvirt:
@@ -156,10 +156,10 @@ diff -NurpP --minimal linux-3.7.7/Documentation/vserver/debug.txt linux-3.7.7-vs
 + 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.7.7/arch/alpha/Kconfig linux-3.7.7-vs2.3.5.6/arch/alpha/Kconfig
---- linux-3.7.7/arch/alpha/Kconfig     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/alpha/Kconfig   2012-12-18 15:13:16.000000000 +0000
-@@ -668,6 +668,8 @@ config DUMMY_CONSOLE
+diff -NurpP --minimal linux-3.9.4/arch/alpha/Kconfig linux-3.9.4-vs2.3.6.1/arch/alpha/Kconfig
+--- linux-3.9.4/arch/alpha/Kconfig     2013-05-31 13:44:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/alpha/Kconfig   2013-05-31 14:47:10.000000000 +0000
+@@ -669,6 +669,8 @@ config DUMMY_CONSOLE
        depends on VGA_HOSE
        default y
  
@@ -168,9 +168,9 @@ diff -NurpP --minimal linux-3.7.7/arch/alpha/Kconfig linux-3.7.7-vs2.3.5.6/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/alpha/kernel/systbls.S linux-3.7.7-vs2.3.5.6/arch/alpha/kernel/systbls.S
---- linux-3.7.7/arch/alpha/kernel/systbls.S    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/alpha/kernel/systbls.S  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/alpha/kernel/systbls.S linux-3.9.4-vs2.3.6.1/arch/alpha/kernel/systbls.S
+--- linux-3.9.4/arch/alpha/kernel/systbls.S    2013-02-19 13:56:11.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/alpha/kernel/systbls.S  2013-05-31 14:47:11.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.7.7/arch/alpha/kernel/systbls.S linux-3.7.7-vs2.3.
        .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.7.7/arch/alpha/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/alpha/kernel/traps.c
---- linux-3.7.7/arch/alpha/kernel/traps.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/alpha/kernel/traps.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/alpha/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/alpha/kernel/traps.c
+--- linux-3.9.4/arch/alpha/kernel/traps.c      2013-05-31 13:44:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/alpha/kernel/traps.c    2013-05-31 14:47:11.000000000 +0000
 @@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs
  #ifdef CONFIG_SMP
        printk("CPU %d ", hard_smp_processor_id());
@@ -191,12 +191,12 @@ diff -NurpP --minimal linux-3.7.7/arch/alpha/kernel/traps.c linux-3.7.7-vs2.3.5.
 +      printk("%s(%d[#%u]): %s %ld\n", current->comm,
 +              task_pid_nr(current), current->xid, str, err);
        dik_show_regs(regs, r9_15);
-       add_taint(TAINT_DIE);
+       add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
        dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-3.7.7/arch/arm/Kconfig linux-3.7.7-vs2.3.5.6/arch/arm/Kconfig
---- linux-3.7.7/arch/arm/Kconfig       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/arm/Kconfig     2012-12-18 15:13:16.000000000 +0000
-@@ -2307,6 +2307,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/arm/Kconfig linux-3.9.4-vs2.3.6.1/arch/arm/Kconfig
+--- linux-3.9.4/arch/arm/Kconfig       2013-05-31 13:44:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/arm/Kconfig     2013-05-31 14:47:11.000000000 +0000
+@@ -2353,6 +2353,8 @@ source "fs/Kconfig"
  
  source "arch/arm/Kconfig.debug"
  
@@ -205,9 +205,9 @@ diff -NurpP --minimal linux-3.7.7/arch/arm/Kconfig linux-3.7.7-vs2.3.5.6/arch/ar
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/calls.S linux-3.7.7-vs2.3.5.6/arch/arm/kernel/calls.S
---- linux-3.7.7/arch/arm/kernel/calls.S        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/arm/kernel/calls.S      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/arm/kernel/calls.S linux-3.9.4-vs2.3.6.1/arch/arm/kernel/calls.S
+--- linux-3.9.4/arch/arm/kernel/calls.S        2013-05-31 13:44:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/arm/kernel/calls.S      2013-05-31 14:47:11.000000000 +0000
 @@ -322,7 +322,7 @@
  /* 310 */     CALL(sys_request_key)
                CALL(sys_keyctl)
@@ -217,10 +217,10 @@ diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/calls.S linux-3.7.7-vs2.3.5.6/
                CALL(sys_ioprio_set)
  /* 315 */     CALL(sys_ioprio_get)
                CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/process.c linux-3.7.7-vs2.3.5.6/arch/arm/kernel/process.c
---- linux-3.7.7/arch/arm/kernel/process.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/arm/kernel/process.c    2012-12-18 15:13:16.000000000 +0000
-@@ -337,7 +337,8 @@ void __show_regs(struct pt_regs *regs)
+diff -NurpP --minimal linux-3.9.4/arch/arm/kernel/process.c linux-3.9.4-vs2.3.6.1/arch/arm/kernel/process.c
+--- linux-3.9.4/arch/arm/kernel/process.c      2013-05-31 13:44:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/arm/kernel/process.c    2013-05-31 14:47:11.000000000 +0000
+@@ -332,7 +332,8 @@ void __show_regs(struct pt_regs *regs)
  void show_regs(struct pt_regs * regs)
  {
        printk("\n");
@@ -230,9 +230,9 @@ diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/process.c linux-3.7.7-vs2.3.5.
        __show_regs(regs);
        dump_stack();
  }
-diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/arm/kernel/traps.c
---- linux-3.7.7/arch/arm/kernel/traps.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/arm/kernel/traps.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/arm/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/arm/kernel/traps.c
+--- linux-3.9.4/arch/arm/kernel/traps.c        2013-05-31 13:44:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/arm/kernel/traps.c      2013-05-31 14:47:11.000000000 +0000
 @@ -249,8 +249,8 @@ static int __die(const char *str, int er
  
        print_modules();
@@ -244,10 +244,10 @@ diff -NurpP --minimal linux-3.7.7/arch/arm/kernel/traps.c linux-3.7.7-vs2.3.5.6/
  
        if (!user_mode(regs) || in_interrupt()) {
                dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.7.7/arch/cris/Kconfig linux-3.7.7-vs2.3.5.6/arch/cris/Kconfig
---- linux-3.7.7/arch/cris/Kconfig      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/cris/Kconfig    2012-12-18 15:13:16.000000000 +0000
-@@ -670,6 +670,8 @@ source "drivers/staging/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/cris/Kconfig linux-3.9.4-vs2.3.6.1/arch/cris/Kconfig
+--- linux-3.9.4/arch/cris/Kconfig      2013-05-31 13:44:37.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/cris/Kconfig    2013-05-31 14:47:11.000000000 +0000
+@@ -674,6 +674,8 @@ source "drivers/staging/Kconfig"
  
  source "arch/cris/Kconfig.debug"
  
@@ -256,10 +256,10 @@ diff -NurpP --minimal linux-3.7.7/arch/cris/Kconfig linux-3.7.7-vs2.3.5.6/arch/c
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/h8300/Kconfig linux-3.7.7-vs2.3.5.6/arch/h8300/Kconfig
---- linux-3.7.7/arch/h8300/Kconfig     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/h8300/Kconfig   2012-12-18 15:13:16.000000000 +0000
-@@ -217,6 +217,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/h8300/Kconfig linux-3.9.4-vs2.3.6.1/arch/h8300/Kconfig
+--- linux-3.9.4/arch/h8300/Kconfig     2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/h8300/Kconfig   2013-05-31 14:47:11.000000000 +0000
+@@ -221,6 +221,8 @@ source "fs/Kconfig"
  
  source "arch/h8300/Kconfig.debug"
  
@@ -268,10 +268,10 @@ diff -NurpP --minimal linux-3.7.7/arch/h8300/Kconfig linux-3.7.7-vs2.3.5.6/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/ia64/Kconfig linux-3.7.7-vs2.3.5.6/arch/ia64/Kconfig
---- linux-3.7.7/arch/ia64/Kconfig      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/ia64/Kconfig    2012-12-18 15:13:16.000000000 +0000
-@@ -644,6 +644,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/ia64/Kconfig linux-3.9.4-vs2.3.6.1/arch/ia64/Kconfig
+--- linux-3.9.4/arch/ia64/Kconfig      2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/ia64/Kconfig    2013-05-31 14:47:11.000000000 +0000
+@@ -645,6 +645,8 @@ source "fs/Kconfig"
  
  source "arch/ia64/Kconfig.debug"
  
@@ -280,10 +280,10 @@ diff -NurpP --minimal linux-3.7.7/arch/ia64/Kconfig linux-3.7.7-vs2.3.5.6/arch/i
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/entry.S linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/entry.S
---- linux-3.7.7/arch/ia64/kernel/entry.S       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/entry.S     2012-12-18 15:13:16.000000000 +0000
-@@ -1714,7 +1714,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.9.4/arch/ia64/kernel/entry.S linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/entry.S
+--- linux-3.9.4/arch/ia64/kernel/entry.S       2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/entry.S     2013-05-31 14:47:11.000000000 +0000
+@@ -1719,7 +1719,7 @@ sys_call_table:
        data8 sys_mq_notify
        data8 sys_mq_getsetattr
        data8 sys_kexec_load
@@ -292,10 +292,10 @@ diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/entry.S linux-3.7.7-vs2.3.5.6
        data8 sys_waitid                        // 1270
        data8 sys_add_key
        data8 sys_request_key
-diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/process.c linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/process.c
---- linux-3.7.7/arch/ia64/kernel/process.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/process.c   2012-12-18 15:13:16.000000000 +0000
-@@ -111,8 +111,8 @@ show_regs (struct pt_regs *regs)
+diff -NurpP --minimal linux-3.9.4/arch/ia64/kernel/process.c linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/process.c
+--- linux-3.9.4/arch/ia64/kernel/process.c     2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/process.c   2013-05-31 14:47:11.000000000 +0000
+@@ -109,8 +109,8 @@ show_regs (struct pt_regs *regs)
        unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
  
        print_modules();
@@ -306,9 +306,9 @@ diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/process.c linux-3.7.7-vs2.3.5
        printk("psr : %016lx ifs : %016lx ip  : [<%016lx>]    %s (%s)\n",
               regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
               init_utsname()->release);
-diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/ptrace.c linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/ptrace.c
---- linux-3.7.7/arch/ia64/kernel/ptrace.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/ptrace.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/ia64/kernel/ptrace.c linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/ptrace.c
+--- linux-3.9.4/arch/ia64/kernel/ptrace.c      2013-02-19 13:56:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/ptrace.c    2013-05-31 14:47:11.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/regset.h>
  #include <linux/elf.h>
@@ -317,9 +317,9 @@ diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/ptrace.c linux-3.7.7-vs2.3.5.
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/traps.c
---- linux-3.7.7/arch/ia64/kernel/traps.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/ia64/kernel/traps.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/ia64/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/traps.c
+--- linux-3.9.4/arch/ia64/kernel/traps.c       2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/ia64/kernel/traps.c     2013-05-31 14:47:11.000000000 +0000
 @@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
        put_cpu();
  
@@ -344,9 +344,9 @@ diff -NurpP --minimal linux-3.7.7/arch/ia64/kernel/traps.c linux-3.7.7-vs2.3.5.6
                        }
                }
        }
-diff -NurpP --minimal linux-3.7.7/arch/m32r/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/m32r/kernel/traps.c
---- linux-3.7.7/arch/m32r/kernel/traps.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/m32r/kernel/traps.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/m32r/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/m32r/kernel/traps.c
+--- linux-3.9.4/arch/m32r/kernel/traps.c       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/m32r/kernel/traps.c     2013-05-31 14:47:11.000000000 +0000
 @@ -195,8 +195,9 @@ static void show_registers(struct pt_reg
        } else {
                printk("SPI: %08lx\n", sp);
@@ -359,10 +359,10 @@ diff -NurpP --minimal linux-3.7.7/arch/m32r/kernel/traps.c linux-3.7.7-vs2.3.5.6
  
        /*
         * When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.7.7/arch/m68k/Kconfig linux-3.7.7-vs2.3.5.6/arch/m68k/Kconfig
---- linux-3.7.7/arch/m68k/Kconfig      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/m68k/Kconfig    2012-12-18 15:13:16.000000000 +0000
-@@ -135,6 +135,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/m68k/Kconfig linux-3.9.4-vs2.3.6.1/arch/m68k/Kconfig
+--- linux-3.9.4/arch/m68k/Kconfig      2013-05-31 13:44:38.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/m68k/Kconfig    2013-05-31 14:47:11.000000000 +0000
+@@ -137,6 +137,8 @@ source "fs/Kconfig"
  
  source "arch/m68k/Kconfig.debug"
  
@@ -371,10 +371,10 @@ diff -NurpP --minimal linux-3.7.7/arch/m68k/Kconfig linux-3.7.7-vs2.3.5.6/arch/m
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/mips/Kconfig linux-3.7.7-vs2.3.5.6/arch/mips/Kconfig
---- linux-3.7.7/arch/mips/Kconfig      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/Kconfig    2012-12-18 15:13:16.000000000 +0000
-@@ -2574,6 +2574,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/mips/Kconfig linux-3.9.4-vs2.3.6.1/arch/mips/Kconfig
+--- linux-3.9.4/arch/mips/Kconfig      2013-05-31 13:44:39.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/Kconfig    2013-05-31 14:47:11.000000000 +0000
+@@ -2550,6 +2550,8 @@ source "fs/Kconfig"
  
  source "arch/mips/Kconfig.debug"
  
@@ -383,9 +383,9 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/Kconfig linux-3.7.7-vs2.3.5.6/arch/m
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/ptrace.c linux-3.7.7-vs2.3.5.6/arch/mips/kernel/ptrace.c
---- linux-3.7.7/arch/mips/kernel/ptrace.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/ptrace.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/ptrace.c linux-3.9.4-vs2.3.6.1/arch/mips/kernel/ptrace.c
+--- linux-3.9.4/arch/mips/kernel/ptrace.c      2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/ptrace.c    2013-05-31 14:47:11.000000000 +0000
 @@ -25,6 +25,7 @@
  #include <linux/security.h>
  #include <linux/audit.h>
@@ -404,10 +404,10 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/ptrace.c linux-3.7.7-vs2.3.5.
        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.7.7/arch/mips/kernel/scall32-o32.S linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall32-o32.S
---- linux-3.7.7/arch/mips/kernel/scall32-o32.S 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall32-o32.S       2012-12-18 15:13:16.000000000 +0000
-@@ -512,7 +512,7 @@ einval:    li      v0, -ENOSYS
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/scall32-o32.S linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall32-o32.S
+--- linux-3.9.4/arch/mips/kernel/scall32-o32.S 2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall32-o32.S       2013-05-31 14:47:11.000000000 +0000
+@@ -512,7 +512,7 @@ einval: li v0, -ENOSYS
        sys     sys_mq_timedreceive     5
        sys     sys_mq_notify           2       /* 4275 */
        sys     sys_mq_getsetattr       3
@@ -416,9 +416,9 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall32-o32.S linux-3.7.7-vs2
        sys     sys_waitid              5
        sys     sys_ni_syscall          0       /* available, was setaltroot */
        sys     sys_add_key             5       /* 4280 */
-diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall64-64.S linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-64.S
---- linux-3.7.7/arch/mips/kernel/scall64-64.S  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-64.S        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/scall64-64.S linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-64.S
+--- linux-3.9.4/arch/mips/kernel/scall64-64.S  2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-64.S        2013-05-31 14:47:11.000000000 +0000
 @@ -351,7 +351,7 @@ sys_call_table:
        PTR     sys_mq_timedreceive
        PTR     sys_mq_notify
@@ -428,10 +428,10 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall64-64.S linux-3.7.7-vs2.
        PTR     sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall64-n32.S linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-n32.S
---- linux-3.7.7/arch/mips/kernel/scall64-n32.S 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-n32.S       2012-12-18 15:13:16.000000000 +0000
-@@ -350,7 +350,7 @@ EXPORT(sysn32_call_table)
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/scall64-n32.S linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-n32.S
+--- linux-3.9.4/arch/mips/kernel/scall64-n32.S 2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-n32.S       2013-05-31 14:47:11.000000000 +0000
+@@ -344,7 +344,7 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
        PTR     compat_sys_mq_getsetattr
@@ -440,22 +440,22 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall64-n32.S linux-3.7.7-vs2
        PTR     compat_sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/scall64-o32.S linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-o32.S
---- linux-3.7.7/arch/mips/kernel/scall64-o32.S 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/scall64-o32.S       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/scall64-o32.S linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-o32.S
+--- linux-3.9.4/arch/mips/kernel/scall64-o32.S 2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/scall64-o32.S       2013-05-31 15:07:53.000000000 +0000
 @@ -469,7 +469,7 @@ sys_call_table:
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify            /* 4275 */
        PTR     compat_sys_mq_getsetattr
 -      PTR     sys_ni_syscall                  /* sys_vserver */
 +      PTR     sys32_vserver
-       PTR     sys_32_waitid
+       PTR     compat_sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key                     /* 4280 */
-diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/mips/kernel/traps.c
---- linux-3.7.7/arch/mips/kernel/traps.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/mips/kernel/traps.c     2012-12-18 15:13:16.000000000 +0000
-@@ -347,9 +347,10 @@ void show_registers(struct pt_regs *regs
+diff -NurpP --minimal linux-3.9.4/arch/mips/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/mips/kernel/traps.c
+--- linux-3.9.4/arch/mips/kernel/traps.c       2013-05-31 13:44:42.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/mips/kernel/traps.c     2013-05-31 14:47:11.000000000 +0000
+@@ -348,9 +348,10 @@ void show_registers(struct pt_regs *regs
  
        __show_regs(regs);
        print_modules();
@@ -469,10 +469,10 @@ diff -NurpP --minimal linux-3.7.7/arch/mips/kernel/traps.c linux-3.7.7-vs2.3.5.6
        if (cpu_has_userlocal) {
                unsigned long tls;
  
-diff -NurpP --minimal linux-3.7.7/arch/parisc/Kconfig linux-3.7.7-vs2.3.5.6/arch/parisc/Kconfig
---- linux-3.7.7/arch/parisc/Kconfig    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/parisc/Kconfig  2012-12-18 15:13:16.000000000 +0000
-@@ -284,6 +284,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/parisc/Kconfig linux-3.9.4-vs2.3.6.1/arch/parisc/Kconfig
+--- linux-3.9.4/arch/parisc/Kconfig    2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/parisc/Kconfig  2013-05-31 14:47:11.000000000 +0000
+@@ -308,6 +308,8 @@ source "fs/Kconfig"
  
  source "arch/parisc/Kconfig.debug"
  
@@ -481,10 +481,10 @@ diff -NurpP --minimal linux-3.7.7/arch/parisc/Kconfig linux-3.7.7-vs2.3.5.6/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/parisc/kernel/syscall_table.S linux-3.7.7-vs2.3.5.6/arch/parisc/kernel/syscall_table.S
---- linux-3.7.7/arch/parisc/kernel/syscall_table.S     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/parisc/kernel/syscall_table.S   2012-12-18 15:13:16.000000000 +0000
-@@ -361,7 +361,7 @@
+diff -NurpP --minimal linux-3.9.4/arch/parisc/kernel/syscall_table.S linux-3.9.4-vs2.3.6.1/arch/parisc/kernel/syscall_table.S
+--- linux-3.9.4/arch/parisc/kernel/syscall_table.S     2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/parisc/kernel/syscall_table.S   2013-05-31 14:47:11.000000000 +0000
+@@ -358,7 +358,7 @@
        ENTRY_COMP(mbind)               /* 260 */
        ENTRY_COMP(get_mempolicy)
        ENTRY_COMP(set_mempolicy)
@@ -493,9 +493,9 @@ diff -NurpP --minimal linux-3.7.7/arch/parisc/kernel/syscall_table.S linux-3.7.7
        ENTRY_SAME(add_key)
        ENTRY_SAME(request_key)         /* 265 */
        ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-3.7.7/arch/parisc/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/parisc/kernel/traps.c
---- linux-3.7.7/arch/parisc/kernel/traps.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/parisc/kernel/traps.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/parisc/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/parisc/kernel/traps.c
+--- linux-3.9.4/arch/parisc/kernel/traps.c     2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/parisc/kernel/traps.c   2013-05-31 14:47:11.000000000 +0000
 @@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_
                if (err == 0)
                        return; /* STFU */
@@ -519,10 +519,10 @@ diff -NurpP --minimal linux-3.7.7/arch/parisc/kernel/traps.c linux-3.7.7-vs2.3.5
  
        /* Wot's wrong wif bein' racy? */
        if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.7.7/arch/parisc/mm/fault.c linux-3.7.7-vs2.3.5.6/arch/parisc/mm/fault.c
---- linux-3.7.7/arch/parisc/mm/fault.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/parisc/mm/fault.c       2012-12-18 15:13:16.000000000 +0000
-@@ -237,8 +237,9 @@ bad_area:
+diff -NurpP --minimal linux-3.9.4/arch/parisc/mm/fault.c linux-3.9.4-vs2.3.6.1/arch/parisc/mm/fault.c
+--- linux-3.9.4/arch/parisc/mm/fault.c 2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/parisc/mm/fault.c       2013-05-31 14:47:11.000000000 +0000
+@@ -257,8 +257,9 @@ bad_area:
  
  #ifdef PRINT_USER_FAULTS
                printk(KERN_DEBUG "\n");
@@ -534,10 +534,10 @@ diff -NurpP --minimal linux-3.7.7/arch/parisc/mm/fault.c linux-3.7.7-vs2.3.5.6/a
                if (vma) {
                        printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n",
                                        vma->vm_start, vma->vm_end);
-diff -NurpP --minimal linux-3.7.7/arch/powerpc/Kconfig linux-3.7.7-vs2.3.5.6/arch/powerpc/Kconfig
---- linux-3.7.7/arch/powerpc/Kconfig   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/powerpc/Kconfig 2012-12-18 15:13:16.000000000 +0000
-@@ -1014,6 +1014,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/powerpc/Kconfig linux-3.9.4-vs2.3.6.1/arch/powerpc/Kconfig
+--- linux-3.9.4/arch/powerpc/Kconfig   2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/powerpc/Kconfig 2013-05-31 14:47:11.000000000 +0000
+@@ -1027,6 +1027,8 @@ source "lib/Kconfig"
  
  source "arch/powerpc/Kconfig.debug"
  
@@ -546,9 +546,9 @@ diff -NurpP --minimal linux-3.7.7/arch/powerpc/Kconfig linux-3.7.7-vs2.3.5.6/arc
  source "security/Kconfig"
  
  config KEYS_COMPAT
-diff -NurpP --minimal linux-3.7.7/arch/powerpc/include/uapi/asm/unistd.h linux-3.7.7-vs2.3.5.6/arch/powerpc/include/uapi/asm/unistd.h
---- linux-3.7.7/arch/powerpc/include/uapi/asm/unistd.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/powerpc/include/uapi/asm/unistd.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/powerpc/include/uapi/asm/unistd.h linux-3.9.4-vs2.3.6.1/arch/powerpc/include/uapi/asm/unistd.h
+--- linux-3.9.4/arch/powerpc/include/uapi/asm/unistd.h 2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/powerpc/include/uapi/asm/unistd.h       2013-05-31 14:47:11.000000000 +0000
 @@ -275,7 +275,7 @@
  #endif
  #define __NR_rtas             255
@@ -558,10 +558,10 @@ diff -NurpP --minimal linux-3.7.7/arch/powerpc/include/uapi/asm/unistd.h linux-3
  #define __NR_migrate_pages    258
  #define __NR_mbind            259
  #define __NR_get_mempolicy    260
-diff -NurpP --minimal linux-3.7.7/arch/powerpc/kernel/process.c linux-3.7.7-vs2.3.5.6/arch/powerpc/kernel/process.c
---- linux-3.7.7/arch/powerpc/kernel/process.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/powerpc/kernel/process.c        2012-12-18 15:13:16.000000000 +0000
-@@ -660,8 +660,9 @@ void show_regs(struct pt_regs * regs)
+diff -NurpP --minimal linux-3.9.4/arch/powerpc/kernel/process.c linux-3.9.4-vs2.3.6.1/arch/powerpc/kernel/process.c
+--- linux-3.9.4/arch/powerpc/kernel/process.c  2013-05-31 13:44:44.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/powerpc/kernel/process.c        2013-05-31 14:47:11.000000000 +0000
+@@ -850,8 +850,9 @@ void show_regs(struct pt_regs * regs)
  #else
                printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr);
  #endif
@@ -573,10 +573,10 @@ diff -NurpP --minimal linux-3.7.7/arch/powerpc/kernel/process.c linux-3.7.7-vs2.
  
  #ifdef CONFIG_SMP
        printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-3.7.7/arch/powerpc/kernel/traps.c linux-3.7.7-vs2.3.5.6/arch/powerpc/kernel/traps.c
---- linux-3.7.7/arch/powerpc/kernel/traps.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/powerpc/kernel/traps.c  2012-12-18 15:13:16.000000000 +0000
-@@ -1120,8 +1120,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-3.9.4/arch/powerpc/kernel/traps.c linux-3.9.4-vs2.3.6.1/arch/powerpc/kernel/traps.c
+--- linux-3.9.4/arch/powerpc/kernel/traps.c    2013-05-31 14:22:26.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/powerpc/kernel/traps.c  2013-05-31 14:47:11.000000000 +0000
+@@ -1167,8 +1167,9 @@ void nonrecoverable_exception(struct pt_
  
  void trace_syscall(struct pt_regs *regs)
  {
@@ -588,10 +588,10 @@ diff -NurpP --minimal linux-3.7.7/arch/powerpc/kernel/traps.c linux-3.7.7-vs2.3.
               regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
  }
  
-diff -NurpP --minimal linux-3.7.7/arch/s390/Kconfig linux-3.7.7-vs2.3.5.6/arch/s390/Kconfig
---- linux-3.7.7/arch/s390/Kconfig      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/s390/Kconfig    2012-12-18 15:13:16.000000000 +0000
-@@ -530,6 +530,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/s390/Kconfig linux-3.9.4-vs2.3.6.1/arch/s390/Kconfig
+--- linux-3.9.4/arch/s390/Kconfig      2013-05-31 13:44:45.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/s390/Kconfig    2013-05-31 14:47:11.000000000 +0000
+@@ -592,6 +592,8 @@ source "fs/Kconfig"
  
  source "arch/s390/Kconfig.debug"
  
@@ -600,9 +600,9 @@ diff -NurpP --minimal linux-3.7.7/arch/s390/Kconfig linux-3.7.7-vs2.3.5.6/arch/s
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/s390/include/asm/tlb.h linux-3.7.7-vs2.3.5.6/arch/s390/include/asm/tlb.h
---- linux-3.7.7/arch/s390/include/asm/tlb.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/s390/include/asm/tlb.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/s390/include/asm/tlb.h linux-3.9.4-vs2.3.6.1/arch/s390/include/asm/tlb.h
+--- linux-3.9.4/arch/s390/include/asm/tlb.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/s390/include/asm/tlb.h  2013-05-31 14:47:11.000000000 +0000
 @@ -24,6 +24,7 @@
  #include <linux/mm.h>
  #include <linux/pagemap.h>
@@ -611,9 +611,9 @@ diff -NurpP --minimal linux-3.7.7/arch/s390/include/asm/tlb.h linux-3.7.7-vs2.3.
  #include <asm/processor.h>
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.7.7/arch/s390/include/uapi/asm/unistd.h linux-3.7.7-vs2.3.5.6/arch/s390/include/uapi/asm/unistd.h
---- linux-3.7.7/arch/s390/include/uapi/asm/unistd.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/s390/include/uapi/asm/unistd.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/s390/include/uapi/asm/unistd.h linux-3.9.4-vs2.3.6.1/arch/s390/include/uapi/asm/unistd.h
+--- linux-3.9.4/arch/s390/include/uapi/asm/unistd.h    2013-02-19 13:57:16.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/s390/include/uapi/asm/unistd.h  2013-05-31 14:47:11.000000000 +0000
 @@ -200,7 +200,7 @@
  #define __NR_clock_gettime    (__NR_timer_create+6)
  #define __NR_clock_getres     (__NR_timer_create+7)
@@ -623,9 +623,9 @@ diff -NurpP --minimal linux-3.7.7/arch/s390/include/uapi/asm/unistd.h linux-3.7.
  #define __NR_statfs64         265
  #define __NR_fstatfs64                266
  #define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-3.7.7/arch/s390/kernel/ptrace.c linux-3.7.7-vs2.3.5.6/arch/s390/kernel/ptrace.c
---- linux-3.7.7/arch/s390/kernel/ptrace.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/s390/kernel/ptrace.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/s390/kernel/ptrace.c linux-3.9.4-vs2.3.6.1/arch/s390/kernel/ptrace.c
+--- linux-3.9.4/arch/s390/kernel/ptrace.c      2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/s390/kernel/ptrace.c    2013-05-31 14:47:11.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/tracehook.h>
  #include <linux/seccomp.h>
@@ -634,9 +634,9 @@ diff -NurpP --minimal linux-3.7.7/arch/s390/kernel/ptrace.c linux-3.7.7-vs2.3.5.
  #include <trace/syscall.h>
  #include <asm/segment.h>
  #include <asm/page.h>
-diff -NurpP --minimal linux-3.7.7/arch/s390/kernel/syscalls.S linux-3.7.7-vs2.3.5.6/arch/s390/kernel/syscalls.S
---- linux-3.7.7/arch/s390/kernel/syscalls.S    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/s390/kernel/syscalls.S  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/s390/kernel/syscalls.S linux-3.9.4-vs2.3.6.1/arch/s390/kernel/syscalls.S
+--- linux-3.9.4/arch/s390/kernel/syscalls.S    2013-05-31 13:44:45.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/s390/kernel/syscalls.S  2013-05-31 14:47:11.000000000 +0000
 @@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
  SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper)      /* 260 */
  SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
@@ -646,10 +646,10 @@ diff -NurpP --minimal linux-3.7.7/arch/s390/kernel/syscalls.S linux-3.7.7-vs2.3.
  SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
  SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
  SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
-diff -NurpP --minimal linux-3.7.7/arch/sh/Kconfig linux-3.7.7-vs2.3.5.6/arch/sh/Kconfig
---- linux-3.7.7/arch/sh/Kconfig        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sh/Kconfig      2012-12-18 15:13:16.000000000 +0000
-@@ -945,6 +945,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/sh/Kconfig linux-3.9.4-vs2.3.6.1/arch/sh/Kconfig
+--- linux-3.9.4/arch/sh/Kconfig        2013-05-31 13:44:45.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sh/Kconfig      2013-05-31 14:47:11.000000000 +0000
+@@ -951,6 +951,8 @@ source "fs/Kconfig"
  
  source "arch/sh/Kconfig.debug"
  
@@ -658,9 +658,9 @@ diff -NurpP --minimal linux-3.7.7/arch/sh/Kconfig linux-3.7.7-vs2.3.5.6/arch/sh/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/sh/kernel/irq.c linux-3.7.7-vs2.3.5.6/arch/sh/kernel/irq.c
---- linux-3.7.7/arch/sh/kernel/irq.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sh/kernel/irq.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/sh/kernel/irq.c linux-3.9.4-vs2.3.6.1/arch/sh/kernel/irq.c
+--- linux-3.9.4/arch/sh/kernel/irq.c   2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sh/kernel/irq.c 2013-05-31 14:47:11.000000000 +0000
 @@ -14,6 +14,7 @@
  #include <linux/ftrace.h>
  #include <linux/delay.h>
@@ -669,10 +669,10 @@ diff -NurpP --minimal linux-3.7.7/arch/sh/kernel/irq.c linux-3.7.7-vs2.3.5.6/arc
  #include <asm/processor.h>
  #include <asm/machvec.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.7.7/arch/sparc/Kconfig linux-3.7.7-vs2.3.5.6/arch/sparc/Kconfig
---- linux-3.7.7/arch/sparc/Kconfig     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sparc/Kconfig   2012-12-18 15:13:16.000000000 +0000
-@@ -564,6 +564,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/sparc/Kconfig linux-3.9.4-vs2.3.6.1/arch/sparc/Kconfig
+--- linux-3.9.4/arch/sparc/Kconfig     2013-05-31 13:44:47.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sparc/Kconfig   2013-05-31 14:47:11.000000000 +0000
+@@ -559,6 +559,8 @@ source "fs/Kconfig"
  
  source "arch/sparc/Kconfig.debug"
  
@@ -681,9 +681,9 @@ diff -NurpP --minimal linux-3.7.7/arch/sparc/Kconfig linux-3.7.7-vs2.3.5.6/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/sparc/include/uapi/asm/unistd.h linux-3.7.7-vs2.3.5.6/arch/sparc/include/uapi/asm/unistd.h
---- linux-3.7.7/arch/sparc/include/uapi/asm/unistd.h   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sparc/include/uapi/asm/unistd.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/sparc/include/uapi/asm/unistd.h linux-3.9.4-vs2.3.6.1/arch/sparc/include/uapi/asm/unistd.h
+--- linux-3.9.4/arch/sparc/include/uapi/asm/unistd.h   2013-02-19 13:57:17.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sparc/include/uapi/asm/unistd.h 2013-05-31 14:47:11.000000000 +0000
 @@ -332,7 +332,7 @@
  #define __NR_timer_getoverrun 264
  #define __NR_timer_delete     265
@@ -693,9 +693,9 @@ diff -NurpP --minimal linux-3.7.7/arch/sparc/include/uapi/asm/unistd.h linux-3.7
  #define __NR_io_setup         268
  #define __NR_io_destroy               269
  #define __NR_io_submit                270
-diff -NurpP --minimal linux-3.7.7/arch/sparc/kernel/systbls_32.S linux-3.7.7-vs2.3.5.6/arch/sparc/kernel/systbls_32.S
---- linux-3.7.7/arch/sparc/kernel/systbls_32.S 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sparc/kernel/systbls_32.S       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/sparc/kernel/systbls_32.S linux-3.9.4-vs2.3.6.1/arch/sparc/kernel/systbls_32.S
+--- linux-3.9.4/arch/sparc/kernel/systbls_32.S 2013-05-31 13:44:48.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sparc/kernel/systbls_32.S       2013-05-31 14:47:11.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
@@ -705,18 +705,18 @@ diff -NurpP --minimal linux-3.7.7/arch/sparc/kernel/systbls_32.S linux-3.7.7-vs2
  /*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.7.7/arch/sparc/kernel/systbls_64.S linux-3.7.7-vs2.3.5.6/arch/sparc/kernel/systbls_64.S
---- linux-3.7.7/arch/sparc/kernel/systbls_64.S 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/sparc/kernel/systbls_64.S       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/sparc/kernel/systbls_64.S linux-3.9.4-vs2.3.6.1/arch/sparc/kernel/systbls_64.S
+--- linux-3.9.4/arch/sparc/kernel/systbls_64.S 2013-05-31 13:44:48.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/sparc/kernel/systbls_64.S       2013-05-31 14:47:11.000000000 +0000
 @@ -71,7 +71,7 @@ sys_call_table32:
- /*250*/       .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys_nis_syscall
+ /*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
  /*260*/       .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun
 -      .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
 +      .word sys_timer_delete, compat_sys_timer_create, sys32_vserver, compat_sys_io_setup, sys_io_destroy
  /*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 sys32_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
+ /*280*/       .word sys_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
 @@ -149,7 +149,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
@@ -726,9 +726,9 @@ diff -NurpP --minimal linux-3.7.7/arch/sparc/kernel/systbls_64.S linux-3.7.7-vs2
  /*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.7.7/arch/um/Kconfig.rest linux-3.7.7-vs2.3.5.6/arch/um/Kconfig.rest
---- linux-3.7.7/arch/um/Kconfig.rest   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/um/Kconfig.rest 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/um/Kconfig.rest linux-3.9.4-vs2.3.6.1/arch/um/Kconfig.rest
+--- linux-3.9.4/arch/um/Kconfig.rest   2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/um/Kconfig.rest 2013-05-31 14:47:11.000000000 +0000
 @@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
  
  source "fs/Kconfig"
@@ -738,14 +738,14 @@ diff -NurpP --minimal linux-3.7.7/arch/um/Kconfig.rest linux-3.7.7-vs2.3.5.6/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/um/include/shared/kern_constants.h linux-3.7.7-vs2.3.5.6/arch/um/include/shared/kern_constants.h
---- linux-3.7.7/arch/um/include/shared/kern_constants.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/um/include/shared/kern_constants.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/um/include/shared/kern_constants.h linux-3.9.4-vs2.3.6.1/arch/um/include/shared/kern_constants.h
+--- linux-3.9.4/arch/um/include/shared/kern_constants.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/um/include/shared/kern_constants.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1 @@
 +#include "../../../../include/generated/asm-offsets.h"
-diff -NurpP --minimal linux-3.7.7/arch/um/include/shared/user_constants.h linux-3.7.7-vs2.3.5.6/arch/um/include/shared/user_constants.h
---- linux-3.7.7/arch/um/include/shared/user_constants.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/um/include/shared/user_constants.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/um/include/shared/user_constants.h linux-3.9.4-vs2.3.6.1/arch/um/include/shared/user_constants.h
+--- linux-3.9.4/arch/um/include/shared/user_constants.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/um/include/shared/user_constants.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,40 @@
 +/*
 + * DO NOT MODIFY.
@@ -787,10 +787,10 @@ diff -NurpP --minimal linux-3.7.7/arch/um/include/shared/user_constants.h linux-
 +#define UM_PROT_WRITE 2 /* PROT_WRITE # */
 +#define UM_PROT_EXEC 4 /* PROT_EXEC   # */
 +
-diff -NurpP --minimal linux-3.7.7/arch/x86/Kconfig linux-3.7.7-vs2.3.5.6/arch/x86/Kconfig
---- linux-3.7.7/arch/x86/Kconfig       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/x86/Kconfig     2012-12-18 15:13:16.000000000 +0000
-@@ -2248,6 +2248,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.9.4/arch/x86/Kconfig linux-3.9.4-vs2.3.6.1/arch/x86/Kconfig
+--- linux-3.9.4/arch/x86/Kconfig       2013-05-31 14:22:26.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/x86/Kconfig     2013-05-31 14:47:11.000000000 +0000
+@@ -2341,6 +2341,8 @@ source "fs/Kconfig"
  
  source "arch/x86/Kconfig.debug"
  
@@ -799,9 +799,9 @@ diff -NurpP --minimal linux-3.7.7/arch/x86/Kconfig linux-3.7.7-vs2.3.5.6/arch/x8
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.7.7/arch/x86/syscalls/syscall_32.tbl linux-3.7.7-vs2.3.5.6/arch/x86/syscalls/syscall_32.tbl
---- linux-3.7.7/arch/x86/syscalls/syscall_32.tbl       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/x86/syscalls/syscall_32.tbl     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/x86/syscalls/syscall_32.tbl linux-3.9.4-vs2.3.6.1/arch/x86/syscalls/syscall_32.tbl
+--- linux-3.9.4/arch/x86/syscalls/syscall_32.tbl       2013-05-31 13:44:50.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/x86/syscalls/syscall_32.tbl     2013-05-31 14:47:11.000000000 +0000
 @@ -279,7 +279,7 @@
  270   i386    tgkill                  sys_tgkill
  271   i386    utimes                  sys_utimes                      compat_sys_utimes
@@ -811,9 +811,9 @@ diff -NurpP --minimal linux-3.7.7/arch/x86/syscalls/syscall_32.tbl linux-3.7.7-v
  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.7.7/arch/x86/syscalls/syscall_64.tbl linux-3.7.7-vs2.3.5.6/arch/x86/syscalls/syscall_64.tbl
---- linux-3.7.7/arch/x86/syscalls/syscall_64.tbl       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/arch/x86/syscalls/syscall_64.tbl     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/arch/x86/syscalls/syscall_64.tbl linux-3.9.4-vs2.3.6.1/arch/x86/syscalls/syscall_64.tbl
+--- linux-3.9.4/arch/x86/syscalls/syscall_64.tbl       2013-05-31 13:44:50.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/arch/x86/syscalls/syscall_64.tbl     2013-05-31 14:47:11.000000000 +0000
 @@ -242,7 +242,7 @@
  233   common  epoll_ctl               sys_epoll_ctl
  234   common  tgkill                  sys_tgkill
@@ -823,10 +823,10 @@ diff -NurpP --minimal linux-3.7.7/arch/x86/syscalls/syscall_64.tbl linux-3.7.7-v
  237   common  mbind                   sys_mbind
  238   common  set_mempolicy           sys_set_mempolicy
  239   common  get_mempolicy           sys_get_mempolicy
-diff -NurpP --minimal linux-3.7.7/drivers/block/Kconfig linux-3.7.7-vs2.3.5.6/drivers/block/Kconfig
---- linux-3.7.7/drivers/block/Kconfig  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/block/Kconfig        2012-12-18 15:13:16.000000000 +0000
-@@ -291,6 +291,13 @@ config BLK_DEV_CRYPTOLOOP
+diff -NurpP --minimal linux-3.9.4/drivers/block/Kconfig linux-3.9.4-vs2.3.6.1/drivers/block/Kconfig
+--- linux-3.9.4/drivers/block/Kconfig  2013-05-31 13:44:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/block/Kconfig        2013-05-31 14:47:11.000000000 +0000
+@@ -278,6 +278,13 @@ config BLK_DEV_CRYPTOLOOP
  
  source "drivers/block/drbd/Kconfig"
  
@@ -840,10 +840,10 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/Kconfig linux-3.7.7-vs2.3.5.6/dr
  config BLK_DEV_NBD
        tristate "Network block device support"
        depends on NET
-diff -NurpP --minimal linux-3.7.7/drivers/block/Makefile linux-3.7.7-vs2.3.5.6/drivers/block/Makefile
---- linux-3.7.7/drivers/block/Makefile 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/block/Makefile       2012-12-18 15:13:16.000000000 +0000
-@@ -34,6 +34,7 @@ obj-$(CONFIG_VIRTIO_BLK)     += virtio_blk.o
+diff -NurpP --minimal linux-3.9.4/drivers/block/Makefile linux-3.9.4-vs2.3.6.1/drivers/block/Makefile
+--- linux-3.9.4/drivers/block/Makefile 2013-05-31 13:44:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/block/Makefile       2013-05-31 14:47:11.000000000 +0000
+@@ -33,6 +33,7 @@ obj-$(CONFIG_VIRTIO_BLK)     += virtio_blk.o
  obj-$(CONFIG_VIODASD)         += viodasd.o
  obj-$(CONFIG_BLK_DEV_SX8)     += sx8.o
  obj-$(CONFIG_BLK_DEV_HD)      += hd.o
@@ -851,9 +851,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/Makefile linux-3.7.7-vs2.3.5.6/d
  
  obj-$(CONFIG_XEN_BLKDEV_FRONTEND)     += xen-blkfront.o
  obj-$(CONFIG_XEN_BLKDEV_BACKEND)      += xen-blkback/
-diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/drivers/block/loop.c
---- linux-3.7.7/drivers/block/loop.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/block/loop.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/block/loop.c linux-3.9.4-vs2.3.6.1/drivers/block/loop.c
+--- linux-3.9.4/drivers/block/loop.c   2013-05-31 13:44:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/block/loop.c 2013-05-31 14:47:11.000000000 +0000
 @@ -76,6 +76,7 @@
  #include <linux/sysfs.h>
  #include <linux/miscdevice.h>
@@ -862,7 +862,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
  
  #include <asm/uaccess.h>
  
-@@ -869,6 +870,7 @@ static int loop_set_fd(struct loop_devic
+@@ -882,6 +883,7 @@ static int loop_set_fd(struct loop_devic
        lo->lo_blocksize = lo_blocksize;
        lo->lo_device = bdev;
        lo->lo_flags = lo_flags;
@@ -870,7 +870,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
        lo->lo_backing_file = file;
        lo->transfer = transfer_none;
        lo->ioctl = NULL;
-@@ -1014,6 +1016,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1033,6 +1035,7 @@ static int loop_clr_fd(struct loop_devic
        lo->lo_sizelimit = 0;
        lo->lo_encrypt_key_size = 0;
        lo->lo_thread = NULL;
@@ -878,7 +878,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
        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);
-@@ -1055,7 +1058,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1076,7 +1079,7 @@ loop_set_status(struct loop_device *lo,
  
        if (lo->lo_encrypt_key_size &&
            !uid_eq(lo->lo_key_owner, uid) &&
@@ -887,7 +887,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
                return -EPERM;
        if (lo->lo_state != Lo_bound)
                return -ENXIO;
-@@ -1145,7 +1148,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1166,7 +1169,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;
@@ -897,7 +897,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
                info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
                memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
                       lo->lo_encrypt_key_size);
-@@ -1505,6 +1509,11 @@ static int lo_open(struct block_device *
+@@ -1508,6 +1512,11 @@ static int lo_open(struct block_device *
                goto out;
        }
  
@@ -909,9 +909,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/loop.c linux-3.7.7-vs2.3.5.6/dri
        mutex_lock(&lo->lo_ctl_mutex);
        lo->lo_refcnt++;
        mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.7.7/drivers/block/vroot.c linux-3.7.7-vs2.3.5.6/drivers/block/vroot.c
---- linux-3.7.7/drivers/block/vroot.c  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/block/vroot.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/block/vroot.c linux-3.9.4-vs2.3.6.1/drivers/block/vroot.c
+--- linux-3.9.4/drivers/block/vroot.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/block/vroot.c        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,291 @@
 +/*
 + *  linux/drivers/block/vroot.c
@@ -1204,9 +1204,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/block/vroot.c linux-3.7.7-vs2.3.5.6/dr
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.7.7/drivers/infiniband/Kconfig linux-3.7.7-vs2.3.5.6/drivers/infiniband/Kconfig
---- linux-3.7.7/drivers/infiniband/Kconfig     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/infiniband/Kconfig   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/infiniband/Kconfig linux-3.9.4-vs2.3.6.1/drivers/infiniband/Kconfig
+--- linux-3.9.4/drivers/infiniband/Kconfig     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/infiniband/Kconfig   2013-05-31 14:47:11.000000000 +0000
 @@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
  config INFINIBAND_ADDR_TRANS
        bool
@@ -1216,9 +1216,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/infiniband/Kconfig linux-3.7.7-vs2.3.5
        default y
  
  source "drivers/infiniband/hw/mthca/Kconfig"
-diff -NurpP --minimal linux-3.7.7/drivers/infiniband/core/addr.c linux-3.7.7-vs2.3.5.6/drivers/infiniband/core/addr.c
---- linux-3.7.7/drivers/infiniband/core/addr.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/infiniband/core/addr.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/infiniband/core/addr.c linux-3.9.4-vs2.3.6.1/drivers/infiniband/core/addr.c
+--- linux-3.9.4/drivers/infiniband/core/addr.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/infiniband/core/addr.c       2013-05-31 14:47:11.000000000 +0000
 @@ -261,7 +261,7 @@ static int addr6_resolve(struct sockaddr
  
        if (ipv6_addr_any(&fl6.saddr)) {
@@ -1228,9 +1228,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/infiniband/core/addr.c linux-3.7.7-vs2
                if (ret)
                        goto put;
  
-diff -NurpP --minimal linux-3.7.7/drivers/md/dm-ioctl.c linux-3.7.7-vs2.3.5.6/drivers/md/dm-ioctl.c
---- linux-3.7.7/drivers/md/dm-ioctl.c  2013-02-11 23:16:58.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/md/dm-ioctl.c        2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/md/dm-ioctl.c linux-3.9.4-vs2.3.6.1/drivers/md/dm-ioctl.c
+--- linux-3.9.4/drivers/md/dm-ioctl.c  2013-05-31 13:44:59.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/md/dm-ioctl.c        2013-05-31 14:47:11.000000000 +0000
 @@ -16,6 +16,7 @@
  #include <linux/dm-ioctl.h>
  #include <linux/hdreg.h>
@@ -1305,9 +1305,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm-ioctl.c linux-3.7.7-vs2.3.5.6/dr
                        if (old_nl)
                                old_nl->next = (uint32_t) ((void *) nl -
                                                           (void *) old_nl);
-@@ -1627,8 +1639,8 @@ static int ctl_ioctl(uint command, struc
-       ioctl_fn fn = NULL;
+@@ -1722,8 +1734,8 @@ static int ctl_ioctl(uint command, struc
        size_t input_param_size;
+       struct dm_ioctl param_kernel;
  
 -      /* only root can play with this */
 -      if (!capable(CAP_SYS_ADMIN))
@@ -1316,9 +1316,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm-ioctl.c linux-3.7.7-vs2.3.5.6/dr
                return -EACCES;
  
        if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/md/dm.c
---- linux-3.7.7/drivers/md/dm.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/md/dm.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/md/dm.c linux-3.9.4-vs2.3.6.1/drivers/md/dm.c
+--- linux-3.9.4/drivers/md/dm.c        2013-05-31 13:44:59.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/md/dm.c      2013-05-31 14:47:11.000000000 +0000
 @@ -19,6 +19,7 @@
  #include <linux/idr.h>
  #include <linux/hdreg.h>
@@ -1327,7 +1327,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
  
  #include <trace/events/block.h>
  
-@@ -137,6 +138,7 @@ struct mapped_device {
+@@ -125,6 +126,7 @@ struct mapped_device {
        rwlock_t map_lock;
        atomic_t holders;
        atomic_t open_count;
@@ -1335,7 +1335,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
  
        unsigned long flags;
  
-@@ -345,6 +347,7 @@ int dm_deleting_md(struct mapped_device
+@@ -317,6 +319,7 @@ int dm_deleting_md(struct mapped_device
  static int dm_blk_open(struct block_device *bdev, fmode_t mode)
  {
        struct mapped_device *md;
@@ -1343,7 +1343,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
  
        spin_lock(&_minor_lock);
  
-@@ -353,18 +356,19 @@ static int dm_blk_open(struct block_devi
+@@ -325,18 +328,19 @@ static int dm_blk_open(struct block_devi
                goto out;
  
        if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1369,7 +1369,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
  }
  
  static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -575,6 +579,14 @@ int dm_set_geometry(struct mapped_device
+@@ -547,6 +551,14 @@ int dm_set_geometry(struct mapped_device
        return 0;
  }
  
@@ -1384,7 +1384,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
  /*-----------------------------------------------------------------
   * CRUD START:
   *   A more elegant soln is in the works that uses the queue
-@@ -1852,6 +1864,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1884,6 +1896,7 @@ static struct mapped_device *alloc_dev(i
        INIT_LIST_HEAD(&md->uevent_list);
        spin_lock_init(&md->uevent_lock);
  
@@ -1392,9 +1392,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.c linux-3.7.7-vs2.3.5.6/drivers/
        md->queue = blk_alloc_queue(GFP_KERNEL);
        if (!md->queue)
                goto bad_queue;
-diff -NurpP --minimal linux-3.7.7/drivers/md/dm.h linux-3.7.7-vs2.3.5.6/drivers/md/dm.h
---- linux-3.7.7/drivers/md/dm.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/md/dm.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/md/dm.h linux-3.9.4-vs2.3.6.1/drivers/md/dm.h
+--- linux-3.9.4/drivers/md/dm.h        2013-02-19 13:57:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/md/dm.h      2013-05-31 14:47:11.000000000 +0000
 @@ -46,6 +46,8 @@ struct dm_dev_internal {
  struct dm_table;
  struct dm_md_mempools;
@@ -1404,9 +1404,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/md/dm.h linux-3.7.7-vs2.3.5.6/drivers/
  /*-----------------------------------------------------------------
   * Internal table functions.
   *---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.7.7/drivers/net/tun.c linux-3.7.7-vs2.3.5.6/drivers/net/tun.c
---- linux-3.7.7/drivers/net/tun.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/net/tun.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/net/tun.c linux-3.9.4-vs2.3.6.1/drivers/net/tun.c
+--- linux-3.9.4/drivers/net/tun.c      2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/net/tun.c    2013-05-31 20:01:45.000000000 +0000
 @@ -64,6 +64,7 @@
  #include <linux/nsproxy.h>
  #include <linux/virtio_net.h>
@@ -1415,7 +1415,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/net/tun.c linux-3.7.7-vs2.3.5.6/driver
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
  #include <net/rtnetlink.h>
-@@ -123,6 +124,7 @@ struct tun_struct {
+@@ -164,6 +165,7 @@ struct tun_struct {
        unsigned int            flags;
        kuid_t                  owner;
        kgid_t                  group;
@@ -1423,7 +1423,15 @@ diff -NurpP --minimal linux-3.7.7/drivers/net/tun.c linux-3.7.7-vs2.3.5.6/driver
  
        struct net_device       *dev;
        netdev_features_t       set_features;
-@@ -1034,6 +1036,7 @@ static void tun_setup(struct net_device
+@@ -380,6 +382,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);
++              /* !cap_raised(current_cap(), CAP_NET_ADMIN) */
+ }
+ static void tun_set_real_num_queues(struct tun_struct *tun)
+@@ -1404,6 +1407,7 @@ static void tun_setup(struct net_device
  
        tun->owner = INVALID_UID;
        tun->group = INVALID_GID;
@@ -1431,35 +1439,26 @@ diff -NurpP --minimal linux-3.7.7/drivers/net/tun.c linux-3.7.7-vs2.3.5.6/driver
  
        dev->ethtool_ops = &tun_ethtool_ops;
        dev->destructor = tun_free_netdev;
-@@ -1198,7 +1201,7 @@ static int tun_set_iff(struct net *net,
-               if (((uid_valid(tun->owner) && !uid_eq(cred->euid, tun->owner)) ||
-                    (gid_valid(tun->group) && !in_egroup_p(tun->group))) &&
--                  !capable(CAP_NET_ADMIN))
-+                   !cap_raised(current_cap(), CAP_NET_ADMIN))
-                       return -EPERM;
-               err = security_tun_dev_attach(tun->socket.sk);
+@@ -1591,6 +1595,9 @@ static int tun_set_iff(struct net *net,
                if (err < 0)
-@@ -1212,7 +1215,7 @@ static int tun_set_iff(struct net *net,
-               char *name;
-               unsigned long flags = 0;
--              if (!capable(CAP_NET_ADMIN))
-+              if (!nx_capable(CAP_NET_ADMIN, NXC_TUN_CREATE))
-                       return -EPERM;
-               err = security_tun_dev_create();
-               if (err < 0)
-@@ -1283,6 +1286,9 @@ static int tun_set_iff(struct net *net,
-               sk->sk_destruct = tun_sock_destruct;
+                       return err;
  
 +              if (!nx_check(tun->nid, VS_IDENT | VS_HOSTID | VS_ADMIN_P))
 +                      return -EPERM;
 +
                err = tun_attach(tun, file);
                if (err < 0)
-                       goto failed;
-@@ -1478,6 +1484,16 @@ static long __tun_chr_ioctl(struct file
+                       return err;
+@@ -1605,7 +1612,7 @@ static int tun_set_iff(struct net *net,
+               int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ?
+                            MAX_TAP_QUEUES : 1;
+-              if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
++              if (!vx_ns_capable(net->user_ns, CAP_NET_ADMIN, NXC_TUN_CREATE))
+                       return -EPERM;
+               err = security_tun_dev_create();
+               if (err < 0)
+@@ -1950,6 +1957,16 @@ static long __tun_chr_ioctl(struct file
                          from_kgid(&init_user_ns, tun->group));
                break;
  
@@ -1476,9 +1475,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/net/tun.c linux-3.7.7-vs2.3.5.6/driver
        case TUNSETLINK:
                /* Only allow setting the type when the interface is down */
                if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.7.7/drivers/staging/csr/csr_wifi_hip_xbv.c linux-3.7.7-vs2.3.5.6/drivers/staging/csr/csr_wifi_hip_xbv.c
---- linux-3.7.7/drivers/staging/csr/csr_wifi_hip_xbv.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/staging/csr/csr_wifi_hip_xbv.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/staging/csr/csr_wifi_hip_xbv.c linux-3.9.4-vs2.3.6.1/drivers/staging/csr/csr_wifi_hip_xbv.c
+--- linux-3.9.4/drivers/staging/csr/csr_wifi_hip_xbv.c 2013-02-19 13:58:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/staging/csr/csr_wifi_hip_xbv.c       2013-05-31 14:47:11.000000000 +0000
 @@ -55,7 +55,7 @@ typedef struct
  {
      char t_name[4];
@@ -1515,18 +1514,18 @@ diff -NurpP --minimal linux-3.7.7/drivers/staging/csr/csr_wifi_hip_xbv.c linux-3
  {
      u8 buf[8];
      s32 n;
-diff -NurpP --minimal linux-3.7.7/drivers/tty/sysrq.c linux-3.7.7-vs2.3.5.6/drivers/tty/sysrq.c
---- linux-3.7.7/drivers/tty/sysrq.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/tty/sysrq.c  2012-12-18 15:13:16.000000000 +0000
-@@ -41,6 +41,7 @@
- #include <linux/slab.h>
+diff -NurpP --minimal linux-3.9.4/drivers/tty/sysrq.c linux-3.9.4-vs2.3.6.1/drivers/tty/sysrq.c
+--- linux-3.9.4/drivers/tty/sysrq.c    2013-05-31 13:45:19.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/tty/sysrq.c  2013-05-31 15:08:19.000000000 +0000
+@@ -43,6 +43,7 @@
  #include <linux/input.h>
  #include <linux/uaccess.h>
+ #include <linux/moduleparam.h>
 +#include <linux/vserver/debug.h>
  
  #include <asm/ptrace.h>
  #include <asm/irq_regs.h>
-@@ -398,6 +399,21 @@ static struct sysrq_key_op sysrq_unrt_op
+@@ -401,6 +402,21 @@ static struct sysrq_key_op sysrq_unrt_op
        .enable_mask    = SYSRQ_ENABLE_RTNICE,
  };
  
@@ -1548,7 +1547,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/sysrq.c linux-3.7.7-vs2.3.5.6/driv
  /* Key Operations table and lock */
  static DEFINE_SPINLOCK(sysrq_key_table_lock);
  
-@@ -453,7 +469,11 @@ static struct sysrq_key_op *sysrq_key_ta
+@@ -456,7 +472,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 */
@@ -1560,7 +1559,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/sysrq.c linux-3.7.7-vs2.3.5.6/driv
        /* y: May be registered on sparc64 for global register dump */
        NULL,                           /* y */
        &sysrq_ftrace_dump_op,          /* z */
-@@ -468,6 +488,8 @@ static int sysrq_key_table_key2index(int
+@@ -471,6 +491,8 @@ static int sysrq_key_table_key2index(int
                retval = key - '0';
        else if ((key >= 'a') && (key <= 'z'))
                retval = key + 10 - 'a';
@@ -1569,9 +1568,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/sysrq.c linux-3.7.7-vs2.3.5.6/driv
        else
                retval = -1;
        return retval;
-diff -NurpP --minimal linux-3.7.7/drivers/tty/tty_io.c linux-3.7.7-vs2.3.5.6/drivers/tty/tty_io.c
---- linux-3.7.7/drivers/tty/tty_io.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/drivers/tty/tty_io.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/drivers/tty/tty_io.c linux-3.9.4-vs2.3.6.1/drivers/tty/tty_io.c
+--- linux-3.9.4/drivers/tty/tty_io.c   2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/drivers/tty/tty_io.c 2013-05-31 14:47:11.000000000 +0000
 @@ -104,6 +104,7 @@
  
  #include <linux/kmod.h>
@@ -1580,7 +1579,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/tty_io.c linux-3.7.7-vs2.3.5.6/dri
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -2139,7 +2140,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2144,7 +2145,8 @@ static int tiocsti(struct tty_struct *tt
        char ch, mbz = 0;
        struct tty_ldisc *ld;
  
@@ -1590,7 +1589,7 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/tty_io.c linux-3.7.7-vs2.3.5.6/dri
                return -EPERM;
        if (get_user(ch, p))
                return -EFAULT;
-@@ -2426,6 +2428,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2432,6 +2434,7 @@ static int tiocspgrp(struct tty_struct *
                return -ENOTTY;
        if (get_user(pgrp_nr, p))
                return -EFAULT;
@@ -1598,9 +1597,9 @@ diff -NurpP --minimal linux-3.7.7/drivers/tty/tty_io.c linux-3.7.7-vs2.3.5.6/dri
        if (pgrp_nr < 0)
                return -EINVAL;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.7.7/fs/attr.c linux-3.7.7-vs2.3.5.6/fs/attr.c
---- linux-3.7.7/fs/attr.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/attr.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/attr.c linux-3.9.4-vs2.3.6.1/fs/attr.c
+--- linux-3.9.4/fs/attr.c      2013-02-19 13:58:46.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/attr.c    2013-05-31 14:47:11.000000000 +0000
 @@ -15,6 +15,9 @@
  #include <linux/security.h>
  #include <linux/evm.h>
@@ -1611,7 +1610,7 @@ diff -NurpP --minimal linux-3.7.7/fs/attr.c linux-3.7.7-vs2.3.5.6/fs/attr.c
  
  /**
   * inode_change_ok - check if attribute changes to an inode are allowed
-@@ -75,6 +78,10 @@ int inode_change_ok(const struct inode *
+@@ -77,6 +80,10 @@ int inode_change_ok(const struct inode *
                        return -EPERM;
        }
  
@@ -1622,7 +1621,7 @@ diff -NurpP --minimal linux-3.7.7/fs/attr.c linux-3.7.7-vs2.3.5.6/fs/attr.c
        return 0;
  }
  EXPORT_SYMBOL(inode_change_ok);
-@@ -145,6 +152,8 @@ void setattr_copy(struct inode *inode, c
+@@ -147,6 +154,8 @@ void setattr_copy(struct inode *inode, c
                inode->i_uid = attr->ia_uid;
        if (ia_valid & ATTR_GID)
                inode->i_gid = attr->ia_gid;
@@ -1631,7 +1630,7 @@ diff -NurpP --minimal linux-3.7.7/fs/attr.c linux-3.7.7-vs2.3.5.6/fs/attr.c
        if (ia_valid & ATTR_ATIME)
                inode->i_atime = timespec_trunc(attr->ia_atime,
                                                inode->i_sb->s_time_gran);
-@@ -174,7 +183,8 @@ int notify_change(struct dentry * dentry
+@@ -177,7 +186,8 @@ int notify_change(struct dentry * dentry
  
        WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
  
@@ -1641,9 +1640,9 @@ diff -NurpP --minimal linux-3.7.7/fs/attr.c linux-3.7.7-vs2.3.5.6/fs/attr.c
                if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                        return -EPERM;
        }
-diff -NurpP --minimal linux-3.7.7/fs/block_dev.c linux-3.7.7-vs2.3.5.6/fs/block_dev.c
---- linux-3.7.7/fs/block_dev.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/block_dev.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/block_dev.c linux-3.9.4-vs2.3.6.1/fs/block_dev.c
+--- linux-3.9.4/fs/block_dev.c 2013-05-31 13:45:22.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/block_dev.c       2013-05-31 14:47:11.000000000 +0000
 @@ -27,6 +27,7 @@
  #include <linux/namei.h>
  #include <linux/log2.h>
@@ -1660,7 +1659,7 @@ diff -NurpP --minimal linux-3.7.7/fs/block_dev.c linux-3.7.7-vs2.3.5.6/fs/block_
                inode->i_bdev = bdev;
                inode->i_data.a_ops = &def_blk_aops;
                mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -574,6 +576,11 @@ EXPORT_SYMBOL(bdput);
+@@ -575,6 +577,11 @@ EXPORT_SYMBOL(bdput);
  static struct block_device *bd_acquire(struct inode *inode)
  {
        struct block_device *bdev;
@@ -1672,7 +1671,7 @@ diff -NurpP --minimal linux-3.7.7/fs/block_dev.c linux-3.7.7-vs2.3.5.6/fs/block_
  
        spin_lock(&bdev_lock);
        bdev = inode->i_bdev;
-@@ -584,7 +591,7 @@ static struct block_device *bd_acquire(s
+@@ -585,7 +592,7 @@ static struct block_device *bd_acquire(s
        }
        spin_unlock(&bdev_lock);
  
@@ -1681,10 +1680,10 @@ diff -NurpP --minimal linux-3.7.7/fs/block_dev.c linux-3.7.7-vs2.3.5.6/fs/block_
        if (bdev) {
                spin_lock(&bdev_lock);
                if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrfs/ctree.h
---- linux-3.7.7/fs/btrfs/ctree.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/btrfs/ctree.h     2012-12-18 15:13:16.000000000 +0000
-@@ -692,11 +692,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-3.9.4/fs/btrfs/ctree.h linux-3.9.4-vs2.3.6.1/fs/btrfs/ctree.h
+--- linux-3.9.4/fs/btrfs/ctree.h       2013-05-31 13:45:22.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/btrfs/ctree.h     2013-05-31 14:47:11.000000000 +0000
+@@ -705,11 +705,14 @@ struct btrfs_inode_item {
        /* modification sequence number for NFS */
        __le64 sequence;
  
@@ -1700,7 +1699,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrf
        struct btrfs_timespec atime;
        struct btrfs_timespec ctime;
        struct btrfs_timespec mtime;
-@@ -1757,6 +1760,8 @@ struct btrfs_ioctl_defrag_range_args {
+@@ -1901,6 +1904,8 @@ struct btrfs_ioctl_defrag_range_args {
  #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21)
  #define BTRFS_MOUNT_PANIC_ON_FATAL_ERROR      (1 << 22)
  
@@ -1708,8 +1707,8 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrf
 +
  #define btrfs_clear_opt(o, opt)               ((o) &= ~BTRFS_MOUNT_##opt)
  #define btrfs_set_opt(o, opt)         ((o) |= BTRFS_MOUNT_##opt)
- #define btrfs_test_opt(root, opt)     ((root)->fs_info->mount_opt & \
-@@ -2025,6 +2030,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+ #define btrfs_raw_test_opt(o, opt)    ((o) & BTRFS_MOUNT_##opt)
+@@ -2170,6 +2175,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);
@@ -1717,7 +1716,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrf
  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);
-@@ -2078,6 +2084,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -2223,6 +2229,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
  
  BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
  
@@ -1728,7 +1727,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrf
  
  BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
  
-@@ -3363,6 +3373,7 @@ extern const struct dentry_operations bt
+@@ -3581,6 +3591,7 @@ extern const struct dentry_operations bt
  long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
  void btrfs_update_iflags(struct inode *inode);
  void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
@@ -1736,10 +1735,10 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ctree.h linux-3.7.7-vs2.3.5.6/fs/btrf
  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.7.7/fs/btrfs/disk-io.c linux-3.7.7-vs2.3.5.6/fs/btrfs/disk-io.c
---- linux-3.7.7/fs/btrfs/disk-io.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/btrfs/disk-io.c   2012-12-18 15:13:16.000000000 +0000
-@@ -2197,6 +2197,9 @@ int open_ctree(struct super_block *sb,
+diff -NurpP --minimal linux-3.9.4/fs/btrfs/disk-io.c linux-3.9.4-vs2.3.6.1/fs/btrfs/disk-io.c
+--- linux-3.9.4/fs/btrfs/disk-io.c     2013-05-31 13:45:22.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/btrfs/disk-io.c   2013-05-31 14:47:11.000000000 +0000
+@@ -2258,6 +2258,9 @@ int open_ctree(struct super_block *sb,
                goto fail_alloc;
        }
  
@@ -1749,18 +1748,18 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/disk-io.c linux-3.7.7-vs2.3.5.6/fs/bt
        features = btrfs_super_incompat_flags(disk_super) &
                ~BTRFS_FEATURE_INCOMPAT_SUPP;
        if (features) {
-diff -NurpP --minimal linux-3.7.7/fs/btrfs/inode.c linux-3.7.7-vs2.3.5.6/fs/btrfs/inode.c
---- linux-3.7.7/fs/btrfs/inode.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/btrfs/inode.c     2012-12-18 15:13:16.000000000 +0000
-@@ -39,6 +39,7 @@
- #include <linux/slab.h>
- #include <linux/ratelimit.h>
+diff -NurpP --minimal linux-3.9.4/fs/btrfs/inode.c linux-3.9.4-vs2.3.6.1/fs/btrfs/inode.c
+--- linux-3.9.4/fs/btrfs/inode.c       2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/btrfs/inode.c     2013-05-31 20:42:33.000000000 +0000
+@@ -41,6 +41,7 @@
  #include <linux/mount.h>
+ #include <linux/btrfs.h>
+ #include <linux/blkdev.h>
 +#include <linux/vs_tag.h>
  #include "compat.h"
  #include "ctree.h"
  #include "disk-io.h"
-@@ -2530,6 +2531,8 @@ static void btrfs_read_locked_inode(stru
+@@ -3312,6 +3313,8 @@ static void btrfs_read_locked_inode(stru
        struct btrfs_key location;
        int maybe_acls;
        u32 rdev;
@@ -1769,7 +1768,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/inode.c linux-3.7.7-vs2.3.5.6/fs/btrf
        int ret;
        bool filled = false;
  
-@@ -2557,8 +2560,13 @@ static void btrfs_read_locked_inode(stru
+@@ -3339,8 +3342,13 @@ 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));
@@ -1785,26 +1784,28 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/inode.c linux-3.7.7-vs2.3.5.6/fs/btrf
        btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
  
        tspec = btrfs_inode_atime(inode_item);
-@@ -2648,8 +2656,16 @@ static void fill_inode_item(struct btrfs
-                           struct btrfs_inode_item *item,
+@@ -3431,11 +3439,18 @@ static void fill_inode_item(struct btrfs
                            struct inode *inode)
  {
--      btrfs_set_inode_uid(leaf, item, i_uid_read(inode));
--      btrfs_set_inode_gid(leaf, item, i_gid_read(inode));
+       struct btrfs_map_token token;
 +      uid_t uid = TAGINO_UID(DX_TAG(inode),
 +              i_uid_read(inode), i_tag_read(inode));
 +      gid_t gid = TAGINO_GID(DX_TAG(inode),
 +              i_gid_read(inode), i_tag_read(inode));
-+
-+      btrfs_set_inode_uid(leaf, item, uid);
-+      btrfs_set_inode_gid(leaf, item, gid);
+       btrfs_init_map_token(&token);
+-      btrfs_set_token_inode_uid(leaf, item, i_uid_read(inode), &token);
+-      btrfs_set_token_inode_gid(leaf, item, i_gid_read(inode), &token);
++      btrfs_set_token_inode_uid(leaf, item, uid, &token);
++      btrfs_set_token_inode_gid(leaf, item, gid, &token);
 +#ifdef CONFIG_TAGGING_INTERN
-+      btrfs_set_inode_tag(leaf, item, i_tag_read(inode));
++      btrfs_set_token_inode_tag(leaf, item, i_tag_read(inode), &token);
 +#endif
-       btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size);
-       btrfs_set_inode_mode(leaf, item, inode->i_mode);
-       btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
-@@ -7786,11 +7802,13 @@ static const struct inode_operations btr
+       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);
+@@ -8683,11 +8698,13 @@ static const struct inode_operations btr
        .listxattr      = btrfs_listxattr,
        .removexattr    = btrfs_removexattr,
        .permission     = btrfs_permission,
@@ -1818,10 +1819,10 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/inode.c linux-3.7.7-vs2.3.5.6/fs/btrf
        .get_acl        = btrfs_get_acl,
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrfs/ioctl.c
---- linux-3.7.7/fs/btrfs/ioctl.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/btrfs/ioctl.c     2012-12-18 15:13:16.000000000 +0000
-@@ -74,10 +74,13 @@ static unsigned int btrfs_flags_to_ioctl
+diff -NurpP --minimal linux-3.9.4/fs/btrfs/ioctl.c linux-3.9.4-vs2.3.6.1/fs/btrfs/ioctl.c
+--- linux-3.9.4/fs/btrfs/ioctl.c       2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/btrfs/ioctl.c     2013-05-31 14:47:11.000000000 +0000
+@@ -75,10 +75,13 @@ static unsigned int btrfs_flags_to_ioctl
  {
        unsigned int iflags = 0;
  
@@ -1837,7 +1838,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrf
        if (flags & BTRFS_INODE_APPEND)
                iflags |= FS_APPEND_FL;
        if (flags & BTRFS_INODE_NODUMP)
-@@ -94,28 +97,78 @@ static unsigned int btrfs_flags_to_ioctl
+@@ -95,28 +98,78 @@ static unsigned int btrfs_flags_to_ioctl
        else if (flags & BTRFS_INODE_NOCOMPRESS)
                iflags |= FS_NOCOMP_FL;
  
@@ -1920,7 +1921,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrf
  }
  
  /*
-@@ -131,6 +184,7 @@ void btrfs_inherit_iflags(struct inode *
+@@ -132,6 +185,7 @@ void btrfs_inherit_iflags(struct inode *
                return;
  
        flags = BTRFS_I(dir)->flags;
@@ -1928,7 +1929,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrf
  
        if (flags & BTRFS_INODE_NOCOMPRESS) {
                BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS;
-@@ -146,6 +200,30 @@ void btrfs_inherit_iflags(struct inode *
+@@ -150,6 +204,30 @@ void btrfs_inherit_iflags(struct inode *
        btrfs_update_iflags(inode);
  }
  
@@ -1958,8 +1959,8 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrf
 +
  static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
  {
-       struct btrfs_inode *ip = BTRFS_I(file->f_path.dentry->d_inode);
-@@ -208,21 +286,27 @@ static int btrfs_ioctl_setflags(struct f
+       struct btrfs_inode *ip = BTRFS_I(file_inode(file));
+@@ -212,21 +290,27 @@ static int btrfs_ioctl_setflags(struct f
  
        flags = btrfs_mask_flags(inode->i_mode, flags);
        oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1992,10 +1993,10 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/btrf
        if (flags & FS_APPEND_FL)
                ip->flags |= BTRFS_INODE_APPEND;
        else
-diff -NurpP --minimal linux-3.7.7/fs/btrfs/super.c linux-3.7.7-vs2.3.5.6/fs/btrfs/super.c
---- linux-3.7.7/fs/btrfs/super.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/btrfs/super.c     2012-12-18 15:13:16.000000000 +0000
-@@ -312,7 +312,7 @@ enum {
+diff -NurpP --minimal linux-3.9.4/fs/btrfs/super.c linux-3.9.4-vs2.3.6.1/fs/btrfs/super.c
+--- linux-3.9.4/fs/btrfs/super.c       2013-05-31 13:45:22.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/btrfs/super.c     2013-05-31 14:47:11.000000000 +0000
+@@ -321,7 +321,7 @@ enum {
        Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
        Opt_check_integrity, Opt_check_integrity_including_extent_data,
        Opt_check_integrity_print_mask, Opt_fatal_errors,
@@ -2004,7 +2005,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/super.c linux-3.7.7-vs2.3.5.6/fs/btrf
  };
  
  static match_table_t tokens = {
-@@ -352,6 +352,9 @@ static match_table_t tokens = {
+@@ -361,6 +361,9 @@ static match_table_t tokens = {
        {Opt_check_integrity_including_extent_data, "check_int_data"},
        {Opt_check_integrity_print_mask, "check_int_print_mask=%d"},
        {Opt_fatal_errors, "fatal_errors=%s"},
@@ -2014,7 +2015,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/super.c linux-3.7.7-vs2.3.5.6/fs/btrf
        {Opt_err, NULL},
  };
  
-@@ -614,6 +617,22 @@ int btrfs_parse_options(struct btrfs_roo
+@@ -626,6 +629,22 @@ int btrfs_parse_options(struct btrfs_roo
                                goto out;
                        }
                        break;
@@ -2037,7 +2038,7 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/super.c linux-3.7.7-vs2.3.5.6/fs/btrf
                case Opt_err:
                        printk(KERN_INFO "btrfs: unrecognized mount option "
                               "'%s'\n", p);
-@@ -1211,6 +1230,12 @@ static int btrfs_remount(struct super_bl
+@@ -1258,6 +1277,12 @@ static int btrfs_remount(struct super_bl
        btrfs_resize_thread_pool(fs_info,
                fs_info->thread_pool_size, old_thread_pool_size);
  
@@ -2048,11 +2049,11 @@ diff -NurpP --minimal linux-3.7.7/fs/btrfs/super.c linux-3.7.7-vs2.3.5.6/fs/btrf
 +      }
 +
        if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
-               return 0;
+               goto out;
  
-diff -NurpP --minimal linux-3.7.7/fs/char_dev.c linux-3.7.7-vs2.3.5.6/fs/char_dev.c
---- linux-3.7.7/fs/char_dev.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/char_dev.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/char_dev.c linux-3.9.4-vs2.3.6.1/fs/char_dev.c
+--- linux-3.9.4/fs/char_dev.c  2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/char_dev.c        2013-05-31 14:47:11.000000000 +0000
 @@ -21,6 +21,8 @@
  #include <linux/mutex.h>
  #include <linux/backing-dev.h>
@@ -2085,9 +2086,9 @@ diff -NurpP --minimal linux-3.7.7/fs/char_dev.c linux-3.7.7-vs2.3.5.6/fs/char_de
                if (!kobj)
                        return -ENXIO;
                new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
---- linux-3.7.7/fs/dcache.c    2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/dcache.c  2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/dcache.c linux-3.9.4-vs2.3.6.1/fs/dcache.c
+--- linux-3.9.4/fs/dcache.c    2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/dcache.c  2013-05-31 14:47:11.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/rculist_bl.h>
  #include <linux/prefetch.h>
@@ -2096,7 +2097,7 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
  #include "internal.h"
  #include "mount.h"
  
-@@ -617,6 +618,8 @@ int d_invalidate(struct dentry * dentry)
+@@ -593,6 +594,8 @@ int d_invalidate(struct dentry * dentry)
                spin_lock(&dentry->d_lock);
        }
  
@@ -2105,7 +2106,7 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
        /*
         * Somebody else still using it?
         *
-@@ -646,6 +649,7 @@ EXPORT_SYMBOL(d_invalidate);
+@@ -622,6 +625,7 @@ EXPORT_SYMBOL(d_invalidate);
  static inline void __dget_dlock(struct dentry *dentry)
  {
        dentry->d_count++;
@@ -2113,7 +2114,7 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
  }
  
  static inline void __dget(struct dentry *dentry)
-@@ -1276,6 +1280,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1252,6 +1256,9 @@ struct dentry *__d_alloc(struct super_bl
        struct dentry *dentry;
        char *dname;
  
@@ -2123,7 +2124,7 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
        dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
        if (!dentry)
                return NULL;
-@@ -1308,6 +1315,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1284,6 +1291,7 @@ struct dentry *__d_alloc(struct super_bl
  
        dentry->d_count = 1;
        dentry->d_flags = 0;
@@ -2131,7 +2132,7 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
        spin_lock_init(&dentry->d_lock);
        seqcount_init(&dentry->d_seq);
        dentry->d_inode = NULL;
-@@ -2012,6 +2020,7 @@ struct dentry *__d_lookup(struct dentry
+@@ -1984,6 +1992,7 @@ struct dentry *__d_lookup(const struct d
                }
  
                dentry->d_count++;
@@ -2139,9 +2140,9 @@ diff -NurpP --minimal linux-3.7.7/fs/dcache.c linux-3.7.7-vs2.3.5.6/fs/dcache.c
                found = dentry;
                spin_unlock(&dentry->d_lock);
                break;
-diff -NurpP --minimal linux-3.7.7/fs/devpts/inode.c linux-3.7.7-vs2.3.5.6/fs/devpts/inode.c
---- linux-3.7.7/fs/devpts/inode.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/devpts/inode.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/devpts/inode.c linux-3.9.4-vs2.3.6.1/fs/devpts/inode.c
+--- linux-3.9.4/fs/devpts/inode.c      2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/devpts/inode.c    2013-05-31 15:42:25.000000000 +0000
 @@ -25,6 +25,7 @@
  #include <linux/parser.h>
  #include <linux/fsnotify.h>
@@ -2172,7 +2173,7 @@ diff -NurpP --minimal linux-3.7.7/fs/devpts/inode.c linux-3.7.7-vs2.3.5.6/fs/dev
  /*
   * 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.
-@@ -336,6 +352,34 @@ static int devpts_show_options(struct se
+@@ -345,6 +361,34 @@ static int devpts_show_options(struct se
        return 0;
  }
  
@@ -2207,7 +2208,7 @@ diff -NurpP --minimal linux-3.7.7/fs/devpts/inode.c linux-3.7.7-vs2.3.5.6/fs/dev
  static const struct super_operations devpts_sops = {
        .statfs         = simple_statfs,
        .remount_fs     = devpts_remount,
-@@ -379,8 +423,10 @@ devpts_fill_super(struct super_block *s,
+@@ -388,8 +432,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;
@@ -2219,20 +2220,20 @@ diff -NurpP --minimal linux-3.7.7/fs/devpts/inode.c linux-3.7.7-vs2.3.5.6/fs/dev
  
        s->s_root = d_make_root(inode);
        if (s->s_root)
-@@ -572,6 +618,9 @@ int devpts_pty_new(struct inode *ptmx_in
+@@ -592,6 +638,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);
 +      /* devpts is xid tagged */
 +      i_tag_write(inode, (tag_t)vx_current_xid());
 +      inode->i_op = &devpts_file_inode_operations;
-       inode->i_private = tty;
-       tty->driver_data = inode;
+       inode->i_private = priv;
  
-diff -NurpP --minimal linux-3.7.7/fs/ext2/balloc.c linux-3.7.7-vs2.3.5.6/fs/ext2/balloc.c
---- linux-3.7.7/fs/ext2/balloc.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/balloc.c     2012-12-18 15:13:16.000000000 +0000
-@@ -699,7 +699,6 @@ ext2_try_to_allocate(struct super_block
+       sprintf(s, "%d", index);
+diff -NurpP --minimal linux-3.9.4/fs/ext2/balloc.c linux-3.9.4-vs2.3.6.1/fs/ext2/balloc.c
+--- linux-3.9.4/fs/ext2/balloc.c       2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/balloc.c     2013-05-31 14:47:11.000000000 +0000
+@@ -693,7 +693,6 @@ ext2_try_to_allocate(struct super_block
                        start = 0;
                end = EXT2_BLOCKS_PER_GROUP(sb);
        }
@@ -2240,9 +2241,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/balloc.c linux-3.7.7-vs2.3.5.6/fs/ext2
        BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
  
  repeat:
-diff -NurpP --minimal linux-3.7.7/fs/ext2/ext2.h linux-3.7.7-vs2.3.5.6/fs/ext2/ext2.h
---- linux-3.7.7/fs/ext2/ext2.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/ext2.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/ext2.h linux-3.9.4-vs2.3.6.1/fs/ext2/ext2.h
+--- linux-3.9.4/fs/ext2/ext2.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/ext2.h       2013-05-31 14:47:11.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) */
@@ -2290,18 +2291,18 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/ext2.h linux-3.7.7-vs2.3.5.6/fs/ext2/e
  
  /* ioctl.c */
  extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.7.7/fs/ext2/file.c linux-3.7.7-vs2.3.5.6/fs/ext2/file.c
---- linux-3.7.7/fs/ext2/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/file.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/file.c linux-3.9.4-vs2.3.6.1/fs/ext2/file.c
+--- linux-3.9.4/fs/ext2/file.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/file.c       2013-05-31 14:47:11.000000000 +0000
 @@ -104,4 +104,5 @@ const struct inode_operations ext2_file_
        .setattr        = ext2_setattr,
        .get_acl        = ext2_get_acl,
        .fiemap         = ext2_fiemap,
 +      .sync_flags     = ext2_sync_flags,
  };
-diff -NurpP --minimal linux-3.7.7/fs/ext2/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext2/ialloc.c
---- linux-3.7.7/fs/ext2/ialloc.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/ialloc.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/ialloc.c linux-3.9.4-vs2.3.6.1/fs/ext2/ialloc.c
+--- linux-3.9.4/fs/ext2/ialloc.c       2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/ialloc.c     2013-05-31 14:47:11.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/backing-dev.h>
  #include <linux/buffer_head.h>
@@ -2310,7 +2311,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext2
  #include "ext2.h"
  #include "xattr.h"
  #include "acl.h"
-@@ -547,6 +548,7 @@ got:
+@@ -546,6 +547,7 @@ got:
                inode->i_mode = mode;
                inode->i_uid = current_fsuid();
                inode->i_gid = dir->i_gid;
@@ -2318,9 +2319,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext2
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/inode.c
---- linux-3.7.7/fs/ext2/inode.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/inode.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/inode.c linux-3.9.4-vs2.3.6.1/fs/ext2/inode.c
+--- linux-3.9.4/fs/ext2/inode.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/inode.c      2013-05-31 14:47:11.000000000 +0000
 @@ -31,6 +31,7 @@
  #include <linux/mpage.h>
  #include <linux/fiemap.h>
@@ -2329,7 +2330,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
  #include "ext2.h"
  #include "acl.h"
  #include "xip.h"
-@@ -1165,7 +1166,7 @@ static void ext2_truncate_blocks(struct
+@@ -1179,7 +1180,7 @@ static void ext2_truncate_blocks(struct
                return;
        if (ext2_inode_is_fast_symlink(inode))
                return;
@@ -2338,7 +2339,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
                return;
        __ext2_truncate_blocks(inode, offset);
  }
-@@ -1256,36 +1257,61 @@ void ext2_set_inode_flags(struct inode *
+@@ -1270,36 +1271,61 @@ void ext2_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT2_I(inode)->i_flags;
  
@@ -2407,7 +2408,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
  }
  
  struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
-@@ -1321,8 +1347,10 @@ struct inode *ext2_iget (struct super_bl
+@@ -1335,8 +1361,10 @@ struct inode *ext2_iget (struct super_bl
                i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
                i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
        }
@@ -2420,7 +2421,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
        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);
-@@ -1420,8 +1448,10 @@ static int __ext2_write_inode(struct ino
+@@ -1434,8 +1462,10 @@ static int __ext2_write_inode(struct ino
        struct ext2_inode_info *ei = EXT2_I(inode);
        struct super_block *sb = inode->i_sb;
        ino_t ino = inode->i_ino;
@@ -2433,7 +2434,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
        struct buffer_head * bh;
        struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
        int n;
-@@ -1457,6 +1487,9 @@ static int __ext2_write_inode(struct ino
+@@ -1471,6 +1501,9 @@ static int __ext2_write_inode(struct ino
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
@@ -2443,7 +2444,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        raw_inode->i_size = cpu_to_le32(inode->i_size);
        raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
-@@ -1537,7 +1570,8 @@ int ext2_setattr(struct dentry *dentry,
+@@ -1551,7 +1584,8 @@ int ext2_setattr(struct dentry *dentry,
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
        if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
@@ -2453,9 +2454,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/inode.c linux-3.7.7-vs2.3.5.6/fs/ext2/
                error = dquot_transfer(inode, iattr);
                if (error)
                        return error;
-diff -NurpP --minimal linux-3.7.7/fs/ext2/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext2/ioctl.c
---- linux-3.7.7/fs/ext2/ioctl.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/ioctl.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/ioctl.c linux-3.9.4-vs2.3.6.1/fs/ext2/ioctl.c
+--- linux-3.9.4/fs/ext2/ioctl.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/ioctl.c      2013-05-31 14:47:11.000000000 +0000
 @@ -17,6 +17,16 @@
  #include <asm/uaccess.h>
  
@@ -2472,7 +2473,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext2/
 +
  long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
-       struct inode *inode = filp->f_dentry->d_inode;
+       struct inode *inode = file_inode(filp);
 @@ -51,6 +61,11 @@ long ext2_ioctl(struct file *filp, unsig
  
                flags = ext2_mask_flags(inode->i_mode, flags);
@@ -2505,9 +2506,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext2/
                flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.7.7/fs/ext2/namei.c linux-3.7.7-vs2.3.5.6/fs/ext2/namei.c
---- linux-3.7.7/fs/ext2/namei.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/namei.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/namei.c linux-3.9.4-vs2.3.6.1/fs/ext2/namei.c
+--- linux-3.9.4/fs/ext2/namei.c        2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/namei.c      2013-05-31 14:47:11.000000000 +0000
 @@ -32,6 +32,7 @@
  
  #include <linux/pagemap.h>
@@ -2532,9 +2533,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/namei.c linux-3.7.7-vs2.3.5.6/fs/ext2/
        .get_acl        = ext2_get_acl,
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/ext2/super.c linux-3.7.7-vs2.3.5.6/fs/ext2/super.c
---- linux-3.7.7/fs/ext2/super.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext2/super.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext2/super.c linux-3.9.4-vs2.3.6.1/fs/ext2/super.c
+--- linux-3.9.4/fs/ext2/super.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext2/super.c      2013-05-31 14:47:11.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,
@@ -2600,9 +2601,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext2/super.c linux-3.7.7-vs2.3.5.6/fs/ext2/
  
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.7.7/fs/ext3/ext3.h linux-3.7.7-vs2.3.5.6/fs/ext3/ext3.h
---- linux-3.7.7/fs/ext3/ext3.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/ext3.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/ext3.h linux-3.9.4-vs2.3.6.1/fs/ext3/ext3.h
+--- linux-3.9.4/fs/ext3/ext3.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/ext3.h       2013-05-31 14:47:11.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) */
@@ -2654,9 +2655,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/ext3.h linux-3.7.7-vs2.3.5.6/fs/ext3/e
  
  /* ioctl.c */
  extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.7.7/fs/ext3/file.c linux-3.7.7-vs2.3.5.6/fs/ext3/file.c
---- linux-3.7.7/fs/ext3/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/file.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/file.c linux-3.9.4-vs2.3.6.1/fs/ext3/file.c
+--- linux-3.9.4/fs/ext3/file.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/file.c       2013-05-31 14:47:11.000000000 +0000
 @@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
  #endif
        .get_acl        = ext3_get_acl,
@@ -2664,9 +2665,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/file.c linux-3.7.7-vs2.3.5.6/fs/ext3/f
 +      .sync_flags     = ext3_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/ext3/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext3/ialloc.c
---- linux-3.7.7/fs/ext3/ialloc.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/ialloc.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/ialloc.c linux-3.9.4-vs2.3.6.1/fs/ext3/ialloc.c
+--- linux-3.9.4/fs/ext3/ialloc.c       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/ialloc.c     2013-05-31 14:47:11.000000000 +0000
 @@ -14,6 +14,7 @@
  
  #include <linux/quotaops.h>
@@ -2683,9 +2684,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext3
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/inode.c
---- linux-3.7.7/fs/ext3/inode.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/inode.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/inode.c linux-3.9.4-vs2.3.6.1/fs/ext3/inode.c
+--- linux-3.9.4/fs/ext3/inode.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/inode.c      2013-05-31 14:47:11.000000000 +0000
 @@ -27,6 +27,8 @@
  #include <linux/writeback.h>
  #include <linux/mpage.h>
@@ -2695,7 +2696,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
  #include "ext3.h"
  #include "xattr.h"
  #include "acl.h"
-@@ -2848,36 +2850,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2851,36 +2853,60 @@ void ext3_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT3_I(inode)->i_flags;
  
@@ -2763,7 +2764,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
  }
  
  struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2915,8 +2941,10 @@ struct inode *ext3_iget(struct super_blo
+@@ -2918,8 +2944,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;
        }
@@ -2776,7 +2777,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        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);
-@@ -3088,8 +3116,10 @@ again:
+@@ -3091,8 +3119,10 @@ again:
  
        ext3_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -2789,7 +2790,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        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));
-@@ -3114,6 +3144,9 @@ again:
+@@ -3117,6 +3147,9 @@ again:
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
@@ -2799,7 +2800,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        disksize = cpu_to_le32(ei->i_disksize);
        if (disksize != raw_inode->i_size) {
-@@ -3282,7 +3315,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3285,7 +3318,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)) ||
@@ -2809,7 +2810,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -3304,6 +3338,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3307,6 +3341,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;
@@ -2818,9 +2819,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/inode.c linux-3.7.7-vs2.3.5.6/fs/ext3/
                error = ext3_mark_inode_dirty(handle, inode);
                ext3_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.7.7/fs/ext3/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext3/ioctl.c
---- linux-3.7.7/fs/ext3/ioctl.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/ioctl.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/ioctl.c linux-3.9.4-vs2.3.6.1/fs/ext3/ioctl.c
+--- linux-3.9.4/fs/ext3/ioctl.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/ioctl.c      2013-05-31 14:47:11.000000000 +0000
 @@ -12,6 +12,34 @@
  #include <asm/uaccess.h>
  #include "ext3.h"
@@ -2855,7 +2856,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext3/
 +
  long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
-       struct inode *inode = filp->f_dentry->d_inode;
+       struct inode *inode = file_inode(filp);
 @@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsig
  
                flags = ext3_mask_flags(inode->i_mode, flags);
@@ -2888,9 +2889,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext3/
                flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.7.7/fs/ext3/namei.c linux-3.7.7-vs2.3.5.6/fs/ext3/namei.c
---- linux-3.7.7/fs/ext3/namei.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/namei.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/namei.c linux-3.9.4-vs2.3.6.1/fs/ext3/namei.c
+--- linux-3.9.4/fs/ext3/namei.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/namei.c      2013-05-31 14:47:11.000000000 +0000
 @@ -25,6 +25,8 @@
   */
  
@@ -2900,7 +2901,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/namei.c linux-3.7.7-vs2.3.5.6/fs/ext3/
  #include "ext3.h"
  #include "namei.h"
  #include "xattr.h"
-@@ -919,6 +921,7 @@ restart:
+@@ -918,6 +920,7 @@ restart:
                                        submit_bh(READ | REQ_META | REQ_PRIO,
                                                  bh);
                                }
@@ -2908,7 +2909,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/namei.c linux-3.7.7-vs2.3.5.6/fs/ext3/
                        }
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
-@@ -2528,6 +2531,7 @@ const struct inode_operations ext3_dir_i
+@@ -2527,6 +2530,7 @@ const struct inode_operations ext3_dir_i
        .listxattr      = ext3_listxattr,
        .removexattr    = generic_removexattr,
  #endif
@@ -2916,9 +2917,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/namei.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        .get_acl        = ext3_get_acl,
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/ext3/super.c linux-3.7.7-vs2.3.5.6/fs/ext3/super.c
---- linux-3.7.7/fs/ext3/super.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext3/super.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext3/super.c linux-3.9.4-vs2.3.6.1/fs/ext3/super.c
+--- linux-3.9.4/fs/ext3/super.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext3/super.c      2013-05-31 14:47:11.000000000 +0000
 @@ -816,7 +816,8 @@ enum {
        Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
        Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
@@ -2939,7 +2940,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/super.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        {Opt_err, NULL},
  };
  
-@@ -1038,6 +1042,20 @@ static int parse_options (char *options,
+@@ -1040,6 +1044,20 @@ static int parse_options (char *options,
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2960,7 +2961,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/super.c linux-3.7.7-vs2.3.5.6/fs/ext3/
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -1738,6 +1756,9 @@ static int ext3_fill_super (struct super
+@@ -1737,6 +1755,9 @@ static int ext3_fill_super (struct super
                            NULL, 0))
                goto failed_mount;
  
@@ -2970,7 +2971,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/super.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -2622,6 +2643,14 @@ static int ext3_remount (struct super_bl
+@@ -2633,6 +2654,14 @@ static int ext3_remount (struct super_bl
        if (test_opt(sb, ABORT))
                ext3_abort(sb, __func__, "Abort forced by user");
  
@@ -2985,23 +2986,21 @@ diff -NurpP --minimal linux-3.7.7/fs/ext3/super.c linux-3.7.7-vs2.3.5.6/fs/ext3/
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.7.7/fs/ext4/ext4.h linux-3.7.7-vs2.3.5.6/fs/ext4/ext4.h
---- linux-3.7.7/fs/ext4/ext4.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/ext4.h       2012-12-18 15:13:16.000000000 +0000
-@@ -392,8 +392,12 @@ struct flex_groups {
+diff -NurpP --minimal linux-3.9.4/fs/ext4/ext4.h linux-3.9.4-vs2.3.6.1/fs/ext4/ext4.h
+--- linux-3.9.4/fs/ext4/ext4.h 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/ext4.h       2013-05-31 16:22:49.000000000 +0000
+@@ -399,7 +399,10 @@ struct flex_groups {
  #define EXT4_EXTENTS_FL                       0x00080000 /* Inode uses extents */
  #define EXT4_EA_INODE_FL              0x00200000 /* Inode used for large EA */
  #define EXT4_EOFBLOCKS_FL             0x00400000 /* Blocks allocated beyond EOF */
++#define EXT4_BARRIER_FL                       0x04000000 /* Barrier for chroot() */
 +#define EXT4_IXUNLINK_FL              0x08000000 /* Immutable invert on unlink */
+ #define EXT4_INLINE_DATA_FL           0x10000000 /* Inode has inline data. */
++#define EXT4_COW_FL                   0x20000000 /* Copy on Write marker */
  #define EXT4_RESERVED_FL              0x80000000 /* reserved for ext4 lib */
  
-+#define EXT4_BARRIER_FL                       0x04000000 /* Barrier for chroot() */
-+#define EXT4_COW_FL                   0x20000000 /* Copy on Write marker */
-+
  #define EXT4_FL_USER_VISIBLE          0x004BDFFF /* User visible flags */
- #define EXT4_FL_USER_MODIFIABLE               0x004B80FF /* User modifiable flags */
-@@ -665,7 +669,7 @@ struct ext4_inode {
+@@ -674,7 +677,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 */
@@ -3010,7 +3009,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ext4.h linux-3.7.7-vs2.3.5.6/fs/ext4/e
                } linux2;
                struct {
                        __le16  h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
-@@ -783,6 +787,7 @@ do {                                                                              \
+@@ -792,6 +795,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
@@ -3018,7 +3017,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ext4.h linux-3.7.7-vs2.3.5.6/fs/ext4/e
  #define i_checksum_lo osd2.linux2.l_i_checksum_lo
  
  #elif defined(__GNU__)
-@@ -961,6 +966,7 @@ struct ext4_inode_info {
+@@ -969,6 +973,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 */
@@ -3026,27 +3025,27 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ext4.h linux-3.7.7-vs2.3.5.6/fs/ext4/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 */
-@@ -2412,6 +2418,7 @@ extern int ext4_map_blocks(handle_t *han
-                          struct ext4_map_blocks *map, int flags);
extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
-                       __u64 start, __u64 len);
+@@ -2527,6 +2532,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);
 +extern int ext4_sync_flags(struct inode *, int, int);
- /* move_extent.c */
extern int ext4_move_extents(struct file *o_filp, struct file *d_filp,
-                            __u64 start_orig, __u64 start_donor,
-diff -NurpP --minimal linux-3.7.7/fs/ext4/file.c linux-3.7.7-vs2.3.5.6/fs/ext4/file.c
---- linux-3.7.7/fs/ext4/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/file.c       2012-12-18 15:13:16.000000000 +0000
-@@ -334,5 +334,6 @@ const struct inode_operations ext4_file_
- #endif
+ extern int ext4_try_to_evict_inline_data(handle_t *handle,
                                       struct inode *inode,
+                                        int needed);
+diff -NurpP --minimal linux-3.9.4/fs/ext4/file.c linux-3.9.4-vs2.3.6.1/fs/ext4/file.c
+--- linux-3.9.4/fs/ext4/file.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/file.c       2013-05-31 14:47:11.000000000 +0000
+@@ -650,5 +650,6 @@ const struct inode_operations ext4_file_
+       .removexattr    = generic_removexattr,
        .get_acl        = ext4_get_acl,
        .fiemap         = ext4_fiemap,
 +      .sync_flags     = ext4_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/ext4/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext4/ialloc.c
---- linux-3.7.7/fs/ext4/ialloc.c       2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/ialloc.c     2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext4/ialloc.c linux-3.9.4-vs2.3.6.1/fs/ext4/ialloc.c
+--- linux-3.9.4/fs/ext4/ialloc.c       2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/ialloc.c     2013-05-31 14:47:11.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/random.h>
  #include <linux/bitops.h>
@@ -3055,7 +3054,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext4
  #include <asm/byteorder.h>
  
  #include "ext4.h"
-@@ -848,6 +849,7 @@ got:
+@@ -859,6 +860,7 @@ got:
                inode->i_mode = mode;
                inode->i_uid = current_fsuid();
                inode->i_gid = dir->i_gid;
@@ -3063,9 +3062,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ialloc.c linux-3.7.7-vs2.3.5.6/fs/ext4
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/inode.c
---- linux-3.7.7/fs/ext4/inode.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/inode.c      2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext4/inode.c linux-3.9.4-vs2.3.6.1/fs/ext4/inode.c
+--- linux-3.9.4/fs/ext4/inode.c        2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/inode.c      2013-05-31 14:47:11.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/printk.h>
  #include <linux/slab.h>
@@ -3074,7 +3073,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
  
  #include "ext4_jbd2.h"
  #include "xattr.h"
-@@ -3697,41 +3698,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -3870,41 +3871,64 @@ void ext4_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT4_I(inode)->i_flags;
  
@@ -3146,7 +3145,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
  }
  
-@@ -3823,8 +3847,10 @@ struct inode *ext4_iget(struct super_blo
+@@ -4009,8 +4033,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;
        }
@@ -3159,7 +3158,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
  
        ext4_clear_state_flags(ei);     /* Only relevant on 32-bit archs */
-@@ -4048,8 +4074,10 @@ static int ext4_do_update_inode(handle_t
+@@ -4233,8 +4259,10 @@ static int ext4_do_update_inode(handle_t
  
        ext4_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
@@ -3172,7 +3171,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        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));
-@@ -4072,6 +4100,9 @@ static int ext4_do_update_inode(handle_t
+@@ -4257,6 +4285,9 @@ static int ext4_do_update_inode(handle_t
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
@@ -3182,7 +3181,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  
        EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4260,7 +4291,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4487,7 +4518,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)) ||
@@ -3192,7 +3191,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -4282,6 +4314,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -4510,6 +4542,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;
@@ -3201,9 +3200,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/inode.c linux-3.7.7-vs2.3.5.6/fs/ext4/
                error = ext4_mark_inode_dirty(handle, inode);
                ext4_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.7.7/fs/ext4/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext4/ioctl.c
---- linux-3.7.7/fs/ext4/ioctl.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/ioctl.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext4/ioctl.c linux-3.9.4-vs2.3.6.1/fs/ext4/ioctl.c
+--- linux-3.9.4/fs/ext4/ioctl.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/ioctl.c      2013-05-31 19:50:08.000000000 +0000
 @@ -14,12 +14,40 @@
  #include <linux/compat.h>
  #include <linux/mount.h>
@@ -3221,7 +3220,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext4/
 +      struct ext4_iloc iloc;
 +      int err;
 +
-+      handle = ext4_journal_start(inode, 1);
++      handle = ext4_journal_start(inode, EXT4_HT_INODE, 1);
 +      if (IS_ERR(handle))
 +              return PTR_ERR(handle);
 +
@@ -3244,7 +3243,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext4/
 +
  long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
-       struct inode *inode = filp->f_dentry->d_inode;
+       struct inode *inode = file_inode(filp);
 @@ -53,6 +81,11 @@ long ext4_ioctl(struct file *filp, unsig
  
                flags = ext4_mask_flags(inode->i_mode, flags);
@@ -3268,9 +3267,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ext4/
                        if (!capable(CAP_LINUX_IMMUTABLE))
                                goto flags_out;
                }
-diff -NurpP --minimal linux-3.7.7/fs/ext4/namei.c linux-3.7.7-vs2.3.5.6/fs/ext4/namei.c
---- linux-3.7.7/fs/ext4/namei.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/namei.c      2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ext4/namei.c linux-3.9.4-vs2.3.6.1/fs/ext4/namei.c
+--- linux-3.9.4/fs/ext4/namei.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/namei.c      2013-05-31 14:47:11.000000000 +0000
 @@ -34,6 +34,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -3279,7 +3278,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/namei.c linux-3.7.7-vs2.3.5.6/fs/ext4/
  #include "ext4.h"
  #include "ext4_jbd2.h"
  
-@@ -1232,6 +1233,7 @@ restart:
+@@ -1290,6 +1291,7 @@ restart:
                                        ll_rw_block(READ | REQ_META | REQ_PRIO,
                                                    1, &bh);
                        }
@@ -3287,18 +3286,18 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/namei.c linux-3.7.7-vs2.3.5.6/fs/ext4/
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
                        goto next;
-@@ -3052,6 +3054,7 @@ const struct inode_operations ext4_dir_i
- #endif
+@@ -3190,6 +3192,7 @@ const struct inode_operations ext4_dir_i
+       .removexattr    = generic_removexattr,
        .get_acl        = ext4_get_acl,
        .fiemap         = ext4_fiemap,
 +      .sync_flags     = ext4_sync_flags,
  };
  
  const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/super.c
---- linux-3.7.7/fs/ext4/super.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ext4/super.c      2013-02-05 01:15:45.000000000 +0000
-@@ -1222,7 +1222,7 @@ enum {
+diff -NurpP --minimal linux-3.9.4/fs/ext4/super.c linux-3.9.4-vs2.3.6.1/fs/ext4/super.c
+--- linux-3.9.4/fs/ext4/super.c        2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ext4/super.c      2013-05-31 14:47:11.000000000 +0000
+@@ -1131,7 +1131,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,
@@ -3307,7 +3306,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/
  };
  
  static const match_table_t tokens = {
-@@ -1302,6 +1302,9 @@ static const match_table_t tokens = {
+@@ -1211,6 +1211,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 */
@@ -3317,9 +3316,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        {Opt_err, NULL},
  };
  
-@@ -1549,6 +1552,20 @@ static int handle_mount_opt(struct super
-                       return -1;
-               *journal_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, arg);
+@@ -1441,6 +1444,20 @@ static int handle_mount_opt(struct super
+       case Opt_i_version:
+               sb->s_flags |= MS_I_VERSION;
                return 1;
 +#ifndef CONFIG_TAGGING_NONE
 +      case Opt_tag:
@@ -3337,8 +3336,8 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/
 +#endif
        }
  
-       for (m = ext4_mount_opts; m->token != Opt_err; m++) {
-@@ -3456,6 +3473,9 @@ static int ext4_fill_super(struct super_
+       for (m = ext4_mount_opts; m->token != Opt_err; m++)
+@@ -3401,6 +3418,9 @@ static int ext4_fill_super(struct super_
                        clear_opt(sb, DELALLOC);
        }
  
@@ -3348,7 +3347,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -4620,6 +4640,14 @@ static int ext4_remount(struct super_blo
+@@ -4587,6 +4607,14 @@ static int ext4_remount(struct super_blo
        if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
                ext4_abort(sb, "Abort forced by user");
  
@@ -3363,9 +3362,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ext4/super.c linux-3.7.7-vs2.3.5.6/fs/ext4/
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.7.7/fs/fcntl.c linux-3.7.7-vs2.3.5.6/fs/fcntl.c
---- linux-3.7.7/fs/fcntl.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/fcntl.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/fcntl.c linux-3.9.4-vs2.3.6.1/fs/fcntl.c
+--- linux-3.9.4/fs/fcntl.c     2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/fcntl.c   2013-05-31 14:47:11.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/rcupdate.h>
  #include <linux/pid_namespace.h>
@@ -3383,9 +3382,9 @@ diff -NurpP --minimal linux-3.7.7/fs/fcntl.c linux-3.7.7-vs2.3.5.6/fs/fcntl.c
  
        if (unlikely(f.file->f_mode & FMODE_PATH)) {
                if (!check_fcntl_cmd(cmd))
-diff -NurpP --minimal linux-3.7.7/fs/file.c linux-3.7.7-vs2.3.5.6/fs/file.c
---- linux-3.7.7/fs/file.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/file.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/file.c linux-3.9.4-vs2.3.6.1/fs/file.c
+--- linux-3.9.4/fs/file.c      2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/file.c    2013-05-31 14:47:11.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/spinlock.h>
  #include <linux/rcupdate.h>
@@ -3415,7 +3414,7 @@ diff -NurpP --minimal linux-3.7.7/fs/file.c linux-3.7.7-vs2.3.5.6/fs/file.c
                }
        }
  }
-@@ -573,6 +578,7 @@ repeat:
+@@ -567,6 +572,7 @@ repeat:
        else
                __clear_close_on_exec(fd, fdt);
        error = fd;
@@ -3423,7 +3422,7 @@ diff -NurpP --minimal linux-3.7.7/fs/file.c linux-3.7.7-vs2.3.5.6/fs/file.c
  #if 1
        /* Sanity check */
        if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-@@ -603,6 +609,7 @@ static void __put_unused_fd(struct files
+@@ -597,6 +603,7 @@ static void __put_unused_fd(struct files
        __clear_open_fd(fd, fdt);
        if (fd < files->next_fd)
                files->next_fd = fd;
@@ -3431,7 +3430,7 @@ diff -NurpP --minimal linux-3.7.7/fs/file.c linux-3.7.7-vs2.3.5.6/fs/file.c
  }
  
  void put_unused_fd(unsigned int fd)
-@@ -882,6 +889,8 @@ static int do_dup2(struct files_struct *
+@@ -876,6 +883,8 @@ static int do_dup2(struct files_struct *
  
        if (tofree)
                filp_close(tofree, files);
@@ -3440,9 +3439,9 @@ diff -NurpP --minimal linux-3.7.7/fs/file.c linux-3.7.7-vs2.3.5.6/fs/file.c
  
        return fd;
  
-diff -NurpP --minimal linux-3.7.7/fs/file_table.c linux-3.7.7-vs2.3.5.6/fs/file_table.c
---- linux-3.7.7/fs/file_table.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/file_table.c      2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/file_table.c linux-3.9.4-vs2.3.6.1/fs/file_table.c
+--- linux-3.9.4/fs/file_table.c        2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/file_table.c      2013-05-31 14:47:11.000000000 +0000
 @@ -26,6 +26,8 @@
  #include <linux/hardirq.h>
  #include <linux/task_work.h>
@@ -3452,7 +3451,7 @@ diff -NurpP --minimal linux-3.7.7/fs/file_table.c linux-3.7.7-vs2.3.5.6/fs/file_
  
  #include <linux/atomic.h>
  
-@@ -136,6 +138,8 @@ struct file *get_empty_filp(void)
+@@ -140,6 +142,8 @@ struct file *get_empty_filp(void)
        spin_lock_init(&f->f_lock);
        eventpoll_init_file(f);
        /* f->f_version: 0 */
@@ -3469,8 +3468,8 @@ diff -NurpP --minimal linux-3.7.7/fs/file_table.c linux-3.7.7-vs2.3.5.6/fs/file_
 +      file->f_xid = 0;
        file->f_path.dentry = NULL;
        file->f_path.mnt = NULL;
-       file_free(file);
-@@ -343,6 +349,8 @@ void put_filp(struct file *file)
+       file->f_inode = NULL;
+@@ -344,6 +350,8 @@ void put_filp(struct file *file)
  {
        if (atomic_long_dec_and_test(&file->f_count)) {
                security_file_free(file);
@@ -3479,9 +3478,9 @@ diff -NurpP --minimal linux-3.7.7/fs/file_table.c linux-3.7.7-vs2.3.5.6/fs/file_
                file_sb_list_del(file);
                file_free(file);
        }
-diff -NurpP --minimal linux-3.7.7/fs/fs_struct.c linux-3.7.7-vs2.3.5.6/fs/fs_struct.c
---- linux-3.7.7/fs/fs_struct.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/fs_struct.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/fs_struct.c linux-3.9.4-vs2.3.6.1/fs/fs_struct.c
+--- linux-3.9.4/fs/fs_struct.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/fs_struct.c       2013-05-31 14:47:11.000000000 +0000
 @@ -4,6 +4,7 @@
  #include <linux/path.h>
  #include <linux/slab.h>
@@ -3506,9 +3505,9 @@ diff -NurpP --minimal linux-3.7.7/fs/fs_struct.c linux-3.7.7-vs2.3.5.6/fs/fs_str
        }
        return fs;
  }
-diff -NurpP --minimal linux-3.7.7/fs/gfs2/file.c linux-3.7.7-vs2.3.5.6/fs/gfs2/file.c
---- linux-3.7.7/fs/gfs2/file.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/gfs2/file.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/gfs2/file.c linux-3.9.4-vs2.3.6.1/fs/gfs2/file.c
+--- linux-3.9.4/fs/gfs2/file.c 2013-05-31 13:45:23.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/gfs2/file.c       2013-05-31 19:54:27.000000000 +0000
 @@ -143,6 +143,9 @@ static const u32 fsflags_to_gfs2[32] = {
        [12] = GFS2_DIF_EXHASH,
        [14] = GFS2_DIF_INHERIT_JDATA,
@@ -3614,7 +3613,7 @@ diff -NurpP --minimal linux-3.7.7/fs/gfs2/file.c linux-3.7.7-vs2.3.5.6/fs/gfs2/f
 +      error = gfs2_meta_inode_buffer(ip, &bh);
 +      if (error)
 +              goto out_trans_end;
-+      gfs2_trans_add_bh(ip->i_gl, bh, 1);
++      gfs2_trans_add_meta(ip->i_gl, bh);
 +      inode->i_flags = flags;
 +      inode->i_vflags = vflags;
 +      gfs2_get_inode_flags(inode);
@@ -3631,9 +3630,9 @@ diff -NurpP --minimal linux-3.7.7/fs/gfs2/file.c linux-3.7.7-vs2.3.5.6/fs/gfs2/f
  static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        switch(cmd) {
-diff -NurpP --minimal linux-3.7.7/fs/gfs2/inode.h linux-3.7.7-vs2.3.5.6/fs/gfs2/inode.h
---- linux-3.7.7/fs/gfs2/inode.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/gfs2/inode.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/gfs2/inode.h linux-3.9.4-vs2.3.6.1/fs/gfs2/inode.h
+--- linux-3.9.4/fs/gfs2/inode.h        2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/gfs2/inode.h      2013-05-31 14:47:11.000000000 +0000
 @@ -117,6 +117,7 @@ extern const struct file_operations gfs2
  extern const struct file_operations gfs2_dir_fops_nolock;
  
@@ -3642,9 +3641,9 @@ diff -NurpP --minimal linux-3.7.7/fs/gfs2/inode.h linux-3.7.7-vs2.3.5.6/fs/gfs2/
   
  #ifdef CONFIG_GFS2_FS_LOCKING_DLM
  extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.7.7/fs/hostfs/hostfs.h linux-3.7.7-vs2.3.5.6/fs/hostfs/hostfs.h
---- linux-3.7.7/fs/hostfs/hostfs.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/hostfs/hostfs.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/hostfs/hostfs.h linux-3.9.4-vs2.3.6.1/fs/hostfs/hostfs.h
+--- linux-3.9.4/fs/hostfs/hostfs.h     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/hostfs/hostfs.h   2013-05-31 14:47:11.000000000 +0000
 @@ -42,6 +42,7 @@ struct hostfs_iattr {
        unsigned short  ia_mode;
        uid_t           ia_uid;
@@ -3653,9 +3652,9 @@ diff -NurpP --minimal linux-3.7.7/fs/hostfs/hostfs.h linux-3.7.7-vs2.3.5.6/fs/ho
        loff_t          ia_size;
        struct timespec ia_atime;
        struct timespec ia_mtime;
-diff -NurpP --minimal linux-3.7.7/fs/inode.c linux-3.7.7-vs2.3.5.6/fs/inode.c
---- linux-3.7.7/fs/inode.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/inode.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/inode.c linux-3.9.4-vs2.3.6.1/fs/inode.c
+--- linux-3.9.4/fs/inode.c     2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/inode.c   2013-05-31 14:47:11.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/prefetch.h>
  #include <linux/buffer_head.h> /* for inode_has_buffers */
@@ -3698,7 +3697,7 @@ diff -NurpP --minimal linux-3.7.7/fs/inode.c linux-3.7.7-vs2.3.5.6/fs/inode.c
  /**
   *    __remove_inode_hash - remove an inode from the hash
   *    @inode: inode to unhash
-@@ -1804,9 +1811,11 @@ void init_special_inode(struct inode *in
+@@ -1799,9 +1806,11 @@ void init_special_inode(struct inode *in
        if (S_ISCHR(mode)) {
                inode->i_fop = &def_chr_fops;
                inode->i_rdev = rdev;
@@ -3710,7 +3709,7 @@ diff -NurpP --minimal linux-3.7.7/fs/inode.c linux-3.7.7-vs2.3.5.6/fs/inode.c
        } else if (S_ISFIFO(mode))
                inode->i_fop = &def_fifo_fops;
        else if (S_ISSOCK(mode))
-@@ -1835,6 +1844,7 @@ void inode_init_owner(struct inode *inod
+@@ -1830,6 +1839,7 @@ void inode_init_owner(struct inode *inod
        } else
                inode->i_gid = current_fsgid();
        inode->i_mode = mode;
@@ -3718,9 +3717,9 @@ diff -NurpP --minimal linux-3.7.7/fs/inode.c linux-3.7.7-vs2.3.5.6/fs/inode.c
  }
  EXPORT_SYMBOL(inode_init_owner);
  
-diff -NurpP --minimal linux-3.7.7/fs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ioctl.c
---- linux-3.7.7/fs/ioctl.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ioctl.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ioctl.c linux-3.9.4-vs2.3.6.1/fs/ioctl.c
+--- linux-3.9.4/fs/ioctl.c     2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ioctl.c   2013-05-31 14:47:11.000000000 +0000
 @@ -15,6 +15,9 @@
  #include <linux/writeback.h>
  #include <linux/buffer_head.h>
@@ -3731,9 +3730,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ioctl.c
  
  #include <asm/ioctls.h>
  
-diff -NurpP --minimal linux-3.7.7/fs/ioprio.c linux-3.7.7-vs2.3.5.6/fs/ioprio.c
---- linux-3.7.7/fs/ioprio.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ioprio.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ioprio.c linux-3.9.4-vs2.3.6.1/fs/ioprio.c
+--- linux-3.9.4/fs/ioprio.c    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ioprio.c  2013-05-31 14:47:11.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/syscalls.h>
  #include <linux/security.h>
@@ -3760,9 +3759,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ioprio.c linux-3.7.7-vs2.3.5.6/fs/ioprio.c
                                tmpio = get_task_ioprio(p);
                                if (tmpio < 0)
                                        continue;
-diff -NurpP --minimal linux-3.7.7/fs/jfs/file.c linux-3.7.7-vs2.3.5.6/fs/jfs/file.c
---- linux-3.7.7/fs/jfs/file.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/file.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/file.c linux-3.9.4-vs2.3.6.1/fs/jfs/file.c
+--- linux-3.9.4/fs/jfs/file.c  2013-02-19 13:58:48.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/file.c        2013-05-31 14:47:11.000000000 +0000
 @@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
@@ -3773,7 +3772,7 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/file.c linux-3.7.7-vs2.3.5.6/fs/jfs/fil
                rc = dquot_transfer(inode, iattr);
                if (rc)
                        return rc;
-@@ -142,6 +143,7 @@ const struct inode_operations jfs_file_i
+@@ -144,6 +145,7 @@ const struct inode_operations jfs_file_i
  #ifdef CONFIG_JFS_POSIX_ACL
        .get_acl        = jfs_get_acl,
  #endif
@@ -3781,9 +3780,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/file.c linux-3.7.7-vs2.3.5.6/fs/jfs/fil
  };
  
  const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.7.7/fs/jfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/jfs/ioctl.c
---- linux-3.7.7/fs/jfs/ioctl.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/ioctl.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/ioctl.c linux-3.9.4-vs2.3.6.1/fs/jfs/ioctl.c
+--- linux-3.9.4/fs/jfs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/ioctl.c       2013-05-31 14:47:11.000000000 +0000
 @@ -12,6 +12,7 @@
  #include <linux/time.h>
  #include <linux/sched.h>
@@ -3808,7 +3807,7 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/jfs/io
 +
  long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
-       struct inode *inode = filp->f_dentry->d_inode;
+       struct inode *inode = file_inode(filp);
 @@ -89,6 +100,11 @@ long jfs_ioctl(struct file *filp, unsign
                if (!S_ISDIR(inode->i_mode))
                        flags &= ~JFS_DIRSYNC_FL;
@@ -3841,9 +3840,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/ioctl.c linux-3.7.7-vs2.3.5.6/fs/jfs/io
                flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
                jfs_inode->mode2 = flags;
  
-diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_dinode.h linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_dinode.h
---- linux-3.7.7/fs/jfs/jfs_dinode.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_dinode.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/jfs_dinode.h linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_dinode.h
+--- linux-3.9.4/fs/jfs/jfs_dinode.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_dinode.h  2013-05-31 14:47:11.000000000 +0000
 @@ -161,9 +161,13 @@ struct dinode {
  
  #define JFS_APPEND_FL         0x01000000 /* writes to file may only append */
@@ -3860,9 +3859,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_dinode.h linux-3.7.7-vs2.3.5.6/fs/j
  #define JFS_FL_INHERIT                0x03C80000
  
  /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_filsys.h linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_filsys.h
---- linux-3.7.7/fs/jfs/jfs_filsys.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_filsys.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/jfs_filsys.h linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_filsys.h
+--- linux-3.9.4/fs/jfs/jfs_filsys.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_filsys.h  2013-05-31 14:47:11.000000000 +0000
 @@ -266,6 +266,7 @@
  #define JFS_NAME_MAX  255
  #define JFS_PATH_MAX  BPSIZE
@@ -3871,9 +3870,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_filsys.h linux-3.7.7-vs2.3.5.6/fs/j
  
  /*
   *    file system state (superblock state)
-diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_imap.c linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_imap.c
---- linux-3.7.7/fs/jfs/jfs_imap.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_imap.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/jfs_imap.c linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_imap.c
+--- linux-3.9.4/fs/jfs/jfs_imap.c      2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_imap.c    2013-05-31 14:47:11.000000000 +0000
 @@ -46,6 +46,7 @@
  #include <linux/pagemap.h>
  #include <linux/quotaops.h>
@@ -3938,9 +3937,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_imap.c linux-3.7.7-vs2.3.5.6/fs/jfs
        jfs_get_inode_flags(jfs_ip);
        /*
         * mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_inode.c linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_inode.c
---- linux-3.7.7/fs/jfs/jfs_inode.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_inode.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/jfs_inode.c linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_inode.c
+--- linux-3.9.4/fs/jfs/jfs_inode.c     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_inode.c   2013-05-31 14:47:11.000000000 +0000
 @@ -18,6 +18,7 @@
  
  #include <linux/fs.h>
@@ -4014,9 +4013,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_inode.c linux-3.7.7-vs2.3.5.6/fs/jf
  }
  
  /*
-diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_inode.h linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_inode.h
---- linux-3.7.7/fs/jfs/jfs_inode.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/jfs_inode.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/jfs_inode.h linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_inode.h
+--- linux-3.9.4/fs/jfs/jfs_inode.h     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/jfs_inode.h   2013-05-31 14:47:11.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);
@@ -4025,9 +4024,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/jfs_inode.h linux-3.7.7-vs2.3.5.6/fs/jf
  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.7.7/fs/jfs/namei.c linux-3.7.7-vs2.3.5.6/fs/jfs/namei.c
---- linux-3.7.7/fs/jfs/namei.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/namei.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/namei.c linux-3.9.4-vs2.3.6.1/fs/jfs/namei.c
+--- linux-3.9.4/fs/jfs/namei.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/namei.c       2013-05-31 14:47:11.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/ctype.h>
  #include <linux/quotaops.h>
@@ -4052,9 +4051,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/namei.c linux-3.7.7-vs2.3.5.6/fs/jfs/na
  };
  
  const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.7.7/fs/jfs/super.c linux-3.7.7-vs2.3.5.6/fs/jfs/super.c
---- linux-3.7.7/fs/jfs/super.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/jfs/super.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/jfs/super.c linux-3.9.4-vs2.3.6.1/fs/jfs/super.c
+--- linux-3.9.4/fs/jfs/super.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/jfs/super.c       2013-05-31 14:47:11.000000000 +0000
 @@ -199,7 +199,8 @@ enum {
        Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
        Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
@@ -4121,9 +4120,9 @@ diff -NurpP --minimal linux-3.7.7/fs/jfs/super.c linux-3.7.7-vs2.3.5.6/fs/jfs/su
  
        if (newLVSize) {
                pr_err("resize option for remount only\n");
-diff -NurpP --minimal linux-3.7.7/fs/libfs.c linux-3.7.7-vs2.3.5.6/fs/libfs.c
---- linux-3.7.7/fs/libfs.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/libfs.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/libfs.c linux-3.9.4-vs2.3.6.1/fs/libfs.c
+--- linux-3.9.4/fs/libfs.c     2013-02-19 13:58:48.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/libfs.c   2013-05-31 14:47:11.000000000 +0000
 @@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
   * both impossible due to the lock on directory.
   */
@@ -4161,7 +4160,7 @@ diff -NurpP --minimal linux-3.7.7/fs/libfs.c linux-3.7.7-vs2.3.5.6/fs/libfs.c
  ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
  {
        return -EISDIR;
-@@ -983,6 +997,7 @@ EXPORT_SYMBOL(dcache_dir_close);
+@@ -981,6 +995,7 @@ EXPORT_SYMBOL(dcache_dir_close);
  EXPORT_SYMBOL(dcache_dir_lseek);
  EXPORT_SYMBOL(dcache_dir_open);
  EXPORT_SYMBOL(dcache_readdir);
@@ -4169,9 +4168,9 @@ diff -NurpP --minimal linux-3.7.7/fs/libfs.c linux-3.7.7-vs2.3.5.6/fs/libfs.c
  EXPORT_SYMBOL(generic_read_dir);
  EXPORT_SYMBOL(mount_pseudo);
  EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-3.7.7/fs/locks.c linux-3.7.7-vs2.3.5.6/fs/locks.c
---- linux-3.7.7/fs/locks.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/locks.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/locks.c linux-3.9.4-vs2.3.6.1/fs/locks.c
+--- linux-3.9.4/fs/locks.c     2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/locks.c   2013-05-31 15:53:57.000000000 +0000
 @@ -126,6 +126,8 @@
  #include <linux/time.h>
  #include <linux/rcupdate.h>
@@ -4309,8 +4308,8 @@ diff -NurpP --minimal linux-3.7.7/fs/locks.c linux-3.7.7-vs2.3.5.6/fs/locks.c
  int posix_lock_file(struct file *filp, struct file_lock *fl,
                        struct file_lock *conflock)
  {
--      return __posix_lock_file(filp->f_path.dentry->d_inode, fl, conflock);
-+      return __posix_lock_file(filp->f_path.dentry->d_inode,
+-      return __posix_lock_file(file_inode(filp), fl, conflock);
++      return __posix_lock_file(file_inode(filp),
 +              fl, conflock, filp->f_xid);
  }
  EXPORT_SYMBOL(posix_lock_file);
@@ -4369,10 +4368,10 @@ diff -NurpP --minimal linux-3.7.7/fs/locks.c linux-3.7.7-vs2.3.5.6/fs/locks.c
  
        return 0;
  }
-diff -NurpP --minimal linux-3.7.7/fs/mount.h linux-3.7.7-vs2.3.5.6/fs/mount.h
---- linux-3.7.7/fs/mount.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/mount.h   2012-12-18 15:13:16.000000000 +0000
-@@ -46,6 +46,7 @@ struct mount {
+diff -NurpP --minimal linux-3.9.4/fs/mount.h linux-3.9.4-vs2.3.6.1/fs/mount.h
+--- linux-3.9.4/fs/mount.h     2013-02-19 13:58:48.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/mount.h   2013-05-31 14:47:11.000000000 +0000
+@@ -49,6 +49,7 @@ struct mount {
        int mnt_expiry_mark;            /* true if marked for expiry */
        int mnt_pinned;
        int mnt_ghosts;
@@ -4380,9 +4379,9 @@ diff -NurpP --minimal linux-3.7.7/fs/mount.h linux-3.7.7-vs2.3.5.6/fs/mount.h
  };
  
  #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
-diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
---- linux-3.7.7/fs/namei.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/namei.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/namei.c linux-3.9.4-vs2.3.6.1/fs/namei.c
+--- linux-3.9.4/fs/namei.c     2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/namei.c   2013-06-01 00:22:21.000000000 +0000
 @@ -34,6 +34,14 @@
  #include <linux/device_cgroup.h>
  #include <linux/fs_struct.h>
@@ -4504,7 +4503,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        retval = do_inode_permission(inode, mask);
        if (retval)
                return retval;
-@@ -1244,7 +1339,8 @@ static void follow_dotdot(struct nameida
+@@ -1238,7 +1333,8 @@ static void follow_dotdot(struct nameida
  
                if (nd->path.dentry == nd->root.dentry &&
                    nd->path.mnt == nd->root.mnt) {
@@ -4514,7 +4513,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
                }
                if (nd->path.dentry != nd->path.mnt->mnt_root) {
                        /* rare case of legitimate dget_parent()... */
-@@ -1393,6 +1489,9 @@ static int lookup_fast(struct nameidata
+@@ -1383,6 +1479,9 @@ static int lookup_fast(struct nameidata
                                goto unlazy;
                        }
                }
@@ -4524,7 +4523,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
                path->mnt = mnt;
                path->dentry = dentry;
                if (unlikely(!__follow_mount_rcu(nd, path, inode)))
-@@ -1428,6 +1527,8 @@ unlazy:
+@@ -1413,6 +1512,8 @@ unlazy:
                }
        }
  
@@ -4533,7 +4532,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        path->mnt = mnt;
        path->dentry = dentry;
        err = follow_managed(path, nd->flags);
-@@ -2258,7 +2359,7 @@ static int may_delete(struct inode *dir,
+@@ -2237,7 +2338,7 @@ static int may_delete(struct inode *dir,
        if (IS_APPEND(dir))
                return -EPERM;
        if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
@@ -4542,7 +4541,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
                return -EPERM;
        if (isdir) {
                if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -2337,19 +2438,25 @@ int vfs_create(struct inode *dir, struct
+@@ -2316,19 +2417,25 @@ int vfs_create(struct inode *dir, struct
                bool want_excl)
  {
        int error = may_create(dir, dentry);
@@ -4570,7 +4569,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        return error;
  }
  
-@@ -2384,6 +2491,15 @@ static int may_open(struct path *path, i
+@@ -2363,6 +2470,15 @@ static int may_open(struct path *path, i
                break;
        }
  
@@ -4586,7 +4585,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        error = inode_permission(inode, acc_mode);
        if (error)
                return error;
-@@ -2886,6 +3002,16 @@ finish_open:
+@@ -2865,6 +2981,16 @@ finish_open:
        }
  finish_open_created:
        error = may_open(&nd->path, acc_mode, open_flag);
@@ -4603,15 +4602,15 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        if (error)
                goto out;
        file->f_path.mnt = nd->path.mnt;
-@@ -2950,6 +3076,7 @@ static struct file *path_openat(int dfd,
+@@ -2929,6 +3055,7 @@ static struct file *path_openat(int dfd,
        int opened = 0;
        int error;
  
 +restart:
        file = get_empty_filp();
-       if (!file)
-               return ERR_PTR(-ENFILE);
-@@ -2986,6 +3113,16 @@ static struct file *path_openat(int dfd,
+       if (IS_ERR(file))
+               return file;
+@@ -2965,6 +3092,16 @@ static struct file *path_openat(int dfd,
                error = do_last(nd, &path, file, op, &opened, pathname);
                put_link(nd, &link, cookie);
        }
@@ -4628,7 +4627,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
  out:
        if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
                path_put(&nd->root);
-@@ -3090,6 +3227,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -3079,6 +3216,11 @@ struct dentry *kern_path_create(int dfd,
                goto fail;
        }
        *path = nd.path;
@@ -4640,7 +4639,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
        return dentry;
  fail:
        dput(dentry);
-@@ -3556,7 +3698,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -3573,7 +3715,7 @@ int vfs_link(struct dentry *old_dentry,
        /*
         * A link to an append-only or immutable file cannot be created.
         */
@@ -4649,7 +4648,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
                return -EPERM;
        if (!dir->i_op->link)
                return -EPERM;
-@@ -3945,6 +4087,275 @@ int vfs_follow_link(struct nameidata *nd
+@@ -3976,6 +4118,286 @@ int vfs_follow_link(struct nameidata *nd
        return __vfs_follow_link(nd, link);
  }
  
@@ -4666,7 +4665,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
 +
 +struct dentry *cow_break_link(const char *pathname)
 +{
-+      int ret, mode, pathlen, redo = 0;
++      int ret, mode, pathlen, redo = 0, drop = 1;
 +      struct nameidata old_nd, dir_nd;
 +      struct path dir_path, *old_path, *new_path;
 +      struct dentry *dir, *old_dentry, *new_dentry = NULL;
@@ -4723,7 +4722,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
 +
 +      /* this puppy downs the dir inode mutex if successful.
 +         dir_path will hold refs to dentry and mnt and
-+         we'll have get write access to the mnt */
++         we'll have write access to the mnt */
 +      new_dentry = kern_path_create(AT_FDCWD, to, &dir_path, 0);
 +      if (!new_dentry || IS_ERR(new_dentry)) {
 +              path_put(&dir_nd.path);
@@ -4757,8 +4756,8 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
 +      vxdprintk(VXD_CBIT(misc, 2),
 +              "vfs_create(new): %d", ret);
 +      if (ret == -EEXIST) {
-+              mutex_unlock(&dir->d_inode->i_mutex);
 +              path_put(&dir_nd.path);
++              mutex_unlock(&dir->d_inode->i_mutex);
 +              mnt_drop_write(new_path->mnt);
 +              path_put(new_path);
 +              new_dentry = NULL;
@@ -4790,6 +4789,14 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
 +              goto out_fput_old;
 +      }
 +
++      /* unlock the inode mutex from kern_path_create() */
++      mutex_unlock(&dir->d_inode->i_mutex);
++
++      /* drop write access to mnt */
++      mnt_drop_write(new_path->mnt);
++
++      drop = 0;
++
 +      size = i_size_read(old_file->f_dentry->d_inode);
 +      ret = do_cow_splice(old_file, new_file, size);
 +      vxdprintk(VXD_CBIT(misc, 2), "do_splice_direct: %d", ret);
@@ -4848,11 +4855,14 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
 +      /* drop references from dir_nd.path */
 +      path_put(&dir_nd.path);
 +
-+      /* drop write access to mnt */
-+      mnt_drop_write(new_path->mnt);
++      if (drop) {
++              /* unlock the inode mutex from kern_path_create() */
++              mutex_unlock(&dir->d_inode->i_mutex);
++
++              /* drop write access to mnt */
++              mnt_drop_write(new_path->mnt);
++      }
 +
-+      /* unlock the inode mutex from kern_path_create() */
-+      mutex_unlock(&dir->d_inode->i_mutex);
 +      if (!ret)
 +              goto out_redo;
 +
@@ -4925,18 +4935,18 @@ diff -NurpP --minimal linux-3.7.7/fs/namei.c linux-3.7.7-vs2.3.5.6/fs/namei.c
  /* get the link contents into pagecache */
  static char *page_getlink(struct dentry * dentry, struct page **ppage)
  {
-@@ -4068,3 +4479,4 @@ EXPORT_SYMBOL(vfs_symlink);
+@@ -4099,3 +4521,4 @@ EXPORT_SYMBOL(vfs_symlink);
  EXPORT_SYMBOL(vfs_unlink);
  EXPORT_SYMBOL(dentry_unhash);
  EXPORT_SYMBOL(generic_readlink);
 +EXPORT_SYMBOL(vx_info_mnt_namespace);
-diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namespace.c
---- linux-3.7.7/fs/namespace.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/namespace.c       2012-12-18 15:13:16.000000000 +0000
-@@ -20,6 +20,11 @@
- #include <linux/fs_struct.h>  /* get_fs_root et.al. */
+diff -NurpP --minimal linux-3.9.4/fs/namespace.c linux-3.9.4-vs2.3.6.1/fs/namespace.c
+--- linux-3.9.4/fs/namespace.c 2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/namespace.c       2013-05-31 18:47:18.000000000 +0000
+@@ -22,6 +22,11 @@
  #include <linux/fsnotify.h>   /* fsnotify_vfsmount_delete */
  #include <linux/uaccess.h>
+ #include <linux/proc_fs.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_tag.h>
@@ -4945,7 +4955,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
  #include "pnode.h"
  #include "internal.h"
  
-@@ -749,6 +754,10 @@ vfs_kern_mount(struct file_system_type *
+@@ -751,6 +756,10 @@ vfs_kern_mount(struct file_system_type *
        if (!type)
                return ERR_PTR(-ENODEV);
  
@@ -4956,7 +4966,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
        mnt = alloc_vfsmnt(name);
        if (!mnt)
                return ERR_PTR(-ENOMEM);
-@@ -801,6 +810,7 @@ static struct mount *clone_mnt(struct mo
+@@ -807,6 +816,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;
@@ -4964,34 +4974,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
        br_write_lock(&vfsmount_lock);
        list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
        br_write_unlock(&vfsmount_lock);
-@@ -1266,7 +1276,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
-               goto dput_and_out;
-       retval = -EPERM;
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
-               goto dput_and_out;
-       retval = do_umount(mnt, flags);
-@@ -1292,7 +1302,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
- static int mount_is_safe(struct path *path)
- {
--      if (capable(CAP_SYS_ADMIN))
-+      if (vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
-               return 0;
-       return -EPERM;
- #ifdef notyet
-@@ -1610,7 +1620,7 @@ static int do_change_type(struct path *p
-       int type;
-       int err = 0;
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_NAMESPACE))
-               return -EPERM;
-       if (path->dentry != path->mnt->mnt_root)
-@@ -1626,6 +1636,7 @@ static int do_change_type(struct path *p
+@@ -1639,6 +1649,7 @@ static int do_change_type(struct path *p
                if (err)
                        goto out_unlock;
        }
@@ -4999,7 +4982,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
  
        br_write_lock(&vfsmount_lock);
        for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -1641,12 +1652,14 @@ static int do_change_type(struct path *p
+@@ -1654,12 +1665,14 @@ static int do_change_type(struct path *p
   * do loopback mount.
   */
  static int do_loopback(struct path *path, const char *old_name,
@@ -5009,13 +4992,13 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
        LIST_HEAD(umount_list);
        struct path old_path;
        struct mount *mnt = NULL, *old;
-       int err = mount_is_safe(path);
 +      int recurse = flags & MS_REC;
+       int err;
 +
-       if (err)
-               return err;
        if (!old_name || !*old_name)
-@@ -1715,13 +1728,13 @@ static int change_mount_flags(struct vfs
+               return -EINVAL;
+       err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path);
+@@ -1733,7 +1746,7 @@ static int change_mount_flags(struct vfs
   * on it - tough luck.
   */
  static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -5024,32 +5007,15 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
  {
        int err;
        struct super_block *sb = path->mnt->mnt_sb;
-       struct mount *mnt = real_mount(path->mnt);
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_REMOUNT))
-               return -EPERM;
-       if (!check_mnt(mnt))
-@@ -1770,7 +1783,7 @@ static int do_move_mount(struct path *pa
-       struct mount *p;
-       struct mount *old;
-       int err = 0;
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
-               return -EPERM;
-       if (!old_name || !*old_name)
-               return -EINVAL;
-@@ -1927,7 +1940,7 @@ static int do_new_mount(struct path *pat
-               return -EINVAL;
-       /* we need capabilities... */
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
-               return -EPERM;
+@@ -2046,7 +2059,6 @@ void mark_mounts_for_expiry(struct list_
+       }
+       br_write_unlock(&vfsmount_lock);
+       up_write(&namespace_sem);
+-
+       release_mounts(&umounts);
+ }
  
-       mnt = do_kern_mount(type, flags, name, data);
-@@ -2197,6 +2210,7 @@ long do_mount(const char *dev_name, cons
+@@ -2218,6 +2230,7 @@ long do_mount(const char *dev_name, cons
        struct path path;
        int retval = 0;
        int mnt_flags = 0;
@@ -5057,7 +5023,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
  
        /* Discard magic */
        if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2224,6 +2238,12 @@ long do_mount(const char *dev_name, cons
+@@ -2247,6 +2260,12 @@ long do_mount(const char *dev_name, cons
        if (!(flags & MS_NOATIME))
                mnt_flags |= MNT_RELATIME;
  
@@ -5070,11 +5036,11 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
-@@ -2240,15 +2260,17 @@ long do_mount(const char *dev_name, cons
+@@ -2263,15 +2282,17 @@ long do_mount(const char *dev_name, cons
        if (flags & MS_RDONLY)
                mnt_flags |= MNT_READONLY;
  
-+      if (!capable(CAP_SYS_ADMIN))
++      if (!vx_capable(CAP_SYS_ADMIN, VXC_DEV_MOUNT))
 +              mnt_flags |= MNT_NODEV;
        flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | MS_BORN |
                   MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
@@ -5090,7 +5056,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
        else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
                retval = do_change_type(&path, flags);
        else if (flags & MS_MOVE)
-@@ -2329,6 +2351,7 @@ static struct mnt_namespace *dup_mnt_ns(
+@@ -2380,6 +2401,7 @@ static struct mnt_namespace *dup_mnt_ns(
                q = next_mnt(q, new);
        }
        up_write(&namespace_sem);
@@ -5098,7 +5064,7 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
  
        if (rootmnt)
                mntput(rootmnt);
-@@ -2524,9 +2547,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2575,9 +2597,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
        error = -EINVAL;
        new_mnt = real_mount(new.mnt);
        root_mnt = real_mount(root.mnt);
@@ -5111,18 +5077,18 @@ diff -NurpP --minimal linux-3.7.7/fs/namespace.c linux-3.7.7-vs2.3.5.6/fs/namesp
                goto out4;
        if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
                goto out4;
-@@ -2647,6 +2671,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -2703,6 +2726,7 @@ void put_mnt_ns(struct mnt_namespace *ns
        br_write_unlock(&vfsmount_lock);
        up_write(&namespace_sem);
        release_mounts(&umount_list);
 +      atomic_dec(&vs_global_mnt_ns);
-       kfree(ns);
+       free_mnt_ns(ns);
  }
  
-diff -NurpP --minimal linux-3.7.7/fs/nfs/client.c linux-3.7.7-vs2.3.5.6/fs/nfs/client.c
---- linux-3.7.7/fs/nfs/client.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfs/client.c      2013-01-16 00:19:03.000000000 +0000
-@@ -683,6 +683,9 @@ int nfs_init_server_rpcclient(struct nfs
+diff -NurpP --minimal linux-3.9.4/fs/nfs/client.c linux-3.9.4-vs2.3.6.1/fs/nfs/client.c
+--- linux-3.9.4/fs/nfs/client.c        2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfs/client.c      2013-05-31 14:47:11.000000000 +0000
+@@ -682,6 +682,9 @@ int nfs_init_server_rpcclient(struct nfs
        if (server->flags & NFS_MOUNT_SOFT)
                server->client->cl_softrtry = 1;
  
@@ -5132,7 +5098,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/client.c linux-3.7.7-vs2.3.5.6/fs/nfs/c
        return 0;
  }
  EXPORT_SYMBOL_GPL(nfs_init_server_rpcclient);
-@@ -862,6 +865,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -861,6 +864,10 @@ static void nfs_server_set_fsinfo(struct
                server->acdirmin = server->acdirmax = 0;
        }
  
@@ -5143,9 +5109,9 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/client.c linux-3.7.7-vs2.3.5.6/fs/nfs/c
        server->maxfilesize = fsinfo->maxfilesize;
  
        server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.7.7/fs/nfs/dir.c linux-3.7.7-vs2.3.5.6/fs/nfs/dir.c
---- linux-3.7.7/fs/nfs/dir.c   2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfs/dir.c 2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfs/dir.c linux-3.9.4-vs2.3.6.1/fs/nfs/dir.c
+--- linux-3.9.4/fs/nfs/dir.c   2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfs/dir.c 2013-05-31 14:47:11.000000000 +0000
 @@ -36,6 +36,7 @@
  #include <linux/sched.h>
  #include <linux/kmemleak.h>
@@ -5154,7 +5120,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/dir.c linux-3.7.7-vs2.3.5.6/fs/nfs/dir.
  
  #include "delegation.h"
  #include "iostat.h"
-@@ -1255,6 +1256,7 @@ struct dentry *nfs_lookup(struct inode *
+@@ -1300,6 +1301,7 @@ struct dentry *nfs_lookup(struct inode *
        /* Success: notify readdir to use READDIRPLUS */
        nfs_advise_use_readdirplus(dir);
  
@@ -5162,9 +5128,9 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/dir.c linux-3.7.7-vs2.3.5.6/fs/nfs/dir.
  no_entry:
        res = d_materialise_unique(dentry, inode);
        if (res != NULL) {
-diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/inode.c
---- linux-3.7.7/fs/nfs/inode.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfs/inode.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfs/inode.c linux-3.9.4-vs2.3.6.1/fs/nfs/inode.c
+--- linux-3.9.4/fs/nfs/inode.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfs/inode.c       2013-05-31 20:37:45.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <linux/compat.h>
  #include <linux/freezer.h>
@@ -5173,7 +5139,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
  
  #include <asm/uaccess.h>
  
-@@ -279,6 +280,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -290,6 +291,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;
@@ -5182,18 +5148,18 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
  
                /* We set i_ino for the few things that still rely on it,
                 * such as stat(2) */
-@@ -323,8 +326,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -334,8 +337,8 @@ nfs_fhget(struct super_block *sb, struct
                inode->i_version = 0;
                inode->i_size = 0;
                clear_nlink(inode);
--              inode->i_uid = -2;
--              inode->i_gid = -2;
-+              uid = -2;
-+              gid = -2;
+-              inode->i_uid = make_kuid(&init_user_ns, -2);
+-              inode->i_gid = make_kgid(&init_user_ns, -2);
++              uid = make_kuid(&init_user_ns, -2);
++              gid = make_kgid(&init_user_ns, -2);
                inode->i_blocks = 0;
                memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
                nfsi->write_io = 0;
-@@ -358,11 +361,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -369,11 +372,11 @@ nfs_fhget(struct super_block *sb, struct
                else if (nfs_server_capable(inode, NFS_CAP_NLINK))
                        nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
                if (fattr->valid & NFS_ATTR_FATTR_OWNER)
@@ -5207,7 +5173,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
                else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
                        nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
                if (fattr->valid & NFS_ATTR_FATTR_BLOCKS_USED)
-@@ -373,6 +376,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -384,6 +387,11 @@ nfs_fhget(struct super_block *sb, struct
                         */
                        inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
                }
@@ -5219,7 +5185,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
                nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
                nfsi->attrtimeo_timestamp = now;
                nfsi->access_cache = RB_ROOT;
-@@ -494,6 +502,8 @@ void nfs_setattr_update_inode(struct ino
+@@ -505,6 +513,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;
@@ -5228,38 +5194,43 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
                NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
                spin_unlock(&inode->i_lock);
        }
-@@ -968,6 +978,9 @@ static int nfs_check_inode_attributes(st
+@@ -980,6 +990,11 @@ static int nfs_check_inode_attributes(st
        struct nfs_inode *nfsi = NFS_I(inode);
        loff_t cur_size, new_isize;
        unsigned long invalid = 0;
++      kuid_t kuid;
++      kgid_t kgid;
++      ktag_t ktag;
 +      uid_t uid;
 +      gid_t gid;
-+      tag_t tag;
  
  
        if (nfs_have_delegated_attributes(inode))
-@@ -993,13 +1006,18 @@ static int nfs_check_inode_attributes(st
+@@ -1005,13 +1020,21 @@ static int nfs_check_inode_attributes(st
                        invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
        }
  
-+      uid = INOTAG_UID(DX_TAG(inode), fattr->uid, fattr->gid);
-+      gid = INOTAG_GID(DX_TAG(inode), fattr->uid, fattr->gid);
-+      tag = INOTAG_TAG(DX_TAG(inode), fattr->uid, fattr->gid, 0);
++      uid = from_kuid(&init_user_ns, fattr->uid);
++      gid = from_kgid(&init_user_ns, fattr->gid);
++
++      kuid = make_kuid(&init_user_ns, INOTAG_UID(DX_TAG(inode), uid, gid));
++      kgid = make_kgid(&init_user_ns, INOTAG_GID(DX_TAG(inode), uid, gid));
++      ktag = make_ktag(&init_user_ns, INOTAG_TAG(DX_TAG(inode), uid, gid, 0));
 +
        /* Have any file permissions changed? */
        if ((fattr->valid & NFS_ATTR_FATTR_MODE) && (inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO))
                invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
--      if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && inode->i_uid != fattr->uid)
-+      if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && uid != fattr->uid)
+-      if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && !uid_eq(inode->i_uid, fattr->uid))
++      if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && !uid_eq(inode->i_uid, kuid))
                invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
--      if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && inode->i_gid != fattr->gid)
-+      if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && gid != fattr->gid)
+-      if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && !gid_eq(inode->i_gid, fattr->gid))
++      if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && !gid_eq(inode->i_gid, kgid))
                invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
 +              /* maybe check for tag too? */
  
        /* Has the link count changed? */
        if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1303,6 +1321,9 @@ static int nfs_update_inode(struct inode
+@@ -1317,6 +1340,9 @@ static int nfs_update_inode(struct inode
        unsigned long invalid = 0;
        unsigned long now = jiffies;
        unsigned long save_cache_validity;
@@ -5269,7 +5240,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
  
        dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n",
                        __func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1404,6 +1425,9 @@ static int nfs_update_inode(struct inode
+@@ -1418,6 +1444,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_PAGECACHE
                                | NFS_INO_REVAL_FORCED);
  
@@ -5279,31 +5250,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
  
        if (fattr->valid & NFS_ATTR_FATTR_ATIME)
                memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1425,9 +1449,9 @@ static int nfs_update_inode(struct inode
-                               | NFS_INO_REVAL_FORCED);
-       if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
--              if (inode->i_uid != fattr->uid) {
-+              if (uid != fattr->uid) {
-                       invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
--                      inode->i_uid = fattr->uid;
-+                      uid = fattr->uid;
-               }
-       } else if (server->caps & NFS_CAP_OWNER)
-               invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1436,9 +1460,9 @@ static int nfs_update_inode(struct inode
-                               | NFS_INO_REVAL_FORCED);
-       if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
--              if (inode->i_gid != fattr->gid) {
-+              if (gid != fattr->gid) {
-                       invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
--                      inode->i_gid = fattr->gid;
-+                      gid = fattr->gid;
-               }
-       } else if (server->caps & NFS_CAP_OWNER_GROUP)
-               invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1446,6 +1470,10 @@ static int nfs_update_inode(struct inode
+@@ -1460,6 +1489,10 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_INVALID_ACL
                                | NFS_INO_REVAL_FORCED);
  
@@ -5314,9 +5261,9 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/inode.c linux-3.7.7-vs2.3.5.6/fs/nfs/in
        if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
                if (inode->i_nlink != fattr->nlink) {
                        invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/nfs3xdr.c
---- linux-3.7.7/fs/nfs/nfs3xdr.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfs/nfs3xdr.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfs/nfs3xdr.c linux-3.9.4-vs2.3.6.1/fs/nfs/nfs3xdr.c
+--- linux-3.9.4/fs/nfs/nfs3xdr.c       2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfs/nfs3xdr.c     2013-05-31 15:33:48.000000000 +0000
 @@ -20,6 +20,7 @@
  #include <linux/nfs3.h>
  #include <linux/nfs_fs.h>
@@ -5325,7 +5272,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  #include "internal.h"
  
  #define NFSDBG_FACILITY               NFSDBG_XDR
-@@ -560,7 +561,8 @@ static __be32 *xdr_decode_nfstime3(__be3
+@@ -558,7 +559,8 @@ static __be32 *xdr_decode_nfstime3(__be3
   *            set_mtime       mtime;
   *    };
   */
@@ -5335,7 +5282,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  {
        u32 nbytes;
        __be32 *p;
-@@ -592,15 +594,19 @@ static void encode_sattr3(struct xdr_str
+@@ -590,15 +592,19 @@ static void encode_sattr3(struct xdr_str
        } else
                *p++ = xdr_zero;
  
@@ -5343,9 +5290,9 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
 +      if (attr->ia_valid & ATTR_UID ||
 +              (tag && (attr->ia_valid & ATTR_TAG))) {
                *p++ = xdr_one;
--              *p++ = cpu_to_be32(attr->ia_uid);
+-              *p++ = cpu_to_be32(from_kuid(&init_user_ns, attr->ia_uid));
 +              *p++ = cpu_to_be32(TAGINO_UID(tag,
-+                      attr->ia_uid, attr->ia_tag));
++                      from_kuid(&init_user_ns, attr->ia_uid), attr->ia_tag));
        } else
                *p++ = xdr_zero;
  
@@ -5353,13 +5300,13 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
 +      if (attr->ia_valid & ATTR_GID ||
 +              (tag && (attr->ia_valid & ATTR_TAG))) {
                *p++ = xdr_one;
--              *p++ = cpu_to_be32(attr->ia_gid);
+-              *p++ = cpu_to_be32(from_kgid(&init_user_ns, attr->ia_gid));
 +              *p++ = cpu_to_be32(TAGINO_GID(tag,
-+                      attr->ia_gid, attr->ia_tag));
++                      from_kgid(&init_user_ns, attr->ia_gid), attr->ia_tag));
        } else
                *p++ = xdr_zero;
  
-@@ -879,7 +885,7 @@ static void nfs3_xdr_enc_setattr3args(st
+@@ -887,7 +893,7 @@ static void nfs3_xdr_enc_setattr3args(st
                                      const struct nfs3_sattrargs *args)
  {
        encode_nfs_fh3(xdr, args->fh);
@@ -5368,7 +5315,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
        encode_sattrguard3(xdr, args);
  }
  
-@@ -1029,13 +1035,13 @@ static void nfs3_xdr_enc_write3args(stru
+@@ -1037,13 +1043,13 @@ static void nfs3_xdr_enc_write3args(stru
   *    };
   */
  static void encode_createhow3(struct xdr_stream *xdr,
@@ -5384,7 +5331,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
                break;
        case NFS3_CREATE_EXCLUSIVE:
                encode_createverf3(xdr, args->verifier);
-@@ -1050,7 +1056,7 @@ static void nfs3_xdr_enc_create3args(str
+@@ -1058,7 +1064,7 @@ static void nfs3_xdr_enc_create3args(str
                                     const struct nfs3_createargs *args)
  {
        encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5393,7 +5340,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  }
  
  /*
-@@ -1066,7 +1072,7 @@ static void nfs3_xdr_enc_mkdir3args(stru
+@@ -1074,7 +1080,7 @@ static void nfs3_xdr_enc_mkdir3args(stru
                                    const struct nfs3_mkdirargs *args)
  {
        encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5402,7 +5349,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  }
  
  /*
-@@ -1083,9 +1089,9 @@ static void nfs3_xdr_enc_mkdir3args(stru
+@@ -1091,9 +1097,9 @@ static void nfs3_xdr_enc_mkdir3args(stru
   *    };
   */
  static void encode_symlinkdata3(struct xdr_stream *xdr,
@@ -5414,7 +5361,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
        encode_nfspath3(xdr, args->pages, args->pathlen);
  }
  
-@@ -1094,7 +1100,7 @@ static void nfs3_xdr_enc_symlink3args(st
+@@ -1102,7 +1108,7 @@ static void nfs3_xdr_enc_symlink3args(st
                                      const struct nfs3_symlinkargs *args)
  {
        encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen);
@@ -5423,7 +5370,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  }
  
  /*
-@@ -1122,24 +1128,24 @@ static void nfs3_xdr_enc_symlink3args(st
+@@ -1130,24 +1136,24 @@ static void nfs3_xdr_enc_symlink3args(st
   *    };
   */
  static void encode_devicedata3(struct xdr_stream *xdr,
@@ -5453,7 +5400,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
                break;
        case NF3REG:
        case NF3DIR:
-@@ -1154,7 +1160,7 @@ static void nfs3_xdr_enc_mknod3args(stru
+@@ -1162,7 +1168,7 @@ static void nfs3_xdr_enc_mknod3args(stru
                                    const struct nfs3_mknodargs *args)
  {
        encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5462,18 +5409,18 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs/
  }
  
  /*
-diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/super.c
---- linux-3.7.7/fs/nfs/super.c 2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfs/super.c       2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfs/super.c linux-3.9.4-vs2.3.6.1/fs/nfs/super.c
+--- linux-3.9.4/fs/nfs/super.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfs/super.c       2013-05-31 15:41:34.000000000 +0000
 @@ -55,6 +55,7 @@
+ #include <linux/parser.h>
  #include <linux/nsproxy.h>
  #include <linux/rcupdate.h>
- #include <linux/kthread.h>
 +#include <linux/vs_tag.h>
  
  #include <asm/uaccess.h>
  
-@@ -102,6 +103,7 @@ enum {
+@@ -103,6 +104,7 @@ enum {
        Opt_mountport,
        Opt_mountvers,
        Opt_minorversion,
@@ -5481,7 +5428,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
  
        /* Mount options that take string arguments */
        Opt_nfsvers,
-@@ -114,6 +116,9 @@ enum {
+@@ -115,6 +117,9 @@ enum {
        /* Special mount options */
        Opt_userspace, Opt_deprecated, Opt_sloppy,
  
@@ -5491,7 +5438,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
        Opt_err
  };
  
-@@ -183,6 +188,10 @@ static const match_table_t nfs_mount_opt
+@@ -184,6 +189,10 @@ static const match_table_t nfs_mount_opt
        { Opt_fscache_uniq, "fsc=%s" },
        { Opt_local_lock, "local_lock=%s" },
  
@@ -5502,7 +5449,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
        /* The following needs to be listed after all other options */
        { Opt_nfsvers, "v%s" },
  
-@@ -678,6 +687,7 @@ static void nfs_show_mount_options(struc
+@@ -635,6 +644,7 @@ static void nfs_show_mount_options(struc
                { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
                { NFS_MOUNT_UNSHARED, ",nosharecache", "" },
                { NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5510,7 +5457,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
                { 0, NULL, NULL }
        };
        const struct proc_nfs_info *nfs_infop;
-@@ -1304,6 +1314,14 @@ static int nfs_parse_mount_options(char
+@@ -1261,6 +1271,14 @@ static int nfs_parse_mount_options(char
                case Opt_nomigration:
                        mnt->options &= NFS_OPTION_MIGRATION;
                        break;
@@ -5525,7 +5472,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
  
                /*
                 * options that take numeric values
-@@ -1390,6 +1408,12 @@ static int nfs_parse_mount_options(char
+@@ -1347,6 +1365,12 @@ static int nfs_parse_mount_options(char
                                goto out_invalid_value;
                        mnt->minorversion = option;
                        break;
@@ -5538,9 +5485,9 @@ diff -NurpP --minimal linux-3.7.7/fs/nfs/super.c linux-3.7.7-vs2.3.5.6/fs/nfs/su
  
                /*
                 * options that take text values
-diff -NurpP --minimal linux-3.7.7/fs/nfsd/auth.c linux-3.7.7-vs2.3.5.6/fs/nfsd/auth.c
---- linux-3.7.7/fs/nfsd/auth.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfsd/auth.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfsd/auth.c linux-3.9.4-vs2.3.6.1/fs/nfsd/auth.c
+--- linux-3.9.4/fs/nfsd/auth.c 2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfsd/auth.c       2013-05-31 14:47:11.000000000 +0000
 @@ -2,6 +2,7 @@
  
  #include <linux/sched.h>
@@ -5559,18 +5506,18 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/auth.c linux-3.7.7-vs2.3.5.6/fs/nfsd/a
  
        rqgi = rqstp->rq_cred.cr_group_info;
  
-diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfsd/nfs3xdr.c
---- linux-3.7.7/fs/nfsd/nfs3xdr.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfsd/nfs3xdr.c    2012-12-18 15:13:16.000000000 +0000
-@@ -7,6 +7,7 @@
-  */
+diff -NurpP --minimal linux-3.9.4/fs/nfsd/nfs3xdr.c linux-3.9.4-vs2.3.6.1/fs/nfsd/nfs3xdr.c
+--- linux-3.9.4/fs/nfsd/nfs3xdr.c      2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfsd/nfs3xdr.c    2013-05-31 16:17:38.000000000 +0000
+@@ -8,6 +8,7 @@
  
  #include <linux/namei.h>
+ #include <linux/sunrpc/svc_xprt.h>
 +#include <linux/vs_tag.h>
  #include "xdr3.h"
  #include "auth.h"
-@@ -95,6 +96,8 @@ static __be32 *
+ #include "netns.h"
+@@ -98,6 +99,8 @@ static __be32 *
  decode_sattr3(__be32 *p, struct iattr *iap)
  {
        u32     tmp;
@@ -5579,17 +5526,20 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs
  
        iap->ia_valid = 0;
  
-@@ -104,12 +107,15 @@ decode_sattr3(__be32 *p, struct iattr *i
+@@ -106,15 +109,18 @@ decode_sattr3(__be32 *p, struct iattr *i
+               iap->ia_mode = ntohl(*p++);
        }
        if (*p++) {
-               iap->ia_valid |= ATTR_UID;
--              iap->ia_uid = ntohl(*p++);
-+              uid = ntohl(*p++);
+-              iap->ia_uid = make_kuid(&init_user_ns, ntohl(*p++));
++              uid = make_kuid(&init_user_ns, ntohl(*p++));
+               if (uid_valid(iap->ia_uid))
+                       iap->ia_valid |= ATTR_UID;
        }
        if (*p++) {
-               iap->ia_valid |= ATTR_GID;
--              iap->ia_gid = ntohl(*p++);
-+              gid = ntohl(*p++);
+-              iap->ia_gid = make_kgid(&init_user_ns, ntohl(*p++));
++              gid = make_kgid(&init_user_ns, ntohl(*p++));
+               if (gid_valid(iap->ia_gid))
+                       iap->ia_valid |= ATTR_GID;
        }
 +      iap->ia_uid = INOTAG_UID(DX_TAG_NFSD, uid, gid);
 +      iap->ia_gid = INOTAG_GID(DX_TAG_NFSD, uid, gid);
@@ -5597,24 +5547,24 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs3xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs
        if (*p++) {
                u64     newsize;
  
-@@ -165,8 +171,12 @@ encode_fattr3(struct svc_rqst *rqstp, __
+@@ -170,8 +176,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->nlink);
--      *p++ = htonl((u32) nfsd_ruid(rqstp, stat->uid));
--      *p++ = htonl((u32) nfsd_rgid(rqstp, stat->gid));
-+      *p++ = htonl((u32) nfsd_ruid(rqstp,
+-      *p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid));
+-      *p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid));
++      *p++ = htonl((u32) from_kuid(&init_user_ns,
 +              TAGINO_UID(0 /* FIXME: DX_TAG(dentry->d_inode) */,
 +              stat->uid, stat->tag)));
-+      *p++ = htonl((u32) nfsd_rgid(rqstp,
++      *p++ = htonl((u32) from_kgid(&init_user_ns,
 +              TAGINO_GID(0 /* FIXME: DX_TAG(dentry->d_inode) */,
 +              stat->gid, stat->tag)));
        if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
                p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
        } else {
-diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs4xdr.c linux-3.7.7-vs2.3.5.6/fs/nfsd/nfs4xdr.c
---- linux-3.7.7/fs/nfsd/nfs4xdr.c      2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfsd/nfs4xdr.c    2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/nfsd/nfs4xdr.c linux-3.9.4-vs2.3.6.1/fs/nfsd/nfs4xdr.c
+--- linux-3.9.4/fs/nfsd/nfs4xdr.c      2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfsd/nfs4xdr.c    2013-05-31 14:47:11.000000000 +0000
 @@ -46,6 +46,7 @@
  #include <linux/utsname.h>
  #include <linux/pagemap.h>
@@ -5623,7 +5573,7 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs4xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs
  
  #include "idmap.h"
  #include "acl.h"
-@@ -2351,14 +2352,18 @@ out_acl:
+@@ -2349,14 +2350,18 @@ out_acl:
                WRITE32(stat.nlink);
        }
        if (bmval1 & FATTR4_WORD1_OWNER) {
@@ -5644,18 +5594,18 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfs4xdr.c linux-3.7.7-vs2.3.5.6/fs/nfs
                if (status == nfserr_resource)
                        goto out_resource;
                if (status)
-diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfsxdr.c linux-3.7.7-vs2.3.5.6/fs/nfsd/nfsxdr.c
---- linux-3.7.7/fs/nfsd/nfsxdr.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/nfsd/nfsxdr.c     2012-12-18 15:13:16.000000000 +0000
-@@ -6,6 +6,7 @@
+diff -NurpP --minimal linux-3.9.4/fs/nfsd/nfsxdr.c linux-3.9.4-vs2.3.6.1/fs/nfsd/nfsxdr.c
+--- linux-3.9.4/fs/nfsd/nfsxdr.c       2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/nfsd/nfsxdr.c     2013-05-31 16:20:53.000000000 +0000
+@@ -7,6 +7,7 @@
+ #include "vfs.h"
  #include "xdr.h"
  #include "auth.h"
 +#include <linux/vs_tag.h>
  
  #define NFSDDBG_FACILITY              NFSDDBG_XDR
  
-@@ -88,6 +89,8 @@ static __be32 *
+@@ -89,6 +90,8 @@ static __be32 *
  decode_sattr(__be32 *p, struct iattr *iap)
  {
        u32     tmp, tmp1;
@@ -5664,17 +5614,20 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfsxdr.c linux-3.7.7-vs2.3.5.6/fs/nfsd
  
        iap->ia_valid = 0;
  
-@@ -101,12 +104,15 @@ decode_sattr(__be32 *p, struct iattr *ia
+@@ -101,15 +104,18 @@ decode_sattr(__be32 *p, struct iattr *ia
+               iap->ia_mode = tmp;
        }
        if ((tmp = ntohl(*p++)) != (u32)-1) {
-               iap->ia_valid |= ATTR_UID;
--              iap->ia_uid = tmp;
-+              uid = tmp;
+-              iap->ia_uid = make_kuid(&init_user_ns, tmp);
++              uid = make_kuid(&init_user_ns, tmp);
+               if (uid_valid(iap->ia_uid))
+                       iap->ia_valid |= ATTR_UID;
        }
        if ((tmp = ntohl(*p++)) != (u32)-1) {
-               iap->ia_valid |= ATTR_GID;
--              iap->ia_gid = tmp;
-+              gid = tmp;
+-              iap->ia_gid = make_kgid(&init_user_ns, tmp);
++              gid = make_kgid(&init_user_ns, tmp);
+               if (gid_valid(iap->ia_gid))
+                       iap->ia_valid |= ATTR_GID;
        }
 +      iap->ia_uid = INOTAG_UID(DX_TAG_NFSD, uid, gid);
 +      iap->ia_gid = INOTAG_GID(DX_TAG_NFSD, uid, gid);
@@ -5682,41 +5635,41 @@ diff -NurpP --minimal linux-3.7.7/fs/nfsd/nfsxdr.c linux-3.7.7-vs2.3.5.6/fs/nfsd
        if ((tmp = ntohl(*p++)) != (u32)-1) {
                iap->ia_valid |= ATTR_SIZE;
                iap->ia_size = tmp;
-@@ -151,8 +157,10 @@ encode_fattr(struct svc_rqst *rqstp, __b
+@@ -154,8 +160,10 @@ encode_fattr(struct svc_rqst *rqstp, __b
        *p++ = htonl(nfs_ftypes[type >> 12]);
        *p++ = htonl((u32) stat->mode);
        *p++ = htonl((u32) stat->nlink);
--      *p++ = htonl((u32) nfsd_ruid(rqstp, stat->uid));
--      *p++ = htonl((u32) nfsd_rgid(rqstp, stat->gid));
-+      *p++ = htonl((u32) nfsd_ruid(rqstp,
+-      *p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid));
+-      *p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid));
++      *p++ = htonl((u32) from_kuid(&init_user_ns,
 +              TAGINO_UID(DX_TAG(dentry->d_inode), stat->uid, stat->tag)));
-+      *p++ = htonl((u32) nfsd_rgid(rqstp,
++      *p++ = htonl((u32) from_kgid(&init_user_ns,
 +              TAGINO_GID(DX_TAG(dentry->d_inode), stat->gid, stat->tag)));
  
        if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
                *p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/dlmglue.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/dlmglue.c
---- linux-3.7.7/fs/ocfs2/dlmglue.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/dlmglue.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/dlmglue.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/dlmglue.c
+--- linux-3.9.4/fs/ocfs2/dlmglue.c     2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/dlmglue.c   2013-05-31 15:47:29.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(inode->i_uid);
-       lvb->lvb_igid      = cpu_to_be32(inode->i_gid);
+       lvb->lvb_iuid      = cpu_to_be32(i_uid_read(inode));
+       lvb->lvb_igid      = cpu_to_be32(i_gid_read(inode));
 +      lvb->lvb_itag      = cpu_to_be16(inode->i_tag);
        lvb->lvb_imode     = cpu_to_be16(inode->i_mode);
        lvb->lvb_inlink    = cpu_to_be16(inode->i_nlink);
        lvb->lvb_iatime_packed  =
 @@ -2097,6 +2098,7 @@ static void ocfs2_refresh_inode_from_lvb
  
-       inode->i_uid     = be32_to_cpu(lvb->lvb_iuid);
-       inode->i_gid     = be32_to_cpu(lvb->lvb_igid);
-+      inode->i_tag     = be16_to_cpu(lvb->lvb_itag);
+       i_uid_write(inode, be32_to_cpu(lvb->lvb_iuid));
+       i_gid_write(inode, be32_to_cpu(lvb->lvb_igid));
++      i_tag_write(inode, be16_to_cpu(lvb->lvb_itag));
        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.7.7/fs/ocfs2/dlmglue.h linux-3.7.7-vs2.3.5.6/fs/ocfs2/dlmglue.h
---- linux-3.7.7/fs/ocfs2/dlmglue.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/dlmglue.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/dlmglue.h linux-3.9.4-vs2.3.6.1/fs/ocfs2/dlmglue.h
+--- linux-3.9.4/fs/ocfs2/dlmglue.h     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/dlmglue.h   2013-05-31 14:47:11.000000000 +0000
 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
        __be16       lvb_inlink;
        __be32       lvb_iattr;
@@ -5727,10 +5680,10 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/dlmglue.h linux-3.7.7-vs2.3.5.6/fs/oc
  };
  
  #define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/file.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/file.c
---- linux-3.7.7/fs/ocfs2/file.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/file.c      2012-12-18 15:13:16.000000000 +0000
-@@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry,
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/file.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/file.c
+--- linux-3.9.4/fs/ocfs2/file.c        2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/file.c      2013-05-31 14:47:11.000000000 +0000
+@@ -1124,7 +1124,7 @@ int ocfs2_setattr(struct dentry *dentry,
                attr->ia_valid &= ~ATTR_SIZE;
  
  #define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \
@@ -5739,9 +5692,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/file.c linux-3.7.7-vs2.3.5.6/fs/ocfs2
        if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
                return 0;
  
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/inode.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/inode.c
---- linux-3.7.7/fs/ocfs2/inode.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/inode.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/inode.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/inode.c
+--- linux-3.9.4/fs/ocfs2/inode.c       2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/inode.c     2013-05-31 20:39:47.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/highmem.h>
  #include <linux/pagemap.h>
@@ -5827,20 +5780,20 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/inode.c linux-3.7.7-vs2.3.5.6/fs/ocfs
        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);
--      inode->i_uid = le32_to_cpu(fe->i_uid);
--      inode->i_gid = le32_to_cpu(fe->i_gid);
+-      i_uid_write(inode, le32_to_cpu(fe->i_uid));
+-      i_gid_write(inode, le32_to_cpu(fe->i_gid));
 +      uid = le32_to_cpu(fe->i_uid);
 +      gid = le32_to_cpu(fe->i_gid);
-+      inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid);
-+      inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid);
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid,
-+              /* le16_to_cpu(raw_inode->i_raw_tag)i */ 0);
++      i_uid_write(inode, INOTAG_UID(DX_TAG(inode), uid, gid));
++      i_gid_write(inode, INOTAG_GID(DX_TAG(inode), uid, gid));
++      i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), uid, gid,
++              /* le16_to_cpu(raw_inode->i_raw_tag) */ 0));
  
        /* Fast symlinks will have i_size but no allocated clusters. */
        if (S_ISLNK(inode->i_mode) && !fe->i_clusters) {
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/inode.h linux-3.7.7-vs2.3.5.6/fs/ocfs2/inode.h
---- linux-3.7.7/fs/ocfs2/inode.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/inode.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/inode.h linux-3.9.4-vs2.3.6.1/fs/ocfs2/inode.h
+--- linux-3.9.4/fs/ocfs2/inode.h       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/inode.h     2013-05-31 14:47:11.000000000 +0000
 @@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i
  
  void ocfs2_set_inode_flags(struct inode *inode);
@@ -5849,9 +5802,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/inode.h linux-3.7.7-vs2.3.5.6/fs/ocfs
  
  static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
  {
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/ioctl.c
---- linux-3.7.7/fs/ocfs2/ioctl.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/ioctl.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/ioctl.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/ioctl.c
+--- linux-3.9.4/fs/ocfs2/ioctl.c       2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/ioctl.c     2013-05-31 14:47:11.000000000 +0000
 @@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
        return status;
  }
@@ -5914,10 +5867,10 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/ioctl.c linux-3.7.7-vs2.3.5.6/fs/ocfs
 +
  long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
-       struct inode *inode = filp->f_path.dentry->d_inode;
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/namei.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/namei.c
---- linux-3.7.7/fs/ocfs2/namei.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/namei.c     2012-12-18 15:13:16.000000000 +0000
+       struct inode *inode = file_inode(filp);
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/namei.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/namei.c
+--- linux-3.9.4/fs/ocfs2/namei.c       2013-05-31 13:45:24.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/namei.c     2013-05-31 15:52:25.000000000 +0000
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/highmem.h>
@@ -5938,19 +5891,19 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/namei.c linux-3.7.7-vs2.3.5.6/fs/ocfs
        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);
--      fe->i_uid = cpu_to_le32(inode->i_uid);
--      fe->i_gid = cpu_to_le32(inode->i_gid);
+-      fe->i_uid = cpu_to_le32(i_uid_read(inode));
+-      fe->i_gid = cpu_to_le32(i_gid_read(inode));
 +
 +      tag = dx_current_fstag(osb->sb);
-+      fe->i_uid = cpu_to_le32(TAGINO_UID(DX_TAG(inode), inode->i_uid, tag));
-+      fe->i_gid = cpu_to_le32(TAGINO_GID(DX_TAG(inode), inode->i_gid, tag));
-+      inode->i_tag = tag;
++      fe->i_uid = cpu_to_le32(TAGINO_UID(DX_TAG(inode), i_uid_read(inode), tag));
++      fe->i_gid = cpu_to_le32(TAGINO_GID(DX_TAG(inode), i_gid_read(inode), tag));
++      inode->i_tag = tag; /* is this correct? */
        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.7.7/fs/ocfs2/ocfs2.h linux-3.7.7-vs2.3.5.6/fs/ocfs2/ocfs2.h
---- linux-3.7.7/fs/ocfs2/ocfs2.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/ocfs2.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/ocfs2.h linux-3.9.4-vs2.3.6.1/fs/ocfs2/ocfs2.h
+--- linux-3.9.4/fs/ocfs2/ocfs2.h       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/ocfs2.h     2013-05-31 14:47:11.000000000 +0000
 @@ -272,6 +272,7 @@ enum ocfs2_mount_options
                                                     writes */
        OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -5959,9 +5912,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/ocfs2.h linux-3.7.7-vs2.3.5.6/fs/ocfs
  };
  
  #define OCFS2_OSB_SOFT_RO                     0x0001
-diff -NurpP --minimal linux-3.7.7/fs/ocfs2/ocfs2_fs.h linux-3.7.7-vs2.3.5.6/fs/ocfs2/ocfs2_fs.h
---- linux-3.7.7/fs/ocfs2/ocfs2_fs.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/ocfs2_fs.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/ocfs2_fs.h linux-3.9.4-vs2.3.6.1/fs/ocfs2/ocfs2_fs.h
+--- linux-3.9.4/fs/ocfs2/ocfs2_fs.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/ocfs2_fs.h  2013-05-31 14:47:11.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 */
@@ -5974,9 +5927,9 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/ocfs2_fs.h linux-3.7.7-vs2.3.5.6/fs/o
  #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.7.7/fs/ocfs2/super.c linux-3.7.7-vs2.3.5.6/fs/ocfs2/super.c
---- linux-3.7.7/fs/ocfs2/super.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/ocfs2/super.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/ocfs2/super.c linux-3.9.4-vs2.3.6.1/fs/ocfs2/super.c
+--- linux-3.9.4/fs/ocfs2/super.c       2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/ocfs2/super.c     2013-05-31 14:47:11.000000000 +0000
 @@ -185,6 +185,7 @@ enum {
        Opt_coherency_full,
        Opt_resv_level,
@@ -6019,7 +5972,7 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/super.c linux-3.7.7-vs2.3.5.6/fs/ocfs
        if (ocfs2_mount_local(osb))
                snprintf(nodestr, sizeof(nodestr), "local");
        else
-@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su
+@@ -1504,6 +1518,20 @@ static int ocfs2_parse_options(struct su
                            option < OCFS2_MAX_RESV_LEVEL)
                                mopt->dir_resv_level = option;
                        break;
@@ -6040,13 +5993,13 @@ diff -NurpP --minimal linux-3.7.7/fs/ocfs2/super.c linux-3.7.7-vs2.3.5.6/fs/ocfs
                default:
                        mlog(ML_ERROR,
                             "Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.7.7/fs/open.c linux-3.7.7-vs2.3.5.6/fs/open.c
---- linux-3.7.7/fs/open.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/open.c    2012-12-18 15:13:16.000000000 +0000
-@@ -30,6 +30,11 @@
- #include <linux/fs_struct.h>
+diff -NurpP --minimal linux-3.9.4/fs/open.c linux-3.9.4-vs2.3.6.1/fs/open.c
+--- linux-3.9.4/fs/open.c      2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/open.c    2013-05-31 21:09:19.000000000 +0000
+@@ -31,6 +31,11 @@
  #include <linux/ima.h>
  #include <linux/dnotify.h>
+ #include <linux/compat.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_limit.h>
 +#include <linux/vs_tag.h>
@@ -6055,31 +6008,33 @@ diff -NurpP --minimal linux-3.7.7/fs/open.c linux-3.7.7-vs2.3.5.6/fs/open.c
  
  #include "internal.h"
  
-@@ -74,6 +79,12 @@ static long do_sys_truncate(const char _
-       error = user_path(pathname, &path);
-       if (error)
-               goto out;
-+
+@@ -67,6 +72,11 @@ long vfs_truncate(struct path *path, lof
+       struct inode *inode;
+       long error;
 +#ifdef CONFIG_VSERVER_COWBL
-+      error = cow_check_and_break(&path);
++      error = cow_check_and_break(path);
 +      if (error)
-+              goto dput_and_out;
++              goto out;
 +#endif
-       inode = path.dentry->d_inode;
+       inode = path->dentry->d_inode;
  
        /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -492,6 +503,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
-       error = user_path_at(dfd, filename, LOOKUP_FOLLOW, &path);
-       if (!error) {
+@@ -532,6 +542,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+       unsigned int lookup_flags = LOOKUP_FOLLOW;
+ retry:
+       error = user_path_at(dfd, filename, lookup_flags, &path);
 +#ifdef CONFIG_VSERVER_COWBL
++      if (!error) {
 +              error = cow_check_and_break(&path);
-+              if (!error)
++              if (error)
++                      path_put(&path);
++      }
 +#endif
+       if (!error) {
                error = chmod_common(&path, mode);
                path_put(&path);
-       }
-@@ -519,13 +534,13 @@ static int chown_common(struct path *pat
+@@ -564,13 +581,13 @@ static int chown_common(struct path *pat
                if (!uid_valid(uid))
                        return -EINVAL;
                newattrs.ia_valid |= ATTR_UID;
@@ -6095,7 +6050,7 @@ diff -NurpP --minimal linux-3.7.7/fs/open.c linux-3.7.7-vs2.3.5.6/fs/open.c
        }
        if (!S_ISDIR(inode->i_mode))
                newattrs.ia_valid |=
-@@ -558,6 +573,18 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
+@@ -604,6 +621,18 @@ retry:
        error = mnt_want_write(path.mnt);
        if (error)
                goto out_release;
@@ -6114,9 +6069,9 @@ diff -NurpP --minimal linux-3.7.7/fs/open.c linux-3.7.7-vs2.3.5.6/fs/open.c
        error = chown_common(&path, user, group);
        mnt_drop_write(path.mnt);
  out_release:
-diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/array.c
---- linux-3.7.7/fs/proc/array.c        2013-02-11 23:17:02.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/array.c      2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc/array.c linux-3.9.4-vs2.3.6.1/fs/proc/array.c
+--- linux-3.9.4/fs/proc/array.c        2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/array.c      2013-05-31 14:47:11.000000000 +0000
 @@ -82,6 +82,8 @@
  #include <linux/ptrace.h>
  #include <linux/tracehook.h>
@@ -6126,7 +6081,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-@@ -172,6 +174,9 @@ static inline void task_state(struct seq
+@@ -173,6 +175,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;
@@ -6136,7 +6091,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
        tpid = 0;
        if (pid_alive(p)) {
                struct task_struct *tracer = ptrace_parent(p);
-@@ -296,7 +301,7 @@ static inline void task_sig(struct seq_f
+@@ -297,7 +302,7 @@ static inline void task_sig(struct seq_f
  }
  
  static void render_cap_t(struct seq_file *m, const char *header,
@@ -6145,9 +6100,9 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
  {
        unsigned __capi;
  
-@@ -321,10 +326,11 @@ static inline void task_cap(struct seq_f
-       cap_bset        = cred->cap_bset;
-       rcu_read_unlock();
+@@ -331,10 +336,11 @@ static inline void task_cap(struct seq_f
+       NORM_CAPS(cap_effective);
+       NORM_CAPS(cap_bset);
  
 -      render_cap_t(m, "CapInh:\t", &cap_inheritable);
 -      render_cap_t(m, "CapPrm:\t", &cap_permitted);
@@ -6160,8 +6115,8 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
 +      render_cap_t(m, "CapBnd:\t", p->vx_info, &cap_bset);
  }
  
- static inline void task_context_switch_counts(struct seq_file *m,
-@@ -346,6 +352,42 @@ static void task_cpus_allowed(struct seq
+ static inline void task_seccomp(struct seq_file *m, struct task_struct *p)
+@@ -363,6 +369,42 @@ static void task_cpus_allowed(struct seq
        seq_putc(m, '\n');
  }
  
@@ -6204,15 +6159,15 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
  int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task)
  {
-@@ -362,6 +404,7 @@ int proc_pid_status(struct seq_file *m,
-       task_cap(m, task);
+@@ -380,6 +422,7 @@ int proc_pid_status(struct seq_file *m,
+       task_seccomp(m, task);
        task_cpus_allowed(m, task);
        cpuset_task_status_allowed(m, task);
 +      task_vs_id(m, task);
        task_context_switch_counts(m, task);
        return 0;
  }
-@@ -471,6 +514,17 @@ static int do_task_stat(struct seq_file
+@@ -489,6 +532,17 @@ static int do_task_stat(struct seq_file
        /* convert nsec -> ticks */
        start_time = nsec_to_clock_t(start_time);
  
@@ -6230,10 +6185,10 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/array.c linux-3.7.7-vs2.3.5.6/fs/proc/
        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.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/base.c
---- linux-3.7.7/fs/proc/base.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/base.c       2012-12-18 15:13:16.000000000 +0000
-@@ -85,6 +85,8 @@
+diff -NurpP --minimal linux-3.9.4/fs/proc/base.c linux-3.9.4-vs2.3.6.1/fs/proc/base.c
+--- linux-3.9.4/fs/proc/base.c 2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/base.c       2013-05-31 14:47:11.000000000 +0000
+@@ -86,6 +86,8 @@
  #include <linux/fs_struct.h>
  #include <linux/slab.h>
  #include <linux/flex_array.h>
@@ -6242,7 +6197,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
  #ifdef CONFIG_HARDWALL
  #include <asm/hardwall.h>
  #endif
-@@ -950,11 +952,15 @@ static ssize_t oom_adj_write(struct file
+@@ -944,11 +946,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 &&
@@ -6259,7 +6214,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        /*
         * /proc/pid/oom_adj is provided for legacy purposes, ask users to use
         * /proc/pid/oom_score_adj instead.
-@@ -1534,6 +1540,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1528,6 +1534,8 @@ struct inode *proc_pid_make_inode(struct
                inode->i_gid = cred->egid;
                rcu_read_unlock();
        }
@@ -6268,7 +6223,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        security_task_to_inode(task, inode);
  
  out:
-@@ -1579,6 +1587,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1573,6 +1581,8 @@ int pid_getattr(struct vfsmount *mnt, st
  
  /* dentry stuff */
  
@@ -6277,7 +6232,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
  /*
   *    Exceptional case: normally we are not allowed to unhash a busy
   * directory. In this case, however, we can do it - no aliasing problems
-@@ -1607,6 +1617,12 @@ int pid_revalidate(struct dentry *dentry
+@@ -1601,6 +1611,12 @@ int pid_revalidate(struct dentry *dentry
        task = get_proc_task(inode);
  
        if (task) {
@@ -6290,7 +6245,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
                    task_dumpable(task)) {
                        rcu_read_lock();
-@@ -1623,6 +1639,7 @@ int pid_revalidate(struct dentry *dentry
+@@ -1617,6 +1633,7 @@ int pid_revalidate(struct dentry *dentry
                put_task_struct(task);
                return 1;
        }
@@ -6298,7 +6253,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        d_drop(dentry);
        return 0;
  }
-@@ -2065,6 +2082,13 @@ static struct dentry *proc_pident_lookup
+@@ -2059,6 +2076,13 @@ static struct dentry *proc_pident_lookup
        if (!task)
                goto out_no_task;
  
@@ -6312,16 +6267,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2451,7 +2475,7 @@ out_iput:
- static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
- {
-       struct dentry *error;
--      struct task_struct *task = get_proc_task(dir);
-+      struct task_struct *task = get_proc_task_real(dir);
-       const struct pid_entry *p, *last;
-       error = ERR_PTR(-ENOENT);
-@@ -2639,6 +2663,9 @@ static int proc_pid_personality(struct s
+@@ -2493,6 +2517,9 @@ static int proc_pid_personality(struct s
  static const struct file_operations proc_task_operations;
  static const struct inode_operations proc_task_inode_operations;
  
@@ -6331,7 +6277,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
  static const struct pid_entry tgid_base_stuff[] = {
        DIR("task",       S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations),
        DIR("fd",         S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
-@@ -2705,6 +2732,8 @@ static const struct pid_entry tgid_base_
+@@ -2559,6 +2586,8 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_CGROUPS
        REG("cgroup",  S_IRUGO, proc_cgroup_operations),
  #endif
@@ -6340,7 +6286,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        INF("oom_score",  S_IRUGO, proc_oom_score),
        REG("oom_adj",    S_IRUGO|S_IWUSR, proc_oom_adj_operations),
        REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -2729,6 +2758,7 @@ static const struct pid_entry tgid_base_
+@@ -2583,6 +2612,7 @@ static const struct pid_entry tgid_base_
        REG("gid_map",    S_IRUGO|S_IWUSR, proc_gid_map_operations),
        REG("projid_map", S_IRUGO|S_IWUSR, proc_projid_map_operations),
  #endif
@@ -6348,7 +6294,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
  };
  
  static int proc_tgid_base_readdir(struct file * filp,
-@@ -2923,7 +2953,7 @@ retry:
+@@ -2770,7 +2800,7 @@ retry:
        iter.task = NULL;
        pid = find_ge_pid(iter.tgid, ns);
        if (pid) {
@@ -6357,7 +6303,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
                iter.task = pid_task(pid, PIDTYPE_PID);
                /* What we to know is if the pid we have find is the
                 * pid of a thread_group_leader.  Testing for task
-@@ -2953,7 +2983,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -2800,7 +2830,7 @@ static int proc_pid_fill_cache(struct fi
        struct tgid_iter iter)
  {
        char name[PROC_NUMBUF];
@@ -6366,16 +6312,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
        return proc_fill_cache(filp, dirent, filldir, name, len,
                                proc_pid_instantiate, iter.task, NULL);
  }
-@@ -2977,7 +3007,7 @@ int proc_pid_readdir(struct file * filp,
-               goto out_no_task;
-       nr = filp->f_pos - FIRST_PROCESS_ENTRY;
--      reaper = get_proc_task(filp->f_path.dentry->d_inode);
-+      reaper = get_proc_task_real(filp->f_path.dentry->d_inode);
-       if (!reaper)
-               goto out_no_task;
-@@ -2999,6 +3029,8 @@ int proc_pid_readdir(struct file * filp,
+@@ -2833,6 +2863,8 @@ int proc_pid_readdir(struct file * filp,
                        __filldir = fake_filldir;
  
                filp->f_pos = iter.tgid + TGID_OFFSET;
@@ -6384,7 +6321,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
                if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
                        put_task_struct(iter.task);
                        goto out;
-@@ -3161,6 +3193,8 @@ static struct dentry *proc_task_lookup(s
+@@ -2993,6 +3025,8 @@ static struct dentry *proc_task_lookup(s
        tid = name_to_int(dentry);
        if (tid == ~0U)
                goto out;
@@ -6393,10 +6330,10 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/base.c linux-3.7.7-vs2.3.5.6/fs/proc/b
  
        ns = dentry->d_sb->s_fs_info;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/proc/generic.c
---- linux-3.7.7/fs/proc/generic.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/generic.c    2012-12-18 15:13:16.000000000 +0000
-@@ -22,6 +22,7 @@
+diff -NurpP --minimal linux-3.9.4/fs/proc/generic.c linux-3.9.4-vs2.3.6.1/fs/proc/generic.c
+--- linux-3.9.4/fs/proc/generic.c      2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/generic.c    2013-05-31 16:13:42.000000000 +0000
+@@ -23,6 +23,7 @@
  #include <linux/bitops.h>
  #include <linux/spinlock.h>
  #include <linux/completion.h>
@@ -6404,7 +6341,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
  #include <asm/uaccess.h>
  
  #include "internal.h"
-@@ -424,11 +425,15 @@ struct dentry *proc_lookup_de(struct pro
+@@ -409,6 +410,8 @@ struct dentry *proc_lookup_de(struct pro
        for (de = de->subdir; de ; de = de->next) {
                if (de->namelen != dentry->d_name.len)
                        continue;
@@ -6413,14 +6350,16 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
                if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
                        pde_get(de);
                        spin_unlock(&proc_subdir_lock);
-                       error = -ENOMEM;
-                       inode = proc_get_inode(dir->i_sb, de);
+@@ -417,6 +420,8 @@ struct dentry *proc_lookup_de(struct pro
+                               return ERR_PTR(-ENOMEM);
+                       d_set_d_op(dentry, &proc_dentry_operations);
+                       d_add(dentry, inode);
 +                      /* generic proc entries belong to the host */
 +                      i_tag_write(inode, 0);
-                       goto out_unlock;
+                       return NULL;
                }
        }
-@@ -506,6 +511,8 @@ int proc_readdir_de(struct proc_dir_entr
+@@ -485,6 +490,8 @@ int proc_readdir_de(struct proc_dir_entr
  
                                /* filldir passes info to user space */
                                pde_get(de);
@@ -6429,7 +6368,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
                                spin_unlock(&proc_subdir_lock);
                                if (filldir(dirent, de->name, de->namelen, filp->f_pos,
                                            de->low_ino, de->mode >> 12) < 0) {
-@@ -513,6 +520,7 @@ int proc_readdir_de(struct proc_dir_entr
+@@ -492,6 +499,7 @@ int proc_readdir_de(struct proc_dir_entr
                                        goto out;
                                }
                                spin_lock(&proc_subdir_lock);
@@ -6437,7 +6376,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
                                filp->f_pos++;
                                next = de->next;
                                pde_put(de);
-@@ -625,6 +633,7 @@ static struct proc_dir_entry *__proc_cre
+@@ -603,6 +611,7 @@ static struct proc_dir_entry *__proc_cre
        ent->namelen = len;
        ent->mode = mode;
        ent->nlink = nlink;
@@ -6445,7 +6384,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
        atomic_set(&ent->count, 1);
        spin_lock_init(&ent->pde_unload_lock);
        INIT_LIST_HEAD(&ent->pde_openers);
-@@ -648,7 +657,8 @@ struct proc_dir_entry *proc_symlink(cons
+@@ -626,7 +635,8 @@ struct proc_dir_entry *proc_symlink(cons
                                kfree(ent->data);
                                kfree(ent);
                                ent = NULL;
@@ -6455,10 +6394,10 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/generic.c linux-3.7.7-vs2.3.5.6/fs/pro
                } else {
                        kfree(ent);
                        ent = NULL;
-diff -NurpP --minimal linux-3.7.7/fs/proc/inode.c linux-3.7.7-vs2.3.5.6/fs/proc/inode.c
---- linux-3.7.7/fs/proc/inode.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/inode.c      2012-12-18 15:13:16.000000000 +0000
-@@ -457,6 +457,8 @@ struct inode *proc_get_inode(struct supe
+diff -NurpP --minimal linux-3.9.4/fs/proc/inode.c linux-3.9.4-vs2.3.6.1/fs/proc/inode.c
+--- linux-3.9.4/fs/proc/inode.c        2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/inode.c      2013-05-31 14:47:11.000000000 +0000
+@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct supe
                        inode->i_uid = de->uid;
                        inode->i_gid = de->gid;
                }
@@ -6467,19 +6406,19 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/inode.c linux-3.7.7-vs2.3.5.6/fs/proc/
                if (de->size)
                        inode->i_size = de->size;
                if (de->nlink)
-diff -NurpP --minimal linux-3.7.7/fs/proc/internal.h linux-3.7.7-vs2.3.5.6/fs/proc/internal.h
---- linux-3.7.7/fs/proc/internal.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/internal.h   2012-12-18 15:13:16.000000000 +0000
-@@ -11,6 +11,8 @@
+diff -NurpP --minimal linux-3.9.4/fs/proc/internal.h linux-3.9.4-vs2.3.6.1/fs/proc/internal.h
+--- linux-3.9.4/fs/proc/internal.h     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/internal.h   2013-05-31 16:04:34.000000000 +0000
+@@ -12,6 +12,8 @@
  #include <linux/sched.h>
  #include <linux/proc_fs.h>
+ #include <linux/binfmts.h>
 +#include <linux/vs_pid.h>
 +
  struct  ctl_table_header;
  struct  mempolicy;
  
-@@ -54,6 +56,9 @@ extern int proc_pid_status(struct seq_fi
+@@ -56,6 +58,9 @@ extern int proc_pid_status(struct seq_fi
                                struct pid *pid, struct task_struct *task);
  extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
                                struct pid *pid, struct task_struct *task);
@@ -6489,7 +6428,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/internal.h linux-3.7.7-vs2.3.5.6/fs/pr
  extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
  
  extern const struct file_operations proc_tid_children_operations;
-@@ -87,11 +92,16 @@ static inline struct pid *proc_pid(struc
+@@ -89,11 +94,16 @@ static inline struct pid *proc_pid(struc
        return PROC_I(inode)->pid;
  }
  
@@ -6507,9 +6446,9 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/internal.h linux-3.7.7-vs2.3.5.6/fs/pr
  static inline int proc_fd(struct inode *inode)
  {
        return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-3.7.7/fs/proc/loadavg.c linux-3.7.7-vs2.3.5.6/fs/proc/loadavg.c
---- linux-3.7.7/fs/proc/loadavg.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/loadavg.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc/loadavg.c linux-3.9.4-vs2.3.6.1/fs/proc/loadavg.c
+--- linux-3.9.4/fs/proc/loadavg.c      2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/loadavg.c    2013-05-31 14:47:11.000000000 +0000
 @@ -12,15 +12,27 @@
  
  static int loadavg_proc_show(struct seq_file *m, void *v)
@@ -6539,9 +6478,9 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/loadavg.c linux-3.7.7-vs2.3.5.6/fs/pro
                task_active_pid_ns(current)->last_pid);
        return 0;
  }
-diff -NurpP --minimal linux-3.7.7/fs/proc/meminfo.c linux-3.7.7-vs2.3.5.6/fs/proc/meminfo.c
---- linux-3.7.7/fs/proc/meminfo.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/meminfo.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc/meminfo.c linux-3.9.4-vs2.3.6.1/fs/proc/meminfo.c
+--- linux-3.9.4/fs/proc/meminfo.c      2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/meminfo.c    2013-05-31 16:05:39.000000000 +0000
 @@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_
        allowed = ((totalram_pages - hugetlb_total_pages())
                * sysctl_overcommit_ratio / 100) + total_swap_pages;
@@ -6549,13 +6488,13 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/meminfo.c linux-3.7.7-vs2.3.5.6/fs/pro
 -      cached = global_page_state(NR_FILE_PAGES) -
 +      cached = vx_flags(VXF_VIRT_MEM, 0) ?
 +              vx_vsi_cached(&i) : global_page_state(NR_FILE_PAGES) -
-                       total_swapcache_pages - i.bufferram;
+                       total_swapcache_pages() - i.bufferram;
        if (cached < 0)
                cached = 0;
-diff -NurpP --minimal linux-3.7.7/fs/proc/root.c linux-3.7.7-vs2.3.5.6/fs/proc/root.c
---- linux-3.7.7/fs/proc/root.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/root.c       2012-12-18 15:13:16.000000000 +0000
-@@ -19,9 +19,14 @@
+diff -NurpP --minimal linux-3.9.4/fs/proc/root.c linux-3.9.4-vs2.3.6.1/fs/proc/root.c
+--- linux-3.9.4/fs/proc/root.c 2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/root.c       2013-05-31 14:47:11.000000000 +0000
+@@ -20,9 +20,14 @@
  #include <linux/mount.h>
  #include <linux/pid_namespace.h>
  #include <linux/parser.h>
@@ -6570,7 +6509,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/root.c linux-3.7.7-vs2.3.5.6/fs/proc/r
  static int proc_test_super(struct super_block *sb, void *data)
  {
        return sb->s_fs_info == data;
-@@ -189,6 +194,7 @@ void __init proc_root_init(void)
+@@ -182,6 +187,7 @@ void __init proc_root_init(void)
  #endif
        proc_mkdir("bus", NULL);
        proc_sys_init();
@@ -6578,7 +6517,7 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/root.c linux-3.7.7-vs2.3.5.6/fs/proc/r
  }
  
  static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
-@@ -255,6 +261,7 @@ struct proc_dir_entry proc_root = {
+@@ -248,6 +254,7 @@ struct proc_dir_entry proc_root = {
        .proc_iops      = &proc_root_inode_operations, 
        .proc_fops      = &proc_root_operations,
        .parent         = &proc_root,
@@ -6586,9 +6525,26 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/root.c linux-3.7.7-vs2.3.5.6/fs/proc/r
        .name           = "/proc",
  };
  
-diff -NurpP --minimal linux-3.7.7/fs/proc/stat.c linux-3.7.7-vs2.3.5.6/fs/proc/stat.c
---- linux-3.7.7/fs/proc/stat.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/stat.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc/self.c linux-3.9.4-vs2.3.6.1/fs/proc/self.c
+--- linux-3.9.4/fs/proc/self.c 2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/self.c       2013-05-31 20:57:54.000000000 +0000
+@@ -1,6 +1,7 @@
+ #include <linux/proc_fs.h>
+ #include <linux/sched.h>
+ #include <linux/namei.h>
++#include <linux/vserver/inode.h>
+ /*
+  * /proc/self:
+@@ -56,4 +57,5 @@ void __init proc_self_init(void)
+       mode = S_IFLNK | S_IRWXUGO;
+       proc_self_symlink = proc_create("self", mode, NULL, NULL );
+       proc_self_symlink->proc_iops = &proc_self_inode_operations;
++      proc_self_symlink->vx_flags = IATTR_PROC_SYMLINK;
+ }
+diff -NurpP --minimal linux-3.9.4/fs/proc/stat.c linux-3.9.4-vs2.3.6.1/fs/proc/stat.c
+--- linux-3.9.4/fs/proc/stat.c 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/stat.c       2013-05-31 14:47:11.000000000 +0000
 @@ -9,8 +9,10 @@
  #include <linux/slab.h>
  #include <linux/time.h>
@@ -6637,9 +6593,9 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/stat.c linux-3.7.7-vs2.3.5.6/fs/proc/s
                /* Copy values here to work around gcc-2.95.3, gcc-2.96 */
                user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
                nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
-diff -NurpP --minimal linux-3.7.7/fs/proc/uptime.c linux-3.7.7-vs2.3.5.6/fs/proc/uptime.c
---- linux-3.7.7/fs/proc/uptime.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc/uptime.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc/uptime.c linux-3.9.4-vs2.3.6.1/fs/proc/uptime.c
+--- linux-3.9.4/fs/proc/uptime.c       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc/uptime.c     2013-05-31 14:47:11.000000000 +0000
 @@ -5,6 +5,7 @@
  #include <linux/seq_file.h>
  #include <linux/time.h>
@@ -6659,9 +6615,9 @@ diff -NurpP --minimal linux-3.7.7/fs/proc/uptime.c linux-3.7.7-vs2.3.5.6/fs/proc
        seq_printf(m, "%lu.%02lu %lu.%02lu\n",
                        (unsigned long) uptime.tv_sec,
                        (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-diff -NurpP --minimal linux-3.7.7/fs/proc_namespace.c linux-3.7.7-vs2.3.5.6/fs/proc_namespace.c
---- linux-3.7.7/fs/proc_namespace.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/proc_namespace.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/proc_namespace.c linux-3.9.4-vs2.3.6.1/fs/proc_namespace.c
+--- linux-3.9.4/fs/proc_namespace.c    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/proc_namespace.c  2013-05-31 17:17:53.000000000 +0000
 @@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file
                { MS_SYNCHRONOUS, ",sync" },
                { MS_DIRSYNC, ",dirsync" },
@@ -6777,10 +6733,10 @@ diff -NurpP --minimal linux-3.7.7/fs/proc_namespace.c linux-3.7.7-vs2.3.5.6/fs/p
        /* file system type */
        seq_puts(m, "with fstype ");
        show_type(m, sb);
-diff -NurpP --minimal linux-3.7.7/fs/quota/dquot.c linux-3.7.7-vs2.3.5.6/fs/quota/dquot.c
---- linux-3.7.7/fs/quota/dquot.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/quota/dquot.c     2012-12-18 15:13:16.000000000 +0000
-@@ -1582,6 +1582,9 @@ int __dquot_alloc_space(struct inode *in
+diff -NurpP --minimal linux-3.9.4/fs/quota/dquot.c linux-3.9.4-vs2.3.6.1/fs/quota/dquot.c
+--- linux-3.9.4/fs/quota/dquot.c       2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/quota/dquot.c     2013-05-31 14:47:11.000000000 +0000
+@@ -1585,6 +1585,9 @@ int __dquot_alloc_space(struct inode *in
        struct dquot **dquots = inode->i_dquot;
        int reserve = flags & DQUOT_SPACE_RESERVE;
  
@@ -6790,7 +6746,7 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/dquot.c linux-3.7.7-vs2.3.5.6/fs/quot
        /*
         * First test before acquiring mutex - solves deadlocks when we
         * re-enter the quota code and are already holding the mutex
-@@ -1637,6 +1640,9 @@ int dquot_alloc_inode(const struct inode
+@@ -1640,6 +1643,9 @@ int dquot_alloc_inode(const struct inode
        struct dquot_warn warn[MAXQUOTAS];
        struct dquot * const *dquots = inode->i_dquot;
  
@@ -6800,7 +6756,7 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/dquot.c linux-3.7.7-vs2.3.5.6/fs/quot
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode))
-@@ -1708,6 +1714,8 @@ void __dquot_free_space(struct inode *in
+@@ -1711,6 +1717,8 @@ void __dquot_free_space(struct inode *in
        struct dquot **dquots = inode->i_dquot;
        int reserve = flags & DQUOT_SPACE_RESERVE;
  
@@ -6809,7 +6765,7 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/dquot.c linux-3.7.7-vs2.3.5.6/fs/quot
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode)) {
-@@ -1752,6 +1760,8 @@ void dquot_free_inode(const struct inode
+@@ -1755,6 +1763,8 @@ void dquot_free_inode(const struct inode
        struct dquot_warn warn[MAXQUOTAS];
        struct dquot * const *dquots = inode->i_dquot;
  
@@ -6818,9 +6774,9 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/dquot.c linux-3.7.7-vs2.3.5.6/fs/quot
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode))
-diff -NurpP --minimal linux-3.7.7/fs/quota/quota.c linux-3.7.7-vs2.3.5.6/fs/quota/quota.c
---- linux-3.7.7/fs/quota/quota.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/quota/quota.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/quota/quota.c linux-3.9.4-vs2.3.6.1/fs/quota/quota.c
+--- linux-3.9.4/fs/quota/quota.c       2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/quota/quota.c     2013-05-31 14:47:11.000000000 +0000
 @@ -8,6 +8,7 @@
  #include <linux/fs.h>
  #include <linux/namei.h>
@@ -6838,9 +6794,9 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/quota.c linux-3.7.7-vs2.3.5.6/fs/quot
                        return -EPERM;
        }
  
-@@ -307,6 +308,46 @@ static int do_quotactl(struct super_bloc
-       }
- }
+@@ -309,6 +310,46 @@ static int do_quotactl(struct super_bloc
+ #ifdef CONFIG_BLOCK
  
 +#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE)
 +
@@ -6885,7 +6841,7 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/quota.c linux-3.7.7-vs2.3.5.6/fs/quot
  /* Return 1 if 'cmd' will block on frozen filesystem */
  static int quotactl_cmd_write(int cmd)
  {
-@@ -339,6 +380,22 @@ static struct super_block *quotactl_bloc
+@@ -343,6 +384,22 @@ static struct super_block *quotactl_bloc
        putname(tmp);
        if (IS_ERR(bdev))
                return ERR_CAST(bdev);
@@ -6908,9 +6864,9 @@ diff -NurpP --minimal linux-3.7.7/fs/quota/quota.c linux-3.7.7-vs2.3.5.6/fs/quot
        if (quotactl_cmd_write(cmd))
                sb = get_super_thawed(bdev);
        else
-diff -NurpP --minimal linux-3.7.7/fs/stat.c linux-3.7.7-vs2.3.5.6/fs/stat.c
---- linux-3.7.7/fs/stat.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/stat.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/stat.c linux-3.9.4-vs2.3.6.1/fs/stat.c
+--- linux-3.9.4/fs/stat.c      2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/stat.c    2013-05-31 14:47:11.000000000 +0000
 @@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
        stat->nlink = inode->i_nlink;
        stat->uid = inode->i_uid;
@@ -6919,9 +6875,9 @@ diff -NurpP --minimal linux-3.7.7/fs/stat.c linux-3.7.7-vs2.3.5.6/fs/stat.c
        stat->rdev = inode->i_rdev;
        stat->size = i_size_read(inode);
        stat->atime = inode->i_atime;
-diff -NurpP --minimal linux-3.7.7/fs/statfs.c linux-3.7.7-vs2.3.5.6/fs/statfs.c
---- linux-3.7.7/fs/statfs.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/statfs.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/statfs.c linux-3.9.4-vs2.3.6.1/fs/statfs.c
+--- linux-3.9.4/fs/statfs.c    2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/statfs.c  2013-05-31 14:47:11.000000000 +0000
 @@ -7,6 +7,8 @@
  #include <linux/statfs.h>
  #include <linux/security.h>
@@ -6940,9 +6896,9 @@ diff -NurpP --minimal linux-3.7.7/fs/statfs.c linux-3.7.7-vs2.3.5.6/fs/statfs.c
        return retval;
  }
  
-diff -NurpP --minimal linux-3.7.7/fs/super.c linux-3.7.7-vs2.3.5.6/fs/super.c
---- linux-3.7.7/fs/super.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/super.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/super.c linux-3.9.4-vs2.3.6.1/fs/super.c
+--- linux-3.9.4/fs/super.c     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/super.c   2013-05-31 14:47:11.000000000 +0000
 @@ -34,6 +34,8 @@
  #include <linux/cleancache.h>
  #include <linux/fsnotify.h>
@@ -6952,7 +6908,7 @@ diff -NurpP --minimal linux-3.7.7/fs/super.c linux-3.7.7-vs2.3.5.6/fs/super.c
  #include "internal.h"
  
  
-@@ -1119,6 +1121,13 @@ mount_fs(struct file_system_type *type,
+@@ -1117,6 +1119,13 @@ mount_fs(struct file_system_type *type,
        WARN_ON(sb->s_bdi == &default_backing_dev_info);
        sb->s_flags |= MS_BORN;
  
@@ -6966,10 +6922,10 @@ diff -NurpP --minimal linux-3.7.7/fs/super.c linux-3.7.7-vs2.3.5.6/fs/super.c
        error = security_sb_kern_mount(sb, flags, secdata);
        if (error)
                goto out_sb;
-diff -NurpP --minimal linux-3.7.7/fs/sysfs/mount.c linux-3.7.7-vs2.3.5.6/fs/sysfs/mount.c
---- linux-3.7.7/fs/sysfs/mount.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/sysfs/mount.c     2012-12-18 15:13:16.000000000 +0000
-@@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
+diff -NurpP --minimal linux-3.9.4/fs/sysfs/mount.c linux-3.9.4-vs2.3.6.1/fs/sysfs/mount.c
+--- linux-3.9.4/fs/sysfs/mount.c       2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/sysfs/mount.c     2013-05-31 14:47:11.000000000 +0000
+@@ -48,7 +48,7 @@ static int sysfs_fill_super(struct super
  
        sb->s_blocksize = PAGE_CACHE_SIZE;
        sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -6978,9 +6934,9 @@ diff -NurpP --minimal linux-3.7.7/fs/sysfs/mount.c linux-3.7.7-vs2.3.5.6/fs/sysf
        sb->s_op = &sysfs_ops;
        sb->s_time_gran = 1;
  
-diff -NurpP --minimal linux-3.7.7/fs/utimes.c linux-3.7.7-vs2.3.5.6/fs/utimes.c
---- linux-3.7.7/fs/utimes.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/utimes.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/utimes.c linux-3.9.4-vs2.3.6.1/fs/utimes.c
+--- linux-3.9.4/fs/utimes.c    2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/utimes.c  2013-05-31 22:40:16.000000000 +0000
 @@ -8,6 +8,8 @@
  #include <linux/stat.h>
  #include <linux/utime.h>
@@ -6996,23 +6952,23 @@ diff -NurpP --minimal linux-3.7.7/fs/utimes.c linux-3.7.7-vs2.3.5.6/fs/utimes.c
        struct iattr newattrs;
 -      struct inode *inode = path->dentry->d_inode;
 +      struct inode *inode;
++
++      error = cow_check_and_break(path);
++      if (error)
++              goto out;
  
        error = mnt_want_write(path->mnt);
        if (error)
                goto out;
  
-+      error = cow_check_and_break(path);
-+      if (error)
-+              goto mnt_drop_write_and_out;
-+
 +      inode = path->dentry->d_inode;
 +
        if (times && times[0].tv_nsec == UTIME_NOW &&
                     times[1].tv_nsec == UTIME_NOW)
                times = NULL;
-diff -NurpP --minimal linux-3.7.7/fs/xattr.c linux-3.7.7-vs2.3.5.6/fs/xattr.c
---- linux-3.7.7/fs/xattr.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xattr.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xattr.c linux-3.9.4-vs2.3.6.1/fs/xattr.c
+--- linux-3.9.4/fs/xattr.c     2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xattr.c   2013-05-31 14:47:11.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/audit.h>
  #include <linux/vmalloc.h>
@@ -7030,9 +6986,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xattr.c linux-3.7.7-vs2.3.5.6/fs/xattr.c
                        return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
                return 0;
        }
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_dinode.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_dinode.h
---- linux-3.7.7/fs/xfs/xfs_dinode.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_dinode.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_dinode.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_dinode.h
+--- linux-3.9.4/fs/xfs/xfs_dinode.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_dinode.h  2013-05-31 14:47:11.000000000 +0000
 @@ -51,7 +51,9 @@ typedef struct xfs_dinode {
        __be32          di_nlink;       /* number of links to file */
        __be16          di_projid_lo;   /* lower part of owner's project id */
@@ -7073,9 +7029,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_dinode.h linux-3.7.7-vs2.3.5.6/fs/x
 +#define XFS_DIVFLAG_COW               0x02
  
  #endif        /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_fs.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_fs.h
---- linux-3.7.7/fs/xfs/xfs_fs.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_fs.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_fs.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_fs.h
+--- linux-3.9.4/fs/xfs/xfs_fs.h        2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_fs.h      2013-05-31 14:47:11.000000000 +0000
 @@ -67,6 +67,9 @@ struct fsxattr {
  #define XFS_XFLAG_EXTSZINHERIT        0x00001000      /* inherit inode extent size */
  #define XFS_XFLAG_NODEFRAG    0x00002000      /* do not defragment */
@@ -7086,7 +7042,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_fs.h linux-3.7.7-vs2.3.5.6/fs/xfs/x
  #define XFS_XFLAG_HASATTR     0x80000000      /* no DIFLAG for this   */
  
  /*
-@@ -302,7 +305,8 @@ typedef struct xfs_bstat {
+@@ -303,7 +306,8 @@ typedef struct xfs_bstat {
  #define       bs_projid       bs_projid_lo    /* (previously just bs_projid)  */
        __u16           bs_forkoff;     /* inode fork offset in bytes   */
        __u16           bs_projid_hi;   /* higher part of project id    */
@@ -7096,9 +7052,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_fs.h linux-3.7.7-vs2.3.5.6/fs/xfs/x
        __u32           bs_dmevmask;    /* DMIG event mask              */
        __u16           bs_dmstate;     /* DMIG state info              */
        __u16           bs_aextents;    /* attribute number of extents  */
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ialloc.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ialloc.c
---- linux-3.7.7/fs/xfs/xfs_ialloc.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ialloc.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_ialloc.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ialloc.c
+--- linux-3.9.4/fs/xfs/xfs_ialloc.c    2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ialloc.c  2013-05-31 14:47:11.000000000 +0000
 @@ -37,7 +37,6 @@
  #include "xfs_error.h"
  #include "xfs_bmap.h"
@@ -7107,9 +7063,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ialloc.c linux-3.7.7-vs2.3.5.6/fs/x
  /*
   * Allocation group level functions.
   */
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_inode.c
---- linux-3.7.7/fs/xfs/xfs_inode.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_inode.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_inode.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_inode.c
+--- linux-3.9.4/fs/xfs/xfs_inode.c     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_inode.c   2013-05-31 14:47:11.000000000 +0000
 @@ -16,6 +16,7 @@
   * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
   */
@@ -7118,7 +7074,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
  
  #include "xfs.h"
  #include "xfs_fs.h"
-@@ -563,15 +564,25 @@ xfs_iformat_btree(
+@@ -835,15 +836,25 @@ xfs_iformat_btree(
  STATIC void
  xfs_dinode_from_disk(
        xfs_icdinode_t          *to,
@@ -7147,7 +7103,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        to->di_nlink = be32_to_cpu(from->di_nlink);
        to->di_projid_lo = be16_to_cpu(from->di_projid_lo);
        to->di_projid_hi = be16_to_cpu(from->di_projid_hi);
-@@ -593,21 +604,26 @@ xfs_dinode_from_disk(
+@@ -865,21 +876,26 @@ xfs_dinode_from_disk(
        to->di_dmevmask = be32_to_cpu(from->di_dmevmask);
        to->di_dmstate  = be16_to_cpu(from->di_dmstate);
        to->di_flags    = be16_to_cpu(from->di_flags);
@@ -7177,7 +7133,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        to->di_nlink = cpu_to_be32(from->di_nlink);
        to->di_projid_lo = cpu_to_be16(from->di_projid_lo);
        to->di_projid_hi = cpu_to_be16(from->di_projid_hi);
-@@ -629,12 +645,14 @@ xfs_dinode_to_disk(
+@@ -901,12 +917,14 @@ xfs_dinode_to_disk(
        to->di_dmevmask = cpu_to_be32(from->di_dmevmask);
        to->di_dmstate = cpu_to_be16(from->di_dmstate);
        to->di_flags = cpu_to_be16(from->di_flags);
@@ -7193,7 +7149,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
  {
        uint                    flags = 0;
  
-@@ -645,6 +663,8 @@ _xfs_dic2xflags(
+@@ -917,6 +935,8 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_PREALLOC;
                if (di_flags & XFS_DIFLAG_IMMUTABLE)
                        flags |= XFS_XFLAG_IMMUTABLE;
@@ -7202,7 +7158,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
                if (di_flags & XFS_DIFLAG_APPEND)
                        flags |= XFS_XFLAG_APPEND;
                if (di_flags & XFS_DIFLAG_SYNC)
-@@ -669,6 +689,10 @@ _xfs_dic2xflags(
+@@ -941,6 +961,10 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_FILESTREAM;
        }
  
@@ -7213,7 +7169,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        return flags;
  }
  
-@@ -678,7 +702,7 @@ xfs_ip2xflags(
+@@ -950,7 +974,7 @@ xfs_ip2xflags(
  {
        xfs_icdinode_t          *dic = &ip->i_d;
  
@@ -7222,7 +7178,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
                                (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -686,7 +710,8 @@ uint
+@@ -958,7 +982,8 @@ uint
  xfs_dic2xflags(
        xfs_dinode_t            *dip)
  {
@@ -7232,7 +7188,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
                                (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -740,7 +765,8 @@ xfs_iread(
+@@ -1012,7 +1037,8 @@ xfs_iread(
         * Otherwise, just get the truly permanent information.
         */
        if (dip->di_mode) {
@@ -7242,7 +7198,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
                error = xfs_iformat(ip, dip);
                if (error)  {
  #ifdef DEBUG
-@@ -927,6 +953,7 @@ xfs_ialloc(
+@@ -1199,6 +1225,7 @@ xfs_ialloc(
        ASSERT(ip->i_d.di_nlink == nlink);
        ip->i_d.di_uid = current_fsuid();
        ip->i_d.di_gid = current_fsgid();
@@ -7250,7 +7206,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        xfs_set_projid(ip, prid);
        memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
  
-@@ -986,6 +1013,7 @@ xfs_ialloc(
+@@ -1258,6 +1285,7 @@ xfs_ialloc(
        ip->i_d.di_dmevmask = 0;
        ip->i_d.di_dmstate = 0;
        ip->i_d.di_flags = 0;
@@ -7258,7 +7214,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        flags = XFS_ILOG_CORE;
        switch (mode & S_IFMT) {
        case S_IFIFO:
-@@ -1668,6 +1696,7 @@ xfs_ifree(
+@@ -1952,6 +1980,7 @@ xfs_ifree(
        }
        ip->i_d.di_mode = 0;            /* mark incore inode as free */
        ip->i_d.di_flags = 0;
@@ -7266,7 +7222,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
        ip->i_d.di_dmevmask = 0;
        ip->i_d.di_forkoff = 0;         /* mark the attr fork not in use */
        ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS;
-@@ -1834,7 +1863,6 @@ xfs_iroot_realloc(
+@@ -2118,7 +2147,6 @@ xfs_iroot_realloc(
        return;
  }
  
@@ -7274,7 +7230,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
  /*
   * This is called when the amount of space needed for if_data
   * is increased or decreased.  The change in size is indicated by
-@@ -2522,7 +2550,8 @@ xfs_iflush_int(
+@@ -2800,7 +2828,8 @@ xfs_iflush_int(
         * because if the inode is dirty at all the core must
         * be.
         */
@@ -7284,9 +7240,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.c linux-3.7.7-vs2.3.5.6/fs/xf
  
        /* Wrap, we never let the log put out DI_MAX_FLUSH */
        if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_inode.h
---- linux-3.7.7/fs/xfs/xfs_inode.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_inode.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_inode.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_inode.h
+--- linux-3.9.4/fs/xfs/xfs_inode.h     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_inode.h   2013-05-31 14:47:11.000000000 +0000
 @@ -134,7 +134,9 @@ typedef struct xfs_icdinode {
        __uint32_t      di_nlink;       /* number of links to file */
        __uint16_t      di_projid_lo;   /* lower part of owner's project id */
@@ -7298,7 +7254,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.h linux-3.7.7-vs2.3.5.6/fs/xf
        __uint16_t      di_flushiter;   /* incremented on flush */
        xfs_ictimestamp_t di_atime;     /* time last accessed */
        xfs_ictimestamp_t di_mtime;     /* time last modified */
-@@ -561,7 +563,7 @@ int                xfs_imap_to_bp(struct xfs_mount *,
+@@ -556,7 +558,7 @@ int                xfs_imap_to_bp(struct xfs_mount *,
  int           xfs_iread(struct xfs_mount *, struct xfs_trans *,
                          struct xfs_inode *, uint);
  void          xfs_dinode_to_disk(struct xfs_dinode *,
@@ -7307,9 +7263,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_inode.h linux-3.7.7-vs2.3.5.6/fs/xf
  void          xfs_idestroy_fork(struct xfs_inode *, int);
  void          xfs_idata_realloc(struct xfs_inode *, int, int);
  void          xfs_iroot_realloc(struct xfs_inode *, int, int);
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ioctl.c
---- linux-3.7.7/fs/xfs/xfs_ioctl.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ioctl.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_ioctl.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ioctl.c
+--- linux-3.9.4/fs/xfs/xfs_ioctl.c     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ioctl.c   2013-05-31 14:47:11.000000000 +0000
 @@ -26,7 +26,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7319,7 +7275,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
  #include "xfs_rtalloc.h"
  #include "xfs_itable.h"
  #include "xfs_error.h"
-@@ -762,6 +762,10 @@ xfs_merge_ioc_xflags(
+@@ -763,6 +763,10 @@ xfs_merge_ioc_xflags(
                xflags |= XFS_XFLAG_IMMUTABLE;
        else
                xflags &= ~XFS_XFLAG_IMMUTABLE;
@@ -7330,7 +7286,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
        if (flags & FS_APPEND_FL)
                xflags |= XFS_XFLAG_APPEND;
        else
-@@ -790,6 +794,8 @@ xfs_di2lxflags(
+@@ -791,6 +795,8 @@ xfs_di2lxflags(
  
        if (di_flags & XFS_DIFLAG_IMMUTABLE)
                flags |= FS_IMMUTABLE_FL;
@@ -7339,7 +7295,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
        if (di_flags & XFS_DIFLAG_APPEND)
                flags |= FS_APPEND_FL;
        if (di_flags & XFS_DIFLAG_SYNC)
-@@ -850,6 +856,8 @@ xfs_set_diflags(
+@@ -851,6 +857,8 @@ xfs_set_diflags(
        di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC);
        if (xflags & XFS_XFLAG_IMMUTABLE)
                di_flags |= XFS_DIFLAG_IMMUTABLE;
@@ -7348,7 +7304,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
        if (xflags & XFS_XFLAG_APPEND)
                di_flags |= XFS_DIFLAG_APPEND;
        if (xflags & XFS_XFLAG_SYNC)
-@@ -892,6 +900,10 @@ xfs_diflags_to_linux(
+@@ -893,6 +901,10 @@ xfs_diflags_to_linux(
                inode->i_flags |= S_IMMUTABLE;
        else
                inode->i_flags &= ~S_IMMUTABLE;
@@ -7359,7 +7315,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
        if (xflags & XFS_XFLAG_APPEND)
                inode->i_flags |= S_APPEND;
        else
-@@ -1396,10 +1408,18 @@ xfs_file_ioctl(
+@@ -1397,10 +1409,18 @@ xfs_file_ioctl(
        case XFS_IOC_FSGETXATTRA:
                return xfs_ioc_fsgetxattr(ip, 1, arg);
        case XFS_IOC_FSSETXATTR:
@@ -7378,9 +7334,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.c linux-3.7.7-vs2.3.5.6/fs/xf
                return xfs_ioc_setxflags(ip, filp, arg);
  
        case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ioctl.h
---- linux-3.7.7/fs/xfs/xfs_ioctl.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_ioctl.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_ioctl.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ioctl.h
+--- linux-3.9.4/fs/xfs/xfs_ioctl.h     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_ioctl.h   2013-05-31 14:47:11.000000000 +0000
 @@ -70,6 +70,12 @@ xfs_handle_to_dentry(
        void __user             *uhandle,
        u32                     hlen);
@@ -7394,9 +7350,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_ioctl.h linux-3.7.7-vs2.3.5.6/fs/xf
  extern long
  xfs_file_ioctl(
        struct file             *filp,
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_iops.c
---- linux-3.7.7/fs/xfs/xfs_iops.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_iops.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_iops.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_iops.c
+--- linux-3.9.4/fs/xfs/xfs_iops.c      2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_iops.c    2013-05-31 14:47:11.000000000 +0000
 @@ -28,6 +28,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7405,7 +7361,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  #include "xfs_bmap.h"
  #include "xfs_rtalloc.h"
  #include "xfs_error.h"
-@@ -46,6 +47,7 @@
+@@ -47,6 +48,7 @@
  #include <linux/security.h>
  #include <linux/fiemap.h>
  #include <linux/slab.h>
@@ -7413,7 +7369,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  
  static int
  xfs_initxattrs(
-@@ -421,6 +423,7 @@ xfs_vn_getattr(
+@@ -422,6 +424,7 @@ xfs_vn_getattr(
        stat->nlink = ip->i_d.di_nlink;
        stat->uid = ip->i_d.di_uid;
        stat->gid = ip->i_d.di_gid;
@@ -7421,7 +7377,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
        stat->ino = ip->i_ino;
        stat->atime = inode->i_atime;
        stat->mtime = inode->i_mtime;
-@@ -1033,6 +1036,7 @@ static const struct inode_operations xfs
+@@ -1037,6 +1040,7 @@ static const struct inode_operations xfs
        .listxattr              = xfs_vn_listxattr,
        .fiemap                 = xfs_vn_fiemap,
        .update_time            = xfs_vn_update_time,
@@ -7429,7 +7385,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  };
  
  static const struct inode_operations xfs_dir_inode_operations = {
-@@ -1059,6 +1063,7 @@ static const struct inode_operations xfs
+@@ -1063,6 +1067,7 @@ static const struct inode_operations xfs
        .removexattr            = generic_removexattr,
        .listxattr              = xfs_vn_listxattr,
        .update_time            = xfs_vn_update_time,
@@ -7437,7 +7393,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  };
  
  static const struct inode_operations xfs_dir_ci_inode_operations = {
-@@ -1110,6 +1115,10 @@ xfs_diflags_to_iflags(
+@@ -1114,6 +1119,10 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_IMMUTABLE;
        else
                inode->i_flags &= ~S_IMMUTABLE;
@@ -7448,7 +7404,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
        if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
                inode->i_flags |= S_APPEND;
        else
-@@ -1122,6 +1131,15 @@ xfs_diflags_to_iflags(
+@@ -1126,6 +1135,15 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_NOATIME;
        else
                inode->i_flags &= ~S_NOATIME;
@@ -7464,7 +7420,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  }
  
  /*
-@@ -1153,6 +1171,7 @@ xfs_setup_inode(
+@@ -1157,6 +1175,7 @@ xfs_setup_inode(
        set_nlink(inode, ip->i_d.di_nlink);
        inode->i_uid    = ip->i_d.di_uid;
        inode->i_gid    = ip->i_d.di_gid;
@@ -7472,10 +7428,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_iops.c linux-3.7.7-vs2.3.5.6/fs/xfs
  
        switch (inode->i_mode & S_IFMT) {
        case S_IFBLK:
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_itable.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_itable.c
---- linux-3.7.7/fs/xfs/xfs_itable.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_itable.c  2012-12-18 15:13:16.000000000 +0000
-@@ -96,6 +96,7 @@ xfs_bulkstat_one_int(
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_itable.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_itable.c
+--- linux-3.9.4/fs/xfs/xfs_itable.c    2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_itable.c  2013-05-31 14:47:11.000000000 +0000
+@@ -97,6 +97,7 @@ xfs_bulkstat_one_int(
        buf->bs_mode = dic->di_mode;
        buf->bs_uid = dic->di_uid;
        buf->bs_gid = dic->di_gid;
@@ -7483,10 +7439,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_itable.c linux-3.7.7-vs2.3.5.6/fs/x
        buf->bs_size = dic->di_size;
        buf->bs_atime.tv_sec = dic->di_atime.t_sec;
        buf->bs_atime.tv_nsec = dic->di_atime.t_nsec;
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_linux.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_linux.h
---- linux-3.7.7/fs/xfs/xfs_linux.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_linux.h   2012-12-18 15:13:16.000000000 +0000
-@@ -121,6 +121,7 @@
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_linux.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_linux.h
+--- linux-3.9.4/fs/xfs/xfs_linux.h     2013-02-19 13:58:49.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_linux.h   2013-05-31 14:47:11.000000000 +0000
+@@ -123,6 +123,7 @@
  
  #define current_cpu()         (raw_smp_processor_id())
  #define current_pid()         (current->pid)
@@ -7494,10 +7450,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_linux.h linux-3.7.7-vs2.3.5.6/fs/xf
  #define current_test_flags(f) (current->flags & (f))
  #define current_set_flags_nested(sp, f)               \
                (*(sp) = current->flags, current->flags |= (f))
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_log_recover.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_log_recover.c
---- linux-3.7.7/fs/xfs/xfs_log_recover.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_log_recover.c     2012-12-18 15:13:16.000000000 +0000
-@@ -2359,7 +2359,8 @@ xlog_recover_inode_pass2(
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_log_recover.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_log_recover.c
+--- linux-3.9.4/fs/xfs/xfs_log_recover.c       2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_log_recover.c     2013-05-31 14:47:11.000000000 +0000
+@@ -2361,7 +2361,8 @@ xlog_recover_inode_pass2(
        }
  
        /* The core is in in-core format */
@@ -7507,10 +7463,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_log_recover.c linux-3.7.7-vs2.3.5.6
  
        /* the rest is in on-disk format */
        if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_mount.h linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_mount.h
---- linux-3.7.7/fs/xfs/xfs_mount.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_mount.h   2012-12-18 15:13:16.000000000 +0000
-@@ -246,6 +246,7 @@ typedef struct xfs_mount {
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_mount.h linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_mount.h
+--- linux-3.9.4/fs/xfs/xfs_mount.h     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_mount.h   2013-05-31 14:47:11.000000000 +0000
+@@ -254,6 +254,7 @@ typedef struct xfs_mount {
                                                   allocator */
  #define XFS_MOUNT_NOATTR2     (1ULL << 25)    /* disable use of attr2 format */
  
@@ -7518,9 +7474,9 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_mount.h linux-3.7.7-vs2.3.5.6/fs/xf
  
  /*
   * Default minimum read and write sizes.
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_super.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_super.c
---- linux-3.7.7/fs/xfs/xfs_super.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_super.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_super.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_super.c
+--- linux-3.9.4/fs/xfs/xfs_super.c     2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_super.c   2013-05-31 14:47:11.000000000 +0000
 @@ -114,6 +114,9 @@ mempool_t *xfs_ioend_pool;
  #define MNTOPT_NODELAYLOG  "nodelaylog"       /* Delayed logging disabled */
  #define MNTOPT_DISCARD           "discard"    /* Discard unused blocks */
@@ -7550,7 +7506,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_super.c linux-3.7.7-vs2.3.5.6/fs/xf
        {Opt_err, NULL}
  };
  
-@@ -383,6 +391,19 @@ xfs_parseargs(
+@@ -392,6 +400,19 @@ xfs_parseargs(
                } else if (!strcmp(this_char, "irixsgid")) {
                        xfs_warn(mp,
        "irixsgid is now a sysctl(2) variable, option is deprecated.");
@@ -7570,7 +7526,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_super.c linux-3.7.7-vs2.3.5.6/fs/xf
                } else {
                        xfs_warn(mp, "unknown mount option [%s].", this_char);
                        return EINVAL;
-@@ -1149,6 +1170,16 @@ xfs_fs_remount(
+@@ -1238,6 +1259,16 @@ xfs_fs_remount(
                case Opt_inode32:
                        mp->m_maxagi = xfs_set_inode32(mp);
                        break;
@@ -7587,7 +7543,7 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_super.c linux-3.7.7-vs2.3.5.6/fs/xf
                default:
                        /*
                         * Logically we would return an error here to prevent
-@@ -1368,6 +1399,9 @@ xfs_fs_fill_super(
+@@ -1458,6 +1489,9 @@ xfs_fs_fill_super(
        if (error)
                goto out_free_sb;
  
@@ -7597,10 +7553,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_super.c linux-3.7.7-vs2.3.5.6/fs/xf
        /*
         * we must configure the block size in the superblock before we run the
         * full mount process as the mount process can lookup and cache inodes.
-diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_vnodeops.c linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_vnodeops.c
---- linux-3.7.7/fs/xfs/xfs_vnodeops.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/fs/xfs/xfs_vnodeops.c        2012-12-18 15:13:16.000000000 +0000
-@@ -103,6 +103,77 @@ xfs_readlink_bmap(
+diff -NurpP --minimal linux-3.9.4/fs/xfs/xfs_vnodeops.c linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_vnodeops.c
+--- linux-3.9.4/fs/xfs/xfs_vnodeops.c  2013-05-31 13:45:25.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/fs/xfs/xfs_vnodeops.c        2013-05-31 14:47:11.000000000 +0000
+@@ -104,6 +104,77 @@ xfs_readlink_bmap(
        return error;
  }
  
@@ -7678,10 +7634,10 @@ diff -NurpP --minimal linux-3.7.7/fs/xfs/xfs_vnodeops.c linux-3.7.7-vs2.3.5.6/fs
  int
  xfs_readlink(
        xfs_inode_t     *ip,
-diff -NurpP --minimal linux-3.7.7/include/linux/cred.h linux-3.7.7-vs2.3.5.6/include/linux/cred.h
---- linux-3.7.7/include/linux/cred.h   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/cred.h 2012-12-18 15:13:16.000000000 +0000
-@@ -157,6 +157,7 @@ extern void exit_creds(struct task_struc
+diff -NurpP --minimal linux-3.9.4/include/linux/cred.h linux-3.9.4-vs2.3.6.1/include/linux/cred.h
+--- linux-3.9.4/include/linux/cred.h   2013-02-19 13:58:50.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/cred.h 2013-05-31 14:47:11.000000000 +0000
+@@ -143,6 +143,7 @@ extern void exit_creds(struct task_struc
  extern int copy_creds(struct task_struct *, unsigned long);
  extern const struct cred *get_task_cred(struct task_struct *);
  extern struct cred *cred_alloc_blank(void);
@@ -7689,7 +7645,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/cred.h linux-3.7.7-vs2.3.5.6/inc
  extern struct cred *prepare_creds(void);
  extern struct cred *prepare_exec_creds(void);
  extern int commit_creds(struct cred *);
-@@ -210,6 +211,31 @@ static inline void validate_process_cred
+@@ -196,6 +197,31 @@ static inline void validate_process_cred
  }
  #endif
  
@@ -7721,19 +7677,19 @@ diff -NurpP --minimal linux-3.7.7/include/linux/cred.h linux-3.7.7-vs2.3.5.6/inc
  /**
   * get_new_cred - Get a reference on a new set of credentials
   * @cred: The new credentials to reference
-diff -NurpP --minimal linux-3.7.7/include/linux/devpts_fs.h linux-3.7.7-vs2.3.5.6/include/linux/devpts_fs.h
---- linux-3.7.7/include/linux/devpts_fs.h      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/devpts_fs.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/devpts_fs.h linux-3.9.4-vs2.3.6.1/include/linux/devpts_fs.h
+--- linux-3.9.4/include/linux/devpts_fs.h      2013-02-19 13:58:50.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/devpts_fs.h    2013-05-31 14:47:11.000000000 +0000
 @@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
  
  #endif
  
 -
  #endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/include/linux/fs.h
---- linux-3.7.7/include/linux/fs.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/fs.h   2012-12-18 15:13:16.000000000 +0000
-@@ -210,6 +210,7 @@ typedef void (dio_iodone_t)(struct kiocb
+diff -NurpP --minimal linux-3.9.4/include/linux/fs.h linux-3.9.4-vs2.3.6.1/include/linux/fs.h
+--- linux-3.9.4/include/linux/fs.h     2013-05-31 13:45:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/fs.h   2013-05-31 14:47:11.000000000 +0000
+@@ -211,6 +211,7 @@ typedef void (dio_iodone_t)(struct kiocb
  #define ATTR_KILL_PRIV        (1 << 14)
  #define ATTR_OPEN     (1 << 15) /* Truncating from open(O_TRUNC) */
  #define ATTR_TIMES_SET        (1 << 16)
@@ -7741,7 +7697,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  
  /*
   * This is the Inode Attributes structure, used for notify_change().  It
-@@ -225,6 +226,7 @@ struct iattr {
+@@ -226,6 +227,7 @@ struct iattr {
        umode_t         ia_mode;
        kuid_t          ia_uid;
        kgid_t          ia_gid;
@@ -7749,7 +7705,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
        loff_t          ia_size;
        struct timespec ia_atime;
        struct timespec ia_mtime;
-@@ -522,7 +524,9 @@ struct inode {
+@@ -523,7 +525,9 @@ struct inode {
        unsigned short          i_opflags;
        kuid_t                  i_uid;
        kgid_t                  i_gid;
@@ -7760,7 +7716,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  
  #ifdef CONFIG_FS_POSIX_ACL
        struct posix_acl        *i_acl;
-@@ -551,6 +555,7 @@ struct inode {
+@@ -552,6 +556,7 @@ struct inode {
                unsigned int __i_nlink;
        };
        dev_t                   i_rdev;
@@ -7768,7 +7724,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
        loff_t                  i_size;
        struct timespec         i_atime;
        struct timespec         i_mtime;
-@@ -701,6 +706,11 @@ static inline gid_t i_gid_read(const str
+@@ -702,6 +707,11 @@ static inline gid_t i_gid_read(const str
        return from_kgid(&init_user_ns, inode->i_gid);
  }
  
@@ -7780,7 +7736,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  static inline void i_uid_write(struct inode *inode, uid_t uid)
  {
        inode->i_uid = make_kuid(&init_user_ns, uid);
-@@ -711,14 +721,19 @@ static inline void i_gid_write(struct in
+@@ -712,14 +722,19 @@ static inline void i_gid_write(struct in
        inode->i_gid = make_kgid(&init_user_ns, gid);
  }
  
@@ -7802,7 +7758,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  }
  
  extern struct block_device *I_BDEV(struct inode *inode);
-@@ -785,6 +800,7 @@ struct file {
+@@ -786,6 +801,7 @@ struct file {
        loff_t                  f_pos;
        struct fown_struct      f_owner;
        const struct cred       *f_cred;
@@ -7810,7 +7766,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
        struct file_ra_state    f_ra;
  
        u64                     f_version;
-@@ -936,6 +952,7 @@ struct file_lock {
+@@ -937,6 +953,7 @@ struct file_lock {
        struct file *fl_file;
        loff_t fl_start;
        loff_t fl_end;
@@ -7818,7 +7774,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  
        struct fasync_struct *  fl_fasync; /* for lease break notifications */
        /* for lease breaks: */
-@@ -1570,6 +1587,7 @@ struct inode_operations {
+@@ -1567,6 +1584,7 @@ struct inode_operations {
        ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
        ssize_t (*listxattr) (struct dentry *, char *, size_t);
        int (*removexattr) (struct dentry *, const char *);
@@ -7826,7 +7782,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
        int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
                      u64 len);
        int (*update_time)(struct inode *, struct timespec *, int);
-@@ -1584,6 +1602,7 @@ ssize_t rw_copy_check_uvector(int type,
+@@ -1579,6 +1597,7 @@ ssize_t rw_copy_check_uvector(int type,
                              unsigned long nr_segs, unsigned long fast_segs,
                              struct iovec *fast_pointer,
                              struct iovec **ret_pointer);
@@ -7834,7 +7790,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  
  extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
  extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
-@@ -1637,6 +1656,14 @@ struct super_operations {
+@@ -1632,6 +1651,14 @@ struct super_operations {
  #define S_IMA         1024    /* Inode has an associated IMA struct */
  #define S_AUTOMOUNT   2048    /* Automount/referral quasi-directory */
  #define S_NOSEC               4096    /* no suid or xattr security attributes */
@@ -7849,7 +7805,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  
  /*
   * Note that nosuid etc flags are inode-specific: setting some file-system
-@@ -1661,10 +1688,13 @@ struct super_operations {
+@@ -1656,10 +1683,13 @@ struct super_operations {
  #define IS_MANDLOCK(inode)    __IS_FLG(inode, MS_MANDLOCK)
  #define IS_NOATIME(inode)     __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
  #define IS_I_VERSION(inode)   __IS_FLG(inode, MS_I_VERSION)
@@ -7863,7 +7819,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  #define IS_POSIXACL(inode)    __IS_FLG(inode, MS_POSIXACL)
  
  #define IS_DEADDIR(inode)     ((inode)->i_flags & S_DEAD)
-@@ -1675,6 +1705,16 @@ struct super_operations {
+@@ -1670,6 +1700,16 @@ struct super_operations {
  #define IS_AUTOMOUNT(inode)   ((inode)->i_flags & S_AUTOMOUNT)
  #define IS_NOSEC(inode)               ((inode)->i_flags & S_NOSEC)
  
@@ -7880,7 +7836,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  /*
   * Inode state bits.  Protected by inode->i_lock
   *
-@@ -1900,6 +1940,9 @@ extern int rw_verify_area(int, struct fi
+@@ -1898,6 +1938,9 @@ extern int rw_verify_area(int, struct fi
  extern int locks_mandatory_locked(struct inode *);
  extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
  
@@ -7890,7 +7846,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  /*
   * Candidates for mandatory locking have the setgid bit set
   * but no group execute bit -  an otherwise meaningless combination.
-@@ -2504,6 +2547,7 @@ extern int dcache_dir_open(struct inode
+@@ -2509,6 +2552,7 @@ extern int dcache_dir_open(struct inode
  extern int dcache_dir_close(struct inode *, struct file *);
  extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
  extern int dcache_readdir(struct file *, void *, filldir_t);
@@ -7898,13 +7854,13 @@ diff -NurpP --minimal linux-3.7.7/include/linux/fs.h linux-3.7.7-vs2.3.5.6/inclu
  extern int simple_setattr(struct dentry *, struct iattr *);
  extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
  extern int simple_statfs(struct dentry *, struct kstatfs *);
-diff -NurpP --minimal linux-3.7.7/include/linux/init_task.h linux-3.7.7-vs2.3.5.6/include/linux/init_task.h
---- linux-3.7.7/include/linux/init_task.h      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/init_task.h    2012-12-18 15:13:16.000000000 +0000
-@@ -210,6 +210,10 @@ extern struct task_group root_task_group
-       INIT_TRACE_RECURSION                                            \
+diff -NurpP --minimal linux-3.9.4/include/linux/init_task.h linux-3.9.4-vs2.3.6.1/include/linux/init_task.h
+--- linux-3.9.4/include/linux/init_task.h      2013-05-31 13:45:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/init_task.h    2013-05-31 14:53:41.000000000 +0000
+@@ -222,6 +222,10 @@ extern struct task_group root_task_group
        INIT_TASK_RCU_PREEMPT(tsk)                                      \
        INIT_CPUSET_SEQ                                                 \
+       INIT_VTIME(tsk)                                                 \
 +      .xid            = 0,                                            \
 +      .vx_info        = NULL,                                         \
 +      .nid            = 0,                                            \
@@ -7912,9 +7868,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/init_task.h linux-3.7.7-vs2.3.5.
  }
  
  
-diff -NurpP --minimal linux-3.7.7/include/linux/ipc.h linux-3.7.7-vs2.3.5.6/include/linux/ipc.h
---- linux-3.7.7/include/linux/ipc.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/ipc.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/ipc.h linux-3.9.4-vs2.3.6.1/include/linux/ipc.h
+--- linux-3.9.4/include/linux/ipc.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/ipc.h  2013-05-31 14:47:11.000000000 +0000
 @@ -16,6 +16,7 @@ struct kern_ipc_perm
        key_t           key;
        kuid_t          uid;
@@ -7923,38 +7879,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/ipc.h linux-3.7.7-vs2.3.5.6/incl
        kuid_t          cuid;
        kgid_t          cgid;
        umode_t         mode; 
-diff -NurpP --minimal linux-3.7.7/include/linux/ipc_namespace.h linux-3.7.7-vs2.3.5.6/include/linux/ipc_namespace.h
---- linux-3.7.7/include/linux/ipc_namespace.h  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/ipc_namespace.h        2012-12-18 15:13:16.000000000 +0000
-@@ -133,7 +133,8 @@ static inline int mq_init_ns(struct ipc_
- #if defined(CONFIG_IPC_NS)
- extern struct ipc_namespace *copy_ipcs(unsigned long flags,
--                                     struct task_struct *tsk);
-+                                     struct ipc_namespace *old_ns,
-+                                     struct user_namespace *user_ns);
- static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
- {
-       if (ns)
-@@ -144,12 +145,13 @@ static inline struct ipc_namespace *get_
- extern void put_ipc_ns(struct ipc_namespace *ns);
- #else
- static inline struct ipc_namespace *copy_ipcs(unsigned long flags,
--                                            struct task_struct *tsk)
-+                                            struct ipc_namespace *old_ns,
-+                                            struct user_namespace *user_ns)
- {
-       if (flags & CLONE_NEWIPC)
-               return ERR_PTR(-EINVAL);
--      return tsk->nsproxy->ipc_ns;
-+      return old_ns;
- }
- static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-diff -NurpP --minimal linux-3.7.7/include/linux/loop.h linux-3.7.7-vs2.3.5.6/include/linux/loop.h
---- linux-3.7.7/include/linux/loop.h   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/loop.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/loop.h linux-3.9.4-vs2.3.6.1/include/linux/loop.h
+--- linux-3.9.4/include/linux/loop.h   2013-02-19 13:58:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/loop.h 2013-05-31 14:47:11.000000000 +0000
 @@ -41,6 +41,7 @@ struct loop_device {
        struct loop_func_table *lo_encryption;
        __u32           lo_init[2];
@@ -7963,10 +7890,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/loop.h linux-3.7.7-vs2.3.5.6/inc
        int             (*ioctl)(struct loop_device *, int cmd, 
                                 unsigned long arg); 
  
-diff -NurpP --minimal linux-3.7.7/include/linux/memcontrol.h linux-3.7.7-vs2.3.5.6/include/linux/memcontrol.h
---- linux-3.7.7/include/linux/memcontrol.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/memcontrol.h   2012-12-18 15:13:16.000000000 +0000
-@@ -83,6 +83,13 @@ extern struct mem_cgroup *try_get_mem_cg
+diff -NurpP --minimal linux-3.9.4/include/linux/memcontrol.h linux-3.9.4-vs2.3.6.1/include/linux/memcontrol.h
+--- linux-3.9.4/include/linux/memcontrol.h     2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/memcontrol.h   2013-05-31 14:47:11.000000000 +0000
+@@ -86,6 +86,13 @@ extern struct mem_cgroup *try_get_mem_cg
  extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg);
  extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont);
  
@@ -7980,10 +7907,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/memcontrol.h linux-3.7.7-vs2.3.5
  static inline
  bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg)
  {
-diff -NurpP --minimal linux-3.7.7/include/linux/mm_types.h linux-3.7.7-vs2.3.5.6/include/linux/mm_types.h
---- linux-3.7.7/include/linux/mm_types.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/mm_types.h     2012-12-18 15:13:16.000000000 +0000
-@@ -365,6 +365,7 @@ struct mm_struct {
+diff -NurpP --minimal linux-3.9.4/include/linux/mm_types.h linux-3.9.4-vs2.3.6.1/include/linux/mm_types.h
+--- linux-3.9.4/include/linux/mm_types.h       2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/mm_types.h     2013-05-31 14:47:11.000000000 +0000
+@@ -380,6 +380,7 @@ struct mm_struct {
  
        /* Architecture-specific MM context */
        mm_context_t context;
@@ -7991,29 +7918,12 @@ diff -NurpP --minimal linux-3.7.7/include/linux/mm_types.h linux-3.7.7-vs2.3.5.6
  
        unsigned long flags; /* Must use atomic bitops to access the bits */
  
-diff -NurpP --minimal linux-3.7.7/include/linux/mmzone.h linux-3.7.7-vs2.3.5.6/include/linux/mmzone.h
---- linux-3.7.7/include/linux/mmzone.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/mmzone.h       2012-12-18 15:13:16.000000000 +0000
-@@ -735,6 +735,13 @@ typedef struct pglist_data {
-       __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
- })
-+#define node_start_pfn(nid)   (NODE_DATA(nid)->node_start_pfn)
-+
-+#define node_end_pfn(nid) ({\
-+      pg_data_t *__pgdat = NODE_DATA(nid);\
-+      __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
-+})
-+
- #include <linux/memory_hotplug.h>
- extern struct mutex zonelists_mutex;
-diff -NurpP --minimal linux-3.7.7/include/linux/mount.h linux-3.7.7-vs2.3.5.6/include/linux/mount.h
---- linux-3.7.7/include/linux/mount.h  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/mount.h        2012-12-18 15:13:16.000000000 +0000
-@@ -47,6 +47,9 @@ struct mnt_namespace;
+diff -NurpP --minimal linux-3.9.4/include/linux/mount.h linux-3.9.4-vs2.3.6.1/include/linux/mount.h
+--- linux-3.9.4/include/linux/mount.h  2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/mount.h        2013-05-31 14:47:11.000000000 +0000
+@@ -49,6 +49,9 @@ struct mnt_namespace;
  
- #define MNT_INTERNAL  0x4000
+ #define MNT_LOCK_READONLY     0x400000
  
 +#define MNT_TAGID     0x10000
 +#define MNT_NOTAG     0x20000
@@ -8021,9 +7931,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/mount.h linux-3.7.7-vs2.3.5.6/in
  struct vfsmount {
        struct dentry *mnt_root;        /* root of the mounted tree */
        struct super_block *mnt_sb;     /* pointer to superblock */
-diff -NurpP --minimal linux-3.7.7/include/linux/net.h linux-3.7.7-vs2.3.5.6/include/linux/net.h
---- linux-3.7.7/include/linux/net.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/net.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/net.h linux-3.9.4-vs2.3.6.1/include/linux/net.h
+--- linux-3.9.4/include/linux/net.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/net.h  2013-05-31 14:47:11.000000000 +0000
 @@ -38,6 +38,7 @@ struct net;
  #define SOCK_PASSCRED         3
  #define SOCK_PASSSEC          4
@@ -8032,10 +7942,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/net.h linux-3.7.7-vs2.3.5.6/incl
  
  #ifndef ARCH_HAS_SOCKET_TYPES
  /**
-diff -NurpP --minimal linux-3.7.7/include/linux/netdevice.h linux-3.7.7-vs2.3.5.6/include/linux/netdevice.h
---- linux-3.7.7/include/linux/netdevice.h      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/netdevice.h    2012-12-18 15:13:16.000000000 +0000
-@@ -1637,6 +1637,7 @@ extern void              netdev_resync_ops(struct ne
+diff -NurpP --minimal linux-3.9.4/include/linux/netdevice.h linux-3.9.4-vs2.3.6.1/include/linux/netdevice.h
+--- linux-3.9.4/include/linux/netdevice.h      2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/netdevice.h    2013-05-31 14:47:11.000000000 +0000
+@@ -1688,6 +1688,7 @@ extern void              netdev_resync_ops(struct ne
  
  extern struct net_device      *dev_get_by_index(struct net *net, int ifindex);
  extern struct net_device      *__dev_get_by_index(struct net *net, int ifindex);
@@ -8043,9 +7953,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/netdevice.h linux-3.7.7-vs2.3.5.
  extern struct net_device      *dev_get_by_index_rcu(struct net *net, int ifindex);
  extern int            dev_restart(struct net_device *dev);
  #ifdef CONFIG_NETPOLL_TRAP
-diff -NurpP --minimal linux-3.7.7/include/linux/nsproxy.h linux-3.7.7-vs2.3.5.6/include/linux/nsproxy.h
---- linux-3.7.7/include/linux/nsproxy.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/nsproxy.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/nsproxy.h linux-3.9.4-vs2.3.6.1/include/linux/nsproxy.h
+--- linux-3.9.4/include/linux/nsproxy.h        2013-02-19 13:58:51.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/nsproxy.h      2013-05-31 17:17:53.000000000 +0000
 @@ -3,6 +3,7 @@
  
  #include <linux/spinlock.h>
@@ -8063,7 +7973,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/nsproxy.h linux-3.7.7-vs2.3.5.6/
  void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
  void free_nsproxy(struct nsproxy *ns);
 @@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned
-       struct fs_struct *);
+       struct cred *, struct fs_struct *);
  int __init nsproxy_cache_init(void);
  
 -static inline void put_nsproxy(struct nsproxy *ns)
@@ -8095,9 +8005,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/nsproxy.h linux-3.7.7-vs2.3.5.6/
  }
  
  #endif
-diff -NurpP --minimal linux-3.7.7/include/linux/pid.h linux-3.7.7-vs2.3.5.6/include/linux/pid.h
---- linux-3.7.7/include/linux/pid.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/pid.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/pid.h linux-3.9.4-vs2.3.6.1/include/linux/pid.h
+--- linux-3.9.4/include/linux/pid.h    2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/pid.h  2013-05-31 14:47:11.000000000 +0000
 @@ -8,7 +8,8 @@ enum pid_type
        PIDTYPE_PID,
        PIDTYPE_PGID,
@@ -8108,7 +8018,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/pid.h linux-3.7.7-vs2.3.5.6/incl
  };
  
  /*
-@@ -171,6 +172,7 @@ static inline pid_t pid_nr(struct pid *p
+@@ -172,6 +173,7 @@ static inline pid_t pid_nr(struct pid *p
  }
  
  pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
@@ -8116,10 +8026,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/pid.h linux-3.7.7-vs2.3.5.6/incl
  pid_t pid_vnr(struct pid *pid);
  
  #define do_each_pid_task(pid, type, task)                             \
-diff -NurpP --minimal linux-3.7.7/include/linux/proc_fs.h linux-3.7.7-vs2.3.5.6/include/linux/proc_fs.h
---- linux-3.7.7/include/linux/proc_fs.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/proc_fs.h      2012-12-18 15:13:16.000000000 +0000
-@@ -54,6 +54,7 @@ struct proc_dir_entry {
+diff -NurpP --minimal linux-3.9.4/include/linux/proc_fs.h linux-3.9.4-vs2.3.6.1/include/linux/proc_fs.h
+--- linux-3.9.4/include/linux/proc_fs.h        2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/proc_fs.h      2013-05-31 14:47:11.000000000 +0000
+@@ -58,6 +58,7 @@ struct proc_dir_entry {
        nlink_t nlink;
        kuid_t uid;
        kgid_t gid;
@@ -8127,9 +8037,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/proc_fs.h linux-3.7.7-vs2.3.5.6/
        loff_t size;
        const struct inode_operations *proc_iops;
        /*
-@@ -252,12 +253,18 @@ extern const struct proc_ns_operations n
- extern const struct proc_ns_operations utsns_operations;
- extern const struct proc_ns_operations ipcns_operations;
+@@ -274,12 +275,18 @@ extern const struct proc_ns_operations p
+ extern const struct proc_ns_operations userns_operations;
+ extern const struct proc_ns_operations mntns_operations;
  
 +struct vx_info;
 +struct nx_info;
@@ -8146,7 +8056,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/proc_fs.h linux-3.7.7-vs2.3.5.6/
  };
  
  struct ctl_table_header;
-@@ -265,6 +272,7 @@ struct ctl_table;
+@@ -287,6 +294,7 @@ struct ctl_table;
  
  struct proc_inode {
        struct pid *pid;
@@ -8154,9 +8064,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/proc_fs.h linux-3.7.7-vs2.3.5.6/
        int fd;
        union proc_op op;
        struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-3.7.7/include/linux/quotaops.h linux-3.7.7-vs2.3.5.6/include/linux/quotaops.h
---- linux-3.7.7/include/linux/quotaops.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/quotaops.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/quotaops.h linux-3.9.4-vs2.3.6.1/include/linux/quotaops.h
+--- linux-3.9.4/include/linux/quotaops.h       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/quotaops.h     2013-05-31 14:47:11.000000000 +0000
 @@ -8,6 +8,7 @@
  #define _LINUX_QUOTAOPS_
  
@@ -8198,10 +8108,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/quotaops.h linux-3.7.7-vs2.3.5.6
  }
  
  static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-3.7.7/include/linux/sched.h linux-3.7.7-vs2.3.5.6/include/linux/sched.h
---- linux-3.7.7/include/linux/sched.h  2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/sched.h        2013-02-05 01:14:43.000000000 +0000
-@@ -1378,6 +1378,14 @@ struct task_struct {
+diff -NurpP --minimal linux-3.9.4/include/linux/sched.h linux-3.9.4-vs2.3.6.1/include/linux/sched.h
+--- linux-3.9.4/include/linux/sched.h  2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/sched.h        2013-05-31 14:47:11.000000000 +0000
+@@ -1398,6 +1398,14 @@ struct task_struct {
  #endif
        struct seccomp seccomp;
  
@@ -8216,7 +8126,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sched.h linux-3.7.7-vs2.3.5.6/in
  /* Thread group tracking */
        u32 parent_exec_id;
        u32 self_exec_id;
-@@ -1627,6 +1635,11 @@ struct pid_namespace;
+@@ -1637,6 +1645,11 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
                        struct pid_namespace *ns);
  
@@ -8228,7 +8138,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sched.h linux-3.7.7-vs2.3.5.6/in
  static inline pid_t task_pid_nr(struct task_struct *tsk)
  {
        return tsk->pid;
-@@ -1640,7 +1653,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1650,7 +1663,8 @@ static inline pid_t task_pid_nr_ns(struc
  
  static inline pid_t task_pid_vnr(struct task_struct *tsk)
  {
@@ -8238,7 +8148,7 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sched.h linux-3.7.7-vs2.3.5.6/in
  }
  
  
-@@ -1653,7 +1667,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1663,7 +1677,7 @@ pid_t task_tgid_nr_ns(struct task_struct
  
  static inline pid_t task_tgid_vnr(struct task_struct *tsk)
  {
@@ -8247,9 +8157,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sched.h linux-3.7.7-vs2.3.5.6/in
  }
  
  
-diff -NurpP --minimal linux-3.7.7/include/linux/shmem_fs.h linux-3.7.7-vs2.3.5.6/include/linux/shmem_fs.h
---- linux-3.7.7/include/linux/shmem_fs.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/shmem_fs.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/shmem_fs.h linux-3.9.4-vs2.3.6.1/include/linux/shmem_fs.h
+--- linux-3.9.4/include/linux/shmem_fs.h       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/shmem_fs.h     2013-05-31 14:47:11.000000000 +0000
 @@ -9,6 +9,9 @@
  
  /* inode in-kernel data */
@@ -8260,9 +8170,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/shmem_fs.h linux-3.7.7-vs2.3.5.6
  struct shmem_inode_info {
        spinlock_t              lock;
        unsigned long           flags;
-diff -NurpP --minimal linux-3.7.7/include/linux/stat.h linux-3.7.7-vs2.3.5.6/include/linux/stat.h
---- linux-3.7.7/include/linux/stat.h   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/stat.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/stat.h linux-3.9.4-vs2.3.6.1/include/linux/stat.h
+--- linux-3.9.4/include/linux/stat.h   2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/stat.h 2013-05-31 14:47:11.000000000 +0000
 @@ -25,6 +25,7 @@ struct kstat {
        unsigned int    nlink;
        kuid_t          uid;
@@ -8271,20 +8181,20 @@ diff -NurpP --minimal linux-3.7.7/include/linux/stat.h linux-3.7.7-vs2.3.5.6/inc
        dev_t           rdev;
        loff_t          size;
        struct timespec  atime;
-diff -NurpP --minimal linux-3.7.7/include/linux/sunrpc/auth.h linux-3.7.7-vs2.3.5.6/include/linux/sunrpc/auth.h
---- linux-3.7.7/include/linux/sunrpc/auth.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/sunrpc/auth.h  2012-12-18 15:13:16.000000000 +0000
-@@ -25,6 +25,7 @@
+diff -NurpP --minimal linux-3.9.4/include/linux/sunrpc/auth.h linux-3.9.4-vs2.3.6.1/include/linux/sunrpc/auth.h
+--- linux-3.9.4/include/linux/sunrpc/auth.h    2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/sunrpc/auth.h  2013-05-31 14:52:57.000000000 +0000
+@@ -26,6 +26,7 @@
  struct auth_cred {
-       uid_t   uid;
-       gid_t   gid;
-+      tag_t   tag;
+       kuid_t  uid;
+       kgid_t  gid;
++      ktag_t  tag;
        struct group_info *group_info;
        const char *principal;
        unsigned char machine_cred : 1;
-diff -NurpP --minimal linux-3.7.7/include/linux/sunrpc/clnt.h linux-3.7.7-vs2.3.5.6/include/linux/sunrpc/clnt.h
---- linux-3.7.7/include/linux/sunrpc/clnt.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/sunrpc/clnt.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/sunrpc/clnt.h linux-3.9.4-vs2.3.6.1/include/linux/sunrpc/clnt.h
+--- linux-3.9.4/include/linux/sunrpc/clnt.h    2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/sunrpc/clnt.h  2013-05-31 14:47:11.000000000 +0000
 @@ -49,7 +49,8 @@ struct rpc_clnt {
        unsigned int            cl_softrtry : 1,/* soft timeouts */
                                cl_discrtry : 1,/* disconnect before retry */
@@ -8295,9 +8205,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sunrpc/clnt.h linux-3.7.7-vs2.3.
  
        struct rpc_rtt *        cl_rtt;         /* RTO estimator data */
        const struct rpc_timeout *cl_timeout;   /* Timeout strategy */
-diff -NurpP --minimal linux-3.7.7/include/linux/sysfs.h linux-3.7.7-vs2.3.5.6/include/linux/sysfs.h
---- linux-3.7.7/include/linux/sysfs.h  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/sysfs.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/sysfs.h linux-3.9.4-vs2.3.6.1/include/linux/sysfs.h
+--- linux-3.9.4/include/linux/sysfs.h  2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/sysfs.h        2013-05-31 14:47:11.000000000 +0000
 @@ -19,6 +19,8 @@
  #include <linux/kobject_ns.h>
  #include <linux/atomic.h>
@@ -8307,9 +8217,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/sysfs.h linux-3.7.7-vs2.3.5.6/in
  struct kobject;
  struct module;
  enum kobj_ns_type;
-diff -NurpP --minimal linux-3.7.7/include/linux/types.h linux-3.7.7-vs2.3.5.6/include/linux/types.h
---- linux-3.7.7/include/linux/types.h  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/types.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/types.h linux-3.9.4-vs2.3.6.1/include/linux/types.h
+--- linux-3.9.4/include/linux/types.h  2013-02-19 13:58:52.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/types.h        2013-05-31 14:47:11.000000000 +0000
 @@ -32,6 +32,9 @@ typedef __kernel_uid32_t     uid_t;
  typedef __kernel_gid32_t      gid_t;
  typedef __kernel_uid16_t        uid16_t;
@@ -8320,9 +8230,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/types.h linux-3.7.7-vs2.3.5.6/in
  
  typedef unsigned long         uintptr_t;
  
-diff -NurpP --minimal linux-3.7.7/include/linux/uidgid.h linux-3.7.7-vs2.3.5.6/include/linux/uidgid.h
---- linux-3.7.7/include/linux/uidgid.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/uidgid.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/uidgid.h linux-3.9.4-vs2.3.6.1/include/linux/uidgid.h
+--- linux-3.9.4/include/linux/uidgid.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/uidgid.h       2013-05-31 14:47:11.000000000 +0000
 @@ -23,13 +23,17 @@ typedef struct {
        uid_t val;
  } kuid_t;
@@ -8442,38 +8352,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/uidgid.h linux-3.7.7-vs2.3.5.6/i
  static inline uid_t from_kuid_munged(struct user_namespace *to, kuid_t kuid)
  {
        uid_t uid = from_kuid(to, kuid);
-diff -NurpP --minimal linux-3.7.7/include/linux/utsname.h linux-3.7.7-vs2.3.5.6/include/linux/utsname.h
---- linux-3.7.7/include/linux/utsname.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/utsname.h      2012-12-18 15:13:16.000000000 +0000
-@@ -33,7 +33,8 @@ static inline void get_uts_ns(struct uts
- }
- extern struct uts_namespace *copy_utsname(unsigned long flags,
--                                        struct task_struct *tsk);
-+                                        struct uts_namespace *old_ns,
-+                                        struct user_namespace *user_ns);
- extern void free_uts_ns(struct kref *kref);
- static inline void put_uts_ns(struct uts_namespace *ns)
-@@ -50,12 +51,13 @@ static inline void put_uts_ns(struct uts
- }
- static inline struct uts_namespace *copy_utsname(unsigned long flags,
--                                               struct task_struct *tsk)
-+                                               struct uts_namespace *old_ns,
-+                                               struct user_namespace *user_ns)
- {
-       if (flags & CLONE_NEWUTS)
-               return ERR_PTR(-EINVAL);
--      return tsk->nsproxy->uts_ns;
-+      return old_ns;
- }
- #endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vroot.h linux-3.7.7-vs2.3.5.6/include/linux/vroot.h
---- linux-3.7.7/include/linux/vroot.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vroot.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vroot.h linux-3.9.4-vs2.3.6.1/include/linux/vroot.h
+--- linux-3.9.4/include/linux/vroot.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vroot.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,51 @@
 +
 +/*
@@ -8526,9 +8407,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vroot.h linux-3.7.7-vs2.3.5.6/in
 +#define VROOT_CLR_DEV         0x5601
 +
 +#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_base.h linux-3.7.7-vs2.3.5.6/include/linux/vs_base.h
---- linux-3.7.7/include/linux/vs_base.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_base.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_base.h linux-3.9.4-vs2.3.6.1/include/linux/vs_base.h
+--- linux-3.9.4/include/linux/vs_base.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_base.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,10 @@
 +#ifndef _VS_BASE_H
 +#define _VS_BASE_H
@@ -8540,9 +8421,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_base.h linux-3.7.7-vs2.3.5.6/
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_context.h linux-3.7.7-vs2.3.5.6/include/linux/vs_context.h
---- linux-3.7.7/include/linux/vs_context.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_context.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_context.h linux-3.9.4-vs2.3.6.1/include/linux/vs_context.h
+--- linux-3.9.4/include/linux/vs_context.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_context.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,242 @@
 +#ifndef _VS_CONTEXT_H
 +#define _VS_CONTEXT_H
@@ -8786,9 +8667,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_context.h linux-3.7.7-vs2.3.5
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_cowbl.h linux-3.7.7-vs2.3.5.6/include/linux/vs_cowbl.h
---- linux-3.7.7/include/linux/vs_cowbl.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_cowbl.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_cowbl.h linux-3.9.4-vs2.3.6.1/include/linux/vs_cowbl.h
+--- linux-3.9.4/include/linux/vs_cowbl.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_cowbl.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,48 @@
 +#ifndef _VS_COWBL_H
 +#define _VS_COWBL_H
@@ -8838,9 +8719,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_cowbl.h linux-3.7.7-vs2.3.5.6
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_cvirt.h linux-3.7.7-vs2.3.5.6/include/linux/vs_cvirt.h
---- linux-3.7.7/include/linux/vs_cvirt.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_cvirt.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_cvirt.h linux-3.9.4-vs2.3.6.1/include/linux/vs_cvirt.h
+--- linux-3.9.4/include/linux/vs_cvirt.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_cvirt.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,50 @@
 +#ifndef _VS_CVIRT_H
 +#define _VS_CVIRT_H
@@ -8892,9 +8773,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_cvirt.h linux-3.7.7-vs2.3.5.6
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_device.h linux-3.7.7-vs2.3.5.6/include/linux/vs_device.h
---- linux-3.7.7/include/linux/vs_device.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_device.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_device.h linux-3.9.4-vs2.3.6.1/include/linux/vs_device.h
+--- linux-3.9.4/include/linux/vs_device.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_device.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,45 @@
 +#ifndef _VS_DEVICE_H
 +#define _VS_DEVICE_H
@@ -8941,9 +8822,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_device.h linux-3.7.7-vs2.3.5.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_dlimit.h linux-3.7.7-vs2.3.5.6/include/linux/vs_dlimit.h
---- linux-3.7.7/include/linux/vs_dlimit.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_dlimit.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_dlimit.h linux-3.9.4-vs2.3.6.1/include/linux/vs_dlimit.h
+--- linux-3.9.4/include/linux/vs_dlimit.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_dlimit.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,215 @@
 +#ifndef _VS_DLIMIT_H
 +#define _VS_DLIMIT_H
@@ -9160,9 +9041,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_dlimit.h linux-3.7.7-vs2.3.5.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_inet.h linux-3.7.7-vs2.3.5.6/include/linux/vs_inet.h
---- linux-3.7.7/include/linux/vs_inet.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_inet.h      2013-01-04 23:27:50.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_inet.h linux-3.9.4-vs2.3.6.1/include/linux/vs_inet.h
+--- linux-3.9.4/include/linux/vs_inet.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_inet.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,364 @@
 +#ifndef _VS_INET_H
 +#define _VS_INET_H
@@ -9528,9 +9409,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_inet.h linux-3.7.7-vs2.3.5.6/
 +#else
 +// #warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_inet6.h linux-3.7.7-vs2.3.5.6/include/linux/vs_inet6.h
---- linux-3.7.7/include/linux/vs_inet6.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_inet6.h     2013-01-04 23:27:50.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_inet6.h linux-3.9.4-vs2.3.6.1/include/linux/vs_inet6.h
+--- linux-3.9.4/include/linux/vs_inet6.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_inet6.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,257 @@
 +#ifndef _VS_INET6_H
 +#define _VS_INET6_H
@@ -9789,9 +9670,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_inet6.h linux-3.7.7-vs2.3.5.6
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_limit.h linux-3.7.7-vs2.3.5.6/include/linux/vs_limit.h
---- linux-3.7.7/include/linux/vs_limit.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_limit.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_limit.h linux-3.9.4-vs2.3.6.1/include/linux/vs_limit.h
+--- linux-3.9.4/include/linux/vs_limit.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_limit.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,140 @@
 +#ifndef _VS_LIMIT_H
 +#define _VS_LIMIT_H
@@ -9933,9 +9814,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_limit.h linux-3.7.7-vs2.3.5.6
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_network.h linux-3.7.7-vs2.3.5.6/include/linux/vs_network.h
---- linux-3.7.7/include/linux/vs_network.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_network.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_network.h linux-3.9.4-vs2.3.6.1/include/linux/vs_network.h
+--- linux-3.9.4/include/linux/vs_network.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_network.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,169 @@
 +#ifndef _NX_VS_NETWORK_H
 +#define _NX_VS_NETWORK_H
@@ -10106,9 +9987,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_network.h linux-3.7.7-vs2.3.5
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_pid.h linux-3.7.7-vs2.3.5.6/include/linux/vs_pid.h
---- linux-3.7.7/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_pid.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_pid.h linux-3.9.4-vs2.3.6.1/include/linux/vs_pid.h
+--- linux-3.9.4/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_pid.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,50 @@
 +#ifndef _VS_PID_H
 +#define _VS_PID_H
@@ -10160,9 +10041,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_pid.h linux-3.7.7-vs2.3.5.6/i
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_sched.h linux-3.7.7-vs2.3.5.6/include/linux/vs_sched.h
---- linux-3.7.7/include/linux/vs_sched.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_sched.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_sched.h linux-3.9.4-vs2.3.6.1/include/linux/vs_sched.h
+--- linux-3.9.4/include/linux/vs_sched.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_sched.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,40 @@
 +#ifndef _VS_SCHED_H
 +#define _VS_SCHED_H
@@ -10204,9 +10085,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_sched.h linux-3.7.7-vs2.3.5.6
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_socket.h linux-3.7.7-vs2.3.5.6/include/linux/vs_socket.h
---- linux-3.7.7/include/linux/vs_socket.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_socket.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_socket.h linux-3.9.4-vs2.3.6.1/include/linux/vs_socket.h
+--- linux-3.9.4/include/linux/vs_socket.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_socket.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,67 @@
 +#ifndef _VS_SOCKET_H
 +#define _VS_SOCKET_H
@@ -10275,9 +10156,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_socket.h linux-3.7.7-vs2.3.5.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_tag.h linux-3.7.7-vs2.3.5.6/include/linux/vs_tag.h
---- linux-3.7.7/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_tag.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_tag.h linux-3.9.4-vs2.3.6.1/include/linux/vs_tag.h
+--- linux-3.9.4/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_tag.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,47 @@
 +#ifndef _VS_TAG_H
 +#define _VS_TAG_H
@@ -10326,9 +10207,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_tag.h linux-3.7.7-vs2.3.5.6/i
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vs_time.h linux-3.7.7-vs2.3.5.6/include/linux/vs_time.h
---- linux-3.7.7/include/linux/vs_time.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vs_time.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vs_time.h linux-3.9.4-vs2.3.6.1/include/linux/vs_time.h
+--- linux-3.9.4/include/linux/vs_time.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vs_time.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,19 @@
 +#ifndef _VS_TIME_H
 +#define _VS_TIME_H
@@ -10349,10 +10230,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vs_time.h linux-3.7.7-vs2.3.5.6/
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/base.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/base.h
---- linux-3.7.7/include/linux/vserver/base.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/base.h 2012-12-18 15:13:16.000000000 +0000
-@@ -0,0 +1,178 @@
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/base.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/base.h
+--- linux-3.9.4/include/linux/vserver/base.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/base.h 2013-05-31 17:55:09.000000000 +0000
+@@ -0,0 +1,181 @@
 +#ifndef _VSERVER_BASE_H
 +#define _VSERVER_BASE_H
 +
@@ -10515,6 +10396,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/base.h linux-3.7.7-vs2.3
 +      (cap_raised(current_cap(), b) && \
 +      !((f) & ~vx_current_umask())))
 +
++#define vx_ns_can_unshare(n, b, f) (ns_capable(n, b) || \
++      (cap_raised(current_cap(), b) && \
++      !((f) & ~vx_current_umask())))
 +
 +#define __vx_wmask(v)         ((v)->vx_wmask)
 +
@@ -10531,9 +10415,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/base.h linux-3.7.7-vs2.3
 +#define nx_info_state(n, m)   (__nx_state(n) & (m))
 +
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct.h
---- linux-3.7.7/include/linux/vserver/cacct.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cacct.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct.h
+--- linux-3.9.4/include/linux/vserver/cacct.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,15 @@
 +#ifndef _VSERVER_CACCT_H
 +#define _VSERVER_CACCT_H
@@ -10550,9 +10434,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct.h linux-3.7.7-vs2.
 +};
 +
 +#endif        /* _VSERVER_CACCT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_cmd.h
---- linux-3.7.7/include/linux/vserver/cacct_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cacct_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_cmd.h
+--- linux-3.9.4/include/linux/vserver/cacct_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,10 @@
 +#ifndef _VSERVER_CACCT_CMD_H
 +#define _VSERVER_CACCT_CMD_H
@@ -10564,9 +10448,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_cmd.h linux-3.7.7-
 +extern int vc_sock_stat(struct vx_info *, void __user *);
 +
 +#endif        /* _VSERVER_CACCT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_def.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_def.h
---- linux-3.7.7/include/linux/vserver/cacct_def.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_def.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cacct_def.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_def.h
+--- linux-3.9.4/include/linux/vserver/cacct_def.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_def.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,43 @@
 +#ifndef _VSERVER_CACCT_DEF_H
 +#define _VSERVER_CACCT_DEF_H
@@ -10611,9 +10495,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_def.h linux-3.7.7-
 +#endif
 +
 +#endif        /* _VSERVER_CACCT_DEF_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_int.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_int.h
---- linux-3.7.7/include/linux/vserver/cacct_int.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cacct_int.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cacct_int.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_int.h
+--- linux-3.9.4/include/linux/vserver/cacct_int.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cacct_int.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,17 @@
 +#ifndef _VSERVER_CACCT_INT_H
 +#define _VSERVER_CACCT_INT_H
@@ -10632,9 +10516,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cacct_int.h linux-3.7.7-
 +}
 +
 +#endif        /* _VSERVER_CACCT_INT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/check.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/check.h
---- linux-3.7.7/include/linux/vserver/check.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/check.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/check.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/check.h
+--- linux-3.9.4/include/linux/vserver/check.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/check.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,89 @@
 +#ifndef _VSERVER_CHECK_H
 +#define _VSERVER_CHECK_H
@@ -10725,9 +10609,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/check.h linux-3.7.7-vs2.
 +#define nx_weak_check(c, m)   ((m) ? nx_check(c, m) : 1)
 +
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/context.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/context.h
---- linux-3.7.7/include/linux/vserver/context.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/context.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/context.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/context.h
+--- linux-3.9.4/include/linux/vserver/context.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/context.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,110 @@
 +#ifndef _VSERVER_CONTEXT_H
 +#define _VSERVER_CONTEXT_H
@@ -10839,9 +10723,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/context.h linux-3.7.7-vs
 +
 +
 +#endif        /* _VSERVER_CONTEXT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/context_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/context_cmd.h
---- linux-3.7.7/include/linux/vserver/context_cmd.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/context_cmd.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/context_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/context_cmd.h
+--- linux-3.9.4/include/linux/vserver/context_cmd.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/context_cmd.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,33 @@
 +#ifndef _VSERVER_CONTEXT_CMD_H
 +#define _VSERVER_CONTEXT_CMD_H
@@ -10876,9 +10760,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/context_cmd.h linux-3.7.
 +extern int vc_set_badness(struct vx_info *, void __user *);
 +
 +#endif        /* _VSERVER_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt.h
---- linux-3.7.7/include/linux/vserver/cvirt.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cvirt.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt.h
+--- linux-3.9.4/include/linux/vserver/cvirt.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,18 @@
 +#ifndef _VSERVER_CVIRT_H
 +#define _VSERVER_CVIRT_H
@@ -10898,9 +10782,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt.h linux-3.7.7-vs2.
 +int vx_do_syslog(int, char __user *, int);
 +
 +#endif        /* _VSERVER_CVIRT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt_cmd.h
---- linux-3.7.7/include/linux/vserver/cvirt_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cvirt_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt_cmd.h
+--- linux-3.9.4/include/linux/vserver/cvirt_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,13 @@
 +#ifndef _VSERVER_CVIRT_CMD_H
 +#define _VSERVER_CVIRT_CMD_H
@@ -10915,9 +10799,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt_cmd.h linux-3.7.7-
 +extern int vc_virt_stat(struct vx_info *, void __user *);
 +
 +#endif        /* _VSERVER_CVIRT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt_def.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt_def.h
---- linux-3.7.7/include/linux/vserver/cvirt_def.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/cvirt_def.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/cvirt_def.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt_def.h
+--- linux-3.9.4/include/linux/vserver/cvirt_def.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/cvirt_def.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,80 @@
 +#ifndef _VSERVER_CVIRT_DEF_H
 +#define _VSERVER_CVIRT_DEF_H
@@ -10999,9 +10883,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/cvirt_def.h linux-3.7.7-
 +#endif
 +
 +#endif        /* _VSERVER_CVIRT_DEF_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/debug.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/debug.h
---- linux-3.7.7/include/linux/vserver/debug.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/debug.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/debug.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/debug.h
+--- linux-3.9.4/include/linux/vserver/debug.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/debug.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,145 @@
 +#ifndef _VSERVER_DEBUG_H
 +#define _VSERVER_DEBUG_H
@@ -11148,9 +11032,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/debug.h linux-3.7.7-vs2.
 +
 +
 +#endif /* _VSERVER_DEBUG_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/debug_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/debug_cmd.h
---- linux-3.7.7/include/linux/vserver/debug_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/debug_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/debug_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/debug_cmd.h
+--- linux-3.9.4/include/linux/vserver/debug_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/debug_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,37 @@
 +#ifndef _VSERVER_DEBUG_CMD_H
 +#define _VSERVER_DEBUG_CMD_H
@@ -11189,9 +11073,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/debug_cmd.h linux-3.7.7-
 +#endif  /* CONFIG_COMPAT */
 +
 +#endif        /* _VSERVER_DEBUG_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/device.h
---- linux-3.7.7/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/device.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/device.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/device.h
+--- linux-3.9.4/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/device.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,9 @@
 +#ifndef _VSERVER_DEVICE_H
 +#define _VSERVER_DEVICE_H
@@ -11202,9 +11086,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device.h linux-3.7.7-vs2
 +#else /* _VSERVER_DEVICE_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_DEVICE_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/device_cmd.h
---- linux-3.7.7/include/linux/vserver/device_cmd.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/device_cmd.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/device_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/device_cmd.h
+--- linux-3.9.4/include/linux/vserver/device_cmd.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/device_cmd.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,31 @@
 +#ifndef _VSERVER_DEVICE_CMD_H
 +#define _VSERVER_DEVICE_CMD_H
@@ -11237,9 +11121,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device_cmd.h linux-3.7.7
 +#endif        /* CONFIG_COMPAT */
 +
 +#endif        /* _VSERVER_DEVICE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device_def.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/device_def.h
---- linux-3.7.7/include/linux/vserver/device_def.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/device_def.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/device_def.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/device_def.h
+--- linux-3.9.4/include/linux/vserver/device_def.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/device_def.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,17 @@
 +#ifndef _VSERVER_DEVICE_DEF_H
 +#define _VSERVER_DEVICE_DEF_H
@@ -11258,9 +11142,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/device_def.h linux-3.7.7
 +};
 +
 +#endif        /* _VSERVER_DEVICE_DEF_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/dlimit.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/dlimit.h
---- linux-3.7.7/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/dlimit.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/dlimit.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/dlimit.h
+--- linux-3.9.4/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/dlimit.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,54 @@
 +#ifndef _VSERVER_DLIMIT_H
 +#define _VSERVER_DLIMIT_H
@@ -11316,9 +11200,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/dlimit.h linux-3.7.7-vs2
 +#else /* _VSERVER_DLIMIT_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_DLIMIT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/dlimit_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/dlimit_cmd.h
---- linux-3.7.7/include/linux/vserver/dlimit_cmd.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/dlimit_cmd.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/dlimit_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/dlimit_cmd.h
+--- linux-3.9.4/include/linux/vserver/dlimit_cmd.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/dlimit_cmd.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,46 @@
 +#ifndef _VSERVER_DLIMIT_CMD_H
 +#define _VSERVER_DLIMIT_CMD_H
@@ -11366,9 +11250,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/dlimit_cmd.h linux-3.7.7
 +#endif        /* CONFIG_COMPAT */
 +
 +#endif        /* _VSERVER_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/global.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/global.h
---- linux-3.7.7/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/global.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/global.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/global.h
+--- linux-3.9.4/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/global.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,19 @@
 +#ifndef _VSERVER_GLOBAL_H
 +#define _VSERVER_GLOBAL_H
@@ -11389,9 +11273,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/global.h linux-3.7.7-vs2
 +
 +
 +#endif /* _VSERVER_GLOBAL_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/history.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/history.h
---- linux-3.7.7/include/linux/vserver/history.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/history.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/history.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/history.h
+--- linux-3.9.4/include/linux/vserver/history.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/history.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,197 @@
 +#ifndef _VSERVER_HISTORY_H
 +#define _VSERVER_HISTORY_H
@@ -11590,9 +11474,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/history.h linux-3.7.7-vs
 +#endif /* CONFIG_VSERVER_HISTORY */
 +
 +#endif /* _VSERVER_HISTORY_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/inode.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/inode.h
---- linux-3.7.7/include/linux/vserver/inode.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/inode.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/inode.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/inode.h
+--- linux-3.9.4/include/linux/vserver/inode.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/inode.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,19 @@
 +#ifndef _VSERVER_INODE_H
 +#define _VSERVER_INODE_H
@@ -11613,9 +11497,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/inode.h linux-3.7.7-vs2.
 +#else /* _VSERVER_INODE_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_INODE_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/inode_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/inode_cmd.h
---- linux-3.7.7/include/linux/vserver/inode_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/inode_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/inode_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/inode_cmd.h
+--- linux-3.9.4/include/linux/vserver/inode_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/inode_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,36 @@
 +#ifndef _VSERVER_INODE_CMD_H
 +#define _VSERVER_INODE_CMD_H
@@ -11653,9 +11537,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/inode_cmd.h linux-3.7.7-
 +#endif        /* CONFIG_COMPAT */
 +
 +#endif        /* _VSERVER_INODE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit.h
---- linux-3.7.7/include/linux/vserver/limit.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/limit.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit.h
+--- linux-3.9.4/include/linux/vserver/limit.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,61 @@
 +#ifndef _VSERVER_LIMIT_H
 +#define _VSERVER_LIMIT_H
@@ -11718,9 +11602,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit.h linux-3.7.7-vs2.
 +#define NUM_LIMITS    24
 +
 +#endif        /* _VSERVER_LIMIT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_cmd.h
---- linux-3.7.7/include/linux/vserver/limit_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/limit_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_cmd.h
+--- linux-3.9.4/include/linux/vserver/limit_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,35 @@
 +#ifndef _VSERVER_LIMIT_CMD_H
 +#define _VSERVER_LIMIT_CMD_H
@@ -11757,9 +11641,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_cmd.h linux-3.7.7-
 +#endif        /* CONFIG_IA32_EMULATION */
 +
 +#endif        /* _VSERVER_LIMIT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_def.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_def.h
---- linux-3.7.7/include/linux/vserver/limit_def.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_def.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/limit_def.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_def.h
+--- linux-3.9.4/include/linux/vserver/limit_def.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_def.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,47 @@
 +#ifndef _VSERVER_LIMIT_DEF_H
 +#define _VSERVER_LIMIT_DEF_H
@@ -11808,9 +11692,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_def.h linux-3.7.7-
 +#endif
 +
 +#endif        /* _VSERVER_LIMIT_DEF_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_int.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_int.h
---- linux-3.7.7/include/linux/vserver/limit_int.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/limit_int.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/limit_int.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_int.h
+--- linux-3.9.4/include/linux/vserver/limit_int.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/limit_int.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,193 @@
 +#ifndef _VSERVER_LIMIT_INT_H
 +#define _VSERVER_LIMIT_INT_H
@@ -12005,9 +11889,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/limit_int.h linux-3.7.7-
 +
 +
 +#endif        /* _VSERVER_LIMIT_INT_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/monitor.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/monitor.h
---- linux-3.7.7/include/linux/vserver/monitor.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/monitor.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/monitor.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/monitor.h
+--- linux-3.9.4/include/linux/vserver/monitor.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/monitor.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,6 @@
 +#ifndef _VSERVER_MONITOR_H
 +#define _VSERVER_MONITOR_H
@@ -12015,9 +11899,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/monitor.h linux-3.7.7-vs
 +#include <uapi/vserver/monitor.h>
 +
 +#endif /* _VSERVER_MONITOR_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/network.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/network.h
---- linux-3.7.7/include/linux/vserver/network.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/network.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/network.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/network.h
+--- linux-3.9.4/include/linux/vserver/network.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/network.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,76 @@
 +#ifndef _VSERVER_NETWORK_H
 +#define _VSERVER_NETWORK_H
@@ -12095,9 +11979,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/network.h linux-3.7.7-vs
 +#endif
 +
 +#endif        /* _VSERVER_NETWORK_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/network_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/network_cmd.h
---- linux-3.7.7/include/linux/vserver/network_cmd.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/network_cmd.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/network_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/network_cmd.h
+--- linux-3.9.4/include/linux/vserver/network_cmd.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/network_cmd.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,37 @@
 +#ifndef _VSERVER_NETWORK_CMD_H
 +#define _VSERVER_NETWORK_CMD_H
@@ -12136,9 +12020,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/network_cmd.h linux-3.7.
 +extern int vc_set_ncaps(struct nx_info *, void __user *);
 +
 +#endif        /* _VSERVER_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/percpu.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/percpu.h
---- linux-3.7.7/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/percpu.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/percpu.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/percpu.h
+--- linux-3.9.4/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/percpu.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _VSERVER_PERCPU_H
 +#define _VSERVER_PERCPU_H
@@ -12154,9 +12038,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/percpu.h linux-3.7.7-vs2
 +#define       PERCPU_PERCTX   (sizeof(struct _vx_percpu))
 +
 +#endif        /* _VSERVER_PERCPU_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/pid.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/pid.h
---- linux-3.7.7/include/linux/vserver/pid.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/pid.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/pid.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/pid.h
+--- linux-3.9.4/include/linux/vserver/pid.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/pid.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,51 @@
 +#ifndef _VSERVER_PID_H
 +#define _VSERVER_PID_H
@@ -12209,9 +12093,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/pid.h linux-3.7.7-vs2.3.
 +}
 +
 +#endif
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched.h
---- linux-3.7.7/include/linux/vserver/sched.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/sched.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched.h
+--- linux-3.9.4/include/linux/vserver/sched.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,23 @@
 +#ifndef _VSERVER_SCHED_H
 +#define _VSERVER_SCHED_H
@@ -12236,9 +12120,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched.h linux-3.7.7-vs2.
 +#else /* _VSERVER_SCHED_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_SCHED_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched_cmd.h
---- linux-3.7.7/include/linux/vserver/sched_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/sched_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched_cmd.h
+--- linux-3.9.4/include/linux/vserver/sched_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,11 @@
 +#ifndef _VSERVER_SCHED_CMD_H
 +#define _VSERVER_SCHED_CMD_H
@@ -12251,9 +12135,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched_cmd.h linux-3.7.7-
 +extern int vc_get_prio_bias(struct vx_info *, void __user *);
 +
 +#endif        /* _VSERVER_SCHED_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched_def.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched_def.h
---- linux-3.7.7/include/linux/vserver/sched_def.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/sched_def.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/sched_def.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched_def.h
+--- linux-3.9.4/include/linux/vserver/sched_def.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/sched_def.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,38 @@
 +#ifndef _VSERVER_SCHED_DEF_H
 +#define _VSERVER_SCHED_DEF_H
@@ -12293,9 +12177,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/sched_def.h linux-3.7.7-
 +#endif
 +
 +#endif        /* _VSERVER_SCHED_DEF_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/signal.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/signal.h
---- linux-3.7.7/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/signal.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/signal.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/signal.h
+--- linux-3.9.4/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/signal.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _VSERVER_SIGNAL_H
 +#define _VSERVER_SIGNAL_H
@@ -12311,9 +12195,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/signal.h linux-3.7.7-vs2
 +#else /* _VSERVER_SIGNAL_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_SIGNAL_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/signal_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/signal_cmd.h
---- linux-3.7.7/include/linux/vserver/signal_cmd.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/signal_cmd.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/signal_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/signal_cmd.h
+--- linux-3.9.4/include/linux/vserver/signal_cmd.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/signal_cmd.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _VSERVER_SIGNAL_CMD_H
 +#define _VSERVER_SIGNAL_CMD_H
@@ -12329,9 +12213,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/signal_cmd.h linux-3.7.7
 +extern int vc_set_pflags(uint32_t pid, void __user *);
 +
 +#endif        /* _VSERVER_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/space.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/space.h
---- linux-3.7.7/include/linux/vserver/space.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/space.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/space.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/space.h
+--- linux-3.9.4/include/linux/vserver/space.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/space.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,12 @@
 +#ifndef _VSERVER_SPACE_H
 +#define _VSERVER_SPACE_H
@@ -12345,9 +12229,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/space.h linux-3.7.7-vs2.
 +#else /* _VSERVER_SPACE_H */
 +#warning duplicate inclusion
 +#endif        /* _VSERVER_SPACE_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/space_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/space_cmd.h
---- linux-3.7.7/include/linux/vserver/space_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/space_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/space_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/space_cmd.h
+--- linux-3.9.4/include/linux/vserver/space_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/space_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,13 @@
 +#ifndef _VSERVER_SPACE_CMD_H
 +#define _VSERVER_SPACE_CMD_H
@@ -12362,9 +12246,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/space_cmd.h linux-3.7.7-
 +extern int vc_get_space_mask(void __user *, int);
 +
 +#endif        /* _VSERVER_SPACE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/switch.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/switch.h
---- linux-3.7.7/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/switch.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/switch.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/switch.h
+--- linux-3.9.4/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/switch.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,8 @@
 +#ifndef _VSERVER_SWITCH_H
 +#define _VSERVER_SWITCH_H
@@ -12374,9 +12258,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/switch.h linux-3.7.7-vs2
 +#include <uapi/vserver/switch.h>
 +
 +#endif        /* _VSERVER_SWITCH_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/tag.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/tag.h
---- linux-3.7.7/include/linux/vserver/tag.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/tag.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/tag.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/tag.h
+--- linux-3.9.4/include/linux/vserver/tag.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/tag.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,143 @@
 +#ifndef _DX_TAG_H
 +#define _DX_TAG_H
@@ -12521,9 +12405,9 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/tag.h linux-3.7.7-vs2.3.
 +#endif
 +
 +#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-3.7.7/include/linux/vserver/tag_cmd.h linux-3.7.7-vs2.3.5.6/include/linux/vserver/tag_cmd.h
---- linux-3.7.7/include/linux/vserver/tag_cmd.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/linux/vserver/tag_cmd.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/linux/vserver/tag_cmd.h linux-3.9.4-vs2.3.6.1/include/linux/vserver/tag_cmd.h
+--- linux-3.9.4/include/linux/vserver/tag_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/linux/vserver/tag_cmd.h      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,10 @@
 +#ifndef _VSERVER_TAG_CMD_H
 +#define _VSERVER_TAG_CMD_H
@@ -12535,10 +12419,10 @@ diff -NurpP --minimal linux-3.7.7/include/linux/vserver/tag_cmd.h linux-3.7.7-vs
 +extern int vc_tag_migrate(uint32_t);
 +
 +#endif        /* _VSERVER_TAG_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/net/addrconf.h linux-3.7.7-vs2.3.5.6/include/net/addrconf.h
---- linux-3.7.7/include/net/addrconf.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/addrconf.h       2012-12-18 15:13:16.000000000 +0000
-@@ -81,7 +81,8 @@ extern int                   ipv6_dev_get_saddr(struct n
+diff -NurpP --minimal linux-3.9.4/include/net/addrconf.h linux-3.9.4-vs2.3.6.1/include/net/addrconf.h
+--- linux-3.9.4/include/net/addrconf.h 2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/addrconf.h       2013-05-31 17:17:53.000000000 +0000
+@@ -85,7 +85,8 @@ extern int                   ipv6_dev_get_saddr(struct n
                                               const struct net_device *dev,
                                               const struct in6_addr *daddr,
                                               unsigned int srcprefs,
@@ -12548,9 +12432,9 @@ diff -NurpP --minimal linux-3.7.7/include/net/addrconf.h linux-3.7.7-vs2.3.5.6/i
  extern int                    ipv6_get_lladdr(struct net_device *dev,
                                                struct in6_addr *addr,
                                                unsigned char banned_flags);
-diff -NurpP --minimal linux-3.7.7/include/net/af_unix.h linux-3.7.7-vs2.3.5.6/include/net/af_unix.h
---- linux-3.7.7/include/net/af_unix.h  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/af_unix.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/net/af_unix.h linux-3.9.4-vs2.3.6.1/include/net/af_unix.h
+--- linux-3.9.4/include/net/af_unix.h  2013-02-19 13:58:52.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/af_unix.h        2013-05-31 17:17:53.000000000 +0000
 @@ -4,6 +4,7 @@
  #include <linux/socket.h>
  #include <linux/un.h>
@@ -12559,24 +12443,24 @@ diff -NurpP --minimal linux-3.7.7/include/net/af_unix.h linux-3.7.7-vs2.3.5.6/in
  #include <net/sock.h>
  
  extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-3.7.7/include/net/inet_timewait_sock.h linux-3.7.7-vs2.3.5.6/include/net/inet_timewait_sock.h
---- linux-3.7.7/include/net/inet_timewait_sock.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/inet_timewait_sock.h     2012-12-18 15:13:16.000000000 +0000
-@@ -112,6 +112,10 @@ struct inet_timewait_sock {
- #define tw_net                        __tw_common.skc_net
- #define tw_daddr              __tw_common.skc_daddr
- #define tw_rcv_saddr          __tw_common.skc_rcv_saddr
+diff -NurpP --minimal linux-3.9.4/include/net/inet_timewait_sock.h linux-3.9.4-vs2.3.6.1/include/net/inet_timewait_sock.h
+--- linux-3.9.4/include/net/inet_timewait_sock.h       2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/inet_timewait_sock.h     2013-05-31 17:18:34.000000000 +0000
+@@ -116,6 +116,10 @@ struct inet_timewait_sock {
+ #define tw_dport              __tw_common.skc_dport
+ #define tw_num                        __tw_common.skc_num
+ #define tw_portpair           __tw_common.skc_portpair
 +#define tw_xid                        __tw_common.skc_xid
 +#define tw_vx_info            __tw_common.skc_vx_info
 +#define tw_nid                        __tw_common.skc_nid
 +#define tw_nx_info            __tw_common.skc_nx_info
        int                     tw_timeout;
        volatile unsigned char  tw_substate;
-       unsigned char           tw_rcv_wscale;
-diff -NurpP --minimal linux-3.7.7/include/net/ip6_route.h linux-3.7.7-vs2.3.5.6/include/net/ip6_route.h
---- linux-3.7.7/include/net/ip6_route.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/ip6_route.h      2012-12-18 15:13:16.000000000 +0000
-@@ -97,7 +97,8 @@ extern int                   ip6_route_get_saddr(struct
+diff -NurpP --minimal linux-3.9.4/include/net/ip6_route.h linux-3.9.4-vs2.3.6.1/include/net/ip6_route.h
+--- linux-3.9.4/include/net/ip6_route.h        2013-05-31 13:45:28.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/ip6_route.h      2013-05-31 17:17:53.000000000 +0000
+@@ -95,7 +95,8 @@ extern int                   ip6_route_get_saddr(struct
                                                    struct rt6_info *rt,
                                                    const struct in6_addr *daddr,
                                                    unsigned int prefs,
@@ -12586,11 +12470,11 @@ diff -NurpP --minimal linux-3.7.7/include/net/ip6_route.h linux-3.7.7-vs2.3.5.6/
  
  extern struct rt6_info                *rt6_lookup(struct net *net,
                                            const struct in6_addr *daddr,
-diff -NurpP --minimal linux-3.7.7/include/net/route.h linux-3.7.7-vs2.3.5.6/include/net/route.h
---- linux-3.7.7/include/net/route.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/route.h  2012-12-18 15:13:16.000000000 +0000
-@@ -204,6 +204,9 @@ static inline void ip_rt_put(struct rtab
-               dst_release(&rt->dst);
+diff -NurpP --minimal linux-3.9.4/include/net/route.h linux-3.9.4-vs2.3.6.1/include/net/route.h
+--- linux-3.9.4/include/net/route.h    2013-02-19 13:58:52.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/route.h  2013-05-31 17:17:53.000000000 +0000
+@@ -207,6 +207,9 @@ static inline void ip_rt_put(struct rtab
+       dst_release(&rt->dst);
  }
  
 +#include <linux/vs_base.h>
@@ -12599,7 +12483,7 @@ diff -NurpP --minimal linux-3.7.7/include/net/route.h linux-3.7.7-vs2.3.5.6/incl
  #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
  
  extern const __u8 ip_tos2prio[16];
-@@ -253,6 +256,9 @@ static inline void ip_route_connect_init
+@@ -256,6 +259,9 @@ static inline void ip_route_connect_init
                           protocol, flow_flags, dst, src, dport, sport);
  }
  
@@ -12609,7 +12493,7 @@ diff -NurpP --minimal linux-3.7.7/include/net/route.h linux-3.7.7-vs2.3.5.6/incl
  static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
                                              __be32 dst, __be32 src, u32 tos,
                                              int oif, u8 protocol,
-@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_co
+@@ -264,11 +270,25 @@ static inline struct rtable *ip_route_co
  {
        struct net *net = sock_net(sk);
        struct rtable *rt;
@@ -12636,10 +12520,10 @@ diff -NurpP --minimal linux-3.7.7/include/net/route.h linux-3.7.7-vs2.3.5.6/incl
                rt = __ip_route_output_key(net, fl4);
                if (IS_ERR(rt))
                        return rt;
-diff -NurpP --minimal linux-3.7.7/include/net/sock.h linux-3.7.7-vs2.3.5.6/include/net/sock.h
---- linux-3.7.7/include/net/sock.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/net/sock.h   2012-12-18 15:13:16.000000000 +0000
-@@ -171,6 +171,10 @@ struct sock_common {
+diff -NurpP --minimal linux-3.9.4/include/net/sock.h linux-3.9.4-vs2.3.6.1/include/net/sock.h
+--- linux-3.9.4/include/net/sock.h     2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/net/sock.h   2013-05-31 17:17:53.000000000 +0000
+@@ -191,6 +191,10 @@ struct sock_common {
  #ifdef CONFIG_NET_NS
        struct net              *skc_net;
  #endif
@@ -12650,7 +12534,7 @@ diff -NurpP --minimal linux-3.7.7/include/net/sock.h linux-3.7.7-vs2.3.5.6/inclu
        /*
         * fields between dontcopy_begin/dontcopy_end
         * are not copied in sock_copy()
-@@ -283,6 +287,10 @@ struct sock {
+@@ -304,6 +308,10 @@ struct sock {
  #define sk_bind_node          __sk_common.skc_bind_node
  #define sk_prot                       __sk_common.skc_prot
  #define sk_net                        __sk_common.skc_net
@@ -12661,17 +12545,17 @@ diff -NurpP --minimal linux-3.7.7/include/net/sock.h linux-3.7.7-vs2.3.5.6/inclu
        socket_lock_t           sk_lock;
        struct sk_buff_head     sk_receive_queue;
        /*
-diff -NurpP --minimal linux-3.7.7/include/uapi/Kbuild linux-3.7.7-vs2.3.5.6/include/uapi/Kbuild
---- linux-3.7.7/include/uapi/Kbuild    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/Kbuild  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/Kbuild linux-3.9.4-vs2.3.6.1/include/uapi/Kbuild
+--- linux-3.9.4/include/uapi/Kbuild    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/Kbuild  2013-05-31 14:47:11.000000000 +0000
 @@ -12,3 +12,4 @@ header-y += video/
  header-y += drm/
  header-y += xen/
  header-y += scsi/
 +header-y += vserver/
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/capability.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/capability.h
---- linux-3.7.7/include/uapi/linux/capability.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/capability.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/capability.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/capability.h
+--- linux-3.9.4/include/uapi/linux/capability.h        2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/capability.h      2013-05-31 14:47:11.000000000 +0000
 @@ -259,6 +259,7 @@ struct vfs_cap_data {
     arbitrary SCSI commands */
  /* Allow setting encryption key on loopback filesystem */
@@ -12694,20 +12578,20 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/capability.h linux-3.7.7-vs
  
  /*
   * Bit location of each capability (used by user-space library and kernel)
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/fs.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/fs.h
---- linux-3.7.7/include/uapi/linux/fs.h        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/fs.h      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/fs.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/fs.h
+--- linux-3.9.4/include/uapi/linux/fs.h        2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/fs.h      2013-05-31 23:07:43.000000000 +0000
 @@ -86,6 +86,9 @@ struct inodes_stat_t {
  #define MS_KERNMOUNT  (1<<22) /* this is a kern_mount call */
  #define MS_I_VERSION  (1<<23) /* Update inode I_version field */
  #define MS_STRICTATIME        (1<<24) /* Always perform atime updates */
-+#define MS_TAGGED     (1<<25) /* use generic inode tagging */
-+#define MS_TAGID      (1<<26) /* use specific tag for this mount */
-+#define MS_NOTAGCHECK (1<<27) /* don't check tags */
- #define MS_NOSEC      (1<<28)
- #define MS_BORN               (1<<29)
- #define MS_ACTIVE     (1<<30)
-@@ -189,11 +192,14 @@ struct inodes_stat_t {
++#define MS_TAGGED     (1<<8)  /* use generic inode tagging */
++#define MS_NOTAGCHECK (1<<9)  /* don't check tags */
++#define MS_TAGID      (1<<25) /* use specific tag for this mount */
+ /* These sb flags are internal to the kernel */
+ #define MS_SNAP_STABLE        (1<<27) /* Snapshot pages during writeback, if needed */
+@@ -192,11 +195,14 @@ struct inodes_stat_t {
  #define FS_EXTENT_FL                  0x00080000 /* Extents */
  #define FS_DIRECTIO_FL                        0x00100000 /* Use direct i/o */
  #define FS_NOCOW_FL                   0x00800000 /* Do not cow file */
@@ -12724,9 +12608,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/fs.h linux-3.7.7-vs2.3.5.6/
  
  #define SYNC_FILE_RANGE_WAIT_BEFORE   1
  #define SYNC_FILE_RANGE_WRITE         2
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/gfs2_ondisk.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/gfs2_ondisk.h
---- linux-3.7.7/include/uapi/linux/gfs2_ondisk.h       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/gfs2_ondisk.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/gfs2_ondisk.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/gfs2_ondisk.h
+--- linux-3.9.4/include/uapi/linux/gfs2_ondisk.h       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/gfs2_ondisk.h     2013-05-31 14:47:11.000000000 +0000
 @@ -225,6 +225,9 @@ enum {
        gfs2fl_Sync             = 8,
        gfs2fl_System           = 9,
@@ -12747,20 +12631,20 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/gfs2_ondisk.h linux-3.7.7-v
  #define GFS2_DIF_TRUNC_IN_PROG                0x20000000 /* New in gfs2 */
  #define GFS2_DIF_INHERIT_DIRECTIO     0x40000000 /* only in gfs1 */
  #define GFS2_DIF_INHERIT_JDATA                0x80000000
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/if_tun.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/if_tun.h
---- linux-3.7.7/include/uapi/linux/if_tun.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/if_tun.h  2012-12-18 15:13:16.000000000 +0000
-@@ -53,6 +53,7 @@
- #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/if_tun.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/if_tun.h
+--- linux-3.9.4/include/uapi/linux/if_tun.h    2013-02-19 13:58:55.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/if_tun.h  2013-05-31 15:00:16.000000000 +0000
+@@ -56,6 +56,7 @@
  #define TUNGETVNETHDRSZ _IOR('T', 215, int)
  #define TUNSETVNETHDRSZ _IOW('T', 216, int)
-+#define TUNSETNID     _IOW('T', 217, int)
+ #define TUNSETQUEUE  _IOW('T', 217, int)
++#define TUNSETNID     _IOW('T', 218, int)
  
  /* TUNSETIFF ifr flags */
  #define IFF_TUN               0x0001
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/major.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/major.h
---- linux-3.7.7/include/uapi/linux/major.h     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/major.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/major.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/major.h
+--- linux-3.9.4/include/uapi/linux/major.h     2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/major.h   2013-05-31 14:47:11.000000000 +0000
 @@ -15,6 +15,7 @@
  #define HD_MAJOR              IDE0_MAJOR
  #define PTY_SLAVE_MAJOR               3
@@ -12769,9 +12653,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/major.h linux-3.7.7-vs2.3.5
  #define TTYAUX_MAJOR          5
  #define LP_MAJOR              6
  #define VCS_MAJOR             7
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/nfs_mount.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/nfs_mount.h
---- linux-3.7.7/include/uapi/linux/nfs_mount.h 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/nfs_mount.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/nfs_mount.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/nfs_mount.h
+--- linux-3.9.4/include/uapi/linux/nfs_mount.h 2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/nfs_mount.h       2013-05-31 14:47:11.000000000 +0000
 @@ -63,7 +63,8 @@ struct nfs_mount_data {
  #define NFS_MOUNT_SECFLAVOUR  0x2000  /* 5 */
  #define NFS_MOUNT_NORDIRPLUS  0x4000  /* 5 */
@@ -12782,9 +12666,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/nfs_mount.h linux-3.7.7-vs2
  
  /* The following are for internal use only */
  #define NFS_MOUNT_LOOKUP_CACHE_NONEG  0x10000
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/reboot.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/reboot.h
---- linux-3.7.7/include/uapi/linux/reboot.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/reboot.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/reboot.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/reboot.h
+--- linux-3.9.4/include/uapi/linux/reboot.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/reboot.h  2013-05-31 14:47:11.000000000 +0000
 @@ -33,7 +33,7 @@
  #define       LINUX_REBOOT_CMD_RESTART2       0xA1B2C3D4
  #define       LINUX_REBOOT_CMD_SW_SUSPEND     0xD000FCE2
@@ -12794,9 +12678,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/reboot.h linux-3.7.7-vs2.3.
  
  
  #endif /* _UAPI_LINUX_REBOOT_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/linux/sysctl.h linux-3.7.7-vs2.3.5.6/include/uapi/linux/sysctl.h
---- linux-3.7.7/include/uapi/linux/sysctl.h    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/linux/sysctl.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/linux/sysctl.h linux-3.9.4-vs2.3.6.1/include/uapi/linux/sysctl.h
+--- linux-3.9.4/include/uapi/linux/sysctl.h    2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/linux/sysctl.h  2013-05-31 14:47:11.000000000 +0000
 @@ -60,6 +60,7 @@ enum
        CTL_ABI=9,              /* Binary emulation */
        CTL_CPU=10,             /* CPU stuff (speed scaling, etc) */
@@ -12813,9 +12697,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/linux/sysctl.h linux-3.7.7-vs2.3.
  
        KERN_SPARC_REBOOT=21,   /* reboot command on Sparc */
        KERN_CTLALTDEL=22,      /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/Kbuild linux-3.7.7-vs2.3.5.6/include/uapi/vserver/Kbuild
---- linux-3.7.7/include/uapi/vserver/Kbuild    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/Kbuild  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/Kbuild linux-3.9.4-vs2.3.6.1/include/uapi/vserver/Kbuild
+--- linux-3.9.4/include/uapi/vserver/Kbuild    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/Kbuild  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,9 @@
 +
 +header-y += context_cmd.h network_cmd.h space_cmd.h \
@@ -12826,9 +12710,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/Kbuild linux-3.7.7-vs2.3.
 +header-y += switch.h context.h network.h monitor.h \
 +      limit.h inode.h device.h
 +
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/cacct_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/cacct_cmd.h
---- linux-3.7.7/include/uapi/vserver/cacct_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/cacct_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/cacct_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/cacct_cmd.h
+--- linux-3.9.4/include/uapi/vserver/cacct_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/cacct_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,15 @@
 +#ifndef _UAPI_VS_CACCT_CMD_H
 +#define _UAPI_VS_CACCT_CMD_H
@@ -12845,10 +12729,10 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/cacct_cmd.h linux-3.7.7-v
 +};
 +
 +#endif /* _UAPI_VS_CACCT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/context.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/context.h
---- linux-3.7.7/include/uapi/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/context.h       2012-12-18 15:13:16.000000000 +0000
-@@ -0,0 +1,80 @@
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/context.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/context.h
+--- linux-3.9.4/include/uapi/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/context.h       2013-05-31 19:44:13.000000000 +0000
+@@ -0,0 +1,81 @@
 +#ifndef _UAPI_VS_CONTEXT_H
 +#define _UAPI_VS_CONTEXT_H
 +
@@ -12917,9 +12801,10 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/context.h linux-3.7.7-vs2
 +#define VXC_OOM_ADJUST                0x00002000
 +#define VXC_AUDIT_CONTROL     0x00004000
 +
-+#define VXC_SECURE_MOUNT      0x00010000
-+#define VXC_SECURE_REMOUNT    0x00020000
++/* #define VXC_SECURE_MOUNT   0x00010000
++#define VXC_SECURE_REMOUNT    0x00020000 */
 +#define VXC_BINARY_MOUNT      0x00040000
++#define VXC_DEV_MOUNT         0x00080000
 +
 +#define VXC_QUOTA_CTL         0x00100000
 +#define VXC_ADMIN_MAPPER      0x00200000
@@ -12929,9 +12814,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/context.h linux-3.7.7-vs2
 +#define VXC_NAMESPACE         0x02000000
 +
 +#endif /* _UAPI_VS_CONTEXT_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/context_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/context_cmd.h
---- linux-3.7.7/include/uapi/vserver/context_cmd.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/context_cmd.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/context_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/context_cmd.h
+--- linux-3.9.4/include/uapi/vserver/context_cmd.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/context_cmd.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,115 @@
 +#ifndef _UAPI_VS_CONTEXT_CMD_H
 +#define _UAPI_VS_CONTEXT_CMD_H
@@ -13048,9 +12933,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/context_cmd.h linux-3.7.7
 +};
 +
 +#endif /* _UAPI_VS_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/cvirt_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/cvirt_cmd.h
---- linux-3.7.7/include/uapi/vserver/cvirt_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/cvirt_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/cvirt_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/cvirt_cmd.h
+--- linux-3.9.4/include/uapi/vserver/cvirt_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/cvirt_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,41 @@
 +#ifndef _UAPI_VS_CVIRT_CMD_H
 +#define _UAPI_VS_CVIRT_CMD_H
@@ -13093,9 +12978,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/cvirt_cmd.h linux-3.7.7-v
 +};
 +
 +#endif /* _UAPI_VS_CVIRT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/debug_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/debug_cmd.h
---- linux-3.7.7/include/uapi/vserver/debug_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/debug_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/debug_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/debug_cmd.h
+--- linux-3.9.4/include/uapi/vserver/debug_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/debug_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,24 @@
 +#ifndef _UAPI_VS_DEBUG_CMD_H
 +#define _UAPI_VS_DEBUG_CMD_H
@@ -13121,9 +13006,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/debug_cmd.h linux-3.7.7-v
 +};
 +
 +#endif /* _UAPI_VS_DEBUG_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/device.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/device.h
---- linux-3.7.7/include/uapi/vserver/device.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/device.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/device.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/device.h
+--- linux-3.9.4/include/uapi/vserver/device.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/device.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,12 @@
 +#ifndef _UAPI_VS_DEVICE_H
 +#define _UAPI_VS_DEVICE_H
@@ -13137,9 +13022,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/device.h linux-3.7.7-vs2.
 +#define DATTR_MASK    0x00000013
 +
 +#endif        /* _UAPI_VS_DEVICE_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/device_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/device_cmd.h
---- linux-3.7.7/include/uapi/vserver/device_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/device_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/device_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/device_cmd.h
+--- linux-3.9.4/include/uapi/vserver/device_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/device_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,16 @@
 +#ifndef _UAPI_VS_DEVICE_CMD_H
 +#define _UAPI_VS_DEVICE_CMD_H
@@ -13157,9 +13042,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/device_cmd.h linux-3.7.7-
 +};
 +
 +#endif /* _UAPI_VS_DEVICE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/dlimit_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/dlimit_cmd.h
---- linux-3.7.7/include/uapi/vserver/dlimit_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/dlimit_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/dlimit_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/dlimit_cmd.h
+--- linux-3.9.4/include/uapi/vserver/dlimit_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/dlimit_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,67 @@
 +#ifndef _UAPI_VS_DLIMIT_CMD_H
 +#define _UAPI_VS_DLIMIT_CMD_H
@@ -13228,9 +13113,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/dlimit_cmd.h linux-3.7.7-
 +}
 +
 +#endif /* _UAPI_VS_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/inode.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/inode.h
---- linux-3.7.7/include/uapi/vserver/inode.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/inode.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/inode.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/inode.h
+--- linux-3.9.4/include/uapi/vserver/inode.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/inode.h 2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,23 @@
 +#ifndef _UAPI_VS_INODE_H
 +#define _UAPI_VS_INODE_H
@@ -13255,9 +13140,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/inode.h linux-3.7.7-vs2.3
 +#define FIOC_SETXFLG  _IOW('x', 6, long)
 +
 +#endif        /* _UAPI_VS_INODE_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/inode_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/inode_cmd.h
---- linux-3.7.7/include/uapi/vserver/inode_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/inode_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/inode_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/inode_cmd.h
+--- linux-3.9.4/include/uapi/vserver/inode_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/inode_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,26 @@
 +#ifndef _UAPI_VS_INODE_CMD_H
 +#define _UAPI_VS_INODE_CMD_H
@@ -13285,9 +13170,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/inode_cmd.h linux-3.7.7-v
 +};
 +
 +#endif /* _UAPI_VS_INODE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/limit.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/limit.h
---- linux-3.7.7/include/uapi/vserver/limit.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/limit.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/limit.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/limit.h
+--- linux-3.9.4/include/uapi/vserver/limit.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/limit.h 2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _UAPI_VS_LIMIT_H
 +#define _UAPI_VS_LIMIT_H
@@ -13303,9 +13188,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/limit.h linux-3.7.7-vs2.3
 +#define VLIMIT_MAPPED 23
 +
 +#endif /* _UAPI_VS_LIMIT_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/limit_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/limit_cmd.h
---- linux-3.7.7/include/uapi/vserver/limit_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/limit_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/limit_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/limit_cmd.h
+--- linux-3.9.4/include/uapi/vserver/limit_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/limit_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,40 @@
 +#ifndef _UAPI_VS_LIMIT_CMD_H
 +#define _UAPI_VS_LIMIT_CMD_H
@@ -13347,9 +13232,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/limit_cmd.h linux-3.7.7-v
 +#define CRLIM_KEEP            (~1ULL)
 +
 +#endif /* _UAPI_VS_LIMIT_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/monitor.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/monitor.h
---- linux-3.7.7/include/uapi/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/monitor.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/monitor.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/monitor.h
+--- linux-3.9.4/include/uapi/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/monitor.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,96 @@
 +#ifndef _UAPI_VS_MONITOR_H
 +#define _UAPI_VS_MONITOR_H
@@ -13447,9 +13332,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/monitor.h linux-3.7.7-vs2
 +};
 +
 +#endif /* _UAPI_VS_MONITOR_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/network.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/network.h
---- linux-3.7.7/include/uapi/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/network.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/network.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/network.h
+--- linux-3.9.4/include/uapi/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/network.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,76 @@
 +#ifndef _UAPI_VS_NETWORK_H
 +#define _UAPI_VS_NETWORK_H
@@ -13527,9 +13412,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/network.h linux-3.7.7-vs2
 +#define NXA_MASK_SHOW         (NXA_MASK_ALL | NXA_LOOPBACK)
 +
 +#endif /* _UAPI_VS_NETWORK_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/network_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/network_cmd.h
---- linux-3.7.7/include/uapi/vserver/network_cmd.h     1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/network_cmd.h   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/network_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/network_cmd.h
+--- linux-3.9.4/include/uapi/vserver/network_cmd.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/network_cmd.h   2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,123 @@
 +#ifndef _UAPI_VS_NETWORK_CMD_H
 +#define _UAPI_VS_NETWORK_CMD_H
@@ -13654,9 +13539,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/network_cmd.h linux-3.7.7
 +};
 +
 +#endif /* _UAPI_VS_NETWORK_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/sched_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/sched_cmd.h
---- linux-3.7.7/include/uapi/vserver/sched_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/sched_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/sched_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/sched_cmd.h
+--- linux-3.9.4/include/uapi/vserver/sched_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/sched_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,13 @@
 +#ifndef _UAPI_VS_SCHED_CMD_H
 +#define _UAPI_VS_SCHED_CMD_H
@@ -13671,9 +13556,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/sched_cmd.h linux-3.7.7-v
 +#define VCMD_get_prio_bias    VC_CMD(SCHED, 5, 0)
 +
 +#endif /* _UAPI_VS_SCHED_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/signal_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/signal_cmd.h
---- linux-3.7.7/include/uapi/vserver/signal_cmd.h      1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/signal_cmd.h    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/signal_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/signal_cmd.h
+--- linux-3.9.4/include/uapi/vserver/signal_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/signal_cmd.h    2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,31 @@
 +#ifndef _UAPI_VS_SIGNAL_CMD_H
 +#define _UAPI_VS_SIGNAL_CMD_H
@@ -13706,9 +13591,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/signal_cmd.h linux-3.7.7-
 +};
 +
 +#endif /* _UAPI_VS_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/space_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/space_cmd.h
---- linux-3.7.7/include/uapi/vserver/space_cmd.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/space_cmd.h     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/space_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/space_cmd.h
+--- linux-3.9.4/include/uapi/vserver/space_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/space_cmd.h     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,28 @@
 +#ifndef _UAPI_VS_SPACE_CMD_H
 +#define _UAPI_VS_SPACE_CMD_H
@@ -13738,9 +13623,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/space_cmd.h linux-3.7.7-v
 +};
 +
 +#endif /* _UAPI_VS_SPACE_CMD_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/switch.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/switch.h
---- linux-3.7.7/include/uapi/vserver/switch.h  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/switch.h        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/switch.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/switch.h
+--- linux-3.9.4/include/uapi/vserver/switch.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/switch.h        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,90 @@
 +#ifndef _UAPI_VS_SWITCH_H
 +#define _UAPI_VS_SWITCH_H
@@ -13832,9 +13717,9 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/switch.h linux-3.7.7-vs2.
 +#define VCMD_get_vci          VC_CMD(VERSION, 1, 0)
 +
 +#endif /* _UAPI_VS_SWITCH_H */
-diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/tag_cmd.h linux-3.7.7-vs2.3.5.6/include/uapi/vserver/tag_cmd.h
---- linux-3.7.7/include/uapi/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/include/uapi/vserver/tag_cmd.h       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/include/uapi/vserver/tag_cmd.h linux-3.9.4-vs2.3.6.1/include/uapi/vserver/tag_cmd.h
+--- linux-3.9.4/include/uapi/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/include/uapi/vserver/tag_cmd.h       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _UAPI_VS_TAG_CMD_H
 +#define _UAPI_VS_TAG_CMD_H
@@ -13850,10 +13735,10 @@ diff -NurpP --minimal linux-3.7.7/include/uapi/vserver/tag_cmd.h linux-3.7.7-vs2
 +#define VCMD_tag_migrate      VC_CMD(TAGMIG, 1, 0)
 +
 +#endif /* _UAPI_VS_TAG_CMD_H */
-diff -NurpP --minimal linux-3.7.7/init/Kconfig linux-3.7.7-vs2.3.5.6/init/Kconfig
---- linux-3.7.7/init/Kconfig   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/init/Kconfig 2012-12-18 15:13:16.000000000 +0000
-@@ -699,6 +699,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
+diff -NurpP --minimal linux-3.9.4/init/Kconfig linux-3.9.4-vs2.3.6.1/init/Kconfig
+--- linux-3.9.4/init/Kconfig   2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/init/Kconfig 2013-05-31 14:47:11.000000000 +0000
+@@ -760,6 +760,7 @@ config NUMA_BALANCING
  menuconfig CGROUPS
        boolean "Control Group support"
        depends on EVENTFD
@@ -13861,28 +13746,28 @@ diff -NurpP --minimal linux-3.7.7/init/Kconfig linux-3.7.7-vs2.3.5.6/init/Kconfi
        help
          This option adds support for grouping sets of processes together, for
          use with process control subsystems such as Cpusets, CFS, memory
-@@ -964,6 +965,7 @@ config USER_NS
-       bool "User namespace (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+@@ -1022,6 +1023,7 @@ config IPC_NS
+ config USER_NS
+       bool "User namespace"
        depends on UIDGID_CONVERTED
 +      depends on VSERVER_DISABLED
        select UIDGID_STRICT_TYPE_CHECKS
  
        default n
-diff -NurpP --minimal linux-3.7.7/init/main.c linux-3.7.7-vs2.3.5.6/init/main.c
---- linux-3.7.7/init/main.c    2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/init/main.c  2013-02-05 01:14:43.000000000 +0000
-@@ -70,6 +70,7 @@
- #include <linux/perf_event.h>
- #include <linux/file.h>
+diff -NurpP --minimal linux-3.9.4/init/main.c linux-3.9.4-vs2.3.6.1/init/main.c
+--- linux-3.9.4/init/main.c    2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/init/main.c  2013-05-31 15:09:17.000000000 +0000
+@@ -72,6 +72,7 @@
  #include <linux/ptrace.h>
+ #include <linux/blkdev.h>
+ #include <linux/elevator.h>
 +#include <linux/vserver/percpu.h>
  
  #include <asm/io.h>
  #include <asm/bugs.h>
-diff -NurpP --minimal linux-3.7.7/ipc/mqueue.c linux-3.7.7-vs2.3.5.6/ipc/mqueue.c
---- linux-3.7.7/ipc/mqueue.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/ipc/mqueue.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/ipc/mqueue.c linux-3.9.4-vs2.3.6.1/ipc/mqueue.c
+--- linux-3.9.4/ipc/mqueue.c   2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/ipc/mqueue.c 2013-05-31 14:47:11.000000000 +0000
 @@ -35,6 +35,8 @@
  #include <linux/ipc_namespace.h>
  #include <linux/user_namespace.h>
@@ -13938,7 +13823,7 @@ diff -NurpP --minimal linux-3.7.7/ipc/mqueue.c linux-3.7.7-vs2.3.5.6/ipc/mqueue.
        } else if (S_ISDIR(mode)) {
                inc_nlink(inode);
                /* Some things misbehave if size == 0 on a directory */
-@@ -394,8 +402,11 @@ static void mqueue_evict_inode(struct in
+@@ -402,8 +410,11 @@ static void mqueue_evict_inode(struct in
  
        user = info->user;
        if (user) {
@@ -13950,7 +13835,7 @@ diff -NurpP --minimal linux-3.7.7/ipc/mqueue.c linux-3.7.7-vs2.3.5.6/ipc/mqueue.
                /*
                 * get_ns_from_inode() ensures that the
                 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -405,6 +416,7 @@ static void mqueue_evict_inode(struct in
+@@ -413,6 +424,7 @@ static void mqueue_evict_inode(struct in
                if (ipc_ns)
                        ipc_ns->mq_queues_count--;
                spin_unlock(&mq_lock);
@@ -13958,9 +13843,9 @@ diff -NurpP --minimal linux-3.7.7/ipc/mqueue.c linux-3.7.7-vs2.3.5.6/ipc/mqueue.
                free_uid(user);
        }
        if (ipc_ns)
-diff -NurpP --minimal linux-3.7.7/ipc/msg.c linux-3.7.7-vs2.3.5.6/ipc/msg.c
---- linux-3.7.7/ipc/msg.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/ipc/msg.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/ipc/msg.c linux-3.9.4-vs2.3.6.1/ipc/msg.c
+--- linux-3.9.4/ipc/msg.c      2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/ipc/msg.c    2013-05-31 14:47:11.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -13977,53 +13862,9 @@ diff -NurpP --minimal linux-3.7.7/ipc/msg.c linux-3.7.7-vs2.3.5.6/ipc/msg.c
  
        msq->q_perm.security = NULL;
        retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-3.7.7/ipc/namespace.c linux-3.7.7-vs2.3.5.6/ipc/namespace.c
---- linux-3.7.7/ipc/namespace.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/ipc/namespace.c      2012-12-18 15:13:16.000000000 +0000
-@@ -13,11 +13,12 @@
- #include <linux/mount.h>
- #include <linux/user_namespace.h>
- #include <linux/proc_fs.h>
-+#include <linux/vs_base.h>
-+#include <linux/vserver/global.h>
- #include "util.h"
--static struct ipc_namespace *create_ipc_ns(struct task_struct *tsk,
--                                         struct ipc_namespace *old_ns)
-+static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns)
- {
-       struct ipc_namespace *ns;
-       int err;
-@@ -46,19 +47,19 @@ static struct ipc_namespace *create_ipc_
-       ipcns_notify(IPCNS_CREATED);
-       register_ipcns_notifier(ns);
--      ns->user_ns = get_user_ns(task_cred_xxx(tsk, user_ns));
-+      // ns->user_ns = get_user_ns(task_cred_xxx(tsk, user_ns));
-+      ns->user_ns = get_user_ns(user_ns);
-       return ns;
- }
- struct ipc_namespace *copy_ipcs(unsigned long flags,
--                              struct task_struct *tsk)
-+                              struct ipc_namespace *old_ns,
-+                              struct user_namespace *user_ns)
- {
--      struct ipc_namespace *ns = tsk->nsproxy->ipc_ns;
--
-       if (!(flags & CLONE_NEWIPC))
--              return get_ipc_ns(ns);
--      return create_ipc_ns(tsk, ns);
-+              return get_ipc_ns(old_ns);
-+      return create_ipc_ns(user_ns);
- }
- /*
-diff -NurpP --minimal linux-3.7.7/ipc/sem.c linux-3.7.7-vs2.3.5.6/ipc/sem.c
---- linux-3.7.7/ipc/sem.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/ipc/sem.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/ipc/sem.c linux-3.9.4-vs2.3.6.1/ipc/sem.c
+--- linux-3.9.4/ipc/sem.c      2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/ipc/sem.c    2013-05-31 14:47:11.000000000 +0000
 @@ -86,6 +86,8 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -14061,9 +13902,9 @@ diff -NurpP --minimal linux-3.7.7/ipc/sem.c linux-3.7.7-vs2.3.5.6/ipc/sem.c
        security_sem_free(sma);
        ipc_rcu_putref(sma);
  }
-diff -NurpP --minimal linux-3.7.7/ipc/shm.c linux-3.7.7-vs2.3.5.6/ipc/shm.c
---- linux-3.7.7/ipc/shm.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/ipc/shm.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/ipc/shm.c linux-3.9.4-vs2.3.6.1/ipc/shm.c
+--- linux-3.9.4/ipc/shm.c      2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/ipc/shm.c    2013-05-31 14:47:11.000000000 +0000
 @@ -39,6 +39,8 @@
  #include <linux/nsproxy.h>
  #include <linux/mount.h>
@@ -14111,7 +13952,7 @@ diff -NurpP --minimal linux-3.7.7/ipc/shm.c linux-3.7.7-vs2.3.5.6/ipc/shm.c
        shp->shm_perm.mode = (shmflg & S_IRWXUGO);
        shp->mlock_user = NULL;
  
-@@ -533,6 +545,7 @@ static int newseg(struct ipc_namespace *
+@@ -544,6 +556,7 @@ static int newseg(struct ipc_namespace *
        ns->shm_tot += numpages;
        error = shp->shm_perm.id;
        shm_unlock(shp);
@@ -14119,22 +13960,22 @@ diff -NurpP --minimal linux-3.7.7/ipc/shm.c linux-3.7.7-vs2.3.5.6/ipc/shm.c
        return error;
  
  no_id:
-diff -NurpP --minimal linux-3.7.7/kernel/Makefile linux-3.7.7-vs2.3.5.6/kernel/Makefile
---- linux-3.7.7/kernel/Makefile        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/Makefile      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/Makefile linux-3.9.4-vs2.3.6.1/kernel/Makefile
+--- linux-3.9.4/kernel/Makefile        2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/Makefile      2013-05-31 14:47:11.000000000 +0000
 @@ -24,6 +24,7 @@ endif
  
  obj-y += sched/
  obj-y += power/
 +obj-y += vserver/
  
- ifeq ($(CONFIG_CHECKPOINT_RESTORE),y)
- obj-$(CONFIG_X86) += kcmp.o
-diff -NurpP --minimal linux-3.7.7/kernel/auditsc.c linux-3.7.7-vs2.3.5.6/kernel/auditsc.c
---- linux-3.7.7/kernel/auditsc.c       2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/auditsc.c     2013-02-05 01:14:43.000000000 +0000
-@@ -2372,7 +2372,7 @@ int audit_set_loginuid(kuid_t loginuid)
-       if (uid_valid(task->loginuid))
+ obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
+ obj-$(CONFIG_FREEZER) += freezer.o
+diff -NurpP --minimal linux-3.9.4/kernel/auditsc.c linux-3.9.4-vs2.3.6.1/kernel/auditsc.c
+--- linux-3.9.4/kernel/auditsc.c       2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/auditsc.c     2013-05-31 14:47:11.000000000 +0000
+@@ -2315,7 +2315,7 @@ int audit_set_loginuid(kuid_t loginuid)
+       if (audit_loginuid_set(task))
                return -EPERM;
  #else /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
 -      if (!capable(CAP_AUDIT_CONTROL))
@@ -14142,9 +13983,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/auditsc.c linux-3.7.7-vs2.3.5.6/kernel/
                return -EPERM;
  #endif  /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
  
-diff -NurpP --minimal linux-3.7.7/kernel/capability.c linux-3.7.7-vs2.3.5.6/kernel/capability.c
---- linux-3.7.7/kernel/capability.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/capability.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/capability.c linux-3.9.4-vs2.3.6.1/kernel/capability.c
+--- linux-3.9.4/kernel/capability.c    2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/capability.c  2013-05-31 14:47:11.000000000 +0000
 @@ -15,6 +15,7 @@
  #include <linux/syscalls.h>
  #include <linux/pid_namespace.h>
@@ -14170,9 +14011,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/capability.c linux-3.7.7-vs2.3.5.6/kern
  /**
   * has_capability_noaudit - Does a task have a capability (unaudited) in the
   * initial user ns
-diff -NurpP --minimal linux-3.7.7/kernel/compat.c linux-3.7.7-vs2.3.5.6/kernel/compat.c
---- linux-3.7.7/kernel/compat.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/compat.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/compat.c linux-3.9.4-vs2.3.6.1/kernel/compat.c
+--- linux-3.9.4/kernel/compat.c        2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/compat.c      2013-05-31 14:47:11.000000000 +0000
 @@ -27,6 +27,7 @@
  #include <linux/times.h>
  #include <linux/ptrace.h>
@@ -14181,7 +14022,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/compat.c linux-3.7.7-vs2.3.5.6/kernel/c
  
  #include <asm/uaccess.h>
  
-@@ -1054,7 +1055,7 @@ asmlinkage long compat_sys_stime(compat_
+@@ -1059,7 +1060,7 @@ asmlinkage long compat_sys_stime(compat_
        if (err)
                return err;
  
@@ -14190,11 +14031,11 @@ diff -NurpP --minimal linux-3.7.7/kernel/compat.c linux-3.7.7-vs2.3.5.6/kernel/c
        return 0;
  }
  
-diff -NurpP --minimal linux-3.7.7/kernel/cred.c linux-3.7.7-vs2.3.5.6/kernel/cred.c
---- linux-3.7.7/kernel/cred.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/cred.c        2012-12-18 15:13:16.000000000 +0000
-@@ -70,31 +70,6 @@ struct cred init_cred = {
- #endif
+diff -NurpP --minimal linux-3.9.4/kernel/cred.c linux-3.9.4-vs2.3.6.1/kernel/cred.c
+--- linux-3.9.4/kernel/cred.c  2013-02-19 13:58:56.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/cred.c        2013-05-31 14:47:11.000000000 +0000
+@@ -56,31 +56,6 @@ struct cred init_cred = {
+       .group_info             = &init_groups,
  };
  
 -static inline void set_cred_subscribers(struct cred *cred, int n)
@@ -14223,9 +14064,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/cred.c linux-3.7.7-vs2.3.5.6/kernel/cre
 -}
 -
  /*
-  * Dispose of the shared task group credentials
+  * The RCU callback to actually dispose of a set of credentials
   */
-@@ -284,21 +259,16 @@ error:
+@@ -232,21 +207,16 @@ error:
   *
   * Call commit_creds() or abort_creds() to clean up.
   */
@@ -14248,7 +14089,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/cred.c linux-3.7.7-vs2.3.5.6/kernel/cre
        memcpy(new, old, sizeof(struct cred));
  
        atomic_set(&new->usage, 1);
-@@ -326,6 +296,13 @@ error:
+@@ -275,6 +245,13 @@ error:
        abort_creds(new);
        return NULL;
  }
@@ -14262,9 +14103,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/cred.c linux-3.7.7-vs2.3.5.6/kernel/cre
  EXPORT_SYMBOL(prepare_creds);
  
  /*
-diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exit.c
---- linux-3.7.7/kernel/exit.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/exit.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/exit.c linux-3.9.4-vs2.3.6.1/kernel/exit.c
+--- linux-3.9.4/kernel/exit.c  2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/exit.c        2013-05-31 14:47:11.000000000 +0000
 @@ -48,6 +48,10 @@
  #include <linux/fs_struct.h>
  #include <linux/init_task.h>
@@ -14276,7 +14117,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
  #include <trace/events/sched.h>
  #include <linux/hw_breakpoint.h>
  #include <linux/oom.h>
-@@ -616,15 +620,25 @@ static struct task_struct *find_new_reap
+@@ -514,15 +518,25 @@ static struct task_struct *find_new_reap
        __acquires(&tasklist_lock)
  {
        struct pid_namespace *pid_ns = task_active_pid_ns(father);
@@ -14305,7 +14146,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
        }
  
        if (unlikely(pid_ns->child_reaper == father)) {
-@@ -662,7 +676,9 @@ static struct task_struct *find_new_reap
+@@ -560,7 +574,9 @@ static struct task_struct *find_new_reap
                }
        }
  
@@ -14316,7 +14157,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
  }
  
  /*
-@@ -713,10 +729,15 @@ static void forget_original_parent(struc
+@@ -611,10 +627,15 @@ static void forget_original_parent(struc
        list_for_each_entry_safe(p, n, &father->children, sibling) {
                struct task_struct *t = p;
                do {
@@ -14334,7 +14175,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
                        }
                        if (t->pdeath_signal)
                                group_send_sig_info(t->pdeath_signal,
-@@ -923,6 +944,9 @@ void do_exit(long code)
+@@ -821,6 +842,9 @@ void do_exit(long code)
         */
        ptrace_put_breakpoints(tsk);
  
@@ -14344,7 +14185,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
        exit_notify(tsk, group_dead);
  #ifdef CONFIG_NUMA
        task_lock(tsk);
-@@ -976,10 +1000,15 @@ void do_exit(long code)
+@@ -874,10 +898,15 @@ void do_exit(long code)
        smp_mb();
        raw_spin_unlock_wait(&tsk->pi_lock);
  
@@ -14360,9 +14201,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/exit.c linux-3.7.7-vs2.3.5.6/kernel/exi
        BUG();
        /* Avoid "noreturn function does return".  */
        for (;;)
-diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/fork.c
---- linux-3.7.7/kernel/fork.c  2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/fork.c        2013-01-16 00:19:28.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/fork.c linux-3.9.4-vs2.3.6.1/kernel/fork.c
+--- linux-3.9.4/kernel/fork.c  2013-05-31 13:45:29.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/fork.c        2013-05-31 14:47:11.000000000 +0000
 @@ -70,6 +70,9 @@
  #include <linux/khugepaged.h>
  #include <linux/signalfd.h>
@@ -14382,7 +14223,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        ftrace_graph_exit_task(tsk);
        put_seccomp_filter(tsk);
        arch_release_task_struct(tsk);
-@@ -545,6 +550,7 @@ static struct mm_struct *mm_init(struct
+@@ -547,6 +552,7 @@ static struct mm_struct *mm_init(struct
        if (likely(!mm_alloc_pgd(mm))) {
                mm->def_flags = 0;
                mmu_notifier_mm_init(mm);
@@ -14390,7 +14231,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
                return mm;
        }
  
-@@ -597,6 +603,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -599,6 +605,7 @@ void __mmdrop(struct mm_struct *mm)
        destroy_context(mm);
        mmu_notifier_mm_destroy(mm);
        check_mm(mm);
@@ -14398,7 +14239,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        free_mm(mm);
  }
  EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -816,6 +823,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -818,6 +825,7 @@ struct mm_struct *dup_mm(struct task_str
                goto fail_nomem;
  
        memcpy(mm, oldmm, sizeof(*mm));
@@ -14406,7 +14247,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        mm_init_cpumask(mm);
  
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-@@ -854,6 +862,7 @@ fail_nocontext:
+@@ -859,6 +867,7 @@ fail_nocontext:
         * If init_new_context() failed, we cannot use mmput() to free the mm
         * because it calls destroy_context()
         */
@@ -14414,7 +14255,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        mm_free_pgd(mm);
        free_mm(mm);
        return NULL;
-@@ -1135,6 +1144,8 @@ static struct task_struct *copy_process(
+@@ -1137,6 +1146,8 @@ static struct task_struct *copy_process(
  {
        int retval;
        struct task_struct *p;
@@ -14423,7 +14264,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
  
        if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
                return ERR_PTR(-EINVAL);
-@@ -1182,7 +1193,12 @@ static struct task_struct *copy_process(
+@@ -1195,7 +1206,12 @@ static struct task_struct *copy_process(
        DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
@@ -14436,7 +14277,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        if (atomic_read(&p->real_cred->user->processes) >=
                        task_rlimit(p, RLIMIT_NPROC)) {
                if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1451,6 +1467,18 @@ static struct task_struct *copy_process(
+@@ -1472,6 +1488,18 @@ static struct task_struct *copy_process(
  
        total_forks++;
        spin_unlock(&current->sighand->siglock);
@@ -14455,9 +14296,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/fork.c linux-3.7.7-vs2.3.5.6/kernel/for
        write_unlock_irq(&tasklist_lock);
        proc_fork_connector(p);
        cgroup_post_fork(p);
-diff -NurpP --minimal linux-3.7.7/kernel/kthread.c linux-3.7.7-vs2.3.5.6/kernel/kthread.c
---- linux-3.7.7/kernel/kthread.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/kthread.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/kthread.c linux-3.9.4-vs2.3.6.1/kernel/kthread.c
+--- linux-3.9.4/kernel/kthread.c       2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/kthread.c     2013-05-31 14:47:11.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/slab.h>
  #include <linux/freezer.h>
@@ -14466,9 +14307,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/kthread.c linux-3.7.7-vs2.3.5.6/kernel/
  #include <trace/events/sched.h>
  
  static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/nsproxy.c
---- linux-3.7.7/kernel/nsproxy.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/nsproxy.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/nsproxy.c linux-3.9.4-vs2.3.6.1/kernel/nsproxy.c
+--- linux-3.9.4/kernel/nsproxy.c       2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/nsproxy.c     2013-05-31 19:28:43.000000000 +0000
 @@ -20,11 +20,14 @@
  #include <linux/mnt_namespace.h>
  #include <linux/utsname.h>
@@ -14497,67 +14338,70 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
        return nsproxy;
  }
  
-@@ -56,8 +62,11 @@ static inline struct nsproxy *create_nsp
+@@ -56,9 +62,12 @@ static inline struct nsproxy *create_nsp
   * Return the newly created nsproxy.  Do not attach this to the task,
   * leave it to the caller to do proper locking and attach it to task.
   */
 -static struct nsproxy *create_new_namespaces(unsigned long flags,
--                      struct task_struct *tsk, struct fs_struct *new_fs)
-+static struct nsproxy *unshare_namespaces(unsigned long flags,
-+                      struct nsproxy *orig,
-+                      struct fs_struct *new_fs,
-+                      struct user_namespace *new_user,
-+                      struct pid_namespace *new_pid)
+-      struct task_struct *tsk, struct user_namespace *user_ns,
+-      struct fs_struct *new_fs)
++static struct nsproxy *unshare_namespaces(
++      unsigned long flags,
++      struct nsproxy *orig,
++      struct fs_struct *new_fs,
++      struct user_namespace *new_user,
++      struct pid_namespace *new_pid)
  {
        struct nsproxy *new_nsp;
        int err;
-@@ -66,31 +75,31 @@ static struct nsproxy *create_new_namesp
+@@ -67,31 +76,31 @@ static struct nsproxy *create_new_namesp
        if (!new_nsp)
                return ERR_PTR(-ENOMEM);
  
--      new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, new_fs);
-+      new_nsp->mnt_ns = copy_mnt_ns(flags, orig->mnt_ns, new_fs);
+-      new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, user_ns, new_fs);
++      new_nsp->mnt_ns = copy_mnt_ns(flags, orig->mnt_ns, new_user, new_fs);
        if (IS_ERR(new_nsp->mnt_ns)) {
                err = PTR_ERR(new_nsp->mnt_ns);
                goto out_ns;
        }
  
--      new_nsp->uts_ns = copy_utsname(flags, tsk);
-+      new_nsp->uts_ns = copy_utsname(flags, orig->uts_ns, new_user);
+-      new_nsp->uts_ns = copy_utsname(flags, user_ns, tsk->nsproxy->uts_ns);
++      new_nsp->uts_ns = copy_utsname(flags, new_user, orig->uts_ns);
        if (IS_ERR(new_nsp->uts_ns)) {
                err = PTR_ERR(new_nsp->uts_ns);
                goto out_uts;
        }
  
--      new_nsp->ipc_ns = copy_ipcs(flags, tsk);
-+      new_nsp->ipc_ns = copy_ipcs(flags, orig->ipc_ns, new_user);
+-      new_nsp->ipc_ns = copy_ipcs(flags, user_ns, tsk->nsproxy->ipc_ns);
++      new_nsp->ipc_ns = copy_ipcs(flags, new_user, orig->ipc_ns);
        if (IS_ERR(new_nsp->ipc_ns)) {
                err = PTR_ERR(new_nsp->ipc_ns);
                goto out_ipc;
        }
  
--      new_nsp->pid_ns = copy_pid_ns(flags, task_active_pid_ns(tsk));
-+      new_nsp->pid_ns = copy_pid_ns(flags, new_pid);
+-      new_nsp->pid_ns = copy_pid_ns(flags, user_ns, tsk->nsproxy->pid_ns);
++      new_nsp->pid_ns = copy_pid_ns(flags, new_user, new_pid);
        if (IS_ERR(new_nsp->pid_ns)) {
                err = PTR_ERR(new_nsp->pid_ns);
                goto out_pid;
        }
  
--      new_nsp->net_ns = copy_net_ns(flags, tsk->nsproxy->net_ns);
-+      new_nsp->net_ns = copy_net_ns(flags, orig->net_ns);
+-      new_nsp->net_ns = copy_net_ns(flags, user_ns, tsk->nsproxy->net_ns);
++      new_nsp->net_ns = copy_net_ns(flags, new_user, orig->net_ns);
        if (IS_ERR(new_nsp->net_ns)) {
                err = PTR_ERR(new_nsp->net_ns);
                goto out_net;
-@@ -115,6 +124,40 @@ out_ns:
+@@ -116,6 +125,41 @@ out_ns:
        return ERR_PTR(err);
  }
  
 +static struct nsproxy *create_new_namespaces(unsigned long flags,
-+                      struct task_struct *tsk, struct fs_struct *new_fs)
++      struct task_struct *tsk, struct user_namespace *user_ns,
++      struct fs_struct *new_fs)
++
 +{
 +      return unshare_namespaces(flags, tsk->nsproxy,
-+              new_fs, task_cred_xxx(tsk, user_ns),
-+              task_active_pid_ns(tsk));
++              new_fs, user_ns, task_active_pid_ns(tsk));
 +}
 +
 +/*
@@ -14589,10 +14433,10 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
  /*
   * called from clone.  This now handles copy for nsproxy and all
   * namespaces therein.
-@@ -122,9 +165,12 @@ out_ns:
- int copy_namespaces(unsigned long flags, struct task_struct *tsk)
+@@ -124,9 +168,12 @@ int copy_namespaces(unsigned long flags,
  {
        struct nsproxy *old_ns = tsk->nsproxy;
+       struct user_namespace *user_ns = task_cred_xxx(tsk, user_ns);
 -      struct nsproxy *new_ns;
 +      struct nsproxy *new_ns = NULL;
        int err = 0;
@@ -14603,16 +14447,16 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
        if (!old_ns)
                return 0;
  
-@@ -134,7 +180,7 @@ int copy_namespaces(unsigned long flags,
+@@ -136,7 +183,7 @@ int copy_namespaces(unsigned long flags,
                                CLONE_NEWPID | CLONE_NEWNET)))
                return 0;
  
--      if (!capable(CAP_SYS_ADMIN)) {
-+      if (!vx_can_unshare(CAP_SYS_ADMIN, flags)) {
+-      if (!ns_capable(user_ns, CAP_SYS_ADMIN)) {
++      if (!vx_ns_can_unshare(user_ns, CAP_SYS_ADMIN, flags)) {
                err = -EPERM;
                goto out;
        }
-@@ -161,6 +207,9 @@ int copy_namespaces(unsigned long flags,
+@@ -163,6 +210,9 @@ int copy_namespaces(unsigned long flags,
  
  out:
        put_nsproxy(old_ns);
@@ -14622,7 +14466,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
        return err;
  }
  
-@@ -174,7 +223,9 @@ void free_nsproxy(struct nsproxy *ns)
+@@ -176,7 +226,9 @@ void free_nsproxy(struct nsproxy *ns)
                put_ipc_ns(ns->ipc_ns);
        if (ns->pid_ns)
                put_pid_ns(ns->pid_ns);
@@ -14633,8 +14477,8 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
        kmem_cache_free(nsproxy_cachep, ns);
  }
  
-@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned
- {
+@@ -190,12 +242,16 @@ int unshare_nsproxy_namespaces(unsigned
+       struct user_namespace *user_ns;
        int err = 0;
  
 +      vxdprintk(VXD_CBIT(space, 4),
@@ -14642,35 +14486,36 @@ diff -NurpP --minimal linux-3.7.7/kernel/nsproxy.c linux-3.7.7-vs2.3.5.6/kernel/
 +              unshare_flags, current->nsproxy);
 +
        if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
-                              CLONE_NEWNET)))
+                              CLONE_NEWNET | CLONE_NEWPID)))
                return 0;
  
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_can_unshare(CAP_SYS_ADMIN, unshare_flags))
+       user_ns = new_cred ? new_cred->user_ns : current_user_ns();
+-      if (!ns_capable(user_ns, CAP_SYS_ADMIN))
++      if (!vx_ns_can_unshare(user_ns, CAP_SYS_ADMIN, unshare_flags))
                return -EPERM;
  
-       *new_nsp = create_new_namespaces(unshare_flags, current,
-diff -NurpP --minimal linux-3.7.7/kernel/pid.c linux-3.7.7-vs2.3.5.6/kernel/pid.c
---- linux-3.7.7/kernel/pid.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/pid.c 2012-12-18 15:13:16.000000000 +0000
-@@ -36,6 +36,7 @@
- #include <linux/pid_namespace.h>
+       *new_nsp = create_new_namespaces(unshare_flags, current, user_ns,
+diff -NurpP --minimal linux-3.9.4/kernel/pid.c linux-3.9.4-vs2.3.6.1/kernel/pid.c
+--- linux-3.9.4/kernel/pid.c   2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/pid.c 2013-05-31 15:24:34.000000000 +0000
+@@ -37,6 +37,7 @@
  #include <linux/init_task.h>
  #include <linux/syscalls.h>
+ #include <linux/proc_fs.h>
 +#include <linux/vs_pid.h>
  
  #define pid_hashfn(nr, ns)    \
        hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift)
-@@ -344,7 +345,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
+@@ -364,7 +365,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
  
  struct pid *find_vpid(int nr)
  {
--      return find_pid_ns(nr, current->nsproxy->pid_ns);
-+      return find_pid_ns(vx_rmap_pid(nr), current->nsproxy->pid_ns);
+-      return find_pid_ns(nr, task_active_pid_ns(current));
++      return find_pid_ns(vx_rmap_pid(nr), task_active_pid_ns(current));
  }
  EXPORT_SYMBOL_GPL(find_vpid);
  
-@@ -404,6 +405,9 @@ void transfer_pid(struct task_struct *ol
+@@ -424,6 +425,9 @@ void transfer_pid(struct task_struct *ol
  struct task_struct *pid_task(struct pid *pid, enum pid_type type)
  {
        struct task_struct *result = NULL;
@@ -14680,7 +14525,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/pid.c linux-3.7.7-vs2.3.5.6/kernel/pid.
        if (pid) {
                struct hlist_node *first;
                first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
-@@ -423,7 +427,7 @@ struct task_struct *find_task_by_pid_ns(
+@@ -443,7 +447,7 @@ struct task_struct *find_task_by_pid_ns(
        rcu_lockdep_assert(rcu_read_lock_held(),
                           "find_task_by_pid_ns() needs rcu_read_lock()"
                           " protection");
@@ -14689,7 +14534,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/pid.c linux-3.7.7-vs2.3.5.6/kernel/pid.
  }
  
  struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -467,7 +471,7 @@ struct pid *find_get_pid(pid_t nr)
+@@ -487,7 +491,7 @@ struct pid *find_get_pid(pid_t nr)
  }
  EXPORT_SYMBOL_GPL(find_get_pid);
  
@@ -14698,7 +14543,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/pid.c linux-3.7.7-vs2.3.5.6/kernel/pid.
  {
        struct upid *upid;
        pid_t nr = 0;
-@@ -481,6 +485,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
+@@ -501,6 +505,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
  }
  EXPORT_SYMBOL_GPL(pid_nr_ns);
  
@@ -14709,11 +14554,11 @@ diff -NurpP --minimal linux-3.7.7/kernel/pid.c linux-3.7.7-vs2.3.5.6/kernel/pid.
 +
  pid_t pid_vnr(struct pid *pid)
  {
-       return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-3.7.7/kernel/pid_namespace.c linux-3.7.7-vs2.3.5.6/kernel/pid_namespace.c
---- linux-3.7.7/kernel/pid_namespace.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/pid_namespace.c       2012-12-18 15:13:16.000000000 +0000
-@@ -17,6 +17,7 @@
+       return pid_nr_ns(pid, task_active_pid_ns(current));
+diff -NurpP --minimal linux-3.9.4/kernel/pid_namespace.c linux-3.9.4-vs2.3.6.1/kernel/pid_namespace.c
+--- linux-3.9.4/kernel/pid_namespace.c 2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/pid_namespace.c       2013-05-31 17:59:48.000000000 +0000
+@@ -18,6 +18,7 @@
  #include <linux/proc_fs.h>
  #include <linux/reboot.h>
  #include <linux/export.h>
@@ -14721,25 +14566,25 @@ diff -NurpP --minimal linux-3.7.7/kernel/pid_namespace.c linux-3.7.7-vs2.3.5.6/k
  
  #define BITS_PER_PAGE         (PAGE_SIZE*8)
  
-@@ -100,6 +101,7 @@ static struct pid_namespace *create_pid_
+@@ -112,6 +113,7 @@ static struct pid_namespace *create_pid_
                goto out_free_map;
  
        kref_init(&ns->kref);
 +      atomic_inc(&vs_global_pid_ns);
        ns->level = level;
        ns->parent = get_pid_ns(parent_pid_ns);
-@@ -131,6 +133,7 @@ static void destroy_pid_namespace(struct
+       ns->user_ns = get_user_ns(user_ns);
+@@ -142,6 +144,7 @@ static void destroy_pid_namespace(struct
        for (i = 0; i < PIDMAP_ENTRIES; i++)
                kfree(ns->pidmap[i].page);
+       put_user_ns(ns->user_ns);
 +      atomic_dec(&vs_global_pid_ns);
        kmem_cache_free(pid_ns_cachep, ns);
  }
  
-diff -NurpP --minimal linux-3.7.7/kernel/posix-timers.c linux-3.7.7-vs2.3.5.6/kernel/posix-timers.c
---- linux-3.7.7/kernel/posix-timers.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/posix-timers.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/posix-timers.c linux-3.9.4-vs2.3.6.1/kernel/posix-timers.c
+--- linux-3.9.4/kernel/posix-timers.c  2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/posix-timers.c        2013-05-31 14:47:11.000000000 +0000
 @@ -47,6 +47,7 @@
  #include <linux/wait.h>
  #include <linux/workqueue.h>
@@ -14775,18 +14620,18 @@ diff -NurpP --minimal linux-3.7.7/kernel/posix-timers.c linux-3.7.7-vs2.3.5.6/ke
        /* If we failed to send the signal the timer stops. */
        return ret > 0;
  }
-diff -NurpP --minimal linux-3.7.7/kernel/printk.c linux-3.7.7-vs2.3.5.6/kernel/printk.c
---- linux-3.7.7/kernel/printk.c        2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/printk.c      2013-01-16 00:19:03.000000000 +0000
-@@ -42,6 +42,7 @@
- #include <linux/notifier.h>
+diff -NurpP --minimal linux-3.9.4/kernel/printk.c linux-3.9.4-vs2.3.6.1/kernel/printk.c
+--- linux-3.9.4/kernel/printk.c        2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/printk.c      2013-05-31 15:23:35.000000000 +0000
+@@ -43,6 +43,7 @@
  #include <linux/rculist.h>
  #include <linux/poll.h>
+ #include <linux/irq_work.h>
 +#include <linux/vs_cvirt.h>
  
  #include <asm/uaccess.h>
  
-@@ -818,7 +819,7 @@ static int check_syslog_permissions(int
+@@ -841,7 +842,7 @@ static int check_syslog_permissions(int
                return 0;
  
        if (syslog_action_restricted(type)) {
@@ -14795,7 +14640,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/printk.c linux-3.7.7-vs2.3.5.6/kernel/p
                        return 0;
                /* For historical reasons, accept CAP_SYS_ADMIN too, with a warning */
                if (capable(CAP_SYS_ADMIN)) {
-@@ -1112,12 +1113,9 @@ int do_syslog(int type, char __user *buf
+@@ -1135,12 +1136,9 @@ int do_syslog(int type, char __user *buf
        if (error)
                return error;
  
@@ -14811,7 +14656,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/printk.c linux-3.7.7-vs2.3.5.6/kernel/p
                error = -EINVAL;
                if (!buf || len < 0)
                        goto out;
-@@ -1128,6 +1126,16 @@ int do_syslog(int type, char __user *buf
+@@ -1151,6 +1149,16 @@ int do_syslog(int type, char __user *buf
                        error = -EFAULT;
                        goto out;
                }
@@ -14828,7 +14673,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/printk.c linux-3.7.7-vs2.3.5.6/kernel/p
                error = wait_event_interruptible(log_wait,
                                                 syslog_seq != log_next_seq);
                if (error)
-@@ -1140,16 +1148,6 @@ int do_syslog(int type, char __user *buf
+@@ -1163,16 +1171,6 @@ int do_syslog(int type, char __user *buf
                /* FALL THRU */
        /* Read last kernel messages */
        case SYSLOG_ACTION_READ_ALL:
@@ -14845,9 +14690,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/printk.c linux-3.7.7-vs2.3.5.6/kernel/p
                error = syslog_print_all(buf, len, clear);
                break;
        /* Clear ring buffer */
-diff -NurpP --minimal linux-3.7.7/kernel/ptrace.c linux-3.7.7-vs2.3.5.6/kernel/ptrace.c
---- linux-3.7.7/kernel/ptrace.c        2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/ptrace.c      2013-02-05 01:14:43.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/ptrace.c linux-3.9.4-vs2.3.6.1/kernel/ptrace.c
+--- linux-3.9.4/kernel/ptrace.c        2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/ptrace.c      2013-05-31 15:22:34.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/syscalls.h>
  #include <linux/uaccess.h>
@@ -14856,31 +14701,31 @@ diff -NurpP --minimal linux-3.7.7/kernel/ptrace.c linux-3.7.7-vs2.3.5.6/kernel/p
  #include <linux/hw_breakpoint.h>
  #include <linux/cn_proc.h>
  
-@@ -256,6 +257,11 @@ ok:
-               dumpable = get_dumpable(task->mm);
-       if (!dumpable  && !ptrace_has_cap(task_user_ns(task), mode))
-               return -EPERM;
+@@ -261,6 +262,11 @@ ok:
+       }
+       rcu_read_unlock();
 +      if (!vx_check(task->xid, VS_ADMIN_P|VS_WATCH_P|VS_IDENT))
 +              return -EPERM;
 +      if (!vx_check(task->xid, VS_IDENT) &&
 +              !task_vx_flags(task, VXF_STATE_ADMIN, 0))
 +              return -EACCES;
        return security_ptrace_access_check(task, mode);
  }
-diff -NurpP --minimal linux-3.7.7/kernel/sched/core.c linux-3.7.7-vs2.3.5.6/kernel/sched/core.c
---- linux-3.7.7/kernel/sched/core.c    2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sched/core.c  2013-02-05 01:14:43.000000000 +0000
-@@ -72,6 +72,8 @@
- #include <linux/slab.h>
+diff -NurpP --minimal linux-3.9.4/kernel/sched/core.c linux-3.9.4-vs2.3.6.1/kernel/sched/core.c
+--- linux-3.9.4/kernel/sched/core.c    2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sched/core.c  2013-05-31 15:17:22.000000000 +0000
+@@ -73,6 +73,8 @@
  #include <linux/init_task.h>
  #include <linux/binfmts.h>
+ #include <linux/context_tracking.h>
 +#include <linux/vs_sched.h>
 +#include <linux/vs_cvirt.h>
  
  #include <asm/switch_to.h>
  #include <asm/tlb.h>
-@@ -2031,9 +2033,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
+@@ -2091,9 +2093,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
   */
  void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
  {
@@ -14901,7 +14746,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sched/core.c linux-3.7.7-vs2.3.5.6/kern
  }
  
  static long calc_load_fold_active(struct rq *this_rq)
-@@ -3597,7 +3607,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -3704,7 +3714,7 @@ SYSCALL_DEFINE1(nice, int, increment)
                nice = 19;
  
        if (increment < 0 && !can_nice(current, nice))
@@ -14910,18 +14755,18 @@ diff -NurpP --minimal linux-3.7.7/kernel/sched/core.c linux-3.7.7-vs2.3.5.6/kern
  
        retval = security_task_setnice(current, nice);
        if (retval)
-diff -NurpP --minimal linux-3.7.7/kernel/sched/cputime.c linux-3.7.7-vs2.3.5.6/kernel/sched/cputime.c
---- linux-3.7.7/kernel/sched/cputime.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sched/cputime.c       2012-12-18 15:13:16.000000000 +0000
-@@ -3,6 +3,7 @@
- #include <linux/tsacct_kern.h>
+diff -NurpP --minimal linux-3.9.4/kernel/sched/cputime.c linux-3.9.4-vs2.3.6.1/kernel/sched/cputime.c
+--- linux-3.9.4/kernel/sched/cputime.c 2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sched/cputime.c       2013-05-31 15:17:55.000000000 +0000
+@@ -4,6 +4,7 @@
  #include <linux/kernel_stat.h>
  #include <linux/static_key.h>
+ #include <linux/context_tracking.h>
 +#include <linux/vs_sched.h>
  #include "sched.h"
  
  
-@@ -150,14 +151,17 @@ static inline void task_group_account_fi
+@@ -151,14 +152,17 @@ static inline void task_group_account_fi
  void account_user_time(struct task_struct *p, cputime_t cputime,
                       cputime_t cputime_scaled)
  {
@@ -14940,7 +14785,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sched/cputime.c linux-3.7.7-vs2.3.5.6/k
  
        /* Add user time to cpustat. */
        task_group_account_field(p, index, (__force u64) cputime);
-@@ -204,9 +208,12 @@ static inline
+@@ -205,9 +209,12 @@ static inline
  void __account_system_time(struct task_struct *p, cputime_t cputime,
                        cputime_t cputime_scaled, int index)
  {
@@ -14953,18 +14798,18 @@ diff -NurpP --minimal linux-3.7.7/kernel/sched/cputime.c linux-3.7.7-vs2.3.5.6/k
        account_group_system_time(p, cputime);
  
        /* Add system time to cpustat. */
-diff -NurpP --minimal linux-3.7.7/kernel/sched/fair.c linux-3.7.7-vs2.3.5.6/kernel/sched/fair.c
---- linux-3.7.7/kernel/sched/fair.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sched/fair.c  2012-12-18 15:13:16.000000000 +0000
-@@ -26,6 +26,7 @@
- #include <linux/slab.h>
- #include <linux/profile.h>
- #include <linux/interrupt.h>
+diff -NurpP --minimal linux-3.9.4/kernel/sched/fair.c linux-3.9.4-vs2.3.6.1/kernel/sched/fair.c
+--- linux-3.9.4/kernel/sched/fair.c    2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sched/fair.c  2013-05-31 15:19:37.000000000 +0000
+@@ -29,6 +29,7 @@
+ #include <linux/mempolicy.h>
+ #include <linux/migrate.h>
+ #include <linux/task_work.h>
 +#include <linux/vs_cvirt.h>
  
  #include <trace/events/sched.h>
  
-@@ -1111,6 +1112,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
+@@ -1714,6 +1715,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
                __enqueue_entity(cfs_rq, se);
        se->on_rq = 1;
  
@@ -14973,28 +14818,28 @@ diff -NurpP --minimal linux-3.7.7/kernel/sched/fair.c linux-3.7.7-vs2.3.5.6/kern
        if (cfs_rq->nr_running == 1) {
                list_add_leaf_cfs_rq(cfs_rq);
                check_enqueue_throttle(cfs_rq);
-@@ -1191,6 +1194,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
+@@ -1795,6 +1798,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
        if (se != cfs_rq->curr)
                __dequeue_entity(cfs_rq, se);
        se->on_rq = 0;
 +      if (entity_is_task(se))
 +              vx_deactivate_task(task_of(se));
-       update_cfs_load(cfs_rq, 0);
        account_entity_dequeue(cfs_rq, se);
  
-diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/signal.c
---- linux-3.7.7/kernel/signal.c        2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/signal.c      2013-02-05 01:14:43.000000000 +0000
-@@ -31,6 +31,8 @@
- #include <linux/nsproxy.h>
+       /*
+diff -NurpP --minimal linux-3.9.4/kernel/signal.c linux-3.9.4-vs2.3.6.1/kernel/signal.c
+--- linux-3.9.4/kernel/signal.c        2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/signal.c      2013-05-31 15:20:05.000000000 +0000
+@@ -32,6 +32,8 @@
  #include <linux/user_namespace.h>
  #include <linux/uprobes.h>
+ #include <linux/compat.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_pid.h>
  #define CREATE_TRACE_POINTS
  #include <trace/events/signal.h>
  
-@@ -785,9 +787,18 @@ static int check_kill_permission(int sig
+@@ -789,9 +791,18 @@ static int check_kill_permission(int sig
        struct pid *sid;
        int error;
  
@@ -15013,7 +14858,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
        if (!si_fromuser(info))
                return 0;
  
-@@ -811,6 +822,20 @@ static int check_kill_permission(int sig
+@@ -815,6 +826,20 @@ static int check_kill_permission(int sig
                }
        }
  
@@ -15034,7 +14879,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
        return security_task_kill(t, info, sig, 0);
  }
  
-@@ -1346,7 +1371,7 @@ int kill_pid_info(int sig, struct siginf
+@@ -1351,7 +1376,7 @@ int kill_pid_info(int sig, struct siginf
        rcu_read_lock();
  retry:
        p = pid_task(pid, PIDTYPE_PID);
@@ -15043,7 +14888,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
                error = group_send_sig_info(sig, info, p);
                if (unlikely(error == -ESRCH))
                        /*
-@@ -1394,7 +1419,7 @@ int kill_pid_info_as_cred(int sig, struc
+@@ -1399,7 +1424,7 @@ int kill_pid_info_as_cred(int sig, struc
  
        rcu_read_lock();
        p = pid_task(pid, PIDTYPE_PID);
@@ -15052,7 +14897,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
                ret = -ESRCH;
                goto out_unlock;
        }
-@@ -1446,8 +1471,10 @@ static int kill_something_info(int sig,
+@@ -1451,8 +1476,10 @@ static int kill_something_info(int sig,
                struct task_struct * p;
  
                for_each_process(p) {
@@ -15065,7 +14910,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
                                int err = group_send_sig_info(sig, info, p);
                                ++count;
                                if (err != -EPERM)
-@@ -2307,6 +2334,11 @@ relock:
+@@ -2306,6 +2333,11 @@ relock:
                                !sig_kernel_only(signr))
                        continue;
  
@@ -15077,9 +14922,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/signal.c linux-3.7.7-vs2.3.5.6/kernel/s
                if (sig_kernel_stop(signr)) {
                        /*
                         * The default action is to stop all threads in
-diff -NurpP --minimal linux-3.7.7/kernel/softirq.c linux-3.7.7-vs2.3.5.6/kernel/softirq.c
---- linux-3.7.7/kernel/softirq.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/softirq.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/softirq.c linux-3.9.4-vs2.3.6.1/kernel/softirq.c
+--- linux-3.9.4/kernel/softirq.c       2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/softirq.c     2013-05-31 14:47:11.000000000 +0000
 @@ -25,6 +25,7 @@
  #include <linux/smp.h>
  #include <linux/smpboot.h>
@@ -15088,18 +14933,18 @@ diff -NurpP --minimal linux-3.7.7/kernel/softirq.c linux-3.7.7-vs2.3.5.6/kernel/
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/irq.h>
-diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.c
---- linux-3.7.7/kernel/sys.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sys.c 2012-12-18 15:13:16.000000000 +0000
-@@ -47,6 +47,7 @@
- #include <linux/syscalls.h>
- #include <linux/kprobes.h>
- #include <linux/user_namespace.h>
-+#include <linux/vs_pid.h>
+diff -NurpP --minimal linux-3.9.4/kernel/sys.c linux-3.9.4-vs2.3.6.1/kernel/sys.c
+--- linux-3.9.4/kernel/sys.c   2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sys.c 2013-05-31 15:23:14.000000000 +0000
+@@ -50,6 +50,7 @@
+ #include <linux/binfmts.h>
  
  #include <linux/kmsg_dump.h>
++#include <linux/vs_pid.h>
  /* Move somewhere else to avoid recompiling? */
-@@ -154,7 +155,10 @@ static int set_one_prio(struct task_stru
+ #include <generated/utsrelease.h>
+@@ -155,7 +156,10 @@ static int set_one_prio(struct task_stru
                goto out;
        }
        if (niceval < task_nice(p) && !can_nice(p, niceval)) {
@@ -15111,7 +14956,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                goto out;
        }
        no_nice = security_task_setnice(p, niceval);
-@@ -205,6 +209,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
+@@ -206,6 +210,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
                        else
                                pgrp = task_pgrp(current);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15120,7 +14965,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                                error = set_one_prio(p, niceval, error);
                        } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
                        break;
-@@ -270,6 +276,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
+@@ -271,6 +277,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
                        else
                                pgrp = task_pgrp(current);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15129,7 +14974,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                                niceval = 20 - task_nice(p);
                                if (niceval > retval)
                                        retval = niceval;
-@@ -422,6 +430,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
+@@ -424,6 +432,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
  
  static DEFINE_MUTEX(reboot_mutex);
  
@@ -15138,7 +14983,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
  /*
   * Reboot system call: for obvious reasons only root may call it,
   * and even root needs to set up some magic numbers in the registers
-@@ -463,6 +473,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
+@@ -466,6 +476,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
        if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
                cmd = LINUX_REBOOT_CMD_HALT;
  
@@ -15148,7 +14993,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
        mutex_lock(&reboot_mutex);
        switch (cmd) {
        case LINUX_REBOOT_CMD_RESTART:
-@@ -1370,7 +1383,8 @@ SYSCALL_DEFINE2(sethostname, char __user
+@@ -1373,7 +1386,8 @@ SYSCALL_DEFINE2(sethostname, char __user
        int errno;
        char tmp[__NEW_UTS_LEN];
  
@@ -15158,7 +15003,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                return -EPERM;
  
        if (len < 0 || len > __NEW_UTS_LEN)
-@@ -1421,7 +1435,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
+@@ -1424,7 +1438,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
        int errno;
        char tmp[__NEW_UTS_LEN];
  
@@ -15168,7 +15013,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                return -EPERM;
        if (len < 0 || len > __NEW_UTS_LEN)
                return -EINVAL;
-@@ -1540,7 +1555,7 @@ int do_prlimit(struct task_struct *tsk,
+@@ -1543,7 +1558,7 @@ int do_prlimit(struct task_struct *tsk,
                /* Keep the capable check against init_user_ns until
                   cgroups can contain all limits */
                if (new_rlim->rlim_max > rlim->rlim_max &&
@@ -15177,7 +15022,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                        retval = -EPERM;
                if (!retval)
                        retval = security_task_setrlimit(tsk->group_leader,
-@@ -1593,7 +1608,8 @@ static int check_prlimit_permission(stru
+@@ -1596,7 +1611,8 @@ static int check_prlimit_permission(stru
            gid_eq(cred->gid, tcred->sgid) &&
            gid_eq(cred->gid, tcred->gid))
                return 0;
@@ -15187,10 +15032,10 @@ diff -NurpP --minimal linux-3.7.7/kernel/sys.c linux-3.7.7-vs2.3.5.6/kernel/sys.
                return 0;
  
        return -EPERM;
-diff -NurpP --minimal linux-3.7.7/kernel/sysctl.c linux-3.7.7-vs2.3.5.6/kernel/sysctl.c
---- linux-3.7.7/kernel/sysctl.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sysctl.c      2012-12-18 15:13:16.000000000 +0000
-@@ -82,6 +82,7 @@
+diff -NurpP --minimal linux-3.9.4/kernel/sysctl.c linux-3.9.4-vs2.3.6.1/kernel/sysctl.c
+--- linux-3.9.4/kernel/sysctl.c        2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sysctl.c      2013-05-31 15:28:39.000000000 +0000
+@@ -83,6 +83,7 @@
  #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
  #include <linux/lockdep.h>
  #endif
@@ -15198,10 +15043,10 @@ diff -NurpP --minimal linux-3.7.7/kernel/sysctl.c linux-3.7.7-vs2.3.5.6/kernel/s
  #ifdef CONFIG_CHR_DEV_SG
  #include <scsi/sg.h>
  #endif
-@@ -574,6 +575,13 @@ static struct ctl_table kern_table[] = {
+@@ -629,6 +630,13 @@ static struct ctl_table kern_table[] = {
+               .mode           = 0644,
                .proc_handler   = proc_dostring,
        },
- #endif
 +      {
 +              .procname       = "vshelper",
 +              .data           = &vshelper_path,
@@ -15209,12 +15054,12 @@ diff -NurpP --minimal linux-3.7.7/kernel/sysctl.c linux-3.7.7-vs2.3.5.6/kernel/s
 +              .mode           = 0644,
 +              .proc_handler   = &proc_dostring,
 +      },
  #ifdef CONFIG_CHR_DEV_SG
        {
-               .procname       = "sg-big-buff",
-diff -NurpP --minimal linux-3.7.7/kernel/sysctl_binary.c linux-3.7.7-vs2.3.5.6/kernel/sysctl_binary.c
---- linux-3.7.7/kernel/sysctl_binary.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/sysctl_binary.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/sysctl_binary.c linux-3.9.4-vs2.3.6.1/kernel/sysctl_binary.c
+--- linux-3.9.4/kernel/sysctl_binary.c 2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/sysctl_binary.c       2013-05-31 14:47:11.000000000 +0000
 @@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
  
        { CTL_INT,      KERN_PANIC,                     "panic" },
@@ -15223,28 +15068,28 @@ diff -NurpP --minimal linux-3.7.7/kernel/sysctl_binary.c linux-3.7.7-vs2.3.5.6/k
  
        { CTL_STR,      KERN_SPARC_REBOOT,              "reboot-cmd" },
        { CTL_INT,      KERN_CTLALTDEL,                 "ctrl-alt-del" },
-diff -NurpP --minimal linux-3.7.7/kernel/time/timekeeping.c linux-3.7.7-vs2.3.5.6/kernel/time/timekeeping.c
---- linux-3.7.7/kernel/time/timekeeping.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/time/timekeeping.c    2012-12-18 15:13:16.000000000 +0000
-@@ -21,6 +21,7 @@
- #include <linux/time.h>
+diff -NurpP --minimal linux-3.9.4/kernel/time/timekeeping.c linux-3.9.4-vs2.3.6.1/kernel/time/timekeeping.c
+--- linux-3.9.4/kernel/time/timekeeping.c      2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/time/timekeeping.c    2013-05-31 15:24:55.000000000 +0000
+@@ -22,6 +22,7 @@
  #include <linux/tick.h>
  #include <linux/stop_machine.h>
+ #include <linux/pvclock_gtod.h>
 +#include <linux/vs_time.h>
  
  
  static struct timekeeper timekeeper;
-@@ -243,6 +244,7 @@ void getnstimeofday(struct timespec *ts)
+@@ -594,6 +595,7 @@ void getrawmonotonic(struct timespec *ts
+       } while (read_seqretry(&tk->lock, seq));
  
-       ts->tv_nsec = 0;
        timespec_add_ns(ts, nsecs);
 +      vx_adjust_timespec(ts);
  }
- EXPORT_SYMBOL(getnstimeofday);
+ EXPORT_SYMBOL(getrawmonotonic);
  
-diff -NurpP --minimal linux-3.7.7/kernel/time.c linux-3.7.7-vs2.3.5.6/kernel/time.c
---- linux-3.7.7/kernel/time.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/time.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/time.c linux-3.9.4-vs2.3.6.1/kernel/time.c
+--- linux-3.9.4/kernel/time.c  2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/time.c        2013-05-31 14:47:11.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/fs.h>
  #include <linux/math64.h>
@@ -15262,7 +15107,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/time.c linux-3.7.7-vs2.3.5.6/kernel/tim
        return 0;
  }
  
-@@ -172,7 +173,7 @@ int do_sys_settimeofday(const struct tim
+@@ -180,7 +181,7 @@ int do_sys_settimeofday(const struct tim
                }
        }
        if (tv)
@@ -15271,12 +15116,12 @@ diff -NurpP --minimal linux-3.7.7/kernel/time.c linux-3.7.7-vs2.3.5.6/kernel/tim
        return 0;
  }
  
-diff -NurpP --minimal linux-3.7.7/kernel/timer.c linux-3.7.7-vs2.3.5.6/kernel/timer.c
---- linux-3.7.7/kernel/timer.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/timer.c       2012-12-18 15:13:16.000000000 +0000
-@@ -40,6 +40,10 @@
- #include <linux/irq_work.h>
+diff -NurpP --minimal linux-3.9.4/kernel/timer.c linux-3.9.4-vs2.3.6.1/kernel/timer.c
+--- linux-3.9.4/kernel/timer.c 2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/timer.c       2013-05-31 14:47:11.000000000 +0000
+@@ -41,6 +41,10 @@
  #include <linux/sched.h>
+ #include <linux/sched/sysctl.h>
  #include <linux/slab.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_cvirt.h>
@@ -15285,38 +15130,37 @@ diff -NurpP --minimal linux-3.7.7/kernel/timer.c linux-3.7.7-vs2.3.5.6/kernel/ti
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-diff -NurpP --minimal linux-3.7.7/kernel/user_namespace.c linux-3.7.7-vs2.3.5.6/kernel/user_namespace.c
---- linux-3.7.7/kernel/user_namespace.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/user_namespace.c      2012-12-18 15:13:16.000000000 +0000
-@@ -20,6 +20,7 @@
- #include <linux/uaccess.h>
+diff -NurpP --minimal linux-3.9.4/kernel/user_namespace.c linux-3.9.4-vs2.3.6.1/kernel/user_namespace.c
+--- linux-3.9.4/kernel/user_namespace.c        2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/user_namespace.c      2013-05-31 17:44:56.000000000 +0000
+@@ -22,6 +22,7 @@
  #include <linux/ctype.h>
  #include <linux/projid.h>
+ #include <linux/fs_struct.h>
 +#include <linux/vserver/global.h>
  
  static struct kmem_cache *user_ns_cachep __read_mostly;
  
-@@ -53,6 +54,7 @@ int create_user_ns(struct cred *new)
-               return -ENOMEM;
+@@ -91,6 +92,7 @@ int create_user_ns(struct cred *new)
  
-       kref_init(&ns->kref);
+       atomic_set(&ns->count, 1);
+       /* Leave the new->user_ns reference with the new user namespace. */
 +      atomic_inc(&vs_global_user_ns);
        ns->parent = parent_ns;
        ns->owner = owner;
        ns->group = group;
-@@ -85,6 +87,9 @@ void free_user_ns(struct kref *kref)
+@@ -835,6 +837,8 @@ static void *userns_get(struct task_stru
  
-       parent = ns->parent;
-       kmem_cache_free(user_ns_cachep, ns);
-+
+ static void userns_put(void *ns)
+ {
 +      /* FIXME: maybe move into destroyer? */
 +      atomic_dec(&vs_global_user_ns);
-       put_user_ns(parent);
+       put_user_ns(ns);
  }
- EXPORT_SYMBOL(free_user_ns);
-diff -NurpP --minimal linux-3.7.7/kernel/utsname.c linux-3.7.7-vs2.3.5.6/kernel/utsname.c
---- linux-3.7.7/kernel/utsname.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/utsname.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/utsname.c linux-3.9.4-vs2.3.6.1/kernel/utsname.c
+--- linux-3.9.4/kernel/utsname.c       2013-05-31 13:45:30.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/utsname.c     2013-05-31 15:15:55.000000000 +0000
 @@ -16,14 +16,17 @@
  #include <linux/slab.h>
  #include <linux/user_namespace.h>
@@ -15336,58 +15180,17 @@ diff -NurpP --minimal linux-3.7.7/kernel/utsname.c linux-3.7.7-vs2.3.5.6/kernel/
        return uts_ns;
  }
  
-@@ -32,8 +35,8 @@ static struct uts_namespace *create_uts_
-  * @old_ns: namespace to clone
-  * Return NULL on error (failure to kmalloc), new ns otherwise
-  */
--static struct uts_namespace *clone_uts_ns(struct task_struct *tsk,
--                                        struct uts_namespace *old_ns)
-+static struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns,
-+                                        struct user_namespace *old_user)
- {
-       struct uts_namespace *ns;
-@@ -43,7 +46,7 @@ static struct uts_namespace *clone_uts_n
-       down_read(&uts_sem);
-       memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
--      ns->user_ns = get_user_ns(task_cred_xxx(tsk, user_ns));
-+      ns->user_ns = get_user_ns(old_user);
-       up_read(&uts_sem);
-       return ns;
- }
-@@ -55,9 +58,9 @@ static struct uts_namespace *clone_uts_n
-  * versa.
-  */
- struct uts_namespace *copy_utsname(unsigned long flags,
--                                 struct task_struct *tsk)
-+                                 struct uts_namespace *old_ns,
-+                                 struct user_namespace *user_ns)
- {
--      struct uts_namespace *old_ns = tsk->nsproxy->uts_ns;
-       struct uts_namespace *new_ns;
-       BUG_ON(!old_ns);
-@@ -66,7 +69,7 @@ struct uts_namespace *copy_utsname(unsig
-       if (!(flags & CLONE_NEWUTS))
-               return old_ns;
--      new_ns = clone_uts_ns(tsk, old_ns);
-+      new_ns = clone_uts_ns(old_ns, user_ns);
-       put_uts_ns(old_ns);
-       return new_ns;
-@@ -78,6 +81,7 @@ void free_uts_ns(struct kref *kref)
+@@ -85,6 +88,7 @@ void free_uts_ns(struct kref *kref)
        ns = container_of(kref, struct uts_namespace, kref);
        put_user_ns(ns->user_ns);
+       proc_free_inum(ns->proc_inum);
 +      atomic_dec(&vs_global_uts_ns);
        kfree(ns);
  }
  
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/Kconfig linux-3.7.7-vs2.3.5.6/kernel/vserver/Kconfig
---- linux-3.7.7/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/Kconfig       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/Kconfig linux-3.9.4-vs2.3.6.1/kernel/vserver/Kconfig
+--- linux-3.9.4/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/Kconfig       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,233 @@
 +#
 +# Linux VServer configuration
@@ -15622,9 +15425,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/Kconfig linux-3.7.7-vs2.3.5.6/k
 +      bool
 +      default n
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/Makefile linux-3.7.7-vs2.3.5.6/kernel/vserver/Makefile
---- linux-3.7.7/kernel/vserver/Makefile        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/Makefile      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/Makefile linux-3.9.4-vs2.3.6.1/kernel/vserver/Makefile
+--- linux-3.9.4/kernel/vserver/Makefile        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/Makefile      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,18 @@
 +#
 +# Makefile for the Linux vserver routines.
@@ -15644,9 +15447,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/Makefile linux-3.7.7-vs2.3.5.6/
 +vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
 +vserver-$(CONFIG_VSERVER_DEVICE) += device.o
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct.c linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct.c
---- linux-3.7.7/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cacct.c linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct.c
+--- linux-3.9.4/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,42 @@
 +/*
 + *  linux/kernel/vserver/cacct.c
@@ -15690,9 +15493,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct.c linux-3.7.7-vs2.3.5.6/k
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct_init.h linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct_init.h
---- linux-3.7.7/kernel/vserver/cacct_init.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct_init.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cacct_init.h linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct_init.h
+--- linux-3.9.4/kernel/vserver/cacct_init.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct_init.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,25 @@
 +
 +
@@ -15719,9 +15522,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct_init.h linux-3.7.7-vs2.3.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct_proc.h linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct_proc.h
---- linux-3.7.7/kernel/vserver/cacct_proc.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cacct_proc.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cacct_proc.h linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct_proc.h
+--- linux-3.9.4/kernel/vserver/cacct_proc.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cacct_proc.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CACCT_PROC_H
 +#define _VX_CACCT_PROC_H
@@ -15776,9 +15579,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cacct_proc.h linux-3.7.7-vs2.3.
 +}
 +
 +#endif        /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/context.c linux-3.7.7-vs2.3.5.6/kernel/vserver/context.c
---- linux-3.7.7/kernel/vserver/context.c       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/context.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/context.c linux-3.9.4-vs2.3.6.1/kernel/vserver/context.c
+--- linux-3.9.4/kernel/vserver/context.c       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/context.c     2013-05-31 19:34:32.000000000 +0000
 @@ -0,0 +1,1119 @@
 +/*
 + *  linux/kernel/vserver/context.c
@@ -16433,7 +16236,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/context.c linux-3.7.7-vs2.3.5.6
 +
 +                      ret = unshare_nsproxy_namespaces(
 +                              CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWUSER,
-+                              &new_nsp, NULL);
++                              &new_nsp, NULL, NULL);
 +                      if (ret)
 +                              goto out;
 +
@@ -16899,9 +16702,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/context.c linux-3.7.7-vs2.3.5.6
 +
 +EXPORT_SYMBOL_GPL(free_vx_info);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt.c linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt.c
---- linux-3.7.7/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cvirt.c linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt.c
+--- linux-3.9.4/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,313 @@
 +/*
 + *  linux/kernel/vserver/cvirt.c
@@ -17216,9 +17019,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt.c linux-3.7.7-vs2.3.5.6/k
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt_init.h linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt_init.h
---- linux-3.7.7/kernel/vserver/cvirt_init.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt_init.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cvirt_init.h linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt_init.h
+--- linux-3.9.4/kernel/vserver/cvirt_init.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt_init.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,70 @@
 +
 +
@@ -17290,9 +17093,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt_init.h linux-3.7.7-vs2.3.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt_proc.h linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt_proc.h
---- linux-3.7.7/kernel/vserver/cvirt_proc.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/cvirt_proc.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/cvirt_proc.h linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt_proc.h
+--- linux-3.9.4/kernel/vserver/cvirt_proc.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/cvirt_proc.h  2013-05-31 19:38:26.000000000 +0000
 @@ -0,0 +1,123 @@
 +#ifndef _VX_CVIRT_PROC_H
 +#define _VX_CVIRT_PROC_H
@@ -17355,7 +17158,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt_proc.h linux-3.7.7-vs2.3.
 +      length += sprintf(buffer + length,
 +              "SEMS:\t\t%d %d %d %d  %d\n"
 +              "MSG:\t\t%d %d %d\n"
-+              "SHM:\t\t%lu %lu  %d %d\n",
++              "SHM:\t\t%lu %lu  %d %ld\n",
 +              ipc->sem_ctls[0], ipc->sem_ctls[1],
 +              ipc->sem_ctls[2], ipc->sem_ctls[3],
 +              ipc->used_sems,
@@ -17417,9 +17220,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/cvirt_proc.h linux-3.7.7-vs2.3.
 +}
 +
 +#endif        /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/debug.c linux-3.7.7-vs2.3.5.6/kernel/vserver/debug.c
---- linux-3.7.7/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/debug.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/debug.c linux-3.9.4-vs2.3.6.1/kernel/vserver/debug.c
+--- linux-3.9.4/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/debug.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,32 @@
 +/*
 + *  kernel/vserver/debug.c
@@ -17453,9 +17256,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/debug.c linux-3.7.7-vs2.3.5.6/k
 +
 +EXPORT_SYMBOL_GPL(dump_vx_info);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/device.c linux-3.7.7-vs2.3.5.6/kernel/vserver/device.c
---- linux-3.7.7/kernel/vserver/device.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/device.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/device.c linux-3.9.4-vs2.3.6.1/kernel/vserver/device.c
+--- linux-3.9.4/kernel/vserver/device.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/device.c      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,443 @@
 +/*
 + *  linux/kernel/vserver/device.c
@@ -17900,10 +17703,10 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/device.c linux-3.7.7-vs2.3.5.6/
 +#endif        /* CONFIG_COMPAT */
 +
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/dlimit.c linux-3.7.7-vs2.3.5.6/kernel/vserver/dlimit.c
---- linux-3.7.7/kernel/vserver/dlimit.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/dlimit.c      2012-12-18 15:13:16.000000000 +0000
-@@ -0,0 +1,531 @@
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/dlimit.c linux-3.9.4-vs2.3.6.1/kernel/vserver/dlimit.c
+--- linux-3.9.4/kernel/vserver/dlimit.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/dlimit.c      2013-05-31 19:37:39.000000000 +0000
+@@ -0,0 +1,528 @@
 +/*
 + *  linux/kernel/vserver/dlimit.c
 + *
@@ -18035,14 +17838,11 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/dlimit.c linux-3.7.7-vs2.3.5.6/
 +static inline struct dl_info *__lookup_dl_info(struct super_block *sb, tag_t tag)
 +{
 +      struct hlist_head *head = &dl_info_hash[__hashval(sb, tag)];
-+      struct hlist_node *pos;
 +      struct dl_info *dli;
 +
-+      hlist_for_each_entry_rcu(dli, pos, head, dl_hlist) {
-+
-+              if (dli->dl_tag == tag && dli->dl_sb == sb) {
++      hlist_for_each_entry_rcu(dli, head, dl_hlist) {
++              if (dli->dl_tag == tag && dli->dl_sb == sb)
 +                      return dli;
-+              }
 +      }
 +      return NULL;
 +}
@@ -18435,9 +18235,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/dlimit.c linux-3.7.7-vs2.3.5.6/
 +EXPORT_SYMBOL_GPL(locate_dl_info);
 +EXPORT_SYMBOL_GPL(rcu_free_dl_info);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/helper.c linux-3.7.7-vs2.3.5.6/kernel/vserver/helper.c
---- linux-3.7.7/kernel/vserver/helper.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/helper.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/helper.c linux-3.9.4-vs2.3.6.1/kernel/vserver/helper.c
+--- linux-3.9.4/kernel/vserver/helper.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/helper.c      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,229 @@
 +/*
 + *  linux/kernel/vserver/helper.c
@@ -18668,9 +18468,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/helper.c linux-3.7.7-vs2.3.5.6/
 +      return do_vshelper(vshelper_path, argv, envp, 1);
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/history.c linux-3.7.7-vs2.3.5.6/kernel/vserver/history.c
---- linux-3.7.7/kernel/vserver/history.c       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/history.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/history.c linux-3.9.4-vs2.3.6.1/kernel/vserver/history.c
+--- linux-3.9.4/kernel/vserver/history.c       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/history.c     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,258 @@
 +/*
 + *  kernel/vserver/history.c
@@ -18930,9 +18730,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/history.c linux-3.7.7-vs2.3.5.6
 +
 +#endif        /* CONFIG_COMPAT */
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/inet.c linux-3.7.7-vs2.3.5.6/kernel/vserver/inet.c
---- linux-3.7.7/kernel/vserver/inet.c  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/inet.c        2013-02-05 01:41:48.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/inet.c linux-3.9.4-vs2.3.6.1/kernel/vserver/inet.c
+--- linux-3.9.4/kernel/vserver/inet.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/inet.c        2013-05-31 22:43:05.000000000 +0000
 @@ -0,0 +1,236 @@
 +
 +#include <linux/in.h>
@@ -19117,7 +18917,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/inet.c linux-3.7.7-vs2.3.5.6/ke
 +              }
 +
 +              WARN_ON_ONCE(in_irq());
-+              spin_lock(&nxi->addr_lock);
++              spin_lock_bh(&nxi->addr_lock);
 +              for (ptr = &nxi->v4; ptr; ptr = ptr->next) {
 +                      __be32 primary = ptr->ip[0].s_addr;
 +                      __be32 mask = ptr->mask.s_addr;
@@ -19146,7 +18946,7 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/inet.c linux-3.7.7-vs2.3.5.6/ke
 +              found = ipv4_is_loopback(fl4->daddr)
 +                      ? IPI_LOOPBACK : nxi->v4.ip[0].s_addr;
 +      found_unlock:
-+              spin_unlock(&nxi->addr_lock);
++              spin_unlock_bh(&nxi->addr_lock);
 +      found:
 +              /* assign src ip to flow */
 +              fl4->saddr = found;
@@ -19170,9 +18970,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/inet.c linux-3.7.7-vs2.3.5.6/ke
 +
 +EXPORT_SYMBOL_GPL(ip_v4_find_src);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/init.c linux-3.7.7-vs2.3.5.6/kernel/vserver/init.c
---- linux-3.7.7/kernel/vserver/init.c  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/init.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/init.c linux-3.9.4-vs2.3.6.1/kernel/vserver/init.c
+--- linux-3.9.4/kernel/vserver/init.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/init.c        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,45 @@
 +/*
 + *  linux/kernel/init.c
@@ -19219,9 +19019,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/init.c linux-3.7.7-vs2.3.5.6/ke
 +module_init(init_vserver);
 +module_exit(exit_vserver);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/inode.c linux-3.7.7-vs2.3.5.6/kernel/vserver/inode.c
---- linux-3.7.7/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/inode.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/inode.c linux-3.9.4-vs2.3.6.1/kernel/vserver/inode.c
+--- linux-3.9.4/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/inode.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,437 @@
 +/*
 + *  linux/kernel/vserver/inode.c
@@ -19660,9 +19460,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/inode.c linux-3.7.7-vs2.3.5.6/k
 +
 +#endif        /* CONFIG_PROPAGATE */
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit.c linux-3.7.7-vs2.3.5.6/kernel/vserver/limit.c
---- linux-3.7.7/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/limit.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/limit.c linux-3.9.4-vs2.3.6.1/kernel/vserver/limit.c
+--- linux-3.9.4/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/limit.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,345 @@
 +/*
 + *  linux/kernel/vserver/limit.c
@@ -20009,9 +19809,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit.c linux-3.7.7-vs2.3.5.6/k
 +      return cache;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit_init.h linux-3.7.7-vs2.3.5.6/kernel/vserver/limit_init.h
---- linux-3.7.7/kernel/vserver/limit_init.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/limit_init.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/limit_init.h linux-3.9.4-vs2.3.6.1/kernel/vserver/limit_init.h
+--- linux-3.9.4/kernel/vserver/limit_init.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/limit_init.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,31 @@
 +
 +
@@ -20044,9 +19844,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit_init.h linux-3.7.7-vs2.3.
 +      }
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit_proc.h linux-3.7.7-vs2.3.5.6/kernel/vserver/limit_proc.h
---- linux-3.7.7/kernel/vserver/limit_proc.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/limit_proc.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/limit_proc.h linux-3.9.4-vs2.3.6.1/kernel/vserver/limit_proc.h
+--- linux-3.9.4/kernel/vserver/limit_proc.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/limit_proc.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,57 @@
 +#ifndef _VX_LIMIT_PROC_H
 +#define _VX_LIMIT_PROC_H
@@ -20105,9 +19905,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/limit_proc.h linux-3.7.7-vs2.3.
 +#endif        /* _VX_LIMIT_PROC_H */
 +
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/network.c linux-3.7.7-vs2.3.5.6/kernel/vserver/network.c
---- linux-3.7.7/kernel/vserver/network.c       1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/network.c     2013-01-04 23:27:50.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/network.c linux-3.9.4-vs2.3.6.1/kernel/vserver/network.c
+--- linux-3.9.4/kernel/vserver/network.c       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/network.c     2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,1053 @@
 +/*
 + *  linux/kernel/vserver/network.c
@@ -21162,9 +20962,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/network.c linux-3.7.7-vs2.3.5.6
 +EXPORT_SYMBOL_GPL(free_nx_info);
 +EXPORT_SYMBOL_GPL(unhash_nx_info);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/proc.c linux-3.7.7-vs2.3.5.6/kernel/vserver/proc.c
---- linux-3.7.7/kernel/vserver/proc.c  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/proc.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/proc.c linux-3.9.4-vs2.3.6.1/kernel/vserver/proc.c
+--- linux-3.9.4/kernel/vserver/proc.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/proc.c        2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,1110 @@
 +/*
 + *  linux/kernel/vserver/proc.c
@@ -22276,9 +22076,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/proc.c linux-3.7.7-vs2.3.5.6/ke
 +      return buffer - orig;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched.c linux-3.7.7-vs2.3.5.6/kernel/vserver/sched.c
---- linux-3.7.7/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/sched.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/sched.c linux-3.9.4-vs2.3.6.1/kernel/vserver/sched.c
+--- linux-3.9.4/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/sched.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,83 @@
 +/*
 + *  linux/kernel/vserver/sched.c
@@ -22363,9 +22163,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched.c linux-3.7.7-vs2.3.5.6/k
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched_init.h linux-3.7.7-vs2.3.5.6/kernel/vserver/sched_init.h
---- linux-3.7.7/kernel/vserver/sched_init.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/sched_init.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/sched_init.h linux-3.9.4-vs2.3.6.1/kernel/vserver/sched_init.h
+--- linux-3.9.4/kernel/vserver/sched_init.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/sched_init.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,27 @@
 +
 +static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -22394,9 +22194,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched_init.h linux-3.7.7-vs2.3.
 +{
 +      return;
 +}
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched_proc.h linux-3.7.7-vs2.3.5.6/kernel/vserver/sched_proc.h
---- linux-3.7.7/kernel/vserver/sched_proc.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/sched_proc.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/sched_proc.h linux-3.9.4-vs2.3.6.1/kernel/vserver/sched_proc.h
+--- linux-3.9.4/kernel/vserver/sched_proc.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/sched_proc.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,32 @@
 +#ifndef _VX_SCHED_PROC_H
 +#define _VX_SCHED_PROC_H
@@ -22430,9 +22230,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/sched_proc.h linux-3.7.7-vs2.3.
 +}
 +
 +#endif        /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/signal.c linux-3.7.7-vs2.3.5.6/kernel/vserver/signal.c
---- linux-3.7.7/kernel/vserver/signal.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/signal.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/signal.c linux-3.9.4-vs2.3.6.1/kernel/vserver/signal.c
+--- linux-3.9.4/kernel/vserver/signal.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/signal.c      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,134 @@
 +/*
 + *  linux/kernel/vserver/signal.c
@@ -22568,9 +22368,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/signal.c linux-3.7.7-vs2.3.5.6/
 +      return ret;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/space.c linux-3.7.7-vs2.3.5.6/kernel/vserver/space.c
---- linux-3.7.7/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/space.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/space.c linux-3.9.4-vs2.3.6.1/kernel/vserver/space.c
+--- linux-3.9.4/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/space.c       2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,436 @@
 +/*
 + *  linux/kernel/vserver/space.c
@@ -23008,9 +22808,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/space.c linux-3.7.7-vs2.3.5.6/k
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/switch.c linux-3.7.7-vs2.3.5.6/kernel/vserver/switch.c
---- linux-3.7.7/kernel/vserver/switch.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/switch.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/switch.c linux-3.9.4-vs2.3.6.1/kernel/vserver/switch.c
+--- linux-3.9.4/kernel/vserver/switch.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/switch.c      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,556 @@
 +/*
 + *  linux/kernel/vserver/switch.c
@@ -23568,9 +23368,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/switch.c linux-3.7.7-vs2.3.5.6/
 +}
 +
 +#endif        /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/sysctl.c linux-3.7.7-vs2.3.5.6/kernel/vserver/sysctl.c
---- linux-3.7.7/kernel/vserver/sysctl.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/sysctl.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/sysctl.c linux-3.9.4-vs2.3.6.1/kernel/vserver/sysctl.c
+--- linux-3.9.4/kernel/vserver/sysctl.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/sysctl.c      2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,247 @@
 +/*
 + *  kernel/vserver/sysctl.c
@@ -23819,9 +23619,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/sysctl.c linux-3.7.7-vs2.3.5.6/
 +EXPORT_SYMBOL_GPL(vs_debug_perm);
 +EXPORT_SYMBOL_GPL(vs_debug_misc);
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/tag.c linux-3.7.7-vs2.3.5.6/kernel/vserver/tag.c
---- linux-3.7.7/kernel/vserver/tag.c   1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/tag.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/tag.c linux-3.9.4-vs2.3.6.1/kernel/vserver/tag.c
+--- linux-3.9.4/kernel/vserver/tag.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/tag.c 2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,63 @@
 +/*
 + *  linux/kernel/vserver/tag.c
@@ -23886,9 +23686,9 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/tag.c linux-3.7.7-vs2.3.5.6/ker
 +}
 +
 +
-diff -NurpP --minimal linux-3.7.7/kernel/vserver/vci_config.h linux-3.7.7-vs2.3.5.6/kernel/vserver/vci_config.h
---- linux-3.7.7/kernel/vserver/vci_config.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/kernel/vserver/vci_config.h  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/kernel/vserver/vci_config.h linux-3.9.4-vs2.3.6.1/kernel/vserver/vci_config.h
+--- linux-3.9.4/kernel/vserver/vci_config.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/kernel/vserver/vci_config.h  2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,80 @@
 +
 +/*  interface version */
@@ -23970,10 +23770,10 @@ diff -NurpP --minimal linux-3.7.7/kernel/vserver/vci_config.h linux-3.7.7-vs2.3.
 +      0;
 +}
 +
-diff -NurpP --minimal linux-3.7.7/mm/memcontrol.c linux-3.7.7-vs2.3.5.6/mm/memcontrol.c
---- linux-3.7.7/mm/memcontrol.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/memcontrol.c      2012-12-18 15:13:16.000000000 +0000
-@@ -884,6 +884,31 @@ struct mem_cgroup *mem_cgroup_from_task(
+diff -NurpP --minimal linux-3.9.4/mm/memcontrol.c linux-3.9.4-vs2.3.6.1/mm/memcontrol.c
+--- linux-3.9.4/mm/memcontrol.c        2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/memcontrol.c      2013-05-31 14:47:11.000000000 +0000
+@@ -1046,6 +1046,31 @@ struct mem_cgroup *mem_cgroup_from_task(
        return mem_cgroup_from_css(task_subsys_state(p, mem_cgroup_subsys_id));
  }
  
@@ -24005,9 +23805,9 @@ diff -NurpP --minimal linux-3.7.7/mm/memcontrol.c linux-3.7.7-vs2.3.5.6/mm/memco
  struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
  {
        struct mem_cgroup *memcg = NULL;
-diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kill.c
---- linux-3.7.7/mm/oom_kill.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/oom_kill.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/mm/oom_kill.c linux-3.9.4-vs2.3.6.1/mm/oom_kill.c
+--- linux-3.9.4/mm/oom_kill.c  2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/oom_kill.c        2013-05-31 14:47:11.000000000 +0000
 @@ -35,6 +35,8 @@
  #include <linux/freezer.h>
  #include <linux/ftrace.h>
@@ -24017,7 +23817,7 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/oom.h>
-@@ -155,11 +157,18 @@ struct task_struct *find_lock_task_mm(st
+@@ -113,11 +115,18 @@ struct task_struct *find_lock_task_mm(st
  static bool oom_unkillable_task(struct task_struct *p,
                const struct mem_cgroup *memcg, const nodemask_t *nodemask)
  {
@@ -24037,7 +23837,7 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
        /* When mem_cgroup_out_of_memory() and p is not member of the group */
        if (memcg && !task_in_mem_cgroup(p, memcg))
                return true;
-@@ -472,8 +481,8 @@ void oom_kill_process(struct task_struct
+@@ -426,8 +435,8 @@ void oom_kill_process(struct task_struct
                dump_header(p, gfp_mask, order, memcg, nodemask);
  
        task_lock(p);
@@ -24048,7 +23848,7 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
        task_unlock(p);
  
        /*
-@@ -518,8 +527,8 @@ void oom_kill_process(struct task_struct
+@@ -472,8 +481,8 @@ void oom_kill_process(struct task_struct
  
        /* mm cannot safely be dereferenced after task_unlock(victim) */
        mm = victim->mm;
@@ -24059,7 +23859,7 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
                K(get_mm_counter(victim->mm, MM_ANONPAGES)),
                K(get_mm_counter(victim->mm, MM_FILEPAGES)));
        task_unlock(victim);
-@@ -589,6 +598,8 @@ int unregister_oom_notifier(struct notif
+@@ -543,6 +552,8 @@ int unregister_oom_notifier(struct notif
  }
  EXPORT_SYMBOL_GPL(unregister_oom_notifier);
  
@@ -24068,7 +23868,7 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
  /*
   * Try to acquire the OOM killer lock for the zones in zonelist.  Returns zero
   * if a parallel OOM killing is already taking place that includes a zone in
-@@ -738,7 +749,12 @@ void out_of_memory(struct zonelist *zone
+@@ -655,7 +666,12 @@ void out_of_memory(struct zonelist *zone
        /* Found nothing?!?! Either we hang forever, or we panic. */
        if (!p) {
                dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
@@ -24082,19 +23882,19 @@ diff -NurpP --minimal linux-3.7.7/mm/oom_kill.c linux-3.7.7-vs2.3.5.6/mm/oom_kil
        }
        if (PTR_ERR(p) != -1UL) {
                oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-diff -NurpP --minimal linux-3.7.7/mm/page_alloc.c linux-3.7.7-vs2.3.5.6/mm/page_alloc.c
---- linux-3.7.7/mm/page_alloc.c        2013-02-11 23:17:03.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/page_alloc.c      2013-02-05 01:14:43.000000000 +0000
-@@ -58,6 +58,8 @@
- #include <linux/prefetch.h>
+diff -NurpP --minimal linux-3.9.4/mm/page_alloc.c linux-3.9.4-vs2.3.6.1/mm/page_alloc.c
+--- linux-3.9.4/mm/page_alloc.c        2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/page_alloc.c      2013-05-31 15:08:50.000000000 +0000
+@@ -59,6 +59,8 @@
  #include <linux/migrate.h>
  #include <linux/page-debug-flags.h>
+ #include <linux/sched/rt.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_limit.h>
  
  #include <asm/tlbflush.h>
  #include <asm/div64.h>
-@@ -2813,6 +2815,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -2873,6 +2875,9 @@ void si_meminfo(struct sysinfo *val)
        val->totalhigh = totalhigh_pages;
        val->freehigh = nr_free_highpages();
        val->mem_unit = PAGE_SIZE;
@@ -24104,7 +23904,7 @@ diff -NurpP --minimal linux-3.7.7/mm/page_alloc.c linux-3.7.7-vs2.3.5.6/mm/page_
  }
  
  EXPORT_SYMBOL(si_meminfo);
-@@ -2833,6 +2838,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2893,6 +2898,9 @@ void si_meminfo_node(struct sysinfo *val
        val->freehigh = 0;
  #endif
        val->mem_unit = PAGE_SIZE;
@@ -24114,9 +23914,9 @@ diff -NurpP --minimal linux-3.7.7/mm/page_alloc.c linux-3.7.7-vs2.3.5.6/mm/page_
  }
  #endif
  
-diff -NurpP --minimal linux-3.7.7/mm/pgtable-generic.c linux-3.7.7-vs2.3.5.6/mm/pgtable-generic.c
---- linux-3.7.7/mm/pgtable-generic.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/pgtable-generic.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/mm/pgtable-generic.c linux-3.9.4-vs2.3.6.1/mm/pgtable-generic.c
+--- linux-3.9.4/mm/pgtable-generic.c   2013-02-19 13:58:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/pgtable-generic.c 2013-05-31 14:47:11.000000000 +0000
 @@ -6,6 +6,8 @@
   *  Copyright (C) 2010  Linus Torvalds
   */
@@ -24126,10 +23926,10 @@ diff -NurpP --minimal linux-3.7.7/mm/pgtable-generic.c linux-3.7.7-vs2.3.5.6/mm/
  #include <linux/pagemap.h>
  #include <asm/tlb.h>
  #include <asm-generic/pgtable.h>
-diff -NurpP --minimal linux-3.7.7/mm/shmem.c linux-3.7.7-vs2.3.5.6/mm/shmem.c
---- linux-3.7.7/mm/shmem.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/shmem.c   2012-12-18 15:13:16.000000000 +0000
-@@ -1820,7 +1820,7 @@ static int shmem_statfs(struct dentry *d
+diff -NurpP --minimal linux-3.9.4/mm/shmem.c linux-3.9.4-vs2.3.6.1/mm/shmem.c
+--- linux-3.9.4/mm/shmem.c     2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/shmem.c   2013-05-31 14:47:11.000000000 +0000
+@@ -1909,7 +1909,7 @@ static int shmem_statfs(struct dentry *d
  {
        struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
  
@@ -24138,7 +23938,7 @@ diff -NurpP --minimal linux-3.7.7/mm/shmem.c linux-3.7.7-vs2.3.5.6/mm/shmem.c
        buf->f_bsize = PAGE_CACHE_SIZE;
        buf->f_namelen = NAME_MAX;
        if (sbinfo->max_blocks) {
-@@ -2504,7 +2504,7 @@ int shmem_fill_super(struct super_block
+@@ -2606,7 +2606,7 @@ int shmem_fill_super(struct super_block
        sb->s_maxbytes = MAX_LFS_FILESIZE;
        sb->s_blocksize = PAGE_CACHE_SIZE;
        sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -24147,10 +23947,10 @@ diff -NurpP --minimal linux-3.7.7/mm/shmem.c linux-3.7.7-vs2.3.5.6/mm/shmem.c
        sb->s_op = &shmem_ops;
        sb->s_time_gran = 1;
  #ifdef CONFIG_TMPFS_XATTR
-diff -NurpP --minimal linux-3.7.7/mm/slab.c linux-3.7.7-vs2.3.5.6/mm/slab.c
---- linux-3.7.7/mm/slab.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/slab.c    2012-12-18 15:13:16.000000000 +0000
-@@ -445,6 +445,8 @@ static void kmem_list3_init(struct kmem_
+diff -NurpP --minimal linux-3.9.4/mm/slab.c linux-3.9.4-vs2.3.6.1/mm/slab.c
+--- linux-3.9.4/mm/slab.c      2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/slab.c    2013-05-31 14:47:11.000000000 +0000
+@@ -429,6 +429,8 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEMISS(x) do { } while (0)
  #endif
  
@@ -24159,7 +23959,7 @@ diff -NurpP --minimal linux-3.7.7/mm/slab.c linux-3.7.7-vs2.3.5.6/mm/slab.c
  #if DEBUG
  
  /*
-@@ -3479,6 +3481,7 @@ retry:
+@@ -3438,6 +3440,7 @@ retry:
  
        obj = slab_get_obj(cachep, slabp, nodeid);
        check_slabp(cachep, slabp);
@@ -24167,7 +23967,7 @@ diff -NurpP --minimal linux-3.7.7/mm/slab.c linux-3.7.7-vs2.3.5.6/mm/slab.c
        l3->free_objects--;
        /* move slabp to correct slabp list: */
        list_del(&slabp->list);
-@@ -3556,6 +3559,7 @@ slab_alloc_node(struct kmem_cache *cache
+@@ -3517,6 +3520,7 @@ slab_alloc_node(struct kmem_cache *cache
        /* ___cache_alloc_node can fall back to other nodes */
        ptr = ____cache_alloc_node(cachep, flags, nodeid);
    out:
@@ -24175,7 +23975,7 @@ diff -NurpP --minimal linux-3.7.7/mm/slab.c linux-3.7.7-vs2.3.5.6/mm/slab.c
        local_irq_restore(save_flags);
        ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
        kmemleak_alloc_recursive(ptr, cachep->object_size, 1, cachep->flags,
-@@ -3746,6 +3750,7 @@ static inline void __cache_free(struct k
+@@ -3709,6 +3713,7 @@ static inline void __cache_free(struct k
        check_irq_off();
        kmemleak_free_recursive(objp, cachep->flags);
        objp = cache_free_debugcheck(cachep, objp, caller);
@@ -24183,9 +23983,9 @@ diff -NurpP --minimal linux-3.7.7/mm/slab.c linux-3.7.7-vs2.3.5.6/mm/slab.c
  
        kmemcheck_slab_free(cachep, objp, cachep->object_size);
  
-diff -NurpP --minimal linux-3.7.7/mm/slab_vs.h linux-3.7.7-vs2.3.5.6/mm/slab_vs.h
---- linux-3.7.7/mm/slab_vs.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/slab_vs.h 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/mm/slab_vs.h linux-3.9.4-vs2.3.6.1/mm/slab_vs.h
+--- linux-3.9.4/mm/slab_vs.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/slab_vs.h 2013-05-31 14:47:11.000000000 +0000
 @@ -0,0 +1,29 @@
 +
 +#include <linux/vserver/context.h>
@@ -24216,9 +24016,9 @@ diff -NurpP --minimal linux-3.7.7/mm/slab_vs.h linux-3.7.7-vs2.3.5.6/mm/slab_vs.
 +      atomic_sub(cachep->size, &vxi->cacct.slab[what]);
 +}
 +
-diff -NurpP --minimal linux-3.7.7/mm/swapfile.c linux-3.7.7-vs2.3.5.6/mm/swapfile.c
---- linux-3.7.7/mm/swapfile.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/mm/swapfile.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/mm/swapfile.c linux-3.9.4-vs2.3.6.1/mm/swapfile.c
+--- linux-3.9.4/mm/swapfile.c  2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/mm/swapfile.c        2013-05-31 14:47:11.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <asm/tlbflush.h>
  #include <linux/swapops.h>
@@ -24227,7 +24027,7 @@ diff -NurpP --minimal linux-3.7.7/mm/swapfile.c linux-3.7.7-vs2.3.5.6/mm/swapfil
  
  static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
                                 unsigned char);
-@@ -1685,6 +1686,16 @@ static int swap_show(struct seq_file *sw
+@@ -1767,6 +1768,16 @@ static int swap_show(struct seq_file *sw
  
        if (si == SEQ_START_TOKEN) {
                seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n");
@@ -24244,8 +24044,8 @@ diff -NurpP --minimal linux-3.7.7/mm/swapfile.c linux-3.7.7-vs2.3.5.6/mm/swapfil
                return 0;
        }
  
-@@ -2112,6 +2123,8 @@ void si_swapinfo(struct sysinfo *val)
-       val->freeswap = nr_swap_pages + nr_to_be_unused;
+@@ -2195,6 +2206,8 @@ void si_swapinfo(struct sysinfo *val)
+       val->freeswap = atomic_long_read(&nr_swap_pages) + nr_to_be_unused;
        val->totalswap = total_swap_pages + nr_to_be_unused;
        spin_unlock(&swap_lock);
 +      if (vx_flags(VXF_VIRT_MEM, 0))
@@ -24253,10 +24053,10 @@ diff -NurpP --minimal linux-3.7.7/mm/swapfile.c linux-3.7.7-vs2.3.5.6/mm/swapfil
  }
  
  /*
-diff -NurpP --minimal linux-3.7.7/net/bridge/br_multicast.c linux-3.7.7-vs2.3.5.6/net/bridge/br_multicast.c
---- linux-3.7.7/net/bridge/br_multicast.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/bridge/br_multicast.c    2012-12-18 15:13:16.000000000 +0000
-@@ -447,7 +447,7 @@ static struct sk_buff *br_ip6_multicast_
+diff -NurpP --minimal linux-3.9.4/net/bridge/br_multicast.c linux-3.9.4-vs2.3.6.1/net/bridge/br_multicast.c
+--- linux-3.9.4/net/bridge/br_multicast.c      2013-05-31 13:45:31.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/bridge/br_multicast.c    2013-05-31 17:17:53.000000000 +0000
+@@ -443,7 +443,7 @@ static struct sk_buff *br_ip6_multicast_
        ip6h->hop_limit = 1;
        ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
        if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
@@ -24265,10 +24065,10 @@ diff -NurpP --minimal linux-3.7.7/net/bridge/br_multicast.c linux-3.7.7-vs2.3.5.
                kfree_skb(skb);
                return NULL;
        }
-diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/dev.c
---- linux-3.7.7/net/core/dev.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/core/dev.c       2012-12-18 15:13:16.000000000 +0000
-@@ -126,6 +126,7 @@
+diff -NurpP --minimal linux-3.9.4/net/core/dev.c linux-3.9.4-vs2.3.6.1/net/core/dev.c
+--- linux-3.9.4/net/core/dev.c 2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/core/dev.c       2013-05-31 18:37:38.000000000 +0000
+@@ -122,6 +122,7 @@
  #include <linux/in.h>
  #include <linux/jhash.h>
  #include <linux/random.h>
@@ -24276,46 +24076,46 @@ diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/
  #include <trace/events/napi.h>
  #include <trace/events/net.h>
  #include <trace/events/skb.h>
-@@ -620,7 +621,8 @@ struct net_device *__dev_get_by_name(str
+@@ -662,7 +663,8 @@ struct net_device *__dev_get_by_name(str
        struct hlist_head *head = dev_name_hash(net, name);
  
-       hlist_for_each_entry(dev, p, head, name_hlist)
+       hlist_for_each_entry(dev, head, name_hlist)
 -              if (!strncmp(dev->name, name, IFNAMSIZ))
 +              if (!strncmp(dev->name, name, IFNAMSIZ) &&
 +                  nx_dev_visible(current_nx_info(), dev))
                        return dev;
  
        return NULL;
-@@ -646,7 +648,8 @@ struct net_device *dev_get_by_name_rcu(s
+@@ -687,7 +689,8 @@ struct net_device *dev_get_by_name_rcu(s
        struct hlist_head *head = dev_name_hash(net, name);
  
-       hlist_for_each_entry_rcu(dev, p, head, name_hlist)
+       hlist_for_each_entry_rcu(dev, head, name_hlist)
 -              if (!strncmp(dev->name, name, IFNAMSIZ))
 +              if (!strncmp(dev->name, name, IFNAMSIZ) &&
 +                  nx_dev_visible(current_nx_info(), dev))
                        return dev;
  
        return NULL;
-@@ -697,7 +700,8 @@ struct net_device *__dev_get_by_index(st
+@@ -737,7 +740,8 @@ struct net_device *__dev_get_by_index(st
        struct hlist_head *head = dev_index_hash(net, ifindex);
  
-       hlist_for_each_entry(dev, p, head, index_hlist)
+       hlist_for_each_entry(dev, head, index_hlist)
 -              if (dev->ifindex == ifindex)
 +              if ((dev->ifindex == ifindex) &&
 +                  nx_dev_visible(current_nx_info(), dev))
                        return dev;
  
        return NULL;
-@@ -715,7 +719,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
+@@ -755,7 +759,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
   *    about locking. The caller must hold RCU lock.
   */
  
 -struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex)
 +struct net_device *dev_get_by_index_real_rcu(struct net *net, int ifindex)
  {
-       struct hlist_node *p;
        struct net_device *dev;
-@@ -727,6 +731,16 @@ struct net_device *dev_get_by_index_rcu(
+       struct hlist_head *head = dev_index_hash(net, ifindex);
+@@ -766,6 +770,16 @@ struct net_device *dev_get_by_index_rcu(
  
        return NULL;
  }
@@ -24332,7 +24132,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/
  EXPORT_SYMBOL(dev_get_by_index_rcu);
  
  
-@@ -775,7 +789,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
+@@ -814,7 +828,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
  
        for_each_netdev_rcu(net, dev)
                if (dev->type == type &&
@@ -24342,7 +24142,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/
                        return dev;
  
        return NULL;
-@@ -787,9 +802,11 @@ struct net_device *__dev_getfirstbyhwtyp
+@@ -826,9 +841,11 @@ struct net_device *__dev_getfirstbyhwtyp
        struct net_device *dev;
  
        ASSERT_RTNL();
@@ -24356,7 +24156,27 @@ diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/
  
        return NULL;
  }
-@@ -907,6 +924,8 @@ static int __dev_alloc_name(struct net *
+@@ -840,7 +857,8 @@ struct net_device *dev_getfirstbyhwtype(
+       rcu_read_lock();
+       for_each_netdev_rcu(net, dev)
+-              if (dev->type == type) {
++              if ((dev->type == type) &&
++                  nx_dev_visible(current_nx_info(), dev)) {
+                       dev_hold(dev);
+                       ret = dev;
+                       break;
+@@ -868,7 +886,8 @@ struct net_device *dev_get_by_flags_rcu(
+       ret = NULL;
+       for_each_netdev_rcu(net, dev) {
+-              if (((dev->flags ^ if_flags) & mask) == 0) {
++              if ((((dev->flags ^ if_flags) & mask) == 0) &&
++                      nx_dev_visible(current_nx_info(), dev)) {
+                       ret = dev;
+                       break;
+               }
+@@ -946,6 +965,8 @@ static int __dev_alloc_name(struct net *
                                continue;
                        if (i < 0 || i >= max_netdevices)
                                continue;
@@ -24365,31 +24185,11 @@ diff -NurpP --minimal linux-3.7.7/net/core/dev.c linux-3.7.7-vs2.3.5.6/net/core/
  
                        /*  avoid cases where sscanf is not exact inverse of printf */
                        snprintf(buf, IFNAMSIZ, name, i);
-@@ -4129,6 +4148,8 @@ static int dev_ifconf(struct net *net, c
-       total = 0;
-       for_each_netdev(net, dev) {
-+              if (!nx_dev_visible(current_nx_info(), dev))
-+                      continue;
-               for (i = 0; i < NPROTO; i++) {
-                       if (gifconf_list[i]) {
-                               int done;
-@@ -4231,6 +4252,10 @@ static void dev_seq_printf_stats(struct
-       struct rtnl_link_stats64 temp;
-       const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
-+      /* device visible inside network context? */
-+      if (!nx_dev_visible(current_nx_info(), dev))
-+              return;
-+
-       seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
-                  "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
-                  dev->name, stats->rx_bytes, stats->rx_packets,
-diff -NurpP --minimal linux-3.7.7/net/core/rtnetlink.c linux-3.7.7-vs2.3.5.6/net/core/rtnetlink.c
---- linux-3.7.7/net/core/rtnetlink.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/core/rtnetlink.c 2012-12-18 15:13:16.000000000 +0000
-@@ -1080,6 +1080,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
-               hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
+diff -NurpP --minimal linux-3.9.4/net/core/rtnetlink.c linux-3.9.4-vs2.3.6.1/net/core/rtnetlink.c
+--- linux-3.9.4/net/core/rtnetlink.c   2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/core/rtnetlink.c 2013-05-31 17:17:54.000000000 +0000
+@@ -1085,6 +1085,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
+               hlist_for_each_entry_rcu(dev, head, index_hlist) {
                        if (idx < s_idx)
                                goto cont;
 +                      if (!nx_dev_visible(skb->sk->sk_nx_info, dev))
@@ -24397,7 +24197,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/rtnetlink.c linux-3.7.7-vs2.3.5.6/net
                        if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
                                             NETLINK_CB(cb->skb).portid,
                                             cb->nlh->nlmsg_seq, 0,
-@@ -1971,6 +1973,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -1974,6 +1976,9 @@ void rtmsg_ifinfo(int type, struct net_d
        int err = -ENOBUFS;
        size_t if_info_size;
  
@@ -24407,9 +24207,9 @@ diff -NurpP --minimal linux-3.7.7/net/core/rtnetlink.c linux-3.7.7-vs2.3.5.6/net
        skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
        if (skb == NULL)
                goto errout;
-diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core/sock.c
---- linux-3.7.7/net/core/sock.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/core/sock.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/core/sock.c linux-3.9.4-vs2.3.6.1/net/core/sock.c
+--- linux-3.9.4/net/core/sock.c        2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/core/sock.c      2013-05-31 17:17:54.000000000 +0000
 @@ -132,6 +132,10 @@
  #include <net/netprio_cgroup.h>
  
@@ -24421,7 +24221,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
  
  #include <trace/events/sock.h>
  
-@@ -1183,6 +1187,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1257,6 +1261,8 @@ static struct sock *sk_prot_alloc(struct
                        goto out_free_sec;
                sk_tx_queue_clear(sk);
        }
@@ -24430,7 +24230,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
  
        return sk;
  
-@@ -1295,6 +1301,11 @@ static void __sk_free(struct sock *sk)
+@@ -1367,6 +1373,11 @@ static void __sk_free(struct sock *sk)
                put_cred(sk->sk_peer_cred);
        put_pid(sk->sk_peer_pid);
        put_net(sock_net(sk));
@@ -24442,7 +24242,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
        sk_prot_free(sk->sk_prot_creator, sk);
  }
  
-@@ -1355,6 +1366,8 @@ struct sock *sk_clone_lock(const struct
+@@ -1427,6 +1438,8 @@ struct sock *sk_clone_lock(const struct
  
                /* SANITY */
                get_net(sock_net(newsk));
@@ -24451,7 +24251,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
                sk_node_init(&newsk->sk_node);
                sock_lock_init(newsk);
                bh_lock_sock(newsk);
-@@ -1411,6 +1424,12 @@ struct sock *sk_clone_lock(const struct
+@@ -1483,6 +1496,12 @@ struct sock *sk_clone_lock(const struct
                smp_wmb();
                atomic_set(&newsk->sk_refcnt, 2);
  
@@ -24464,7 +24264,7 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
                /*
                 * Increment the counter in the same struct proto as the master
                 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -2206,6 +2225,12 @@ void sock_init_data(struct socket *sock,
+@@ -2278,6 +2297,12 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_stamp = ktime_set(-1L, 0);
  
@@ -24477,9 +24277,9 @@ diff -NurpP --minimal linux-3.7.7/net/core/sock.c linux-3.7.7-vs2.3.5.6/net/core
        /*
         * Before updating sk_refcnt, we must commit prior changes to memory
         * (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-3.7.7/net/ipv4/af_inet.c linux-3.7.7-vs2.3.5.6/net/ipv4/af_inet.c
---- linux-3.7.7/net/ipv4/af_inet.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/af_inet.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/af_inet.c linux-3.9.4-vs2.3.6.1/net/ipv4/af_inet.c
+--- linux-3.9.4/net/ipv4/af_inet.c     2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/af_inet.c   2013-05-31 18:24:05.000000000 +0000
 @@ -118,6 +118,7 @@
  #ifdef CONFIG_IP_MROUTE
  #include <linux/mroute.h>
@@ -24488,43 +24288,39 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/af_inet.c linux-3.7.7-vs2.3.5.6/net/i
  
  
  /* The inetsw table contains everything that inet_create needs to
-@@ -346,9 +347,13 @@ lookup_protocol:
+@@ -336,6 +337,10 @@ lookup_protocol:
        }
  
        err = -EPERM;
 +      if ((protocol == IPPROTO_ICMP) &&
 +              nx_capable(CAP_NET_RAW, NXC_RAW_ICMP))
 +              goto override;
-+
-       if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW))
-               goto out_rcu_unlock;
--
 +override:
-       err = -EAFNOSUPPORT;
-       if (!inet_netns_ok(net, protocol))
+       if (sock->type == SOCK_RAW && !kern &&
+           !ns_capable(net->user_ns, CAP_NET_RAW))
                goto out_rcu_unlock;
-@@ -473,6 +478,7 @@ int inet_bind(struct socket *sock, struc
+@@ -460,6 +465,7 @@ int inet_bind(struct socket *sock, struc
        struct sockaddr_in *addr = (struct sockaddr_in *)uaddr;
        struct sock *sk = sock->sk;
        struct inet_sock *inet = inet_sk(sk);
 +      struct nx_v4_sock_addr nsa;
+       struct net *net = sock_net(sk);
        unsigned short snum;
        int chk_addr_ret;
-       int err;
-@@ -496,7 +502,11 @@ int inet_bind(struct socket *sock, struc
+@@ -484,7 +490,11 @@ int inet_bind(struct socket *sock, struc
                        goto out;
        }
  
--      chk_addr_ret = inet_addr_type(sock_net(sk), addr->sin_addr.s_addr);
+-      chk_addr_ret = inet_addr_type(net, addr->sin_addr.s_addr);
 +      err = v4_map_sock_addr(inet, addr, &nsa);
 +      if (err)
 +              goto out;
 +
-+      chk_addr_ret = inet_addr_type(sock_net(sk), nsa.saddr);
++      chk_addr_ret = inet_addr_type(net, nsa.saddr);
  
        /* Not specified by any standard per-se, however it breaks too
         * many applications when removed.  It is unfortunate since
-@@ -508,7 +518,7 @@ int inet_bind(struct socket *sock, struc
+@@ -496,7 +506,7 @@ int inet_bind(struct socket *sock, struc
        err = -EADDRNOTAVAIL;
        if (!sysctl_ip_nonlocal_bind &&
            !(inet->freebind || inet->transparent) &&
@@ -24533,7 +24329,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/af_inet.c linux-3.7.7-vs2.3.5.6/net/i
            chk_addr_ret != RTN_LOCAL &&
            chk_addr_ret != RTN_MULTICAST &&
            chk_addr_ret != RTN_BROADCAST)
-@@ -533,7 +543,7 @@ int inet_bind(struct socket *sock, struc
+@@ -522,7 +532,7 @@ int inet_bind(struct socket *sock, struc
        if (sk->sk_state != TCP_CLOSE || inet->inet_num)
                goto out_release_sock;
  
@@ -24542,7 +24338,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/af_inet.c linux-3.7.7-vs2.3.5.6/net/i
        if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
                inet->inet_saddr = 0;  /* Use device */
  
-@@ -752,11 +762,13 @@ int inet_getname(struct socket *sock, st
+@@ -741,11 +751,13 @@ int inet_getname(struct socket *sock, st
                     peer == 1))
                        return -ENOTCONN;
                sin->sin_port = inet->inet_dport;
@@ -24557,10 +24353,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/af_inet.c linux-3.7.7-vs2.3.5.6/net/i
                sin->sin_port = inet->inet_sport;
                sin->sin_addr.s_addr = addr;
        }
-diff -NurpP --minimal linux-3.7.7/net/ipv4/arp.c linux-3.7.7-vs2.3.5.6/net/ipv4/arp.c
---- linux-3.7.7/net/ipv4/arp.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/arp.c       2012-12-18 15:13:16.000000000 +0000
-@@ -1318,6 +1318,7 @@ static void arp_format_neigh_entry(struc
+diff -NurpP --minimal linux-3.9.4/net/ipv4/arp.c linux-3.9.4-vs2.3.6.1/net/ipv4/arp.c
+--- linux-3.9.4/net/ipv4/arp.c 2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/arp.c       2013-05-31 17:17:54.000000000 +0000
+@@ -1317,6 +1317,7 @@ static void arp_format_neigh_entry(struc
        struct net_device *dev = n->dev;
        int hatype = dev->type;
  
@@ -24568,7 +24364,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/arp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        read_lock(&n->lock);
        /* Convert hardware address to XX:XX:XX:XX ... form. */
  #if IS_ENABLED(CONFIG_AX25)
-@@ -1349,6 +1350,7 @@ static void arp_format_pneigh_entry(stru
+@@ -1348,6 +1349,7 @@ static void arp_format_pneigh_entry(stru
        int hatype = dev ? dev->type : 0;
        char tbuf[16];
  
@@ -24576,10 +24372,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/arp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        sprintf(tbuf, "%pI4", n->key);
        seq_printf(seq, "%-16s 0x%-10x0x%-10x%s     *        %s\n",
                   tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00",
-diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/ipv4/devinet.c
---- linux-3.7.7/net/ipv4/devinet.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/devinet.c   2012-12-18 15:13:16.000000000 +0000
-@@ -513,6 +513,7 @@ struct in_device *inetdev_by_index(struc
+diff -NurpP --minimal linux-3.9.4/net/ipv4/devinet.c linux-3.9.4-vs2.3.6.1/net/ipv4/devinet.c
+--- linux-3.9.4/net/ipv4/devinet.c     2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/devinet.c   2013-05-31 17:17:54.000000000 +0000
+@@ -522,6 +522,7 @@ struct in_device *inetdev_by_index(struc
  }
  EXPORT_SYMBOL(inetdev_by_index);
  
@@ -24587,7 +24383,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
  /* Called only from RTNL semaphored context. No locks. */
  
  struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
-@@ -754,6 +755,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -940,6 +941,8 @@ int devinet_ioctl(struct net *net, unsig
  
        in_dev = __in_dev_get_rtnl(dev);
        if (in_dev) {
@@ -24596,7 +24392,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
                if (tryaddrmatch) {
                        /* Matthias Andree */
                        /* compare label and address (4.4BSD style) */
-@@ -762,6 +765,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -948,6 +951,8 @@ int devinet_ioctl(struct net *net, unsig
                           This is checked above. */
                        for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
                             ifap = &ifa->ifa_next) {
@@ -24605,7 +24401,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
                                if (!strcmp(ifr.ifr_name, ifa->ifa_label) &&
                                    sin_orig.sin_addr.s_addr ==
                                                        ifa->ifa_local) {
-@@ -774,9 +779,12 @@ int devinet_ioctl(struct net *net, unsig
+@@ -960,9 +965,12 @@ int devinet_ioctl(struct net *net, unsig
                   comparing just the label */
                if (!ifa) {
                        for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
@@ -24619,7 +24415,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
                }
        }
  
-@@ -929,6 +937,8 @@ static int inet_gifconf(struct net_devic
+@@ -1116,6 +1124,8 @@ static int inet_gifconf(struct net_devic
                goto out;
  
        for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
@@ -24628,15 +24424,15 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
                if (!buf) {
                        done += sizeof(ifr);
                        continue;
-@@ -1288,6 +1298,7 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1519,6 +1529,7 @@ static int inet_dump_ifaddr(struct sk_bu
        struct net_device *dev;
        struct in_device *in_dev;
        struct in_ifaddr *ifa;
 +      struct sock *sk = skb->sk;
        struct hlist_head *head;
-       struct hlist_node *node;
  
-@@ -1310,6 +1321,8 @@ static int inet_dump_ifaddr(struct sk_bu
+       s_h = cb->args[0];
+@@ -1540,6 +1551,8 @@ static int inet_dump_ifaddr(struct sk_bu
  
                        for (ifa = in_dev->ifa_list, ip_idx = 0; ifa;
                             ifa = ifa->ifa_next, ip_idx++) {
@@ -24645,10 +24441,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/devinet.c linux-3.7.7-vs2.3.5.6/net/i
                                if (ip_idx < s_ip_idx)
                                        continue;
                                if (inet_fill_ifaddr(skb, ifa,
-diff -NurpP --minimal linux-3.7.7/net/ipv4/fib_trie.c linux-3.7.7-vs2.3.5.6/net/ipv4/fib_trie.c
---- linux-3.7.7/net/ipv4/fib_trie.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/fib_trie.c  2012-12-18 15:13:16.000000000 +0000
-@@ -2557,6 +2557,7 @@ static int fib_route_seq_show(struct seq
+diff -NurpP --minimal linux-3.9.4/net/ipv4/fib_trie.c linux-3.9.4-vs2.3.6.1/net/ipv4/fib_trie.c
+--- linux-3.9.4/net/ipv4/fib_trie.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/fib_trie.c  2013-05-31 17:17:54.000000000 +0000
+@@ -2548,6 +2548,7 @@ static int fib_route_seq_show(struct seq
                            || fa->fa_type == RTN_MULTICAST)
                                continue;
  
@@ -24656,9 +24452,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/fib_trie.c linux-3.7.7-vs2.3.5.6/net/
                        if (fi)
                                seq_printf(seq,
                                         "%s\t%08X\t%08X\t%04X\t%d\t%u\t"
-diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_connection_sock.c linux-3.7.7-vs2.3.5.6/net/ipv4/inet_connection_sock.c
---- linux-3.7.7/net/ipv4/inet_connection_sock.c        2013-02-11 23:17:04.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/inet_connection_sock.c      2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/inet_connection_sock.c linux-3.9.4-vs2.3.6.1/net/ipv4/inet_connection_sock.c
+--- linux-3.9.4/net/ipv4/inet_connection_sock.c        2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/inet_connection_sock.c      2013-05-31 18:29:56.000000000 +0000
 @@ -53,6 +53,37 @@ void inet_get_local_port_range(int *low,
  }
  EXPORT_SYMBOL(inet_get_local_port_range);
@@ -24697,10 +24493,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_connection_sock.c linux-3.7.7-vs
  int inet_csk_bind_conflict(const struct sock *sk,
                           const struct inet_bind_bucket *tb, bool relax)
  {
-@@ -75,9 +106,7 @@ int inet_csk_bind_conflict(const struct
-                    sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
-                       if (!reuse || !sk2->sk_reuse ||
-                           sk2->sk_state == TCP_LISTEN) {
+@@ -79,17 +110,12 @@ int inet_csk_bind_conflict(const struct
+                           (!reuseport || !sk2->sk_reuseport ||
+                           (sk2->sk_state != TCP_TIME_WAIT &&
+                            !uid_eq(uid, sock_i_uid(sk2))))) {
 -                              const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2);
 -                              if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) ||
 -                                  sk2_rcv_saddr == sk_rcv_saddr(sk))
@@ -24708,9 +24504,18 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_connection_sock.c linux-3.7.7-vs
                                        break;
                        }
                        if (!relax && reuse && sk2->sk_reuse &&
-diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net/ipv4/inet_diag.c
---- linux-3.7.7/net/ipv4/inet_diag.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/inet_diag.c 2012-12-18 15:13:16.000000000 +0000
+                           sk2->sk_state != TCP_LISTEN) {
+-                              const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2);
+-
+-                              if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) ||
+-                                  sk2_rcv_saddr == sk_rcv_saddr(sk))
++                              if (ipv4_rcv_saddr_equal(sk, sk2))
+                                       break;
+                       }
+               }
+diff -NurpP --minimal linux-3.9.4/net/ipv4/inet_diag.c linux-3.9.4-vs2.3.6.1/net/ipv4/inet_diag.c
+--- linux-3.9.4/net/ipv4/inet_diag.c   2013-02-19 13:58:58.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/inet_diag.c 2013-05-31 17:17:54.000000000 +0000
 @@ -31,6 +31,8 @@
  
  #include <linux/inet.h>
@@ -24731,9 +24536,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
 +      r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info,
 +              inet->inet_daddr);
  
-       /* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
-        * hence this needs to be included regardless of socket family.
-@@ -239,8 +243,8 @@ static int inet_twsk_diag_fill(struct in
+       if (nla_put_u8(skb, INET_DIAG_SHUTDOWN, sk->sk_shutdown))
+               goto errout;
+@@ -242,8 +246,8 @@ static int inet_twsk_diag_fill(struct in
        sock_diag_save_cookie(tw, r->id.idiag_cookie);
        r->id.idiag_sport     = tw->tw_sport;
        r->id.idiag_dport     = tw->tw_dport;
@@ -24744,7 +24549,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
        r->idiag_state        = tw->tw_substate;
        r->idiag_timer        = 3;
        r->idiag_expires      = DIV_ROUND_UP(tmo * 1000, HZ);
-@@ -284,12 +288,14 @@ int inet_diag_dump_one_icsk(struct inet_
+@@ -287,12 +291,14 @@ int inet_diag_dump_one_icsk(struct inet_
  
        err = -EINVAL;
        if (req->sdiag_family == AF_INET) {
@@ -24759,7 +24564,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                sk = inet6_lookup(net, hashinfo,
                                  (struct in6_addr *)req->id.idiag_dst,
                                  req->id.idiag_dport,
-@@ -491,6 +497,7 @@ int inet_diag_bc_sk(const struct nlattr
+@@ -494,6 +500,7 @@ int inet_diag_bc_sk(const struct nlattr
        } else
  #endif
        {
@@ -24767,7 +24572,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                entry.saddr = &inet->inet_rcv_saddr;
                entry.daddr = &inet->inet_daddr;
        }
-@@ -649,6 +656,7 @@ static int inet_twsk_diag_dump(struct in
+@@ -652,6 +659,7 @@ static int inet_twsk_diag_dump(struct in
                } else
  #endif
                {
@@ -24775,7 +24580,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                        entry.saddr = &tw->tw_rcv_saddr;
                        entry.daddr = &tw->tw_daddr;
                }
-@@ -727,8 +735,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -730,8 +738,8 @@ static int inet_diag_fill_req(struct sk_
  
        r->id.idiag_sport = inet->inet_sport;
        r->id.idiag_dport = ireq->rmt_port;
@@ -24786,7 +24591,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
        r->idiag_expires = jiffies_to_msecs(tmo);
        r->idiag_rqueue = 0;
        r->idiag_wqueue = 0;
-@@ -791,6 +799,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -794,6 +802,7 @@ static int inet_diag_dump_reqs(struct sk
                            r->id.idiag_dport)
                                continue;
  
@@ -24794,7 +24599,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                        if (bc) {
                                inet_diag_req_addrs(sk, req, &entry);
                                entry.dport = ntohs(ireq->rmt_port);
-@@ -847,6 +856,8 @@ void inet_diag_dump_icsk(struct inet_has
+@@ -850,6 +859,8 @@ void inet_diag_dump_icsk(struct inet_has
                                if (!net_eq(sock_net(sk), net))
                                        continue;
  
@@ -24803,7 +24608,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                                if (num < s_num) {
                                        num++;
                                        continue;
-@@ -919,6 +930,8 @@ skip_listen_ht:
+@@ -922,6 +933,8 @@ skip_listen_ht:
  
                        if (!net_eq(sock_net(sk), net))
                                continue;
@@ -24812,7 +24617,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                        if (num < s_num)
                                goto next_normal;
                        if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -947,7 +960,8 @@ next_normal:
+@@ -950,7 +963,8 @@ next_normal:
                                    &head->twchain) {
                                if (!net_eq(twsk_net(tw), net))
                                        continue;
@@ -24822,9 +24627,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_diag.c linux-3.7.7-vs2.3.5.6/net
                                if (num < s_num)
                                        goto next_dying;
                                if (r->sdiag_family != AF_UNSPEC &&
-diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_hashtables.c linux-3.7.7-vs2.3.5.6/net/ipv4/inet_hashtables.c
---- linux-3.7.7/net/ipv4/inet_hashtables.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/inet_hashtables.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/inet_hashtables.c linux-3.9.4-vs2.3.6.1/net/ipv4/inet_hashtables.c
+--- linux-3.9.4/net/ipv4/inet_hashtables.c     2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/inet_hashtables.c   2013-05-31 18:20:50.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <net/inet_connection_sock.h>
  #include <net/inet_hashtables.h>
@@ -24836,7 +24641,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_hashtables.c linux-3.7.7-vs2.3.5
 @@ -156,6 +157,11 @@ static inline int compute_score(struct s
                        if (rcv_saddr != daddr)
                                return -1;
-                       score += 2;
+                       score += 4;
 +              } else {
 +                      /* block non nx_info ips */
 +                      if (!v4_addr_in_nx_info(sk->sk_nx_info,
@@ -24852,18 +24657,18 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/inet_hashtables.c linux-3.7.7-vs2.3.5
 -
  struct sock *__inet_lookup_listener(struct net *net,
                                    struct inet_hashinfo *hashinfo,
-                                   const __be32 daddr, const unsigned short hnum,
-@@ -196,6 +201,7 @@ begin:
-                       hiscore = score;
+                                   const __be32 saddr, __be16 sport,
+@@ -209,6 +214,7 @@ begin:
+                       phash = next_pseudo_random32(phash);
                }
        }
 +
        /*
         * if the nulls value we got at the end of this lookup is
         * not the expected one, we must restart lookup.
-diff -NurpP --minimal linux-3.7.7/net/ipv4/netfilter.c linux-3.7.7-vs2.3.5.6/net/ipv4/netfilter.c
---- linux-3.7.7/net/ipv4/netfilter.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/netfilter.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/netfilter.c linux-3.9.4-vs2.3.6.1/net/ipv4/netfilter.c
+--- linux-3.9.4/net/ipv4/netfilter.c   2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/netfilter.c 2013-05-31 17:17:54.000000000 +0000
 @@ -6,7 +6,7 @@
  #include <linux/skbuff.h>
  #include <linux/gfp.h>
@@ -24873,10 +24678,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/netfilter.c linux-3.7.7-vs2.3.5.6/net
  #include <net/xfrm.h>
  #include <net/ip.h>
  #include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/raw.c
---- linux-3.7.7/net/ipv4/raw.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/raw.c       2012-12-18 15:13:16.000000000 +0000
-@@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru
+diff -NurpP --minimal linux-3.9.4/net/ipv4/raw.c linux-3.9.4-vs2.3.6.1/net/ipv4/raw.c
+--- linux-3.9.4/net/ipv4/raw.c 2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/raw.c       2013-05-31 18:19:38.000000000 +0000
+@@ -116,7 +116,7 @@ static struct sock *__raw_v4_lookup(stru
  
                if (net_eq(sock_net(sk), net) && inet->inet_num == num  &&
                    !(inet->inet_daddr && inet->inet_daddr != raddr)    &&
@@ -24885,7 +24690,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                    !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif))
                        goto found; /* gotcha */
        }
-@@ -397,6 +397,12 @@ static int raw_send_hdrinc(struct sock *
+@@ -395,6 +395,12 @@ static int raw_send_hdrinc(struct sock *
                icmp_out_count(net, ((struct icmphdr *)
                        skb_transport_header(skb))->type);
  
@@ -24898,7 +24703,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL,
                      rt->dst.dev, dst_output);
        if (err > 0)
-@@ -582,6 +588,16 @@ static int raw_sendmsg(struct kiocb *ioc
+@@ -580,6 +586,16 @@ static int raw_sendmsg(struct kiocb *ioc
                        goto done;
        }
  
@@ -24915,7 +24720,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
        rt = ip_route_output_flow(sock_net(sk), &fl4, sk);
        if (IS_ERR(rt)) {
-@@ -658,17 +674,19 @@ static int raw_bind(struct sock *sk, str
+@@ -656,17 +672,19 @@ static int raw_bind(struct sock *sk, str
  {
        struct inet_sock *inet = inet_sk(sk);
        struct sockaddr_in *addr = (struct sockaddr_in *) uaddr;
@@ -24938,7 +24743,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
                inet->inet_saddr = 0;  /* Use device */
        sk_dst_reset(sk);
-@@ -720,7 +738,8 @@ static int raw_recvmsg(struct kiocb *ioc
+@@ -718,7 +736,8 @@ static int raw_recvmsg(struct kiocb *ioc
        /* Copy the address. */
        if (sin) {
                sin->sin_family = AF_INET;
@@ -24948,17 +24753,17 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                sin->sin_port = 0;
                memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
-@@ -916,7 +935,8 @@ static struct sock *raw_get_first(struct
-               struct hlist_node *node;
-               sk_for_each(sk, node, &state->h->ht[state->bucket])
+@@ -913,7 +932,8 @@ static struct sock *raw_get_first(struct
+       for (state->bucket = 0; state->bucket < RAW_HTABLE_SIZE;
+                       ++state->bucket) {
+               sk_for_each(sk, &state->h->ht[state->bucket])
 -                      if (sock_net(sk) == seq_file_net(seq))
 +                      if ((sock_net(sk) == seq_file_net(seq)) &&
-+                              nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
++                          nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
                                goto found;
        }
        sk = NULL;
-@@ -932,7 +952,8 @@ static struct sock *raw_get_next(struct
+@@ -929,7 +949,8 @@ static struct sock *raw_get_next(struct
                sk = sk_next(sk);
  try_again:
                ;
@@ -24968,10 +24773,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/raw.c linux-3.7.7-vs2.3.5.6/net/ipv4/
  
        if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
                sk = sk_head(&state->h->ht[state->bucket]);
-diff -NurpP --minimal linux-3.7.7/net/ipv4/route.c linux-3.7.7-vs2.3.5.6/net/ipv4/route.c
---- linux-3.7.7/net/ipv4/route.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/route.c     2012-12-18 15:13:16.000000000 +0000
-@@ -1952,7 +1952,7 @@ struct rtable *__ip_route_output_key(str
+diff -NurpP --minimal linux-3.9.4/net/ipv4/route.c linux-3.9.4-vs2.3.6.1/net/ipv4/route.c
+--- linux-3.9.4/net/ipv4/route.c       2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/route.c     2013-05-31 17:17:54.000000000 +0000
+@@ -1998,7 +1998,7 @@ struct rtable *__ip_route_output_key(str
  
  
        if (fl4->flowi4_oif) {
@@ -24980,9 +24785,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/route.c linux-3.7.7-vs2.3.5.6/net/ipv
                rth = ERR_PTR(-ENODEV);
                if (dev_out == NULL)
                        goto out;
-diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp.c linux-3.7.7-vs2.3.5.6/net/ipv4/tcp.c
---- linux-3.7.7/net/ipv4/tcp.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/tcp.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/tcp.c linux-3.9.4-vs2.3.6.1/net/ipv4/tcp.c
+--- linux-3.9.4/net/ipv4/tcp.c 2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/tcp.c       2013-05-31 17:17:54.000000000 +0000
 @@ -268,6 +268,7 @@
  #include <linux/crypto.h>
  #include <linux/time.h>
@@ -24991,10 +24796,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
  
  #include <net/icmp.h>
  #include <net/inet_common.h>
-diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/ipv4/tcp_ipv4.c
---- linux-3.7.7/net/ipv4/tcp_ipv4.c    2013-02-11 23:17:04.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/tcp_ipv4.c  2013-01-16 00:19:03.000000000 +0000
-@@ -2262,6 +2262,12 @@ static void *listening_get_next(struct s
+diff -NurpP --minimal linux-3.9.4/net/ipv4/tcp_ipv4.c linux-3.9.4-vs2.3.6.1/net/ipv4/tcp_ipv4.c
+--- linux-3.9.4/net/ipv4/tcp_ipv4.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/tcp_ipv4.c  2013-05-31 17:17:54.000000000 +0000
+@@ -2260,6 +2260,12 @@ static void *listening_get_next(struct s
                req = req->dl_next;
                while (1) {
                        while (req) {
@@ -25007,7 +24812,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                                if (req->rsk_ops->family == st->family) {
                                        cur = req;
                                        goto out;
-@@ -2286,6 +2292,10 @@ get_req:
+@@ -2284,6 +2290,10 @@ get_req:
        }
  get_sk:
        sk_nulls_for_each_from(sk, node) {
@@ -25018,7 +24823,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                if (!net_eq(sock_net(sk), net))
                        continue;
                if (sk->sk_family == st->family) {
-@@ -2362,6 +2372,11 @@ static void *established_get_first(struc
+@@ -2360,6 +2370,11 @@ static void *established_get_first(struc
  
                spin_lock_bh(lock);
                sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -25030,7 +24835,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                        if (sk->sk_family != st->family ||
                            !net_eq(sock_net(sk), net)) {
                                continue;
-@@ -2372,6 +2387,11 @@ static void *established_get_first(struc
+@@ -2370,6 +2385,11 @@ static void *established_get_first(struc
                st->state = TCP_SEQ_STATE_TIME_WAIT;
                inet_twsk_for_each(tw, node,
                                   &tcp_hashinfo.ehash[st->bucket].twchain) {
@@ -25042,7 +24847,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                        if (tw->tw_family != st->family ||
                            !net_eq(twsk_net(tw), net)) {
                                continue;
-@@ -2401,7 +2421,9 @@ static void *established_get_next(struct
+@@ -2399,7 +2419,9 @@ static void *established_get_next(struct
                tw = cur;
                tw = tw_next(tw);
  get_tw:
@@ -25053,7 +24858,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                        tw = tw_next(tw);
                }
                if (tw) {
-@@ -2425,6 +2447,11 @@ get_tw:
+@@ -2423,6 +2445,11 @@ get_tw:
                sk = sk_nulls_next(sk);
  
        sk_nulls_for_each_from(sk, node) {
@@ -25065,7 +24870,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
                        goto found;
        }
-@@ -2630,9 +2657,9 @@ static void get_openreq4(const struct so
+@@ -2628,9 +2655,9 @@ static void get_openreq4(const struct so
        seq_printf(f, "%4d: %08X:%04X %08X:%04X"
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n",
                i,
@@ -25077,7 +24882,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
                ntohs(ireq->rmt_port),
                TCP_SYN_RECV,
                0, 0, /* could print option size, but that is af dependent. */
-@@ -2655,8 +2682,8 @@ static void get_tcp4_sock(struct sock *s
+@@ -2653,8 +2680,8 @@ static void get_tcp4_sock(struct sock *s
        const struct inet_connection_sock *icsk = inet_csk(sk);
        const struct inet_sock *inet = inet_sk(sk);
        struct fastopen_queue *fastopenq = icsk->icsk_accept_queue.fastopenq;
@@ -25088,7 +24893,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
        __u16 destp = ntohs(inet->inet_dport);
        __u16 srcp = ntohs(inet->inet_sport);
        int rx_queue;
-@@ -2712,8 +2739,8 @@ static void get_timewait4_sock(const str
+@@ -2710,8 +2737,8 @@ static void get_timewait4_sock(const str
        __u16 destp, srcp;
        long delta = tw->tw_ttd - jiffies;
  
@@ -25099,9 +24904,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_ipv4.c linux-3.7.7-vs2.3.5.6/net/
        destp = ntohs(tw->tw_dport);
        srcp  = ntohs(tw->tw_sport);
  
-diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_minisocks.c linux-3.7.7-vs2.3.5.6/net/ipv4/tcp_minisocks.c
---- linux-3.7.7/net/ipv4/tcp_minisocks.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/tcp_minisocks.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv4/tcp_minisocks.c linux-3.9.4-vs2.3.6.1/net/ipv4/tcp_minisocks.c
+--- linux-3.9.4/net/ipv4/tcp_minisocks.c       2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/tcp_minisocks.c     2013-05-31 17:17:54.000000000 +0000
 @@ -23,6 +23,9 @@
  #include <linux/slab.h>
  #include <linux/sysctl.h>
@@ -25112,9 +24917,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_minisocks.c linux-3.7.7-vs2.3.5.6
  #include <net/tcp.h>
  #include <net/inet_common.h>
  #include <net/xfrm.h>
-@@ -289,6 +292,11 @@ void tcp_time_wait(struct sock *sk, int
-               tcptw->tw_ts_recent     = tp->rx_opt.ts_recent;
+@@ -291,6 +294,11 @@ void tcp_time_wait(struct sock *sk, int
                tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
+               tcptw->tw_ts_offset     = tp->tsoffset;
  
 +              tw->tw_xid              = sk->sk_xid;
 +              tw->tw_vx_info          = NULL;
@@ -25124,10 +24929,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/tcp_minisocks.c linux-3.7.7-vs2.3.5.6
  #if IS_ENABLED(CONFIG_IPV6)
                if (tw->tw_family == PF_INET6) {
                        struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/udp.c
---- linux-3.7.7/net/ipv4/udp.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv4/udp.c       2012-12-18 15:13:16.000000000 +0000
-@@ -300,14 +300,7 @@ fail:
+diff -NurpP --minimal linux-3.9.4/net/ipv4/udp.c linux-3.9.4-vs2.3.6.1/net/ipv4/udp.c
+--- linux-3.9.4/net/ipv4/udp.c 2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv4/udp.c       2013-05-31 18:26:00.000000000 +0000
+@@ -306,14 +306,7 @@ fail:
  }
  EXPORT_SYMBOL(udp_lib_get_port);
  
@@ -25143,10 +24948,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
  
  static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr,
                                       unsigned int port)
-@@ -342,6 +335,11 @@ static inline int compute_score(struct s
+@@ -348,6 +341,11 @@ static inline int compute_score(struct s
                        if (inet->inet_rcv_saddr != daddr)
                                return -1;
-                       score += 2;
+                       score += 4;
 +              } else {
 +                      /* block non nx_info ips */
 +                      if (!v4_addr_in_nx_info(sk->sk_nx_info,
@@ -25155,7 +24960,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                }
                if (inet->inet_daddr) {
                        if (inet->inet_daddr != saddr)
-@@ -445,6 +443,7 @@ exact_match:
+@@ -458,6 +456,7 @@ begin:
        return result;
  }
  
@@ -25163,7 +24968,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
  /* UDP is nearly always wildcards out the wazoo, it makes no sense to try
   * harder than this. -DaveM
   */
-@@ -490,6 +489,11 @@ begin:
+@@ -504,6 +503,11 @@ begin:
        sk_nulls_for_each_rcu(sk, node, &hslot->head) {
                score = compute_score(sk, net, saddr, hnum, sport,
                                      daddr, dport, dif);
@@ -25175,7 +24980,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                if (score > badness) {
                        result = sk;
                        badness = score;
-@@ -503,6 +507,7 @@ begin:
+@@ -528,6 +532,7 @@ begin:
        if (get_nulls_value(node) != slot)
                goto begin;
  
@@ -25183,7 +24988,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        if (result) {
                if (unlikely(!atomic_inc_not_zero_hint(&result->sk_refcnt, 2)))
                        result = NULL;
-@@ -512,6 +517,7 @@ begin:
+@@ -537,6 +542,7 @@ begin:
                        goto begin;
                }
        }
@@ -25191,7 +24996,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        rcu_read_unlock();
        return result;
  }
-@@ -555,8 +561,7 @@ static inline struct sock *udp_v4_mcast_
+@@ -580,8 +586,7 @@ static inline struct sock *udp_v4_mcast_
                    udp_sk(s)->udp_port_hash != hnum ||
                    (inet->inet_daddr && inet->inet_daddr != rmt_addr) ||
                    (inet->inet_dport != rmt_port && inet->inet_dport) ||
@@ -25201,7 +25006,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                    ipv6_only_sock(s) ||
                    (s->sk_bound_dev_if && s->sk_bound_dev_if != dif))
                        continue;
-@@ -939,6 +944,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
+@@ -964,6 +969,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
                                   inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP,
                                   faddr, saddr, dport, inet->inet_sport);
  
@@ -25218,7 +25023,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
                rt = ip_route_output_flow(net, fl4, sk);
                if (IS_ERR(rt)) {
-@@ -1244,7 +1259,8 @@ try_again:
+@@ -1269,7 +1284,8 @@ try_again:
        if (sin) {
                sin->sin_family = AF_INET;
                sin->sin_port = udp_hdr(skb)->source;
@@ -25228,7 +25033,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
        if (inet->cmsg_flags)
-@@ -1992,6 +2008,8 @@ static struct sock *udp_get_first(struct
+@@ -2025,6 +2041,8 @@ static struct sock *udp_get_first(struct
                sk_nulls_for_each(sk, node, &hslot->head) {
                        if (!net_eq(sock_net(sk), net))
                                continue;
@@ -25237,7 +25042,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
                        if (sk->sk_family == state->family)
                                goto found;
                }
-@@ -2009,7 +2027,9 @@ static struct sock *udp_get_next(struct
+@@ -2042,7 +2060,9 @@ static struct sock *udp_get_next(struct
  
        do {
                sk = sk_nulls_next(sk);
@@ -25248,7 +25053,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
  
        if (!sk) {
                if (state->bucket <= state->udp_table->mask)
-@@ -2105,8 +2125,8 @@ static void udp4_format_sock(struct sock
+@@ -2138,8 +2158,8 @@ static void udp4_format_sock(struct sock
                int bucket, int *len)
  {
        struct inet_sock *inet = inet_sk(sp);
@@ -25259,9 +25064,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv4/udp.c linux-3.7.7-vs2.3.5.6/net/ipv4/
        __u16 destp       = ntohs(inet->inet_dport);
        __u16 srcp        = ntohs(inet->inet_sport);
  
-diff -NurpP --minimal linux-3.7.7/net/ipv6/Kconfig linux-3.7.7-vs2.3.5.6/net/ipv6/Kconfig
---- linux-3.7.7/net/ipv6/Kconfig       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/Kconfig     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/Kconfig linux-3.9.4-vs2.3.6.1/net/ipv6/Kconfig
+--- linux-3.9.4/net/ipv6/Kconfig       2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/Kconfig     2013-05-31 17:17:54.000000000 +0000
 @@ -4,8 +4,8 @@
  
  #   IPv6 as module will cause a CRASH if you try to unload it
@@ -25273,10 +25078,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/Kconfig linux-3.7.7-vs2.3.5.6/net/ipv
        ---help---
          This is complemental support for the IP version 6.
          You will still be able to do traditional IPv4 networking as well.
-diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/ipv6/addrconf.c
---- linux-3.7.7/net/ipv6/addrconf.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/addrconf.c  2012-12-18 15:13:16.000000000 +0000
-@@ -92,6 +92,8 @@
+diff -NurpP --minimal linux-3.9.4/net/ipv6/addrconf.c linux-3.9.4-vs2.3.6.1/net/ipv6/addrconf.c
+--- linux-3.9.4/net/ipv6/addrconf.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/addrconf.c  2013-05-31 20:07:39.000000000 +0000
+@@ -93,6 +93,8 @@
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
  #include <linux/export.h>
@@ -25285,7 +25090,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
  
  /* Set to 3 to get tracing... */
  #define ACONF_DEBUG 2
-@@ -1094,7 +1096,7 @@ out:
+@@ -1250,7 +1252,7 @@ out:
  
  int ipv6_dev_get_saddr(struct net *net, const struct net_device *dst_dev,
                       const struct in6_addr *daddr, unsigned int prefs,
@@ -25294,7 +25099,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
  {
        struct ipv6_saddr_score scores[2],
                                *score = &scores[0], *hiscore = &scores[1];
-@@ -1166,6 +1168,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1322,6 +1324,8 @@ int ipv6_dev_get_saddr(struct net *net,
                                               dev->name);
                                continue;
                        }
@@ -25303,7 +25108,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
  
                        score->rule = -1;
                        bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -3135,7 +3139,10 @@ static void if6_seq_stop(struct seq_file
+@@ -3311,7 +3315,10 @@ static void if6_seq_stop(struct seq_file
  static int if6_seq_show(struct seq_file *seq, void *v)
  {
        struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v;
@@ -25315,7 +25120,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
                   &ifp->addr,
                   ifp->idev->dev->ifindex,
                   ifp->prefix_len,
-@@ -3641,6 +3648,11 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3815,6 +3822,11 @@ static int in6_dump_addrs(struct inet6_d
        struct ifacaddr6 *ifaca;
        int err = 1;
        int ip_idx = *p_ip_idx;
@@ -25327,7 +25132,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
  
        read_lock_bh(&idev->lock);
        switch (type) {
-@@ -3651,6 +3663,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3825,6 +3837,8 @@ static int in6_dump_addrs(struct inet6_d
                list_for_each_entry(ifa, &idev->addr_list, if_list) {
                        if (++ip_idx < s_ip_idx)
                                continue;
@@ -25336,7 +25141,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
                        err = inet6_fill_ifaddr(skb, ifa,
                                                NETLINK_CB(cb->skb).portid,
                                                cb->nlh->nlmsg_seq,
-@@ -3667,6 +3681,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3841,6 +3855,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifmca = ifmca->next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
@@ -25345,7 +25150,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
                        err = inet6_fill_ifmcaddr(skb, ifmca,
                                                  NETLINK_CB(cb->skb).portid,
                                                  cb->nlh->nlmsg_seq,
-@@ -3682,6 +3698,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3856,6 +3872,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifaca = ifaca->aca_next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
@@ -25354,20 +25159,27 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
                        err = inet6_fill_ifacaddr(skb, ifaca,
                                                  NETLINK_CB(cb->skb).portid,
                                                  cb->nlh->nlmsg_seq,
-@@ -4065,6 +4083,11 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -3884,6 +3902,10 @@ static int inet6_dump_addr(struct sk_buf
        struct inet6_dev *idev;
        struct hlist_head *head;
-       struct hlist_node *node;
-+      struct nx_info *nxi = skb->sk ? skb->sk->sk_nx_info : NULL;
-+
 +      /* FIXME: maybe disable ipv6 on non v6 guests?
 +      if (skb->sk && skb->sk->sk_vx_info)
 +              return skb->len; */
++
+       s_h = cb->args[0];
+       s_idx = idx = cb->args[1];
+       s_ip_idx = ip_idx = cb->args[2];
+@@ -4238,6 +4260,7 @@ static int inet6_dump_ifinfo(struct sk_b
+       struct net_device *dev;
+       struct inet6_dev *idev;
+       struct hlist_head *head;
++      struct nx_info *nxi = skb->sk ? skb->sk->sk_nx_info : NULL;
  
        s_h = cb->args[0];
        s_idx = cb->args[1];
-@@ -4076,6 +4099,8 @@ static int inet6_dump_ifinfo(struct sk_b
-               hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
+@@ -4249,6 +4272,8 @@ static int inet6_dump_ifinfo(struct sk_b
+               hlist_for_each_entry_rcu(dev, head, index_hlist) {
                        if (idx < s_idx)
                                goto cont;
 +                      if (!v6_dev_in_nx_info(dev, nxi))
@@ -25375,9 +25187,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/addrconf.c linux-3.7.7-vs2.3.5.6/net/
                        idev = __in6_dev_get(dev);
                        if (!idev)
                                goto cont;
-diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/ipv6/af_inet6.c
---- linux-3.7.7/net/ipv6/af_inet6.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/af_inet6.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/af_inet6.c linux-3.9.4-vs2.3.6.1/net/ipv6/af_inet6.c
+--- linux-3.9.4/net/ipv6/af_inet6.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/af_inet6.c  2013-05-31 20:04:41.000000000 +0000
 @@ -43,6 +43,8 @@
  #include <linux/netdevice.h>
  #include <linux/icmpv6.h>
@@ -25387,21 +25199,22 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
  
  #include <net/ip.h>
  #include <net/ipv6.h>
-@@ -160,9 +162,12 @@ lookup_protocol:
+@@ -160,10 +162,13 @@ lookup_protocol:
        }
  
        err = -EPERM;
 +      if ((protocol == IPPROTO_ICMPV6) &&
 +              nx_capable(CAP_NET_RAW, NXC_RAW_ICMP))
 +              goto override;
-       if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW))
+       if (sock->type == SOCK_RAW && !kern &&
+           !ns_capable(net->user_ns, CAP_NET_RAW))
                goto out_rcu_unlock;
 -
 +override:
        sock->ops = answer->ops;
        answer_prot = answer->prot;
        answer_no_check = answer->no_check;
-@@ -262,6 +267,7 @@ int inet6_bind(struct socket *sock, stru
+@@ -263,6 +268,7 @@ int inet6_bind(struct socket *sock, stru
        struct inet_sock *inet = inet_sk(sk);
        struct ipv6_pinfo *np = inet6_sk(sk);
        struct net *net = sock_net(sk);
@@ -25409,7 +25222,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
        __be32 v4addr = 0;
        unsigned short snum;
        int addr_type = 0;
-@@ -277,6 +283,10 @@ int inet6_bind(struct socket *sock, stru
+@@ -278,6 +284,10 @@ int inet6_bind(struct socket *sock, stru
        if (addr->sin6_family != AF_INET6)
                return -EAFNOSUPPORT;
  
@@ -25420,7 +25233,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
        addr_type = ipv6_addr_type(&addr->sin6_addr);
        if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM)
                return -EINVAL;
-@@ -308,6 +318,7 @@ int inet6_bind(struct socket *sock, stru
+@@ -309,6 +319,7 @@ int inet6_bind(struct socket *sock, stru
                /* Reproduce AF_INET checks to make the bindings consistent */
                v4addr = addr->sin6_addr.s6_addr32[3];
                chk_addr_ret = inet_addr_type(net, v4addr);
@@ -25428,7 +25241,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
                if (!sysctl_ip_nonlocal_bind &&
                    !(inet->freebind || inet->transparent) &&
                    v4addr != htonl(INADDR_ANY) &&
-@@ -317,6 +328,10 @@ int inet6_bind(struct socket *sock, stru
+@@ -318,6 +329,10 @@ int inet6_bind(struct socket *sock, stru
                        err = -EADDRNOTAVAIL;
                        goto out;
                }
@@ -25439,7 +25252,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
        } else {
                if (addr_type != IPV6_ADDR_ANY) {
                        struct net_device *dev = NULL;
-@@ -343,6 +358,11 @@ int inet6_bind(struct socket *sock, stru
+@@ -344,6 +359,11 @@ int inet6_bind(struct socket *sock, stru
                                }
                        }
  
@@ -25451,7 +25264,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
                        /* ipv4 addr of the socket is invalid.  Only the
                         * unspecified and mapped address have a v4 equivalent.
                         */
-@@ -359,6 +379,9 @@ int inet6_bind(struct socket *sock, stru
+@@ -360,6 +380,9 @@ int inet6_bind(struct socket *sock, stru
                }
        }
  
@@ -25461,7 +25274,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
        inet->inet_rcv_saddr = v4addr;
        inet->inet_saddr = v4addr;
  
-@@ -460,9 +483,11 @@ int inet6_getname(struct socket *sock, s
+@@ -461,9 +484,11 @@ int inet6_getname(struct socket *sock, s
                        return -ENOTCONN;
                sin->sin6_port = inet->inet_dport;
                sin->sin6_addr = np->daddr;
@@ -25473,10 +25286,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/af_inet6.c linux-3.7.7-vs2.3.5.6/net/
                if (ipv6_addr_any(&np->rcv_saddr))
                        sin->sin6_addr = np->saddr;
                else
-diff -NurpP --minimal linux-3.7.7/net/ipv6/datagram.c linux-3.7.7-vs2.3.5.6/net/ipv6/datagram.c
---- linux-3.7.7/net/ipv6/datagram.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/datagram.c  2012-12-18 15:13:16.000000000 +0000
-@@ -645,7 +645,7 @@ int datagram_send_ctl(struct net *net, s
+diff -NurpP --minimal linux-3.9.4/net/ipv6/datagram.c linux-3.9.4-vs2.3.6.1/net/ipv6/datagram.c
+--- linux-3.9.4/net/ipv6/datagram.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/datagram.c  2013-05-31 17:17:54.000000000 +0000
+@@ -648,7 +648,7 @@ int ip6_datagram_send_ctl(struct net *ne
  
                        rcu_read_lock();
                        if (fl6->flowi6_oif) {
@@ -25485,9 +25298,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/datagram.c linux-3.7.7-vs2.3.5.6/net/
                                if (!dev) {
                                        rcu_read_unlock();
                                        return -ENODEV;
-diff -NurpP --minimal linux-3.7.7/net/ipv6/fib6_rules.c linux-3.7.7-vs2.3.5.6/net/ipv6/fib6_rules.c
---- linux-3.7.7/net/ipv6/fib6_rules.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/fib6_rules.c        2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/fib6_rules.c linux-3.9.4-vs2.3.6.1/net/ipv6/fib6_rules.c
+--- linux-3.9.4/net/ipv6/fib6_rules.c  2013-02-19 13:58:58.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/fib6_rules.c        2013-05-31 17:17:54.000000000 +0000
 @@ -90,7 +90,7 @@ static int fib6_rule_action(struct fib_r
                                               ip6_dst_idev(&rt->dst)->dev,
                                               &flp6->daddr,
@@ -25497,9 +25310,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/fib6_rules.c linux-3.7.7-vs2.3.5.6/ne
                                goto again;
                        if (!ipv6_prefix_equal(&saddr, &r->src.addr,
                                               r->src.plen))
-diff -NurpP --minimal linux-3.7.7/net/ipv6/inet6_hashtables.c linux-3.7.7-vs2.3.5.6/net/ipv6/inet6_hashtables.c
---- linux-3.7.7/net/ipv6/inet6_hashtables.c    2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/inet6_hashtables.c  2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/inet6_hashtables.c linux-3.9.4-vs2.3.6.1/net/ipv6/inet6_hashtables.c
+--- linux-3.9.4/net/ipv6/inet6_hashtables.c    2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/inet6_hashtables.c  2013-05-31 17:17:54.000000000 +0000
 @@ -16,6 +16,7 @@
  
  #include <linux/module.h>
@@ -25516,7 +25329,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/inet6_hashtables.c linux-3.7.7-vs2.3.
        rcu_read_lock();
  begin:
        sk_nulls_for_each_rcu(sk, node, &head->chain) {
-@@ -95,7 +95,7 @@ begin:
+@@ -97,7 +97,7 @@ begin:
                                sock_put(sk);
                                goto begin;
                        }
@@ -25525,7 +25338,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/inet6_hashtables.c linux-3.7.7-vs2.3.
                }
        }
        if (get_nulls_value(node) != slot)
-@@ -141,6 +141,9 @@ static inline int compute_score(struct s
+@@ -147,6 +147,9 @@ static inline int compute_score(struct s
                        if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
                                return -1;
                        score++;
@@ -25535,10 +25348,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/inet6_hashtables.c linux-3.7.7-vs2.3.
                }
                if (sk->sk_bound_dev_if) {
                        if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-3.7.7/net/ipv6/ip6_output.c linux-3.7.7-vs2.3.5.6/net/ipv6/ip6_output.c
---- linux-3.7.7/net/ipv6/ip6_output.c  2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/ip6_output.c        2012-12-18 15:13:16.000000000 +0000
-@@ -964,7 +964,8 @@ static int ip6_dst_lookup_tail(struct so
+diff -NurpP --minimal linux-3.9.4/net/ipv6/ip6_output.c linux-3.9.4-vs2.3.6.1/net/ipv6/ip6_output.c
+--- linux-3.9.4/net/ipv6/ip6_output.c  2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/ip6_output.c        2013-05-31 17:17:54.000000000 +0000
+@@ -877,7 +877,8 @@ static int ip6_dst_lookup_tail(struct so
                struct rt6_info *rt = (struct rt6_info *) *dst;
                err = ip6_route_get_saddr(net, rt, &fl6->daddr,
                                          sk ? inet6_sk(sk)->srcprefs : 0,
@@ -25548,10 +25361,10 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/ip6_output.c linux-3.7.7-vs2.3.5.6/ne
                if (err)
                        goto out_err_release;
        }
-diff -NurpP --minimal linux-3.7.7/net/ipv6/ndisc.c linux-3.7.7-vs2.3.5.6/net/ipv6/ndisc.c
---- linux-3.7.7/net/ipv6/ndisc.c       2013-02-11 23:17:04.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/ndisc.c     2013-01-16 00:19:03.000000000 +0000
-@@ -517,7 +517,7 @@ static void ndisc_send_na(struct net_dev
+diff -NurpP --minimal linux-3.9.4/net/ipv6/ndisc.c linux-3.9.4-vs2.3.6.1/net/ipv6/ndisc.c
+--- linux-3.9.4/net/ipv6/ndisc.c       2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/ndisc.c     2013-05-31 17:17:54.000000000 +0000
+@@ -485,7 +485,7 @@ static void ndisc_send_na(struct net_dev
        } else {
                if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
                                       inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs,
@@ -25560,9 +25373,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/ndisc.c linux-3.7.7-vs2.3.5.6/net/ipv
                        return;
                src_addr = &tmpaddr;
        }
-diff -NurpP --minimal linux-3.7.7/net/ipv6/netfilter/ip6t_MASQUERADE.c linux-3.7.7-vs2.3.5.6/net/ipv6/netfilter/ip6t_MASQUERADE.c
---- linux-3.7.7/net/ipv6/netfilter/ip6t_MASQUERADE.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/netfilter/ip6t_MASQUERADE.c 2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/netfilter/ip6t_MASQUERADE.c linux-3.9.4-vs2.3.6.1/net/ipv6/netfilter/ip6t_MASQUERADE.c
+--- linux-3.9.4/net/ipv6/netfilter/ip6t_MASQUERADE.c   2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/netfilter/ip6t_MASQUERADE.c 2013-05-31 17:17:54.000000000 +0000
 @@ -34,7 +34,7 @@ masquerade_tg6(struct sk_buff *skb, cons
                            ctinfo == IP_CT_RELATED_REPLY));
  
@@ -25572,9 +25385,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/netfilter/ip6t_MASQUERADE.c linux-3.7
                return NF_DROP;
  
        nfct_nat(ct)->masq_index = par->out->ifindex;
-diff -NurpP --minimal linux-3.7.7/net/ipv6/raw.c linux-3.7.7-vs2.3.5.6/net/ipv6/raw.c
---- linux-3.7.7/net/ipv6/raw.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/raw.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/raw.c linux-3.9.4-vs2.3.6.1/net/ipv6/raw.c
+--- linux-3.9.4/net/ipv6/raw.c 2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/raw.c       2013-05-31 17:17:54.000000000 +0000
 @@ -30,6 +30,7 @@
  #include <linux/icmpv6.h>
  #include <linux/netfilter.h>
@@ -25583,7 +25396,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/raw.c linux-3.7.7-vs2.3.5.6/net/ipv6/
  #include <linux/skbuff.h>
  #include <linux/compat.h>
  #include <asm/uaccess.h>
-@@ -284,6 +285,13 @@ static int rawv6_bind(struct sock *sk, s
+@@ -283,6 +284,13 @@ static int rawv6_bind(struct sock *sk, s
                                goto out_unlock;
                }
  
@@ -25597,18 +25410,18 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/raw.c linux-3.7.7-vs2.3.5.6/net/ipv6/
                /* ipv4 addr of the socket is invalid.  Only the
                 * unspecified and mapped address have a v4 equivalent.
                 */
-diff -NurpP --minimal linux-3.7.7/net/ipv6/route.c linux-3.7.7-vs2.3.5.6/net/ipv6/route.c
---- linux-3.7.7/net/ipv6/route.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/route.c     2012-12-18 15:13:16.000000000 +0000
-@@ -57,6 +57,7 @@
- #include <net/xfrm.h>
+diff -NurpP --minimal linux-3.9.4/net/ipv6/route.c linux-3.9.4-vs2.3.6.1/net/ipv6/route.c
+--- linux-3.9.4/net/ipv6/route.c       2013-05-31 13:45:32.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/route.c     2013-05-31 18:10:38.000000000 +0000
+@@ -58,6 +58,7 @@
  #include <net/netevent.h>
  #include <net/netlink.h>
+ #include <net/nexthop.h>
 +#include <linux/vs_inet6.h>
  
  #include <asm/uaccess.h>
  
-@@ -2116,15 +2117,17 @@ int ip6_route_get_saddr(struct net *net,
+@@ -2079,15 +2080,17 @@ int ip6_route_get_saddr(struct net *net,
                        struct rt6_info *rt,
                        const struct in6_addr *daddr,
                        unsigned int prefs,
@@ -25629,7 +25442,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/route.c linux-3.7.7-vs2.3.5.6/net/ipv
        return err;
  }
  
-@@ -2478,7 +2481,8 @@ static int rt6_fill_node(struct net *net
+@@ -2507,7 +2510,8 @@ static int rt6_fill_node(struct net *net
                                goto nla_put_failure;
        } else if (dst) {
                struct in6_addr saddr_buf;
@@ -25639,17 +25452,17 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/route.c linux-3.7.7-vs2.3.5.6/net/ipv
                    nla_put(skb, RTA_PREFSRC, 16, &saddr_buf))
                        goto nla_put_failure;
        }
-@@ -2692,6 +2696,7 @@ static int rt6_info_route(struct rt6_inf
+@@ -2719,6 +2723,7 @@ static int rt6_info_route(struct rt6_inf
+ {
        struct seq_file *m = p_arg;
-       struct neighbour *n;
  
 +      /* FIXME: check for network context? */
        seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
  
  #ifdef CONFIG_IPV6_SUBTREES
-diff -NurpP --minimal linux-3.7.7/net/ipv6/tcp_ipv6.c linux-3.7.7-vs2.3.5.6/net/ipv6/tcp_ipv6.c
---- linux-3.7.7/net/ipv6/tcp_ipv6.c    2013-02-11 23:17:04.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/tcp_ipv6.c  2013-01-16 00:19:03.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/tcp_ipv6.c linux-3.9.4-vs2.3.6.1/net/ipv6/tcp_ipv6.c
+--- linux-3.9.4/net/ipv6/tcp_ipv6.c    2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/tcp_ipv6.c  2013-05-31 17:17:54.000000000 +0000
 @@ -71,6 +71,7 @@
  
  #include <linux/crypto.h>
@@ -25658,7 +25471,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/tcp_ipv6.c linux-3.7.7-vs2.3.5.6/net/
  
  static void   tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb);
  static void   tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
-@@ -175,8 +176,15 @@ static int tcp_v6_connect(struct sock *s
+@@ -164,8 +165,15 @@ static int tcp_v6_connect(struct sock *s
         *      connect() to INADDR_ANY means loopback (BSD'ism).
         */
  
@@ -25676,13 +25489,13 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/tcp_ipv6.c linux-3.7.7-vs2.3.5.6/net/
  
        addr_type = ipv6_addr_type(&usin->sin6_addr);
  
-diff -NurpP --minimal linux-3.7.7/net/ipv6/udp.c linux-3.7.7-vs2.3.5.6/net/ipv6/udp.c
---- linux-3.7.7/net/ipv6/udp.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/udp.c       2012-12-18 15:13:16.000000000 +0000
-@@ -45,42 +45,68 @@
- #include <net/tcp_states.h>
+diff -NurpP --minimal linux-3.9.4/net/ipv6/udp.c linux-3.9.4-vs2.3.6.1/net/ipv6/udp.c
+--- linux-3.9.4/net/ipv6/udp.c 2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/udp.c       2013-05-31 18:16:01.000000000 +0000
+@@ -46,42 +46,68 @@
  #include <net/ip6_checksum.h>
  #include <net/xfrm.h>
+ #include <net/inet6_hashtables.h>
 +#include <linux/vs_inet6.h>
  
  #include <linux/proc_fs.h>
@@ -25761,7 +25574,7 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/udp.c linux-3.7.7-vs2.3.5.6/net/ipv6/
  }
  
  static unsigned int udp6_portaddr_hash(struct net *net,
-@@ -144,6 +170,10 @@ static inline int compute_score(struct s
+@@ -145,6 +171,10 @@ static inline int compute_score(struct s
                        if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
                                return -1;
                        score++;
@@ -25772,9 +25585,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/udp.c linux-3.7.7-vs2.3.5.6/net/ipv6/
                }
                if (!ipv6_addr_any(&np->daddr)) {
                        if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-3.7.7/net/ipv6/xfrm6_policy.c linux-3.7.7-vs2.3.5.6/net/ipv6/xfrm6_policy.c
---- linux-3.7.7/net/ipv6/xfrm6_policy.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/ipv6/xfrm6_policy.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/ipv6/xfrm6_policy.c linux-3.9.4-vs2.3.6.1/net/ipv6/xfrm6_policy.c
+--- linux-3.9.4/net/ipv6/xfrm6_policy.c        2013-05-31 14:22:27.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/ipv6/xfrm6_policy.c      2013-05-31 17:17:54.000000000 +0000
 @@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *n
        dev = ip6_dst_idev(dst)->dev;
        ipv6_dev_get_saddr(dev_net(dev), dev,
@@ -25784,9 +25597,9 @@ diff -NurpP --minimal linux-3.7.7/net/ipv6/xfrm6_policy.c linux-3.7.7-vs2.3.5.6/
        dst_release(dst);
        return 0;
  }
-diff -NurpP --minimal linux-3.7.7/net/netfilter/ipvs/ip_vs_xmit.c linux-3.7.7-vs2.3.5.6/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-3.7.7/net/netfilter/ipvs/ip_vs_xmit.c        2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/netfilter/ipvs/ip_vs_xmit.c      2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/netfilter/ipvs/ip_vs_xmit.c linux-3.9.4-vs2.3.6.1/net/netfilter/ipvs/ip_vs_xmit.c
+--- linux-3.9.4/net/netfilter/ipvs/ip_vs_xmit.c        2013-02-19 13:58:59.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/netfilter/ipvs/ip_vs_xmit.c      2013-05-31 17:17:54.000000000 +0000
 @@ -273,7 +273,7 @@ __ip_vs_route_output_v6(struct net *net,
                return dst;
        if (ipv6_addr_any(&fl6.saddr) &&
@@ -25796,9 +25609,9 @@ diff -NurpP --minimal linux-3.7.7/net/netfilter/ipvs/ip_vs_xmit.c linux-3.7.7-vs
                goto out_err;
        if (do_xfrm) {
                dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
-diff -NurpP --minimal linux-3.7.7/net/netlink/af_netlink.c linux-3.7.7-vs2.3.5.6/net/netlink/af_netlink.c
---- linux-3.7.7/net/netlink/af_netlink.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/netlink/af_netlink.c     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/netlink/af_netlink.c linux-3.9.4-vs2.3.6.1/net/netlink/af_netlink.c
+--- linux-3.9.4/net/netlink/af_netlink.c       2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/netlink/af_netlink.c     2013-05-31 17:17:54.000000000 +0000
 @@ -55,6 +55,9 @@
  #include <linux/types.h>
  #include <linux/audit.h>
@@ -25809,8 +25622,8 @@ diff -NurpP --minimal linux-3.7.7/net/netlink/af_netlink.c linux-3.7.7-vs2.3.5.6
  
  #include <net/net_namespace.h>
  #include <net/sock.h>
-@@ -1981,6 +1984,8 @@ static struct sock *netlink_seq_socket_i
-                       sk_for_each(s, node, &hash->table[j]) {
+@@ -1976,6 +1979,8 @@ static struct sock *netlink_seq_socket_i
+                       sk_for_each(s, &hash->table[j]) {
                                if (sock_net(s) != seq_file_net(seq))
                                        continue;
 +                              if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT))
@@ -25818,7 +25631,7 @@ diff -NurpP --minimal linux-3.7.7/net/netlink/af_netlink.c linux-3.7.7-vs2.3.5.6
                                if (off == pos) {
                                        iter->link = i;
                                        iter->hash_idx = j;
-@@ -2015,7 +2020,8 @@ static void *netlink_seq_next(struct seq
+@@ -2010,7 +2015,8 @@ static void *netlink_seq_next(struct seq
        s = v;
        do {
                s = sk_next(s);
@@ -25828,7 +25641,7 @@ diff -NurpP --minimal linux-3.7.7/net/netlink/af_netlink.c linux-3.7.7-vs2.3.5.6
        if (s)
                return s;
  
-@@ -2027,7 +2033,8 @@ static void *netlink_seq_next(struct seq
+@@ -2022,7 +2028,8 @@ static void *netlink_seq_next(struct seq
  
                for (; j <= hash->mask; j++) {
                        s = sk_head(&hash->table[j]);
@@ -25838,10 +25651,10 @@ diff -NurpP --minimal linux-3.7.7/net/netlink/af_netlink.c linux-3.7.7-vs2.3.5.6
                                s = sk_next(s);
                        if (s) {
                                iter->link = i;
-diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.c
---- linux-3.7.7/net/socket.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/socket.c 2012-12-18 15:13:16.000000000 +0000
-@@ -99,6 +99,10 @@
+diff -NurpP --minimal linux-3.9.4/net/socket.c linux-3.9.4-vs2.3.6.1/net/socket.c
+--- linux-3.9.4/net/socket.c   2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/socket.c 2013-05-31 17:17:54.000000000 +0000
+@@ -98,6 +98,10 @@
  
  #include <net/sock.h>
  #include <linux/netfilter.h>
@@ -25852,15 +25665,14 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
  
  #include <linux/if_tun.h>
  #include <linux/ipv6_route.h>
-@@ -619,6 +623,7 @@ static inline int __sock_sendmsg_nosec(s
+@@ -617,13 +621,29 @@ static inline int __sock_sendmsg_nosec(s
                                       struct msghdr *msg, size_t size)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
 +      size_t len;
  
-       sock_update_classid(sock->sk);
-@@ -627,7 +632,22 @@ static inline int __sock_sendmsg_nosec(s
+       si->sock = sock;
+       si->scm = NULL;
        si->msg = msg;
        si->size = size;
  
@@ -25884,15 +25696,15 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
  }
  
  static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock,
-@@ -783,6 +803,7 @@ static inline int __sock_recvmsg_nosec(s
+@@ -779,6 +799,7 @@ static inline int __sock_recvmsg_nosec(s
                                       struct msghdr *msg, size_t size, int flags)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
 +      int len;
  
-       sock_update_classid(sock->sk);
-@@ -792,7 +813,18 @@ static inline int __sock_recvmsg_nosec(s
+       si->sock = sock;
+       si->scm = NULL;
+@@ -786,7 +807,18 @@ static inline int __sock_recvmsg_nosec(s
        si->size = size;
        si->flags = flags;
  
@@ -25912,7 +25724,7 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
  }
  
  static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-@@ -1277,6 +1309,13 @@ int __sock_create(struct net *net, int f
+@@ -1269,6 +1301,13 @@ int __sock_create(struct net *net, int f
        if (type < 0 || type >= SOCK_MAX)
                return -EINVAL;
  
@@ -25926,7 +25738,7 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
        /* Compatibility.
  
           This uglymoron is moved from INET layer to here to avoid
-@@ -1411,6 +1450,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1403,6 +1442,7 @@ SYSCALL_DEFINE3(socket, int, family, int
        if (retval < 0)
                goto out;
  
@@ -25934,7 +25746,7 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
        retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
        if (retval < 0)
                goto out_release;
-@@ -1452,10 +1492,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1444,10 +1484,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
        err = sock_create(family, type, protocol, &sock1);
        if (err < 0)
                goto out;
@@ -25947,9 +25759,9 @@ diff -NurpP --minimal linux-3.7.7/net/socket.c linux-3.7.7-vs2.3.5.6/net/socket.
  
        err = sock1->ops->socketpair(sock1, sock2);
        if (err < 0)
-diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth.c linux-3.7.7-vs2.3.5.6/net/sunrpc/auth.c
---- linux-3.7.7/net/sunrpc/auth.c      2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/sunrpc/auth.c    2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/sunrpc/auth.c linux-3.9.4-vs2.3.6.1/net/sunrpc/auth.c
+--- linux-3.9.4/net/sunrpc/auth.c      2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/sunrpc/auth.c    2013-05-31 18:01:00.000000000 +0000
 @@ -15,6 +15,7 @@
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/gss_api.h>
@@ -25958,7 +25770,7 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth.c linux-3.7.7-vs2.3.5.6/net/su
  
  #ifdef RPC_DEBUG
  # define RPCDBG_FACILITY      RPCDBG_AUTH
-@@ -481,6 +482,7 @@ rpcauth_lookupcred(struct rpc_auth *auth
+@@ -480,6 +481,7 @@ rpcauth_lookupcred(struct rpc_auth *auth
        memset(&acred, 0, sizeof(acred));
        acred.uid = cred->fsuid;
        acred.gid = cred->fsgid;
@@ -25966,17 +25778,17 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth.c linux-3.7.7-vs2.3.5.6/net/su
        acred.group_info = get_group_info(((struct cred *)cred)->group_info);
  
        ret = auth->au_ops->lookup_cred(auth, &acred, flags);
-@@ -521,6 +523,7 @@ rpcauth_bind_root_cred(struct rpc_task *
+@@ -520,6 +522,7 @@ rpcauth_bind_root_cred(struct rpc_task *
        struct auth_cred acred = {
-               .uid = 0,
-               .gid = 0,
+               .uid = GLOBAL_ROOT_UID,
+               .gid = GLOBAL_ROOT_GID,
 +              .tag = dx_current_tag(),
        };
  
        dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth_unix.c linux-3.7.7-vs2.3.5.6/net/sunrpc/auth_unix.c
---- linux-3.7.7/net/sunrpc/auth_unix.c 2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/sunrpc/auth_unix.c       2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/sunrpc/auth_unix.c linux-3.9.4-vs2.3.6.1/net/sunrpc/auth_unix.c
+--- linux-3.9.4/net/sunrpc/auth_unix.c 2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/sunrpc/auth_unix.c       2013-05-31 18:05:54.000000000 +0000
 @@ -13,11 +13,13 @@
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/auth.h>
@@ -25987,30 +25799,30 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth_unix.c linux-3.7.7-vs2.3.5.6/n
  
  struct unx_cred {
        struct rpc_cred         uc_base;
-+      tag_t                   uc_tag;
-       gid_t                   uc_gid;
-       gid_t                   uc_gids[NFS_NGROUPS];
++      ktag_t                  uc_tag;
+       kgid_t                  uc_gid;
+       kgid_t                  uc_gids[NFS_NGROUPS];
  };
-@@ -79,6 +81,7 @@ unx_create_cred(struct rpc_auth *auth, s
+@@ -80,6 +82,7 @@ unx_create_cred(struct rpc_auth *auth, s
                groups = NFS_NGROUPS;
  
        cred->uc_gid = acred->gid;
 +      cred->uc_tag = acred->tag;
-       for (i = 0; i < groups; i++) {
-               gid_t gid;
-               gid = from_kgid(&init_user_ns, GROUP_AT(acred->group_info, i));
-@@ -123,7 +126,9 @@ unx_match(struct auth_cred *acred, struc
+       for (i = 0; i < groups; i++)
+               cred->uc_gids[i] = GROUP_AT(acred->group_info, i);
+       if (i < NFS_NGROUPS)
+@@ -121,7 +124,9 @@ unx_match(struct auth_cred *acred, struc
        unsigned int i;
  
  
--      if (cred->uc_uid != acred->uid || cred->uc_gid != acred->gid)
-+      if (cred->uc_uid != acred->uid ||
-+              cred->uc_gid != acred->gid ||
-+              cred->uc_tag != acred->tag)
+-      if (!uid_eq(cred->uc_uid, acred->uid) || !gid_eq(cred->uc_gid, acred->gid))
++      if (!uid_eq(cred->uc_uid, acred->uid) ||
++          !gid_eq(cred->uc_gid, acred->gid) ||
++          !tag_eq(cred->uc_tag, acred->tag))
                return 0;
  
        if (acred->group_info != NULL)
-@@ -152,7 +157,7 @@ unx_marshal(struct rpc_task *task, __be3
+@@ -146,7 +151,7 @@ unx_marshal(struct rpc_task *task, __be3
        struct rpc_clnt *clnt = task->tk_client;
        struct unx_cred *cred = container_of(task->tk_rqstp->rq_cred, struct unx_cred, uc_base);
        __be32          *base, *hold;
@@ -26019,24 +25831,25 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/auth_unix.c linux-3.7.7-vs2.3.5.6/n
  
        *p++ = htonl(RPC_AUTH_UNIX);
        base = p++;
-@@ -162,9 +167,12 @@ unx_marshal(struct rpc_task *task, __be3
-        * Copy the UTS nodename captured when the client was created.
+@@ -157,8 +162,13 @@ unx_marshal(struct rpc_task *task, __be3
         */
        p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen);
-+      tag = task->tk_client->cl_tag;
  
--      *p++ = htonl((u32) cred->uc_uid);
--      *p++ = htonl((u32) cred->uc_gid);
+-      *p++ = htonl((u32) from_kuid(&init_user_ns, cred->uc_uid));
+-      *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gid));
++      tag = task->tk_client->cl_tag;
 +      *p++ = htonl((u32) TAGINO_UID(tag,
-+              cred->uc_uid, cred->uc_tag));
++              from_kuid(&init_user_ns, cred->uc_uid),
++              from_ktag(&init_user_ns, cred->uc_tag)));
 +      *p++ = htonl((u32) TAGINO_GID(tag,
-+              cred->uc_gid, cred->uc_tag));
++              from_kgid(&init_user_ns, cred->uc_gid),
++              from_ktag(&init_user_ns, cred->uc_tag)));
        hold = p++;
-       for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++)
-               *p++ = htonl((u32) cred->uc_gids[i]);
-diff -NurpP --minimal linux-3.7.7/net/sunrpc/clnt.c linux-3.7.7-vs2.3.5.6/net/sunrpc/clnt.c
---- linux-3.7.7/net/sunrpc/clnt.c      2013-02-11 23:17:04.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/sunrpc/clnt.c    2013-02-05 01:14:43.000000000 +0000
+       for (i = 0; i < 16 && gid_valid(cred->uc_gids[i]); i++)
+               *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i]));
+diff -NurpP --minimal linux-3.9.4/net/sunrpc/clnt.c linux-3.9.4-vs2.3.6.1/net/sunrpc/clnt.c
+--- linux-3.9.4/net/sunrpc/clnt.c      2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/sunrpc/clnt.c    2013-05-31 17:17:54.000000000 +0000
 @@ -31,6 +31,7 @@
  #include <linux/in6.h>
  #include <linux/un.h>
@@ -26044,8 +25857,8 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/clnt.c linux-3.7.7-vs2.3.5.6/net/su
 +#include <linux/vs_cvirt.h>
  
  #include <linux/sunrpc/clnt.h>
- #include <linux/sunrpc/rpc_pipe_fs.h>
-@@ -481,6 +482,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
+ #include <linux/sunrpc/addr.h>
+@@ -482,6 +483,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
        if (!(args->flags & RPC_CLNT_CREATE_QUIET))
                clnt->cl_chatty = 1;
  
@@ -26055,9 +25868,9 @@ diff -NurpP --minimal linux-3.7.7/net/sunrpc/clnt.c linux-3.7.7-vs2.3.5.6/net/su
        return clnt;
  }
  EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-3.7.7/net/unix/af_unix.c linux-3.7.7-vs2.3.5.6/net/unix/af_unix.c
---- linux-3.7.7/net/unix/af_unix.c     2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/net/unix/af_unix.c   2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/net/unix/af_unix.c linux-3.9.4-vs2.3.6.1/net/unix/af_unix.c
+--- linux-3.9.4/net/unix/af_unix.c     2013-05-31 13:45:33.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/net/unix/af_unix.c   2013-05-31 17:17:54.000000000 +0000
 @@ -114,6 +114,8 @@
  #include <linux/mount.h>
  #include <net/checksum.h>
@@ -26067,7 +25880,7 @@ diff -NurpP --minimal linux-3.7.7/net/unix/af_unix.c linux-3.7.7-vs2.3.5.6/net/u
  
  struct hlist_head unix_socket_table[2 * UNIX_HASH_SIZE];
  EXPORT_SYMBOL_GPL(unix_socket_table);
-@@ -271,6 +273,8 @@ static struct sock *__unix_find_socket_b
+@@ -270,6 +272,8 @@ static struct sock *__unix_find_socket_b
                if (!net_eq(sock_net(s), net))
                        continue;
  
@@ -26076,7 +25889,7 @@ diff -NurpP --minimal linux-3.7.7/net/unix/af_unix.c linux-3.7.7-vs2.3.5.6/net/u
                if (u->addr->len == len &&
                    !memcmp(u->addr->name, sunname, len))
                        goto found;
-@@ -2259,6 +2263,8 @@ static struct sock *unix_from_bucket(str
+@@ -2256,6 +2260,8 @@ static struct sock *unix_from_bucket(str
        for (sk = sk_head(&unix_socket_table[bucket]); sk; sk = sk_next(sk)) {
                if (sock_net(sk) != seq_file_net(seq))
                        continue;
@@ -26085,7 +25898,7 @@ diff -NurpP --minimal linux-3.7.7/net/unix/af_unix.c linux-3.7.7-vs2.3.5.6/net/u
                if (++count == offset)
                        break;
        }
-@@ -2276,6 +2282,8 @@ static struct sock *unix_next_socket(str
+@@ -2273,6 +2279,8 @@ static struct sock *unix_next_socket(str
                sk = sk_next(sk);
                if (!sk)
                        goto next_bucket;
@@ -26094,9 +25907,9 @@ diff -NurpP --minimal linux-3.7.7/net/unix/af_unix.c linux-3.7.7-vs2.3.5.6/net/u
                if (sock_net(sk) == seq_file_net(seq))
                        return sk;
        }
-diff -NurpP --minimal linux-3.7.7/scripts/checksyscalls.sh linux-3.7.7-vs2.3.5.6/scripts/checksyscalls.sh
---- linux-3.7.7/scripts/checksyscalls.sh       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/scripts/checksyscalls.sh     2012-12-18 15:13:16.000000000 +0000
+diff -NurpP --minimal linux-3.9.4/scripts/checksyscalls.sh linux-3.9.4-vs2.3.6.1/scripts/checksyscalls.sh
+--- linux-3.9.4/scripts/checksyscalls.sh       2012-12-11 03:30:57.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/scripts/checksyscalls.sh     2013-05-31 14:47:11.000000000 +0000
 @@ -193,7 +193,6 @@ cat << EOF
  #define __IGNORE_afs_syscall
  #define __IGNORE_getpmsg
@@ -26105,24 +25918,174 @@ diff -NurpP --minimal linux-3.7.7/scripts/checksyscalls.sh linux-3.7.7-vs2.3.5.6
  EOF
  }
  
-diff -NurpP --minimal linux-3.7.7/security/commoncap.c linux-3.7.7-vs2.3.5.6/security/commoncap.c
---- linux-3.7.7/security/commoncap.c   2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/security/commoncap.c 2012-12-18 15:13:16.000000000 +0000
-@@ -76,14 +76,20 @@ int cap_netlink_send(struct sock *sk, st
+diff -NurpP --minimal linux-3.9.4/scripts/mod/devicetable-offsets.h linux-3.9.4-vs2.3.6.1/scripts/mod/devicetable-offsets.h
+--- linux-3.9.4/scripts/mod/devicetable-offsets.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/scripts/mod/devicetable-offsets.h    2013-06-01 00:22:25.000000000 +0000
+@@ -0,0 +1,146 @@
++#ifndef __DEVICEVTABLE_OFFSETS_H__
++#define __DEVICEVTABLE_OFFSETS_H__
++/*
++ * DO NOT MODIFY.
++ *
++ * This file was generated by Kbuild
++ *
++ */
++
++#define SIZE_usb_device_id 32 /* sizeof(struct usb_device_id) # */
++#define OFF_usb_device_id_match_flags 0 /* offsetof(struct usb_device_id, match_flags)        # */
++#define OFF_usb_device_id_idVendor 2 /* offsetof(struct usb_device_id, idVendor)      # */
++#define OFF_usb_device_id_idProduct 4 /* offsetof(struct usb_device_id, idProduct)    # */
++#define OFF_usb_device_id_bcdDevice_lo 6 /* offsetof(struct usb_device_id, bcdDevice_lo)      # */
++#define OFF_usb_device_id_bcdDevice_hi 8 /* offsetof(struct usb_device_id, bcdDevice_hi)      # */
++#define OFF_usb_device_id_bDeviceClass 10 /* offsetof(struct usb_device_id, bDeviceClass)     # */
++#define OFF_usb_device_id_bDeviceSubClass 11 /* offsetof(struct usb_device_id, bDeviceSubClass)       # */
++#define OFF_usb_device_id_bDeviceProtocol 12 /* offsetof(struct usb_device_id, bDeviceProtocol)       # */
++#define OFF_usb_device_id_bInterfaceClass 13 /* offsetof(struct usb_device_id, bInterfaceClass)       # */
++#define OFF_usb_device_id_bInterfaceSubClass 14 /* offsetof(struct usb_device_id, bInterfaceSubClass) # */
++#define OFF_usb_device_id_bInterfaceProtocol 15 /* offsetof(struct usb_device_id, bInterfaceProtocol) # */
++#define OFF_usb_device_id_bInterfaceNumber 16 /* offsetof(struct usb_device_id, bInterfaceNumber)     # */
++#define SIZE_hid_device_id 24 /* sizeof(struct hid_device_id) # */
++#define OFF_hid_device_id_bus 0 /* offsetof(struct hid_device_id, bus)        # */
++#define OFF_hid_device_id_group 2 /* offsetof(struct hid_device_id, group)    # */
++#define OFF_hid_device_id_vendor 4 /* offsetof(struct hid_device_id, vendor)  # */
++#define OFF_hid_device_id_product 8 /* offsetof(struct hid_device_id, product)        # */
++#define SIZE_ieee1394_device_id 32 /* sizeof(struct ieee1394_device_id)       # */
++#define OFF_ieee1394_device_id_match_flags 0 /* offsetof(struct ieee1394_device_id, match_flags)      # */
++#define OFF_ieee1394_device_id_vendor_id 4 /* offsetof(struct ieee1394_device_id, vendor_id)  # */
++#define OFF_ieee1394_device_id_model_id 8 /* offsetof(struct ieee1394_device_id, model_id)    # */
++#define OFF_ieee1394_device_id_specifier_id 12 /* offsetof(struct ieee1394_device_id, specifier_id)   # */
++#define OFF_ieee1394_device_id_version 16 /* offsetof(struct ieee1394_device_id, version)     # */
++#define SIZE_pci_device_id 32 /* sizeof(struct pci_device_id) # */
++#define OFF_pci_device_id_vendor 0 /* offsetof(struct pci_device_id, vendor)  # */
++#define OFF_pci_device_id_device 4 /* offsetof(struct pci_device_id, device)  # */
++#define OFF_pci_device_id_subvendor 8 /* offsetof(struct pci_device_id, subvendor)    # */
++#define OFF_pci_device_id_subdevice 12 /* offsetof(struct pci_device_id, subdevice)   # */
++#define OFF_pci_device_id_class 16 /* offsetof(struct pci_device_id, class)   # */
++#define OFF_pci_device_id_class_mask 20 /* offsetof(struct pci_device_id, class_mask) # */
++#define SIZE_ccw_device_id 16 /* sizeof(struct ccw_device_id) # */
++#define OFF_ccw_device_id_match_flags 0 /* offsetof(struct ccw_device_id, match_flags)        # */
++#define OFF_ccw_device_id_cu_type 2 /* offsetof(struct ccw_device_id, cu_type)        # */
++#define OFF_ccw_device_id_cu_model 6 /* offsetof(struct ccw_device_id, cu_model)      # */
++#define OFF_ccw_device_id_dev_type 4 /* offsetof(struct ccw_device_id, dev_type)      # */
++#define OFF_ccw_device_id_dev_model 7 /* offsetof(struct ccw_device_id, dev_model)    # */
++#define SIZE_ap_device_id 16 /* sizeof(struct ap_device_id)   # */
++#define OFF_ap_device_id_dev_type 2 /* offsetof(struct ap_device_id, dev_type)        # */
++#define SIZE_css_device_id 16 /* sizeof(struct css_device_id) # */
++#define OFF_css_device_id_type 1 /* offsetof(struct css_device_id, type)      # */
++#define SIZE_serio_device_id 4 /* sizeof(struct serio_device_id)      # */
++#define OFF_serio_device_id_type 0 /* offsetof(struct serio_device_id, type)  # */
++#define OFF_serio_device_id_proto 3 /* offsetof(struct serio_device_id, proto)        # */
++#define OFF_serio_device_id_id 2 /* offsetof(struct serio_device_id, id)      # */
++#define OFF_serio_device_id_extra 1 /* offsetof(struct serio_device_id, extra)        # */
++#define SIZE_acpi_device_id 24 /* sizeof(struct acpi_device_id)       # */
++#define OFF_acpi_device_id_id 0 /* offsetof(struct acpi_device_id, id)        # */
++#define SIZE_pnp_device_id 16 /* sizeof(struct pnp_device_id) # */
++#define OFF_pnp_device_id_id 0 /* offsetof(struct pnp_device_id, id)  # */
++#define SIZE_pnp_card_device_id 80 /* sizeof(struct pnp_card_device_id)       # */
++#define OFF_pnp_card_device_id_devs 16 /* offsetof(struct pnp_card_device_id, devs)   # */
++#define SIZE_pcmcia_device_id 80 /* sizeof(struct pcmcia_device_id)   # */
++#define OFF_pcmcia_device_id_match_flags 0 /* offsetof(struct pcmcia_device_id, match_flags)  # */
++#define OFF_pcmcia_device_id_manf_id 2 /* offsetof(struct pcmcia_device_id, manf_id)  # */
++#define OFF_pcmcia_device_id_card_id 4 /* offsetof(struct pcmcia_device_id, card_id)  # */
++#define OFF_pcmcia_device_id_func_id 6 /* offsetof(struct pcmcia_device_id, func_id)  # */
++#define OFF_pcmcia_device_id_function 7 /* offsetof(struct pcmcia_device_id, function)        # */
++#define OFF_pcmcia_device_id_device_no 8 /* offsetof(struct pcmcia_device_id, device_no)      # */
++#define OFF_pcmcia_device_id_prod_id_hash 12 /* offsetof(struct pcmcia_device_id, prod_id_hash)       # */
++#define SIZE_of_device_id 200 /* sizeof(struct of_device_id)  # */
++#define OFF_of_device_id_name 0 /* offsetof(struct of_device_id, name)        # */
++#define OFF_of_device_id_type 32 /* offsetof(struct of_device_id, type)       # */
++#define OFF_of_device_id_compatible 64 /* offsetof(struct of_device_id, compatible)   # */
++#define SIZE_vio_device_id 64 /* sizeof(struct vio_device_id) # */
++#define OFF_vio_device_id_type 0 /* offsetof(struct vio_device_id, type)      # */
++#define OFF_vio_device_id_compat 32 /* offsetof(struct vio_device_id, compat) # */
++#define SIZE_input_device_id 192 /* sizeof(struct input_device_id)    # */
++#define OFF_input_device_id_flags 0 /* offsetof(struct input_device_id, flags)        # */
++#define OFF_input_device_id_bustype 8 /* offsetof(struct input_device_id, bustype)    # */
++#define OFF_input_device_id_vendor 10 /* offsetof(struct input_device_id, vendor)     # */
++#define OFF_input_device_id_product 12 /* offsetof(struct input_device_id, product)   # */
++#define OFF_input_device_id_version 14 /* offsetof(struct input_device_id, version)   # */
++#define OFF_input_device_id_evbit 16 /* offsetof(struct input_device_id, evbit)       # */
++#define OFF_input_device_id_keybit 24 /* offsetof(struct input_device_id, keybit)     # */
++#define OFF_input_device_id_relbit 120 /* offsetof(struct input_device_id, relbit)    # */
++#define OFF_input_device_id_absbit 128 /* offsetof(struct input_device_id, absbit)    # */
++#define OFF_input_device_id_mscbit 136 /* offsetof(struct input_device_id, mscbit)    # */
++#define OFF_input_device_id_ledbit 144 /* offsetof(struct input_device_id, ledbit)    # */
++#define OFF_input_device_id_sndbit 152 /* offsetof(struct input_device_id, sndbit)    # */
++#define OFF_input_device_id_ffbit 160 /* offsetof(struct input_device_id, ffbit)      # */
++#define OFF_input_device_id_swbit 176 /* offsetof(struct input_device_id, swbit)      # */
++#define SIZE_eisa_device_id 16 /* sizeof(struct eisa_device_id)       # */
++#define OFF_eisa_device_id_sig 0 /* offsetof(struct eisa_device_id, sig)      # */
++#define SIZE_parisc_device_id 8 /* sizeof(struct parisc_device_id)    # */
++#define OFF_parisc_device_id_hw_type 0 /* offsetof(struct parisc_device_id, hw_type)  # */
++#define OFF_parisc_device_id_hversion 2 /* offsetof(struct parisc_device_id, hversion)        # */
++#define OFF_parisc_device_id_hversion_rev 1 /* offsetof(struct parisc_device_id, hversion_rev)        # */
++#define OFF_parisc_device_id_sversion 4 /* offsetof(struct parisc_device_id, sversion)        # */
++#define SIZE_sdio_device_id 16 /* sizeof(struct sdio_device_id)       # */
++#define OFF_sdio_device_id_class 0 /* offsetof(struct sdio_device_id, class)  # */
++#define OFF_sdio_device_id_vendor 2 /* offsetof(struct sdio_device_id, vendor)        # */
++#define OFF_sdio_device_id_device 4 /* offsetof(struct sdio_device_id, device)        # */
++#define SIZE_ssb_device_id 6 /* sizeof(struct ssb_device_id)  # */
++#define OFF_ssb_device_id_vendor 0 /* offsetof(struct ssb_device_id, vendor)  # */
++#define OFF_ssb_device_id_coreid 2 /* offsetof(struct ssb_device_id, coreid)  # */
++#define OFF_ssb_device_id_revision 4 /* offsetof(struct ssb_device_id, revision)      # */
++#define SIZE_bcma_device_id 6 /* sizeof(struct bcma_device_id)        # */
++#define OFF_bcma_device_id_manuf 0 /* offsetof(struct bcma_device_id, manuf)  # */
++#define OFF_bcma_device_id_id 2 /* offsetof(struct bcma_device_id, id)        # */
++#define OFF_bcma_device_id_rev 4 /* offsetof(struct bcma_device_id, rev)      # */
++#define OFF_bcma_device_id_class 5 /* offsetof(struct bcma_device_id, class)  # */
++#define SIZE_virtio_device_id 8 /* sizeof(struct virtio_device_id)    # */
++#define OFF_virtio_device_id_device 0 /* offsetof(struct virtio_device_id, device)    # */
++#define OFF_virtio_device_id_vendor 4 /* offsetof(struct virtio_device_id, vendor)    # */
++#define SIZE_hv_vmbus_device_id 24 /* sizeof(struct hv_vmbus_device_id)       # */
++#define OFF_hv_vmbus_device_id_guid 0 /* offsetof(struct hv_vmbus_device_id, guid)    # */
++#define SIZE_i2c_device_id 32 /* sizeof(struct i2c_device_id) # */
++#define OFF_i2c_device_id_name 0 /* offsetof(struct i2c_device_id, name)      # */
++#define SIZE_spi_device_id 40 /* sizeof(struct spi_device_id) # */
++#define OFF_spi_device_id_name 0 /* offsetof(struct spi_device_id, name)      # */
++#define SIZE_dmi_system_id 344 /* sizeof(struct dmi_system_id)        # */
++#define OFF_dmi_system_id_matches 16 /* offsetof(struct dmi_system_id, matches)       # */
++#define SIZE_platform_device_id 32 /* sizeof(struct platform_device_id)       # */
++#define OFF_platform_device_id_name 0 /* offsetof(struct platform_device_id, name)    # */
++#define SIZE_mdio_device_id 8 /* sizeof(struct mdio_device_id)        # */
++#define OFF_mdio_device_id_phy_id 0 /* offsetof(struct mdio_device_id, phy_id)        # */
++#define OFF_mdio_device_id_phy_id_mask 4 /* offsetof(struct mdio_device_id, phy_id_mask)      # */
++#define SIZE_zorro_device_id 16 /* sizeof(struct zorro_device_id)     # */
++#define OFF_zorro_device_id_id 0 /* offsetof(struct zorro_device_id, id)      # */
++#define SIZE_isapnp_device_id 16 /* sizeof(struct isapnp_device_id)   # */
++#define OFF_isapnp_device_id_vendor 4 /* offsetof(struct isapnp_device_id, vendor)    # */
++#define OFF_isapnp_device_id_function 6 /* offsetof(struct isapnp_device_id, function)        # */
++#define SIZE_ipack_device_id 12 /* sizeof(struct ipack_device_id)     # */
++#define OFF_ipack_device_id_format 0 /* offsetof(struct ipack_device_id, format)      # */
++#define OFF_ipack_device_id_vendor 4 /* offsetof(struct ipack_device_id, vendor)      # */
++#define OFF_ipack_device_id_device 8 /* offsetof(struct ipack_device_id, device)      # */
++#define SIZE_amba_id 16 /* sizeof(struct amba_id)     # */
++#define OFF_amba_id_id 0 /* offsetof(struct amba_id, id)      # */
++#define OFF_amba_id_mask 4 /* offsetof(struct amba_id, mask)  # */
++#define SIZE_x86_cpu_id 16 /* sizeof(struct x86_cpu_id)       # */
++#define OFF_x86_cpu_id_feature 6 /* offsetof(struct x86_cpu_id, feature)      # */
++#define OFF_x86_cpu_id_family 2 /* offsetof(struct x86_cpu_id, family)        # */
++#define OFF_x86_cpu_id_model 4 /* offsetof(struct x86_cpu_id, model)  # */
++#define OFF_x86_cpu_id_vendor 0 /* offsetof(struct x86_cpu_id, vendor)        # */
++
++#endif
+diff -NurpP --minimal linux-3.9.4/security/commoncap.c linux-3.9.4-vs2.3.6.1/security/commoncap.c
+--- linux-3.9.4/security/commoncap.c   2013-05-31 13:45:34.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/security/commoncap.c 2013-05-31 15:07:02.000000000 +0000
+@@ -76,6 +76,7 @@ int cap_netlink_send(struct sock *sk, st
  int cap_capable(const struct cred *cred, struct user_namespace *targ_ns,
                int cap, int audit)
  {
 +      struct vx_info *vxi = current_vx_info(); /* FIXME: get vxi from cred? */
-+
-       for (;;) {
-               /* The owner of the user namespace has all caps. */
-               if (targ_ns != &init_user_ns && uid_eq(targ_ns->owner, cred->euid))
-                       return 0;
+       struct user_namespace *ns = targ_ns;
  
+       /* See if cred has the capability in the target user namespace
+@@ -84,8 +85,12 @@ int cap_capable(const struct cred *cred,
+        */
+       for (;;) {
                /* Do we have the necessary capabilities? */
--              if (targ_ns == cred->user_ns)
+-              if (ns == cred->user_ns)
 -                      return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM;
-+              if (targ_ns == cred->user_ns) {
++              if (ns == cred->user_ns) {
 +                      if (vx_info_flags(vxi, VXF_STATE_SETUP, 0) &&
 +                          cap_raised(cred->cap_effective, cap))
 +                              return 0;
@@ -26130,8 +26093,8 @@ diff -NurpP --minimal linux-3.7.7/security/commoncap.c linux-3.7.7-vs2.3.5.6/sec
 +              }
  
                /* Have we tried all of the parent namespaces? */
-               if (targ_ns == &init_user_ns)
-@@ -619,7 +625,7 @@ int cap_inode_setxattr(struct dentry *de
+               if (ns == &init_user_ns)
+@@ -628,7 +633,7 @@ int cap_inode_setxattr(struct dentry *de
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26140,7 +26103,7 @@ diff -NurpP --minimal linux-3.7.7/security/commoncap.c linux-3.7.7-vs2.3.5.6/sec
                return -EPERM;
        return 0;
  }
-@@ -645,7 +651,7 @@ int cap_inode_removexattr(struct dentry
+@@ -654,7 +659,7 @@ int cap_inode_removexattr(struct dentry
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26149,10 +26112,10 @@ diff -NurpP --minimal linux-3.7.7/security/commoncap.c linux-3.7.7-vs2.3.5.6/sec
                return -EPERM;
        return 0;
  }
-diff -NurpP --minimal linux-3.7.7/security/selinux/hooks.c linux-3.7.7-vs2.3.5.6/security/selinux/hooks.c
---- linux-3.7.7/security/selinux/hooks.c       2012-12-11 03:30:57.000000000 +0000
-+++ linux-3.7.7-vs2.3.5.6/security/selinux/hooks.c     2012-12-18 15:13:16.000000000 +0000
-@@ -66,7 +66,6 @@
+diff -NurpP --minimal linux-3.9.4/security/selinux/hooks.c linux-3.9.4-vs2.3.6.1/security/selinux/hooks.c
+--- linux-3.9.4/security/selinux/hooks.c       2013-05-31 13:45:34.000000000 +0000
++++ linux-3.9.4-vs2.3.6.1/security/selinux/hooks.c     2013-05-31 14:47:11.000000000 +0000
+@@ -67,7 +67,6 @@
  #include <linux/dccp.h>
  #include <linux/quota.h>
  #include <linux/un.h>         /* for Unix socket types */
index cd481de630ff0445938028078575ecca484ed9a0..0643a3b415e2abc93816a3243346eb29772f292a 100644 (file)
@@ -184,7 +184,7 @@ Patch59:    kernel-rndis_host-wm5.patch
 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
 Patch85:       kernel-hostap.patch
 
-# http://vserver.13thfloor.at/Experimental/patch-3.7.7-vs2.3.5.6.diff
+# http://vserver.13thfloor.at/Experimental/patch-3.9.4-vs2.3.6.1.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)
This page took 0.988588 seconds and 4 git commands to generate.