]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- update vserver patch; kernel builds auto/th/kernel-3_3_0-0_1
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 19 Mar 2012 21:33:14 +0000 (21:33 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    kernel-vserver-2.3.patch -> 1.93
    kernel.spec -> 1.1032

kernel-vserver-2.3.patch
kernel.spec

index 19e2791d3688a97acd7841f557d88ee8603453c6..9236ac8512a6016c676085f55ae78c2d32e98379 100644 (file)
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-3.2.11/Documentation/vserver/debug.txt linux-3.2.11-vs2.3.2.8/Documentation/vserver/debug.txt
---- linux-3.2.11/Documentation/vserver/debug.txt       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/Documentation/vserver/debug.txt     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/Documentation/vserver/debug.txt linux-3.3-vs2.3.3.1/Documentation/vserver/debug.txt
+--- linux-3.3/Documentation/vserver/debug.txt  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/Documentation/vserver/debug.txt        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,154 @@
 +
 +debug_cvirt:
@@ -156,10 +156,10 @@ diff -NurpP --minimal linux-3.2.11/Documentation/vserver/debug.txt linux-3.2.11-
 + 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.2.11/arch/alpha/Kconfig linux-3.2.11-vs2.3.2.8/arch/alpha/Kconfig
---- linux-3.2.11/arch/alpha/Kconfig    2012-01-09 16:13:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/alpha/Kconfig  2011-12-05 19:33:02.000000000 +0100
-@@ -665,6 +665,8 @@ config DUMMY_CONSOLE
+diff -NurpP --minimal linux-3.3/arch/alpha/Kconfig linux-3.3-vs2.3.3.1/arch/alpha/Kconfig
+--- linux-3.3/arch/alpha/Kconfig       2012-03-19 19:46:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/alpha/Kconfig     2012-02-24 03:55:06.000000000 +0100
+@@ -662,6 +662,8 @@ config DUMMY_CONSOLE
        depends on VGA_HOSE
        default y
  
@@ -168,9 +168,9 @@ diff -NurpP --minimal linux-3.2.11/arch/alpha/Kconfig linux-3.2.11-vs2.3.2.8/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/entry.S linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/entry.S
---- linux-3.2.11/arch/alpha/kernel/entry.S     2010-10-21 13:06:45.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/entry.S   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/alpha/kernel/entry.S linux-3.3-vs2.3.3.1/arch/alpha/kernel/entry.S
+--- linux-3.3/arch/alpha/kernel/entry.S        2010-10-21 13:06:45.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/alpha/kernel/entry.S      2012-02-24 03:55:06.000000000 +0100
 @@ -860,24 +860,15 @@ sys_getxgid:
        .globl  sys_getxpid
        .ent    sys_getxpid
@@ -203,9 +203,9 @@ diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/entry.S linux-3.2.11-vs2.3.
        ret
  .end sys_getxpid
  
-diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/ptrace.c
---- linux-3.2.11/arch/alpha/kernel/ptrace.c    2011-01-05 21:48:40.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/ptrace.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/alpha/kernel/ptrace.c linux-3.3-vs2.3.3.1/arch/alpha/kernel/ptrace.c
+--- linux-3.3/arch/alpha/kernel/ptrace.c       2011-01-05 21:48:40.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/alpha/kernel/ptrace.c     2012-02-24 03:55:06.000000000 +0100
 @@ -13,6 +13,7 @@
  #include <linux/user.h>
  #include <linux/security.h>
@@ -214,9 +214,9 @@ diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/ptrace.c linux-3.2.11-vs2.3
  
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
-diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/systbls.S linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/systbls.S
---- linux-3.2.11/arch/alpha/kernel/systbls.S   2012-01-09 16:13:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/systbls.S 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/alpha/kernel/systbls.S linux-3.3-vs2.3.3.1/arch/alpha/kernel/systbls.S
+--- linux-3.3/arch/alpha/kernel/systbls.S      2012-01-09 16:13:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/alpha/kernel/systbls.S    2012-02-24 03:55:06.000000000 +0100
 @@ -446,7 +446,7 @@ sys_call_table:
        .quad sys_stat64                        /* 425 */
        .quad sys_lstat64
@@ -226,9 +226,9 @@ diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/systbls.S linux-3.2.11-vs2.
        .quad sys_ni_syscall                    /* sys_mbind */
        .quad sys_ni_syscall                    /* sys_get_mempolicy */
        .quad sys_ni_syscall                    /* sys_set_mempolicy */
-diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/traps.c
---- linux-3.2.11/arch/alpha/kernel/traps.c     2010-10-21 13:06:46.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/alpha/kernel/traps.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/alpha/kernel/traps.c linux-3.3-vs2.3.3.1/arch/alpha/kernel/traps.c
+--- linux-3.3/arch/alpha/kernel/traps.c        2010-10-21 13:06:46.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/alpha/kernel/traps.c      2012-02-24 03:55:06.000000000 +0100
 @@ -183,7 +183,8 @@ die_if_kernel(char * str, struct pt_regs
  #ifdef CONFIG_SMP
        printk("CPU %d ", hard_smp_processor_id());
@@ -239,10 +239,10 @@ diff -NurpP --minimal linux-3.2.11/arch/alpha/kernel/traps.c linux-3.2.11-vs2.3.
        dik_show_regs(regs, r9_15);
        add_taint(TAINT_DIE);
        dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-3.2.11/arch/arm/Kconfig linux-3.2.11-vs2.3.2.8/arch/arm/Kconfig
---- linux-3.2.11/arch/arm/Kconfig      2012-03-14 10:22:11.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/arm/Kconfig    2012-03-14 10:24:05.000000000 +0100
-@@ -2242,6 +2242,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/arm/Kconfig linux-3.3-vs2.3.3.1/arch/arm/Kconfig
+--- linux-3.3/arch/arm/Kconfig 2012-03-19 19:46:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/arm/Kconfig       2012-03-19 20:52:09.000000000 +0100
+@@ -2266,6 +2266,8 @@ source "fs/Kconfig"
  
  source "arch/arm/Kconfig.debug"
  
@@ -251,9 +251,9 @@ diff -NurpP --minimal linux-3.2.11/arch/arm/Kconfig linux-3.2.11-vs2.3.2.8/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/calls.S linux-3.2.11-vs2.3.2.8/arch/arm/kernel/calls.S
---- linux-3.2.11/arch/arm/kernel/calls.S       2012-01-09 16:13:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/arm/kernel/calls.S     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/arm/kernel/calls.S linux-3.3-vs2.3.3.1/arch/arm/kernel/calls.S
+--- linux-3.3/arch/arm/kernel/calls.S  2012-01-09 16:13:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/arm/kernel/calls.S        2012-02-24 03:55:06.000000000 +0100
 @@ -322,7 +322,7 @@
  /* 310 */     CALL(sys_request_key)
                CALL(sys_keyctl)
@@ -263,10 +263,10 @@ diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/calls.S linux-3.2.11-vs2.3.2.
                CALL(sys_ioprio_set)
  /* 315 */     CALL(sys_ioprio_get)
                CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/process.c linux-3.2.11-vs2.3.2.8/arch/arm/kernel/process.c
---- linux-3.2.11/arch/arm/kernel/process.c     2012-01-09 16:13:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/arm/kernel/process.c   2011-12-05 19:33:02.000000000 +0100
-@@ -320,7 +320,8 @@ void __show_regs(struct pt_regs *regs)
+diff -NurpP --minimal linux-3.3/arch/arm/kernel/process.c linux-3.3-vs2.3.3.1/arch/arm/kernel/process.c
+--- linux-3.3/arch/arm/kernel/process.c        2012-03-19 19:46:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/arm/kernel/process.c      2012-02-24 03:55:06.000000000 +0100
+@@ -353,7 +353,8 @@ void __show_regs(struct pt_regs *regs)
  void show_regs(struct pt_regs * regs)
  {
        printk("\n");
@@ -276,9 +276,9 @@ diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/process.c linux-3.2.11-vs2.3.
        __show_regs(regs);
        dump_stack();
  }
-diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/arm/kernel/traps.c
---- linux-3.2.11/arch/arm/kernel/traps.c       2012-01-09 16:13:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/arm/kernel/traps.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/arm/kernel/traps.c linux-3.3-vs2.3.3.1/arch/arm/kernel/traps.c
+--- linux-3.3/arch/arm/kernel/traps.c  2012-03-19 19:46:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/arm/kernel/traps.c        2012-02-24 03:55:06.000000000 +0100
 @@ -244,8 +244,8 @@ static int __die(const char *str, int er
  
        print_modules();
@@ -290,10 +290,10 @@ diff -NurpP --minimal linux-3.2.11/arch/arm/kernel/traps.c linux-3.2.11-vs2.3.2.
  
        if (!user_mode(regs) || in_interrupt()) {
                dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.2.11/arch/cris/Kconfig linux-3.2.11-vs2.3.2.8/arch/cris/Kconfig
---- linux-3.2.11/arch/cris/Kconfig     2012-01-09 16:14:01.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/cris/Kconfig   2011-12-05 19:33:02.000000000 +0100
-@@ -678,6 +678,8 @@ source "drivers/staging/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/cris/Kconfig linux-3.3-vs2.3.3.1/arch/cris/Kconfig
+--- linux-3.3/arch/cris/Kconfig        2012-03-19 19:46:39.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/cris/Kconfig      2012-02-24 03:55:06.000000000 +0100
+@@ -675,6 +675,8 @@ source "drivers/staging/Kconfig"
  
  source "arch/cris/Kconfig.debug"
  
@@ -302,9 +302,9 @@ diff -NurpP --minimal linux-3.2.11/arch/cris/Kconfig linux-3.2.11-vs2.3.2.8/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/frv/kernel/kernel_thread.S linux-3.2.11-vs2.3.2.8/arch/frv/kernel/kernel_thread.S
---- linux-3.2.11/arch/frv/kernel/kernel_thread.S       2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/frv/kernel/kernel_thread.S     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/frv/kernel/kernel_thread.S linux-3.3-vs2.3.3.1/arch/frv/kernel/kernel_thread.S
+--- linux-3.3/arch/frv/kernel/kernel_thread.S  2008-12-25 00:26:37.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/frv/kernel/kernel_thread.S        2012-02-24 03:55:06.000000000 +0100
 @@ -37,7 +37,7 @@ kernel_thread:
  
        # start by forking the current process, but with shared VM
@@ -314,10 +314,10 @@ diff -NurpP --minimal linux-3.2.11/arch/frv/kernel/kernel_thread.S linux-3.2.11-
        sethi.p         #0xe4e4,gr9             ; second syscall arg    [newsp]
        setlo           #0xe4e4,gr9
        setlos.p        #0,gr10                 ; third syscall arg     [parent_tidptr]
-diff -NurpP --minimal linux-3.2.11/arch/h8300/Kconfig linux-3.2.11-vs2.3.2.8/arch/h8300/Kconfig
---- linux-3.2.11/arch/h8300/Kconfig    2012-01-09 16:14:01.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/h8300/Kconfig  2011-12-05 19:33:02.000000000 +0100
-@@ -213,6 +213,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/h8300/Kconfig linux-3.3-vs2.3.3.1/arch/h8300/Kconfig
+--- linux-3.3/arch/h8300/Kconfig       2012-03-19 19:46:39.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/h8300/Kconfig     2012-02-24 03:55:06.000000000 +0100
+@@ -214,6 +214,8 @@ source "fs/Kconfig"
  
  source "arch/h8300/Kconfig.debug"
  
@@ -326,10 +326,10 @@ diff -NurpP --minimal linux-3.2.11/arch/h8300/Kconfig linux-3.2.11-vs2.3.2.8/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/ia64/Kconfig linux-3.2.11-vs2.3.2.8/arch/ia64/Kconfig
---- linux-3.2.11/arch/ia64/Kconfig     2012-01-09 16:14:01.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/ia64/Kconfig   2011-12-05 19:33:02.000000000 +0100
-@@ -657,6 +657,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/ia64/Kconfig linux-3.3-vs2.3.3.1/arch/ia64/Kconfig
+--- linux-3.3/arch/ia64/Kconfig        2012-03-19 19:46:39.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/ia64/Kconfig      2012-02-24 03:55:06.000000000 +0100
+@@ -654,6 +654,8 @@ source "fs/Kconfig"
  
  source "arch/ia64/Kconfig.debug"
  
@@ -338,9 +338,9 @@ diff -NurpP --minimal linux-3.2.11/arch/ia64/Kconfig linux-3.2.11-vs2.3.2.8/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/entry.S linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/entry.S
---- linux-3.2.11/arch/ia64/kernel/entry.S      2012-01-09 16:14:02.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/entry.S    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/ia64/kernel/entry.S linux-3.3-vs2.3.3.1/arch/ia64/kernel/entry.S
+--- linux-3.3/arch/ia64/kernel/entry.S 2012-03-19 19:46:40.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/ia64/kernel/entry.S       2012-02-24 03:55:06.000000000 +0100
 @@ -1714,7 +1714,7 @@ sys_call_table:
        data8 sys_mq_notify
        data8 sys_mq_getsetattr
@@ -350,9 +350,9 @@ diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/entry.S linux-3.2.11-vs2.3.2
        data8 sys_waitid                        // 1270
        data8 sys_add_key
        data8 sys_request_key
-diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/process.c linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/process.c
---- linux-3.2.11/arch/ia64/kernel/process.c    2011-03-15 18:06:39.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/process.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/ia64/kernel/process.c linux-3.3-vs2.3.3.1/arch/ia64/kernel/process.c
+--- linux-3.3/arch/ia64/kernel/process.c       2011-03-15 18:06:39.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/ia64/kernel/process.c     2012-02-24 03:55:06.000000000 +0100
 @@ -109,8 +109,8 @@ show_regs (struct pt_regs *regs)
        unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
  
@@ -364,9 +364,9 @@ diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/process.c linux-3.2.11-vs2.3
        printk("psr : %016lx ifs : %016lx ip  : [<%016lx>]    %s (%s)\n",
               regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
               init_utsname()->release);
-diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/ptrace.c
---- linux-3.2.11/arch/ia64/kernel/ptrace.c     2011-01-05 21:48:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/ptrace.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/ia64/kernel/ptrace.c linux-3.3-vs2.3.3.1/arch/ia64/kernel/ptrace.c
+--- linux-3.3/arch/ia64/kernel/ptrace.c        2012-03-19 19:46:40.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/ia64/kernel/ptrace.c      2012-02-24 03:55:06.000000000 +0100
 @@ -21,6 +21,7 @@
  #include <linux/regset.h>
  #include <linux/elf.h>
@@ -375,9 +375,9 @@ diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/ptrace.c linux-3.2.11-vs2.3.
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/traps.c
---- linux-3.2.11/arch/ia64/kernel/traps.c      2010-07-07 18:31:01.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/ia64/kernel/traps.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/ia64/kernel/traps.c linux-3.3-vs2.3.3.1/arch/ia64/kernel/traps.c
+--- linux-3.3/arch/ia64/kernel/traps.c 2010-07-07 18:31:01.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/ia64/kernel/traps.c       2012-02-24 03:55:06.000000000 +0100
 @@ -59,8 +59,9 @@ die (const char *str, struct pt_regs *re
        put_cpu();
  
@@ -402,9 +402,9 @@ diff -NurpP --minimal linux-3.2.11/arch/ia64/kernel/traps.c linux-3.2.11-vs2.3.2
                        }
                }
        }
-diff -NurpP --minimal linux-3.2.11/arch/m32r/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/m32r/kernel/traps.c
---- linux-3.2.11/arch/m32r/kernel/traps.c      2011-10-24 18:44:58.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/m32r/kernel/traps.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/m32r/kernel/traps.c linux-3.3-vs2.3.3.1/arch/m32r/kernel/traps.c
+--- linux-3.3/arch/m32r/kernel/traps.c 2011-10-24 18:44:58.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/m32r/kernel/traps.c       2012-02-24 03:55:06.000000000 +0100
 @@ -196,8 +196,9 @@ static void show_registers(struct pt_reg
        } else {
                printk("SPI: %08lx\n", sp);
@@ -417,10 +417,10 @@ diff -NurpP --minimal linux-3.2.11/arch/m32r/kernel/traps.c linux-3.2.11-vs2.3.2
  
        /*
         * When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.2.11/arch/m68k/Kconfig linux-3.2.11-vs2.3.2.8/arch/m68k/Kconfig
---- linux-3.2.11/arch/m68k/Kconfig     2012-01-09 16:14:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/m68k/Kconfig   2011-12-05 19:33:02.000000000 +0100
-@@ -135,6 +135,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/m68k/Kconfig linux-3.3-vs2.3.3.1/arch/m68k/Kconfig
+--- linux-3.3/arch/m68k/Kconfig        2012-03-19 19:46:40.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/m68k/Kconfig      2012-02-24 03:55:06.000000000 +0100
+@@ -145,6 +145,8 @@ source "fs/Kconfig"
  
  source "arch/m68k/Kconfig.debug"
  
@@ -429,10 +429,10 @@ diff -NurpP --minimal linux-3.2.11/arch/m68k/Kconfig linux-3.2.11-vs2.3.2.8/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/mips/Kconfig linux-3.2.11-vs2.3.2.8/arch/mips/Kconfig
---- linux-3.2.11/arch/mips/Kconfig     2012-01-09 16:14:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/Kconfig   2011-12-05 19:33:02.000000000 +0100
-@@ -2478,6 +2478,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/mips/Kconfig linux-3.3-vs2.3.3.1/arch/mips/Kconfig
+--- linux-3.3/arch/mips/Kconfig        2012-03-19 19:46:41.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/Kconfig      2012-02-24 03:55:06.000000000 +0100
+@@ -2514,6 +2514,8 @@ source "fs/Kconfig"
  
  source "arch/mips/Kconfig.debug"
  
@@ -441,9 +441,9 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/Kconfig linux-3.2.11-vs2.3.2.8/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/arch/mips/kernel/ptrace.c
---- linux-3.2.11/arch/mips/kernel/ptrace.c     2011-07-22 11:17:36.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/ptrace.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/ptrace.c linux-3.3-vs2.3.3.1/arch/mips/kernel/ptrace.c
+--- linux-3.3/arch/mips/kernel/ptrace.c        2012-03-19 19:46:43.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/ptrace.c      2012-02-24 03:55:06.000000000 +0100
 @@ -25,6 +25,7 @@
  #include <linux/security.h>
  #include <linux/audit.h>
@@ -462,9 +462,9 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/ptrace.c linux-3.2.11-vs2.3.
        switch (request) {
        /* when I and D space are separate, these will need to be fixed. */
        case PTRACE_PEEKTEXT: /* read word at location addr. */
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall32-o32.S linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall32-o32.S
---- linux-3.2.11/arch/mips/kernel/scall32-o32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall32-o32.S      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/scall32-o32.S linux-3.3-vs2.3.3.1/arch/mips/kernel/scall32-o32.S
+--- linux-3.3/arch/mips/kernel/scall32-o32.S   2012-01-09 16:14:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/scall32-o32.S 2012-02-24 03:55:06.000000000 +0100
 @@ -523,7 +523,7 @@ einval:    li      v0, -ENOSYS
        sys     sys_mq_timedreceive     5
        sys     sys_mq_notify           2       /* 4275 */
@@ -474,9 +474,9 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall32-o32.S linux-3.2.11-v
        sys     sys_waitid              5
        sys     sys_ni_syscall          0       /* available, was setaltroot */
        sys     sys_add_key             5       /* 4280 */
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-64.S linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-64.S
---- linux-3.2.11/arch/mips/kernel/scall64-64.S 2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-64.S       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/scall64-64.S linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-64.S
+--- linux-3.3/arch/mips/kernel/scall64-64.S    2012-01-09 16:14:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-64.S  2012-02-24 03:55:06.000000000 +0100
 @@ -362,7 +362,7 @@ sys_call_table:
        PTR     sys_mq_timedreceive
        PTR     sys_mq_notify
@@ -486,9 +486,9 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-64.S linux-3.2.11-vs
        PTR     sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-n32.S linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-n32.S
---- linux-3.2.11/arch/mips/kernel/scall64-n32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-n32.S      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/scall64-n32.S linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-n32.S
+--- linux-3.3/arch/mips/kernel/scall64-n32.S   2012-01-09 16:14:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-n32.S 2012-02-24 03:55:06.000000000 +0100
 @@ -361,7 +361,7 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
@@ -498,9 +498,9 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-n32.S linux-3.2.11-v
        PTR     compat_sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-o32.S linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-o32.S
---- linux-3.2.11/arch/mips/kernel/scall64-o32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/scall64-o32.S      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/scall64-o32.S linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-o32.S
+--- linux-3.3/arch/mips/kernel/scall64-o32.S   2012-01-09 16:14:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/scall64-o32.S 2012-02-24 03:55:06.000000000 +0100
 @@ -480,7 +480,7 @@ sys_call_table:
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify            /* 4275 */
@@ -510,10 +510,10 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/scall64-o32.S linux-3.2.11-v
        PTR     sys_32_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key                     /* 4280 */
-diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/mips/kernel/traps.c
---- linux-3.2.11/arch/mips/kernel/traps.c      2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/mips/kernel/traps.c    2011-12-05 19:33:02.000000000 +0100
-@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs
+diff -NurpP --minimal linux-3.3/arch/mips/kernel/traps.c linux-3.3-vs2.3.3.1/arch/mips/kernel/traps.c
+--- linux-3.3/arch/mips/kernel/traps.c 2012-03-19 19:46:43.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/mips/kernel/traps.c       2012-03-19 20:52:09.000000000 +0100
+@@ -344,9 +344,10 @@ void show_registers(struct pt_regs *regs
  
        __show_regs(regs);
        print_modules();
@@ -527,10 +527,10 @@ diff -NurpP --minimal linux-3.2.11/arch/mips/kernel/traps.c linux-3.2.11-vs2.3.2
        if (cpu_has_userlocal) {
                unsigned long tls;
  
-diff -NurpP --minimal linux-3.2.11/arch/parisc/Kconfig linux-3.2.11-vs2.3.2.8/arch/parisc/Kconfig
---- linux-3.2.11/arch/parisc/Kconfig   2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/parisc/Kconfig 2011-12-05 19:33:02.000000000 +0100
-@@ -278,6 +278,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/parisc/Kconfig linux-3.3-vs2.3.3.1/arch/parisc/Kconfig
+--- linux-3.3/arch/parisc/Kconfig      2012-03-19 19:46:44.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/parisc/Kconfig    2012-02-24 03:55:06.000000000 +0100
+@@ -279,6 +279,8 @@ source "fs/Kconfig"
  
  source "arch/parisc/Kconfig.debug"
  
@@ -539,9 +539,9 @@ diff -NurpP --minimal linux-3.2.11/arch/parisc/Kconfig linux-3.2.11-vs2.3.2.8/ar
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/parisc/kernel/syscall_table.S linux-3.2.11-vs2.3.2.8/arch/parisc/kernel/syscall_table.S
---- linux-3.2.11/arch/parisc/kernel/syscall_table.S    2011-10-24 18:45:00.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/parisc/kernel/syscall_table.S  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/parisc/kernel/syscall_table.S linux-3.3-vs2.3.3.1/arch/parisc/kernel/syscall_table.S
+--- linux-3.3/arch/parisc/kernel/syscall_table.S       2011-10-24 18:45:00.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/parisc/kernel/syscall_table.S     2012-02-24 03:55:06.000000000 +0100
 @@ -361,7 +361,7 @@
        ENTRY_COMP(mbind)               /* 260 */
        ENTRY_COMP(get_mempolicy)
@@ -551,9 +551,9 @@ diff -NurpP --minimal linux-3.2.11/arch/parisc/kernel/syscall_table.S linux-3.2.
        ENTRY_SAME(add_key)
        ENTRY_SAME(request_key)         /* 265 */
        ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-3.2.11/arch/parisc/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/parisc/kernel/traps.c
---- linux-3.2.11/arch/parisc/kernel/traps.c    2011-10-24 18:45:00.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/parisc/kernel/traps.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/parisc/kernel/traps.c linux-3.3-vs2.3.3.1/arch/parisc/kernel/traps.c
+--- linux-3.3/arch/parisc/kernel/traps.c       2011-10-24 18:45:00.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/parisc/kernel/traps.c     2012-02-24 03:55:06.000000000 +0100
 @@ -236,8 +236,9 @@ void die_if_kernel(char *str, struct pt_
                if (err == 0)
                        return; /* STFU */
@@ -577,9 +577,9 @@ diff -NurpP --minimal linux-3.2.11/arch/parisc/kernel/traps.c linux-3.2.11-vs2.3
  
        /* Wot's wrong wif bein' racy? */
        if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.2.11/arch/parisc/mm/fault.c linux-3.2.11-vs2.3.2.8/arch/parisc/mm/fault.c
---- linux-3.2.11/arch/parisc/mm/fault.c        2010-08-02 16:52:06.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/parisc/mm/fault.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/parisc/mm/fault.c linux-3.3-vs2.3.3.1/arch/parisc/mm/fault.c
+--- linux-3.3/arch/parisc/mm/fault.c   2010-08-02 16:52:06.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/parisc/mm/fault.c 2012-02-24 03:55:06.000000000 +0100
 @@ -237,8 +237,9 @@ bad_area:
  
  #ifdef PRINT_USER_FAULTS
@@ -592,10 +592,10 @@ diff -NurpP --minimal linux-3.2.11/arch/parisc/mm/fault.c linux-3.2.11-vs2.3.2.8
                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.2.11/arch/powerpc/Kconfig linux-3.2.11-vs2.3.2.8/arch/powerpc/Kconfig
---- linux-3.2.11/arch/powerpc/Kconfig  2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/powerpc/Kconfig        2011-12-05 19:33:02.000000000 +0100
-@@ -960,6 +960,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/powerpc/Kconfig linux-3.3-vs2.3.3.1/arch/powerpc/Kconfig
+--- linux-3.3/arch/powerpc/Kconfig     2012-03-19 19:46:44.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/powerpc/Kconfig   2012-02-24 03:55:06.000000000 +0100
+@@ -997,6 +997,8 @@ source "lib/Kconfig"
  
  source "arch/powerpc/Kconfig.debug"
  
@@ -604,9 +604,9 @@ diff -NurpP --minimal linux-3.2.11/arch/powerpc/Kconfig linux-3.2.11-vs2.3.2.8/a
  source "security/Kconfig"
  
  config KEYS_COMPAT
-diff -NurpP --minimal linux-3.2.11/arch/powerpc/include/asm/unistd.h linux-3.2.11-vs2.3.2.8/arch/powerpc/include/asm/unistd.h
---- linux-3.2.11/arch/powerpc/include/asm/unistd.h     2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/powerpc/include/asm/unistd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/powerpc/include/asm/unistd.h linux-3.3-vs2.3.3.1/arch/powerpc/include/asm/unistd.h
+--- linux-3.3/arch/powerpc/include/asm/unistd.h        2012-01-09 16:14:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/powerpc/include/asm/unistd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -275,7 +275,7 @@
  #endif
  #define __NR_rtas             255
@@ -616,10 +616,10 @@ diff -NurpP --minimal linux-3.2.11/arch/powerpc/include/asm/unistd.h linux-3.2.1
  #define __NR_migrate_pages    258
  #define __NR_mbind            259
  #define __NR_get_mempolicy    260
-diff -NurpP --minimal linux-3.2.11/arch/powerpc/kernel/process.c linux-3.2.11-vs2.3.2.8/arch/powerpc/kernel/process.c
---- linux-3.2.11/arch/powerpc/kernel/process.c 2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/powerpc/kernel/process.c       2011-12-05 19:33:02.000000000 +0100
-@@ -640,8 +640,9 @@ void show_regs(struct pt_regs * regs)
+diff -NurpP --minimal linux-3.3/arch/powerpc/kernel/process.c linux-3.3-vs2.3.3.1/arch/powerpc/kernel/process.c
+--- linux-3.3/arch/powerpc/kernel/process.c    2012-03-19 19:46:45.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/powerpc/kernel/process.c  2012-02-24 03:55:06.000000000 +0100
+@@ -656,8 +656,9 @@ void show_regs(struct pt_regs * regs)
  #else
                printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr);
  #endif
@@ -631,10 +631,10 @@ diff -NurpP --minimal linux-3.2.11/arch/powerpc/kernel/process.c linux-3.2.11-vs
  
  #ifdef CONFIG_SMP
        printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-3.2.11/arch/powerpc/kernel/traps.c linux-3.2.11-vs2.3.2.8/arch/powerpc/kernel/traps.c
---- linux-3.2.11/arch/powerpc/kernel/traps.c   2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/powerpc/kernel/traps.c 2011-12-05 19:33:02.000000000 +0100
-@@ -1082,8 +1082,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-3.3/arch/powerpc/kernel/traps.c linux-3.3-vs2.3.3.1/arch/powerpc/kernel/traps.c
+--- linux-3.3/arch/powerpc/kernel/traps.c      2012-03-19 19:46:45.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/powerpc/kernel/traps.c    2012-02-24 03:55:06.000000000 +0100
+@@ -1105,8 +1105,9 @@ void nonrecoverable_exception(struct pt_
  
  void trace_syscall(struct pt_regs *regs)
  {
@@ -646,10 +646,10 @@ diff -NurpP --minimal linux-3.2.11/arch/powerpc/kernel/traps.c linux-3.2.11-vs2.
               regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
  }
  
-diff -NurpP --minimal linux-3.2.11/arch/s390/Kconfig linux-3.2.11-vs2.3.2.8/arch/s390/Kconfig
---- linux-3.2.11/arch/s390/Kconfig     2012-03-14 10:22:12.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/s390/Kconfig   2012-03-14 10:24:05.000000000 +0100
-@@ -644,6 +644,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/s390/Kconfig linux-3.3-vs2.3.3.1/arch/s390/Kconfig
+--- linux-3.3/arch/s390/Kconfig        2012-03-19 19:46:48.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/s390/Kconfig      2012-03-19 20:52:09.000000000 +0100
+@@ -638,6 +638,8 @@ source "fs/Kconfig"
  
  source "arch/s390/Kconfig.debug"
  
@@ -658,9 +658,9 @@ diff -NurpP --minimal linux-3.2.11/arch/s390/Kconfig linux-3.2.11-vs2.3.2.8/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/s390/include/asm/tlb.h linux-3.2.11-vs2.3.2.8/arch/s390/include/asm/tlb.h
---- linux-3.2.11/arch/s390/include/asm/tlb.h   2011-07-22 11:17:41.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/s390/include/asm/tlb.h 2011-12-15 01:52:28.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/s390/include/asm/tlb.h linux-3.3-vs2.3.3.1/arch/s390/include/asm/tlb.h
+--- linux-3.3/arch/s390/include/asm/tlb.h      2011-07-22 11:17:41.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/s390/include/asm/tlb.h    2012-02-24 03:55:06.000000000 +0100
 @@ -24,6 +24,7 @@
  #include <linux/mm.h>
  #include <linux/pagemap.h>
@@ -669,9 +669,9 @@ diff -NurpP --minimal linux-3.2.11/arch/s390/include/asm/tlb.h linux-3.2.11-vs2.
  #include <asm/processor.h>
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.2.11/arch/s390/include/asm/unistd.h linux-3.2.11-vs2.3.2.8/arch/s390/include/asm/unistd.h
---- linux-3.2.11/arch/s390/include/asm/unistd.h        2012-01-09 16:14:06.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/s390/include/asm/unistd.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/s390/include/asm/unistd.h linux-3.3-vs2.3.3.1/arch/s390/include/asm/unistd.h
+--- linux-3.3/arch/s390/include/asm/unistd.h   2012-03-19 19:46:48.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/s390/include/asm/unistd.h 2012-02-24 03:55:06.000000000 +0100
 @@ -202,7 +202,7 @@
  #define __NR_clock_gettime    (__NR_timer_create+6)
  #define __NR_clock_getres     (__NR_timer_create+7)
@@ -681,20 +681,20 @@ diff -NurpP --minimal linux-3.2.11/arch/s390/include/asm/unistd.h linux-3.2.11-v
  #define __NR_statfs64         265
  #define __NR_fstatfs64                266
  #define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-3.2.11/arch/s390/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/arch/s390/kernel/ptrace.c
---- linux-3.2.11/arch/s390/kernel/ptrace.c     2012-03-14 10:22:12.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/s390/kernel/ptrace.c   2012-03-14 10:25:26.000000000 +0100
-@@ -20,6 +20,7 @@
- #include <linux/regset.h>
+diff -NurpP --minimal linux-3.3/arch/s390/kernel/ptrace.c linux-3.3-vs2.3.3.1/arch/s390/kernel/ptrace.c
+--- linux-3.3/arch/s390/kernel/ptrace.c        2012-03-19 19:46:48.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/s390/kernel/ptrace.c      2012-03-19 20:53:54.000000000 +0100
+@@ -21,6 +21,7 @@
  #include <linux/tracehook.h>
  #include <linux/seccomp.h>
-+#include <linux/vs_base.h>
  #include <linux/compat.h>
++#include <linux/vs_base.h>
  #include <trace/syscall.h>
  #include <asm/segment.h>
-diff -NurpP --minimal linux-3.2.11/arch/s390/kernel/syscalls.S linux-3.2.11-vs2.3.2.8/arch/s390/kernel/syscalls.S
---- linux-3.2.11/arch/s390/kernel/syscalls.S   2012-01-09 16:14:06.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/s390/kernel/syscalls.S 2011-12-05 19:33:02.000000000 +0100
+ #include <asm/page.h>
+diff -NurpP --minimal linux-3.3/arch/s390/kernel/syscalls.S linux-3.3-vs2.3.3.1/arch/s390/kernel/syscalls.S
+--- linux-3.3/arch/s390/kernel/syscalls.S      2012-01-09 16:14:06.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/s390/kernel/syscalls.S    2012-02-24 03:55:06.000000000 +0100
 @@ -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)
@@ -704,9 +704,9 @@ diff -NurpP --minimal linux-3.2.11/arch/s390/kernel/syscalls.S linux-3.2.11-vs2.
  SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
  SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
  SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
-diff -NurpP --minimal linux-3.2.11/arch/sh/Kconfig linux-3.2.11-vs2.3.2.8/arch/sh/Kconfig
---- linux-3.2.11/arch/sh/Kconfig       2012-01-09 16:14:07.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/sh/Kconfig     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/sh/Kconfig linux-3.3-vs2.3.3.1/arch/sh/Kconfig
+--- linux-3.3/arch/sh/Kconfig  2012-03-19 19:46:49.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/sh/Kconfig        2012-02-24 03:55:06.000000000 +0100
 @@ -901,6 +901,8 @@ source "fs/Kconfig"
  
  source "arch/sh/Kconfig.debug"
@@ -716,9 +716,9 @@ diff -NurpP --minimal linux-3.2.11/arch/sh/Kconfig linux-3.2.11-vs2.3.2.8/arch/s
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/sh/kernel/irq.c linux-3.2.11-vs2.3.2.8/arch/sh/kernel/irq.c
---- linux-3.2.11/arch/sh/kernel/irq.c  2011-07-22 11:17:41.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/arch/sh/kernel/irq.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/sh/kernel/irq.c linux-3.3-vs2.3.3.1/arch/sh/kernel/irq.c
+--- linux-3.3/arch/sh/kernel/irq.c     2011-07-22 11:17:41.000000000 +0200
++++ linux-3.3-vs2.3.3.1/arch/sh/kernel/irq.c   2012-02-24 03:55:06.000000000 +0100
 @@ -14,6 +14,7 @@
  #include <linux/ftrace.h>
  #include <linux/delay.h>
@@ -727,10 +727,10 @@ diff -NurpP --minimal linux-3.2.11/arch/sh/kernel/irq.c linux-3.2.11-vs2.3.2.8/a
  #include <asm/processor.h>
  #include <asm/machvec.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.2.11/arch/sparc/Kconfig linux-3.2.11-vs2.3.2.8/arch/sparc/Kconfig
---- linux-3.2.11/arch/sparc/Kconfig    2012-01-09 16:14:07.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/sparc/Kconfig  2011-12-05 19:33:02.000000000 +0100
-@@ -595,6 +595,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/sparc/Kconfig linux-3.3-vs2.3.3.1/arch/sparc/Kconfig
+--- linux-3.3/arch/sparc/Kconfig       2012-03-19 19:46:49.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/sparc/Kconfig     2012-02-24 03:55:06.000000000 +0100
+@@ -594,6 +594,8 @@ source "fs/Kconfig"
  
  source "arch/sparc/Kconfig.debug"
  
@@ -739,9 +739,9 @@ diff -NurpP --minimal linux-3.2.11/arch/sparc/Kconfig linux-3.2.11-vs2.3.2.8/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/sparc/include/asm/unistd.h linux-3.2.11-vs2.3.2.8/arch/sparc/include/asm/unistd.h
---- linux-3.2.11/arch/sparc/include/asm/unistd.h       2012-01-09 16:14:07.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/sparc/include/asm/unistd.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/sparc/include/asm/unistd.h linux-3.3-vs2.3.3.1/arch/sparc/include/asm/unistd.h
+--- linux-3.3/arch/sparc/include/asm/unistd.h  2012-01-09 16:14:07.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/sparc/include/asm/unistd.h        2012-02-24 03:55:06.000000000 +0100
 @@ -335,7 +335,7 @@
  #define __NR_timer_getoverrun 264
  #define __NR_timer_delete     265
@@ -751,9 +751,9 @@ diff -NurpP --minimal linux-3.2.11/arch/sparc/include/asm/unistd.h linux-3.2.11-
  #define __NR_io_setup         268
  #define __NR_io_destroy               269
  #define __NR_io_submit                270
-diff -NurpP --minimal linux-3.2.11/arch/sparc/kernel/systbls_32.S linux-3.2.11-vs2.3.2.8/arch/sparc/kernel/systbls_32.S
---- linux-3.2.11/arch/sparc/kernel/systbls_32.S        2012-01-09 16:14:09.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/sparc/kernel/systbls_32.S      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/sparc/kernel/systbls_32.S linux-3.3-vs2.3.3.1/arch/sparc/kernel/systbls_32.S
+--- linux-3.3/arch/sparc/kernel/systbls_32.S   2012-01-09 16:14:09.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/sparc/kernel/systbls_32.S 2012-02-24 03:55:06.000000000 +0100
 @@ -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
@@ -763,9 +763,9 @@ diff -NurpP --minimal linux-3.2.11/arch/sparc/kernel/systbls_32.S linux-3.2.11-v
  /*270*/       .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
  /*275*/       .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
  /*280*/       .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
-diff -NurpP --minimal linux-3.2.11/arch/sparc/kernel/systbls_64.S linux-3.2.11-vs2.3.2.8/arch/sparc/kernel/systbls_64.S
---- linux-3.2.11/arch/sparc/kernel/systbls_64.S        2012-01-09 16:14:09.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/sparc/kernel/systbls_64.S      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/sparc/kernel/systbls_64.S linux-3.3-vs2.3.3.1/arch/sparc/kernel/systbls_64.S
+--- linux-3.3/arch/sparc/kernel/systbls_64.S   2012-01-09 16:14:09.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/sparc/kernel/systbls_64.S 2012-02-24 03:55:06.000000000 +0100
 @@ -71,7 +71,7 @@ sys_call_table32:
  /*250*/       .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys_nis_syscall
        .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
@@ -784,9 +784,9 @@ diff -NurpP --minimal linux-3.2.11/arch/sparc/kernel/systbls_64.S linux-3.2.11-v
  /*270*/       .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
        .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
  /*280*/       .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
-diff -NurpP --minimal linux-3.2.11/arch/um/Kconfig.rest linux-3.2.11-vs2.3.2.8/arch/um/Kconfig.rest
---- linux-3.2.11/arch/um/Kconfig.rest  2012-01-09 16:14:09.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/um/Kconfig.rest        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/um/Kconfig.rest linux-3.3-vs2.3.3.1/arch/um/Kconfig.rest
+--- linux-3.3/arch/um/Kconfig.rest     2012-01-09 16:14:09.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/um/Kconfig.rest   2012-02-24 03:55:06.000000000 +0100
 @@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
  
  source "fs/Kconfig"
@@ -796,14 +796,14 @@ diff -NurpP --minimal linux-3.2.11/arch/um/Kconfig.rest linux-3.2.11-vs2.3.2.8/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/um/include/shared/kern_constants.h linux-3.2.11-vs2.3.2.8/arch/um/include/shared/kern_constants.h
---- linux-3.2.11/arch/um/include/shared/kern_constants.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/um/include/shared/kern_constants.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/um/include/shared/kern_constants.h linux-3.3-vs2.3.3.1/arch/um/include/shared/kern_constants.h
+--- linux-3.3/arch/um/include/shared/kern_constants.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/um/include/shared/kern_constants.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1 @@
 +#include "../../../../include/generated/asm-offsets.h"
-diff -NurpP --minimal linux-3.2.11/arch/um/include/shared/user_constants.h linux-3.2.11-vs2.3.2.8/arch/um/include/shared/user_constants.h
---- linux-3.2.11/arch/um/include/shared/user_constants.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/um/include/shared/user_constants.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/arch/um/include/shared/user_constants.h linux-3.3-vs2.3.3.1/arch/um/include/shared/user_constants.h
+--- linux-3.3/arch/um/include/shared/user_constants.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/um/include/shared/user_constants.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,40 @@
 +/*
 + * DO NOT MODIFY.
@@ -845,10 +845,10 @@ diff -NurpP --minimal linux-3.2.11/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.2.11/arch/x86/Kconfig linux-3.2.11-vs2.3.2.8/arch/x86/Kconfig
---- linux-3.2.11/arch/x86/Kconfig      2012-01-09 16:14:10.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/x86/Kconfig    2011-12-15 01:11:29.000000000 +0100
-@@ -2170,6 +2170,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.3/arch/x86/Kconfig linux-3.3-vs2.3.3.1/arch/x86/Kconfig
+--- linux-3.3/arch/x86/Kconfig 2012-03-19 19:46:49.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/x86/Kconfig       2012-02-24 03:55:06.000000000 +0100
+@@ -2213,6 +2213,8 @@ source "fs/Kconfig"
  
  source "arch/x86/Kconfig.debug"
  
@@ -857,46 +857,34 @@ diff -NurpP --minimal linux-3.2.11/arch/x86/Kconfig linux-3.2.11-vs2.3.2.8/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.2.11/arch/x86/ia32/ia32entry.S linux-3.2.11-vs2.3.2.8/arch/x86/ia32/ia32entry.S
---- linux-3.2.11/arch/x86/ia32/ia32entry.S     2012-01-09 16:14:10.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/x86/ia32/ia32entry.S   2011-12-05 19:33:02.000000000 +0100
-@@ -776,7 +776,7 @@ ia32_sys_call_table:
-       .quad sys_tgkill                /* 270 */
-       .quad compat_sys_utimes
-       .quad sys32_fadvise64_64
--      .quad quiet_ni_syscall  /* sys_vserver */
-+      .quad sys32_vserver
-       .quad sys_mbind
-       .quad compat_sys_get_mempolicy  /* 275 */
-       .quad sys_set_mempolicy
-diff -NurpP --minimal linux-3.2.11/arch/x86/include/asm/unistd_64.h linux-3.2.11-vs2.3.2.8/arch/x86/include/asm/unistd_64.h
---- linux-3.2.11/arch/x86/include/asm/unistd_64.h      2012-01-09 16:14:11.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/x86/include/asm/unistd_64.h    2011-12-05 19:33:02.000000000 +0100
-@@ -535,7 +535,7 @@ __SYSCALL(__NR_tgkill, sys_tgkill)
- #define __NR_utimes                           235
- __SYSCALL(__NR_utimes, sys_utimes)
- #define __NR_vserver                          236
--__SYSCALL(__NR_vserver, sys_ni_syscall)
-+__SYSCALL(__NR_vserver, sys_vserver)
- #define __NR_mbind                            237
- __SYSCALL(__NR_mbind, sys_mbind)
- #define __NR_set_mempolicy                    238
-diff -NurpP --minimal linux-3.2.11/arch/x86/kernel/syscall_table_32.S linux-3.2.11-vs2.3.2.8/arch/x86/kernel/syscall_table_32.S
---- linux-3.2.11/arch/x86/kernel/syscall_table_32.S    2012-01-09 16:14:11.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/arch/x86/kernel/syscall_table_32.S  2011-12-05 19:33:02.000000000 +0100
-@@ -272,7 +272,7 @@ ENTRY(sys_call_table)
-       .long sys_tgkill        /* 270 */
-       .long sys_utimes
-       .long sys_fadvise64_64
--      .long sys_ni_syscall    /* sys_vserver */
-+      .long sys_vserver
-       .long sys_mbind
-       .long sys_get_mempolicy
-       .long sys_set_mempolicy
-diff -NurpP --minimal linux-3.2.11/drivers/block/Kconfig linux-3.2.11-vs2.3.2.8/drivers/block/Kconfig
---- linux-3.2.11/drivers/block/Kconfig 2011-10-24 18:45:08.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/drivers/block/Kconfig       2011-12-05 19:33:02.000000000 +0100
-@@ -288,6 +288,13 @@ config BLK_DEV_CRYPTOLOOP
+diff -NurpP --minimal linux-3.3/arch/x86/syscalls/syscall_32.tbl linux-3.3-vs2.3.3.1/arch/x86/syscalls/syscall_32.tbl
+--- linux-3.3/arch/x86/syscalls/syscall_32.tbl 2012-03-19 19:46:51.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/x86/syscalls/syscall_32.tbl       2012-02-24 16:28:51.000000000 +0100
+@@ -279,7 +279,7 @@
+ 270   i386    tgkill                  sys_tgkill
+ 271   i386    utimes                  sys_utimes                      compat_sys_utimes
+ 272   i386    fadvise64_64            sys_fadvise64_64                sys32_fadvise64_64
+-273   i386    vserver
++273   i386    vserver                 sys_vserver                     sys32_vserver
+ 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.3/arch/x86/syscalls/syscall_64.tbl linux-3.3-vs2.3.3.1/arch/x86/syscalls/syscall_64.tbl
+--- linux-3.3/arch/x86/syscalls/syscall_64.tbl 2012-03-19 19:46:51.000000000 +0100
++++ linux-3.3-vs2.3.3.1/arch/x86/syscalls/syscall_64.tbl       2012-02-24 16:29:25.000000000 +0100
+@@ -242,7 +242,7 @@
+ 233   64      epoll_ctl               sys_epoll_ctl
+ 234   64      tgkill                  sys_tgkill
+ 235   64      utimes                  sys_utimes
+-236   64      vserver
++236   64      vserver                 sys_vserver
+ 237   64      mbind                   sys_mbind
+ 238   64      set_mempolicy           sys_set_mempolicy
+ 239   64      get_mempolicy           sys_get_mempolicy
+diff -NurpP --minimal linux-3.3/drivers/block/Kconfig linux-3.3-vs2.3.3.1/drivers/block/Kconfig
+--- linux-3.3/drivers/block/Kconfig    2012-03-19 19:46:52.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/block/Kconfig  2012-02-24 03:55:06.000000000 +0100
+@@ -290,6 +290,13 @@ config BLK_DEV_CRYPTOLOOP
  
  source "drivers/block/drbd/Kconfig"
  
@@ -910,10 +898,10 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/Kconfig linux-3.2.11-vs2.3.2.8/
  config BLK_DEV_NBD
        tristate "Network block device support"
        depends on NET
-diff -NurpP --minimal linux-3.2.11/drivers/block/Makefile linux-3.2.11-vs2.3.2.8/drivers/block/Makefile
---- linux-3.2.11/drivers/block/Makefile        2011-07-22 11:17:44.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/drivers/block/Makefile      2011-12-05 19:33:02.000000000 +0100
-@@ -34,6 +34,7 @@ obj-$(CONFIG_VIODASD)                += viodasd.o
+diff -NurpP --minimal linux-3.3/drivers/block/Makefile linux-3.3-vs2.3.3.1/drivers/block/Makefile
+--- linux-3.3/drivers/block/Makefile   2012-03-19 19:46:52.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/block/Makefile 2012-02-24 03:55:06.000000000 +0100
+@@ -35,6 +35,7 @@ obj-$(CONFIG_VIODASD)                += viodasd.o
  obj-$(CONFIG_BLK_DEV_SX8)     += sx8.o
  obj-$(CONFIG_BLK_DEV_UB)      += ub.o
  obj-$(CONFIG_BLK_DEV_HD)      += hd.o
@@ -921,10 +909,10 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/Makefile linux-3.2.11-vs2.3.2.8
  
  obj-$(CONFIG_XEN_BLKDEV_FRONTEND)     += xen-blkfront.o
  obj-$(CONFIG_XEN_BLKDEV_BACKEND)      += xen-blkback/
-diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/drivers/block/loop.c
---- linux-3.2.11/drivers/block/loop.c  2012-01-09 16:14:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/block/loop.c        2012-01-09 16:19:31.000000000 +0100
-@@ -77,6 +77,7 @@
+diff -NurpP --minimal linux-3.3/drivers/block/loop.c linux-3.3-vs2.3.3.1/drivers/block/loop.c
+--- linux-3.3/drivers/block/loop.c     2012-03-19 19:46:52.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/block/loop.c   2012-02-24 03:55:06.000000000 +0100
+@@ -76,6 +76,7 @@
  #include <linux/sysfs.h>
  #include <linux/miscdevice.h>
  #include <linux/falloc.h>
@@ -932,7 +920,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
  
  #include <asm/uaccess.h>
  
-@@ -868,6 +869,7 @@ static int loop_set_fd(struct loop_devic
+@@ -869,6 +870,7 @@ static int loop_set_fd(struct loop_devic
        lo->lo_blocksize = lo_blocksize;
        lo->lo_device = bdev;
        lo->lo_flags = lo_flags;
@@ -940,7 +928,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
        lo->lo_backing_file = file;
        lo->transfer = transfer_none;
        lo->ioctl = NULL;
-@@ -1000,6 +1002,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1001,6 +1003,7 @@ static int loop_clr_fd(struct loop_devic
        lo->lo_sizelimit = 0;
        lo->lo_encrypt_key_size = 0;
        lo->lo_thread = NULL;
@@ -948,7 +936,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
        memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
        memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
        memset(lo->lo_file_name, 0, LO_NAME_SIZE);
-@@ -1041,7 +1044,7 @@ loop_set_status(struct loop_device *lo, 
+@@ -1042,7 +1045,7 @@ loop_set_status(struct loop_device *lo, 
  
        if (lo->lo_encrypt_key_size &&
            lo->lo_key_owner != uid &&
@@ -957,7 +945,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
                return -EPERM;
        if (lo->lo_state != Lo_bound)
                return -ENXIO;
-@@ -1131,7 +1134,8 @@ loop_get_status(struct loop_device *lo, 
+@@ -1132,7 +1135,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;
@@ -967,7 +955,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
                info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
                memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
                       lo->lo_encrypt_key_size);
-@@ -1491,6 +1495,11 @@ static int lo_open(struct block_device *
+@@ -1492,6 +1496,11 @@ static int lo_open(struct block_device *
                goto out;
        }
  
@@ -979,9 +967,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/loop.c linux-3.2.11-vs2.3.2.8/d
        mutex_lock(&lo->lo_ctl_mutex);
        lo->lo_refcnt++;
        mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.2.11/drivers/block/vroot.c linux-3.2.11-vs2.3.2.8/drivers/block/vroot.c
---- linux-3.2.11/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/block/vroot.c       2011-12-07 00:05:16.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/block/vroot.c linux-3.3-vs2.3.3.1/drivers/block/vroot.c
+--- linux-3.3/drivers/block/vroot.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/block/vroot.c  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,291 @@
 +/*
 + *  linux/drivers/block/vroot.c
@@ -1274,9 +1262,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/block/vroot.c linux-3.2.11-vs2.3.2.8/
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.2.11/drivers/infiniband/Kconfig linux-3.2.11-vs2.3.2.8/drivers/infiniband/Kconfig
---- linux-3.2.11/drivers/infiniband/Kconfig    2011-07-22 11:17:45.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/drivers/infiniband/Kconfig  2012-02-15 03:26:22.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/infiniband/Kconfig linux-3.3-vs2.3.3.1/drivers/infiniband/Kconfig
+--- linux-3.3/drivers/infiniband/Kconfig       2012-03-19 19:46:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/infiniband/Kconfig     2012-02-24 03:55:06.000000000 +0100
 @@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
  config INFINIBAND_ADDR_TRANS
        bool
@@ -1286,10 +1274,10 @@ diff -NurpP --minimal linux-3.2.11/drivers/infiniband/Kconfig linux-3.2.11-vs2.3
        default y
  
  source "drivers/infiniband/hw/mthca/Kconfig"
-diff -NurpP --minimal linux-3.2.11/drivers/infiniband/core/addr.c linux-3.2.11-vs2.3.2.8/drivers/infiniband/core/addr.c
---- linux-3.2.11/drivers/infiniband/core/addr.c        2012-01-09 16:14:19.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/infiniband/core/addr.c      2011-12-05 19:33:02.000000000 +0100
-@@ -255,7 +255,7 @@ static int addr6_resolve(struct sockaddr
+diff -NurpP --minimal linux-3.3/drivers/infiniband/core/addr.c linux-3.3-vs2.3.3.1/drivers/infiniband/core/addr.c
+--- linux-3.3/drivers/infiniband/core/addr.c   2012-03-19 19:46:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/infiniband/core/addr.c 2012-02-24 03:55:06.000000000 +0100
+@@ -259,7 +259,7 @@ static int addr6_resolve(struct sockaddr
  
        if (ipv6_addr_any(&fl6.saddr)) {
                ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev,
@@ -1298,9 +1286,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/infiniband/core/addr.c linux-3.2.11-v
                if (ret)
                        goto put;
  
-diff -NurpP --minimal linux-3.2.11/drivers/md/dm-ioctl.c linux-3.2.11-vs2.3.2.8/drivers/md/dm-ioctl.c
---- linux-3.2.11/drivers/md/dm-ioctl.c 2012-03-14 10:22:13.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/md/dm-ioctl.c       2012-03-14 10:24:05.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/md/dm-ioctl.c linux-3.3-vs2.3.3.1/drivers/md/dm-ioctl.c
+--- linux-3.3/drivers/md/dm-ioctl.c    2012-03-19 19:46:59.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/md/dm-ioctl.c  2012-03-19 20:52:10.000000000 +0100
 @@ -16,6 +16,7 @@
  #include <linux/dm-ioctl.h>
  #include <linux/hdreg.h>
@@ -1386,10 +1374,10 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm-ioctl.c linux-3.2.11-vs2.3.2.8/
                return -EACCES;
  
        if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/drivers/md/dm.c
---- linux-3.2.11/drivers/md/dm.c       2012-01-09 16:14:21.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/md/dm.c     2011-12-05 19:33:02.000000000 +0100
-@@ -20,6 +20,7 @@
+diff -NurpP --minimal linux-3.3/drivers/md/dm.c linux-3.3-vs2.3.3.1/drivers/md/dm.c
+--- linux-3.3/drivers/md/dm.c  2012-03-19 19:46:59.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/md/dm.c        2012-02-24 03:55:06.000000000 +0100
+@@ -19,6 +19,7 @@
  #include <linux/idr.h>
  #include <linux/hdreg.h>
  #include <linux/delay.h>
@@ -1397,7 +1385,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
  
  #include <trace/events/block.h>
  
-@@ -132,6 +133,7 @@ struct mapped_device {
+@@ -131,6 +132,7 @@ struct mapped_device {
        rwlock_t map_lock;
        atomic_t holders;
        atomic_t open_count;
@@ -1405,7 +1393,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
  
        unsigned long flags;
  
-@@ -344,6 +346,7 @@ int dm_deleting_md(struct mapped_device 
+@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device 
  static int dm_blk_open(struct block_device *bdev, fmode_t mode)
  {
        struct mapped_device *md;
@@ -1413,7 +1401,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
  
        spin_lock(&_minor_lock);
  
-@@ -352,18 +355,19 @@ static int dm_blk_open(struct block_devi
+@@ -351,18 +354,19 @@ static int dm_blk_open(struct block_devi
                goto out;
  
        if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1439,7 +1427,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
  }
  
  static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -584,6 +588,14 @@ int dm_set_geometry(struct mapped_device
+@@ -583,6 +587,14 @@ int dm_set_geometry(struct mapped_device
        return 0;
  }
  
@@ -1454,7 +1442,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
  /*-----------------------------------------------------------------
   * CRUD START:
   *   A more elegant soln is in the works that uses the queue
-@@ -1850,6 +1862,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1849,6 +1861,7 @@ static struct mapped_device *alloc_dev(i
        INIT_LIST_HEAD(&md->uevent_list);
        spin_lock_init(&md->uevent_lock);
  
@@ -1462,9 +1450,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.c linux-3.2.11-vs2.3.2.8/driver
        md->queue = blk_alloc_queue(GFP_KERNEL);
        if (!md->queue)
                goto bad_queue;
-diff -NurpP --minimal linux-3.2.11/drivers/md/dm.h linux-3.2.11-vs2.3.2.8/drivers/md/dm.h
---- linux-3.2.11/drivers/md/dm.h       2012-01-09 16:14:21.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/md/dm.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/md/dm.h linux-3.3-vs2.3.3.1/drivers/md/dm.h
+--- linux-3.3/drivers/md/dm.h  2012-01-09 16:14:21.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/md/dm.h        2012-02-24 03:55:06.000000000 +0100
 @@ -41,6 +41,8 @@ struct dm_dev_internal {
  struct dm_table;
  struct dm_md_mempools;
@@ -1474,9 +1462,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/md/dm.h linux-3.2.11-vs2.3.2.8/driver
  /*-----------------------------------------------------------------
   * Internal table functions.
   *---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/drivers/net/tun.c
---- linux-3.2.11/drivers/net/tun.c     2012-01-09 16:14:35.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/net/tun.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/net/tun.c linux-3.3-vs2.3.3.1/drivers/net/tun.c
+--- linux-3.3/drivers/net/tun.c        2012-03-19 19:47:08.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/net/tun.c      2012-03-19 20:52:10.000000000 +0100
 @@ -64,6 +64,7 @@
  #include <linux/nsproxy.h>
  #include <linux/virtio_net.h>
@@ -1492,8 +1480,8 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
 +      nid_t                   nid;
  
        struct net_device       *dev;
-       u32                     set_features;
-@@ -909,6 +911,7 @@ static void tun_setup(struct net_device 
+       netdev_features_t       set_features;
+@@ -910,6 +912,7 @@ static void tun_setup(struct net_device 
  
        tun->owner = -1;
        tun->group = -1;
@@ -1501,7 +1489,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
  
        dev->ethtool_ops = &tun_ethtool_ops;
        dev->destructor = tun_free_netdev;
-@@ -1059,7 +1062,7 @@ static int tun_set_iff(struct net *net, 
+@@ -1068,7 +1071,7 @@ static int tun_set_iff(struct net *net, 
  
                if (((tun->owner != -1 && cred->euid != tun->owner) ||
                     (tun->group != -1 && !in_egroup_p(tun->group))) &&
@@ -1510,7 +1498,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
                        return -EPERM;
                err = security_tun_dev_attach(tun->socket.sk);
                if (err < 0)
-@@ -1073,7 +1076,7 @@ static int tun_set_iff(struct net *net, 
+@@ -1082,7 +1085,7 @@ static int tun_set_iff(struct net *net, 
                char *name;
                unsigned long flags = 0;
  
@@ -1519,7 +1507,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
                        return -EPERM;
                err = security_tun_dev_create();
                if (err < 0)
-@@ -1141,6 +1144,9 @@ static int tun_set_iff(struct net *net, 
+@@ -1151,6 +1154,9 @@ static int tun_set_iff(struct net *net, 
  
                sk->sk_destruct = tun_sock_destruct;
  
@@ -1529,7 +1517,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
                err = tun_attach(tun, file);
                if (err < 0)
                        goto failed;
-@@ -1322,6 +1328,16 @@ static long __tun_chr_ioctl(struct file 
+@@ -1332,6 +1338,16 @@ static long __tun_chr_ioctl(struct file 
                tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group);
                break;
  
@@ -1546,13 +1534,13 @@ diff -NurpP --minimal linux-3.2.11/drivers/net/tun.c linux-3.2.11-vs2.3.2.8/driv
        case TUNSETLINK:
                /* Only allow setting the type when the interface is down */
                if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.2.11/drivers/tty/sysrq.c linux-3.2.11-vs2.3.2.8/drivers/tty/sysrq.c
---- linux-3.2.11/drivers/tty/sysrq.c   2011-05-22 16:17:44.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/drivers/tty/sysrq.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/tty/sysrq.c linux-3.3-vs2.3.3.1/drivers/tty/sysrq.c
+--- linux-3.3/drivers/tty/sysrq.c      2012-03-19 19:47:19.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/tty/sysrq.c    2012-02-24 04:03:15.000000000 +0100
 @@ -41,6 +41,7 @@
- #include <linux/oom.h>
  #include <linux/slab.h>
  #include <linux/input.h>
+ #include <linux/uaccess.h>
 +#include <linux/vserver/debug.h>
  
  #include <asm/ptrace.h>
@@ -1600,9 +1588,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/tty/sysrq.c linux-3.2.11-vs2.3.2.8/dr
        else
                retval = -1;
        return retval;
-diff -NurpP --minimal linux-3.2.11/drivers/tty/tty_io.c linux-3.2.11-vs2.3.2.8/drivers/tty/tty_io.c
---- linux-3.2.11/drivers/tty/tty_io.c  2012-01-09 16:14:48.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/drivers/tty/tty_io.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/drivers/tty/tty_io.c linux-3.3-vs2.3.3.1/drivers/tty/tty_io.c
+--- linux-3.3/drivers/tty/tty_io.c     2012-03-19 19:47:19.000000000 +0100
++++ linux-3.3-vs2.3.3.1/drivers/tty/tty_io.c   2012-02-24 03:55:06.000000000 +0100
 @@ -105,6 +105,7 @@
  
  #include <linux/kmod.h>
@@ -1611,7 +1599,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/tty/tty_io.c linux-3.2.11-vs2.3.2.8/d
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -2080,7 +2081,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2131,7 +2132,8 @@ static int tiocsti(struct tty_struct *tt
        char ch, mbz = 0;
        struct tty_ldisc *ld;
  
@@ -1621,7 +1609,7 @@ diff -NurpP --minimal linux-3.2.11/drivers/tty/tty_io.c linux-3.2.11-vs2.3.2.8/d
                return -EPERM;
        if (get_user(ch, p))
                return -EFAULT;
-@@ -2368,6 +2370,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2419,6 +2421,7 @@ static int tiocspgrp(struct tty_struct *
                return -ENOTTY;
        if (get_user(pgrp_nr, p))
                return -EFAULT;
@@ -1629,9 +1617,9 @@ diff -NurpP --minimal linux-3.2.11/drivers/tty/tty_io.c linux-3.2.11-vs2.3.2.8/d
        if (pgrp_nr < 0)
                return -EINVAL;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.2.11/fs/attr.c linux-3.2.11-vs2.3.2.8/fs/attr.c
---- linux-3.2.11/fs/attr.c     2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/attr.c   2011-12-05 21:16:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/attr.c linux-3.3-vs2.3.3.1/fs/attr.c
+--- linux-3.3/fs/attr.c        2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/attr.c      2012-02-24 03:55:06.000000000 +0100
 @@ -14,6 +14,9 @@
  #include <linux/fcntl.h>
  #include <linux/security.h>
@@ -1672,18 +1660,18 @@ diff -NurpP --minimal linux-3.2.11/fs/attr.c linux-3.2.11-vs2.3.2.8/fs/attr.c
                if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                        return -EPERM;
        }
-diff -NurpP --minimal linux-3.2.11/fs/block_dev.c linux-3.2.11-vs2.3.2.8/fs/block_dev.c
---- linux-3.2.11/fs/block_dev.c        2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/block_dev.c      2011-12-05 19:33:02.000000000 +0100
-@@ -25,6 +25,7 @@
+diff -NurpP --minimal linux-3.3/fs/block_dev.c linux-3.3-vs2.3.3.1/fs/block_dev.c
+--- linux-3.3/fs/block_dev.c   2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/block_dev.c 2012-03-19 20:52:10.000000000 +0100
+@@ -26,6 +26,7 @@
  #include <linux/namei.h>
  #include <linux/log2.h>
- #include <linux/kmemleak.h>
+ #include <linux/cleancache.h>
 +#include <linux/vs_device.h>
  #include <asm/uaccess.h>
  #include "internal.h"
  
-@@ -563,6 +564,7 @@ struct block_device *bdget(dev_t dev)
+@@ -580,6 +581,7 @@ struct block_device *bdget(dev_t dev)
                bdev->bd_invalidated = 0;
                inode->i_mode = S_IFBLK;
                inode->i_rdev = dev;
@@ -1691,7 +1679,7 @@ diff -NurpP --minimal linux-3.2.11/fs/block_dev.c linux-3.2.11-vs2.3.2.8/fs/bloc
                inode->i_bdev = bdev;
                inode->i_data.a_ops = &def_blk_aops;
                mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -609,6 +611,11 @@ EXPORT_SYMBOL(bdput);
+@@ -626,6 +628,11 @@ EXPORT_SYMBOL(bdput);
  static struct block_device *bd_acquire(struct inode *inode)
  {
        struct block_device *bdev;
@@ -1703,7 +1691,7 @@ diff -NurpP --minimal linux-3.2.11/fs/block_dev.c linux-3.2.11-vs2.3.2.8/fs/bloc
  
        spin_lock(&bdev_lock);
        bdev = inode->i_bdev;
-@@ -619,7 +626,7 @@ static struct block_device *bd_acquire(s
+@@ -636,7 +643,7 @@ static struct block_device *bd_acquire(s
        }
        spin_unlock(&bdev_lock);
  
@@ -1712,10 +1700,10 @@ diff -NurpP --minimal linux-3.2.11/fs/block_dev.c linux-3.2.11-vs2.3.2.8/fs/bloc
        if (bdev) {
                spin_lock(&bdev_lock);
                if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.2.11/fs/btrfs/ctree.h linux-3.2.11-vs2.3.2.8/fs/btrfs/ctree.h
---- linux-3.2.11/fs/btrfs/ctree.h      2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/btrfs/ctree.h    2012-01-09 16:19:31.000000000 +0100
-@@ -643,11 +643,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-3.3/fs/btrfs/ctree.h linux-3.3-vs2.3.3.1/fs/btrfs/ctree.h
+--- linux-3.3/fs/btrfs/ctree.h 2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/btrfs/ctree.h       2012-03-19 20:52:10.000000000 +0100
+@@ -646,11 +646,14 @@ struct btrfs_inode_item {
        /* modification sequence number for NFS */
        __le64 sequence;
  
@@ -1731,16 +1719,16 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ctree.h linux-3.2.11-vs2.3.2.8/fs/bt
        struct btrfs_timespec atime;
        struct btrfs_timespec ctime;
        struct btrfs_timespec mtime;
-@@ -1414,6 +1417,8 @@ struct btrfs_ioctl_defrag_range_args {
- #define BTRFS_MOUNT_INODE_MAP_CACHE   (1 << 17)
- #define BTRFS_MOUNT_RECOVERY          (1 << 18)
+@@ -1504,6 +1507,8 @@ struct btrfs_ioctl_defrag_range_args {
+ #define BTRFS_MOUNT_CHECK_INTEGRITY   (1 << 20)
+ #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21)
  
 +#define BTRFS_MOUNT_TAGGED            (1 << 24)
 +
  #define btrfs_clear_opt(o, opt)               ((o) &= ~BTRFS_MOUNT_##opt)
  #define btrfs_set_opt(o, opt)         ((o) |= BTRFS_MOUNT_##opt)
  #define btrfs_test_opt(root, opt)     ((root)->fs_info->mount_opt & \
-@@ -1621,6 +1626,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -1711,6 +1716,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);
@@ -1748,7 +1736,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ctree.h linux-3.2.11-vs2.3.2.8/fs/bt
  BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32);
  BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
  BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
-@@ -1674,6 +1680,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct 
+@@ -1764,6 +1770,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct 
  
  BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
  
@@ -1759,7 +1747,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ctree.h linux-3.2.11-vs2.3.2.8/fs/bt
  
  BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
  
-@@ -2730,6 +2740,7 @@ extern const struct dentry_operations bt
+@@ -2925,6 +2935,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);
@@ -1767,10 +1755,10 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ctree.h linux-3.2.11-vs2.3.2.8/fs/bt
  int btrfs_defrag_file(struct inode *inode, struct file *file,
                      struct btrfs_ioctl_defrag_range_args *range,
                      u64 newer_than, unsigned long max_pages);
-diff -NurpP --minimal linux-3.2.11/fs/btrfs/disk-io.c linux-3.2.11-vs2.3.2.8/fs/btrfs/disk-io.c
---- linux-3.2.11/fs/btrfs/disk-io.c    2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/btrfs/disk-io.c  2012-01-09 16:19:31.000000000 +0100
-@@ -2103,6 +2103,9 @@ struct btrfs_root *open_ctree(struct sup
+diff -NurpP --minimal linux-3.3/fs/btrfs/disk-io.c linux-3.3-vs2.3.3.1/fs/btrfs/disk-io.c
+--- linux-3.3/fs/btrfs/disk-io.c       2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/btrfs/disk-io.c     2012-03-19 20:52:10.000000000 +0100
+@@ -2125,6 +2125,9 @@ int open_ctree(struct super_block *sb,
                goto fail_alloc;
        }
  
@@ -1780,9 +1768,9 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/disk-io.c linux-3.2.11-vs2.3.2.8/fs/
        features = btrfs_super_incompat_flags(disk_super) &
                ~BTRFS_FEATURE_INCOMPAT_SUPP;
        if (features) {
-diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/btrfs/inode.c
---- linux-3.2.11/fs/btrfs/inode.c      2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/btrfs/inode.c    2012-01-09 16:19:51.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/btrfs/inode.c linux-3.3-vs2.3.3.1/fs/btrfs/inode.c
+--- linux-3.3/fs/btrfs/inode.c 2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/btrfs/inode.c       2012-03-19 20:52:10.000000000 +0100
 @@ -39,6 +39,7 @@
  #include <linux/slab.h>
  #include <linux/ratelimit.h>
@@ -1791,7 +1779,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/bt
  #include "compat.h"
  #include "ctree.h"
  #include "disk-io.h"
-@@ -2332,6 +2333,8 @@ static void btrfs_read_locked_inode(stru
+@@ -2350,6 +2351,8 @@ static void btrfs_read_locked_inode(stru
        struct btrfs_key location;
        int maybe_acls;
        u32 rdev;
@@ -1800,7 +1788,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/bt
        int ret;
        bool filled = false;
  
-@@ -2359,8 +2362,13 @@ static void btrfs_read_locked_inode(stru
+@@ -2377,8 +2380,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));
@@ -1816,7 +1804,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/bt
        btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
  
        tspec = btrfs_inode_atime(inode_item);
-@@ -2438,8 +2446,14 @@ static void fill_inode_item(struct btrfs
+@@ -2456,8 +2464,14 @@ static void fill_inode_item(struct btrfs
                            struct btrfs_inode_item *item,
                            struct inode *inode)
  {
@@ -1833,7 +1821,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/bt
        btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size);
        btrfs_set_inode_mode(leaf, item, inode->i_mode);
        btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
-@@ -7377,11 +7391,13 @@ static const struct inode_operations btr
+@@ -7412,11 +7426,13 @@ static const struct inode_operations btr
        .listxattr      = btrfs_listxattr,
        .removexattr    = btrfs_removexattr,
        .permission     = btrfs_permission,
@@ -1847,9 +1835,9 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/inode.c linux-3.2.11-vs2.3.2.8/fs/bt
        .get_acl        = btrfs_get_acl,
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/btrfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/btrfs/ioctl.c
---- linux-3.2.11/fs/btrfs/ioctl.c      2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/btrfs/ioctl.c    2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/btrfs/ioctl.c linux-3.3-vs2.3.3.1/fs/btrfs/ioctl.c
+--- linux-3.3/fs/btrfs/ioctl.c 2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/btrfs/ioctl.c       2012-03-19 20:52:10.000000000 +0100
 @@ -71,10 +71,13 @@ static unsigned int btrfs_flags_to_ioctl
  {
        unsigned int iflags = 0;
@@ -1988,7 +1976,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/bt
  static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
  {
        struct btrfs_inode *ip = BTRFS_I(file->f_path.dentry->d_inode);
-@@ -194,7 +272,8 @@ static int btrfs_ioctl_setflags(struct f
+@@ -199,7 +277,8 @@ static int btrfs_ioctl_setflags(struct f
  
        flags = btrfs_mask_flags(inode->i_mode, flags);
        oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1998,7 +1986,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/bt
                if (!capable(CAP_LINUX_IMMUTABLE)) {
                        ret = -EPERM;
                        goto out_unlock;
-@@ -205,14 +284,19 @@ static int btrfs_ioctl_setflags(struct f
+@@ -210,14 +289,19 @@ static int btrfs_ioctl_setflags(struct f
        if (ret)
                goto out_unlock;
  
@@ -2022,33 +2010,32 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/bt
        if (flags & FS_APPEND_FL)
                ip->flags |= BTRFS_INODE_APPEND;
        else
-diff -NurpP --minimal linux-3.2.11/fs/btrfs/super.c linux-3.2.11-vs2.3.2.8/fs/btrfs/super.c
---- linux-3.2.11/fs/btrfs/super.c      2012-01-09 16:14:53.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/btrfs/super.c    2012-01-09 16:19:31.000000000 +0100
-@@ -165,7 +165,8 @@ enum {
-       Opt_notreelog, Opt_ratio, Opt_flushoncommit, Opt_discard,
-       Opt_space_cache, Opt_clear_cache, Opt_user_subvol_rm_allowed,
-       Opt_enospc_debug, Opt_subvolrootid, Opt_defrag,
--      Opt_inode_cache, Opt_no_space_cache, Opt_recovery, Opt_err,
-+      Opt_inode_cache, Opt_no_space_cache, Opt_recovery,
+diff -NurpP --minimal linux-3.3/fs/btrfs/super.c linux-3.3-vs2.3.3.1/fs/btrfs/super.c
+--- linux-3.3/fs/btrfs/super.c 2012-03-19 19:47:24.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/btrfs/super.c       2012-02-24 04:42:16.000000000 +0100
+@@ -167,7 +167,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_err,
 +      Opt_tag, Opt_notag, Opt_tagid, Opt_err,
  };
  
  static match_table_t tokens = {
-@@ -200,6 +201,9 @@ static match_table_t tokens = {
-       {Opt_inode_cache, "inode_cache"},
-       {Opt_no_space_cache, "nospace_cache"},
-       {Opt_recovery, "recovery"},
+@@ -206,6 +206,9 @@ static match_table_t tokens = {
+       {Opt_check_integrity, "check_int"},
+       {Opt_check_integrity_including_extent_data, "check_int_data"},
+       {Opt_check_integrity_print_mask, "check_int_print_mask=%d"},
 +      {Opt_tag, "tag"},
 +      {Opt_notag, "notag"},
 +      {Opt_tagid, "tagid=%u"},
        {Opt_err, NULL},
  };
  
-@@ -398,6 +402,22 @@ int btrfs_parse_options(struct btrfs_roo
-                       printk(KERN_INFO "btrfs: enabling auto recovery");
-                       btrfs_set_opt(info->mount_opt, RECOVERY);
-                       break;
+@@ -438,6 +441,22 @@ int btrfs_parse_options(struct btrfs_roo
+                       ret = -EINVAL;
+                       goto out;
+ #endif
 +#ifndef CONFIG_TAGGING_NONE
 +              case Opt_tag:
 +                      printk(KERN_INFO "btrfs: use tagging\n");
@@ -2068,7 +2055,7 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/super.c linux-3.2.11-vs2.3.2.8/fs/bt
                case Opt_err:
                        printk(KERN_INFO "btrfs: unrecognized mount option "
                               "'%s'\n", p);
-@@ -985,6 +1005,12 @@ static int btrfs_remount(struct super_bl
+@@ -1005,6 +1024,12 @@ static int btrfs_remount(struct super_bl
        if (ret)
                return -EINVAL;
  
@@ -2081,9 +2068,9 @@ diff -NurpP --minimal linux-3.2.11/fs/btrfs/super.c linux-3.2.11-vs2.3.2.8/fs/bt
        if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
                return 0;
  
-diff -NurpP --minimal linux-3.2.11/fs/char_dev.c linux-3.2.11-vs2.3.2.8/fs/char_dev.c
---- linux-3.2.11/fs/char_dev.c 2011-03-15 18:07:31.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/char_dev.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/char_dev.c linux-3.3-vs2.3.3.1/fs/char_dev.c
+--- linux-3.3/fs/char_dev.c    2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/char_dev.c  2012-02-24 03:55:06.000000000 +0100
 @@ -21,6 +21,8 @@
  #include <linux/mutex.h>
  #include <linux/backing-dev.h>
@@ -2116,18 +2103,18 @@ diff -NurpP --minimal linux-3.2.11/fs/char_dev.c linux-3.2.11-vs2.3.2.8/fs/char_
                if (!kobj)
                        return -ENXIO;
                new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.c
---- linux-3.2.11/fs/dcache.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/dcache.c 2012-01-26 08:52:10.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/dcache.c linux-3.3-vs2.3.3.1/fs/dcache.c
+--- linux-3.3/fs/dcache.c      2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/dcache.c    2012-03-19 20:52:10.000000000 +0100
 @@ -37,6 +37,7 @@
  #include <linux/rculist_bl.h>
  #include <linux/prefetch.h>
  #include <linux/ratelimit.h>
 +#include <linux/vs_limit.h>
  #include "internal.h"
+ #include "mount.h"
  
- /*
-@@ -539,6 +540,8 @@ int d_invalidate(struct dentry * dentry)
+@@ -560,6 +561,8 @@ int d_invalidate(struct dentry * dentry)
                spin_lock(&dentry->d_lock);
        }
  
@@ -2136,7 +2123,7 @@ diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.
        /*
         * Somebody else still using it?
         *
-@@ -568,6 +571,7 @@ EXPORT_SYMBOL(d_invalidate);
+@@ -589,6 +592,7 @@ EXPORT_SYMBOL(d_invalidate);
  static inline void __dget_dlock(struct dentry *dentry)
  {
        dentry->d_count++;
@@ -2144,7 +2131,7 @@ diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.
  }
  
  static inline void __dget(struct dentry *dentry)
-@@ -1192,6 +1196,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1213,6 +1217,9 @@ struct dentry *__d_alloc(struct super_bl
        struct dentry *dentry;
        char *dname;
  
@@ -2154,7 +2141,7 @@ diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.
        dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
        if (!dentry)
                return NULL;
-@@ -1214,6 +1221,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1235,6 +1242,7 @@ struct dentry *__d_alloc(struct super_bl
  
        dentry->d_count = 1;
        dentry->d_flags = 0;
@@ -2162,7 +2149,7 @@ diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.
        spin_lock_init(&dentry->d_lock);
        seqcount_init(&dentry->d_seq);
        dentry->d_inode = NULL;
-@@ -1872,6 +1880,7 @@ struct dentry *__d_lookup(struct dentry 
+@@ -1920,6 +1928,7 @@ struct dentry *__d_lookup(struct dentry 
                }
  
                dentry->d_count++;
@@ -2170,9 +2157,9 @@ diff -NurpP --minimal linux-3.2.11/fs/dcache.c linux-3.2.11-vs2.3.2.8/fs/dcache.
                found = dentry;
                spin_unlock(&dentry->d_lock);
                break;
-diff -NurpP --minimal linux-3.2.11/fs/devpts/inode.c linux-3.2.11-vs2.3.2.8/fs/devpts/inode.c
---- linux-3.2.11/fs/devpts/inode.c     2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/devpts/inode.c   2011-12-05 21:23:19.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/devpts/inode.c linux-3.3-vs2.3.3.1/fs/devpts/inode.c
+--- linux-3.3/fs/devpts/inode.c        2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/devpts/inode.c      2012-02-24 03:55:06.000000000 +0100
 @@ -25,6 +25,7 @@
  #include <linux/parser.h>
  #include <linux/fsnotify.h>
@@ -2249,7 +2236,7 @@ diff -NurpP --minimal linux-3.2.11/fs/devpts/inode.c linux-3.2.11-vs2.3.2.8/fs/d
  
        s->s_root = d_alloc_root(inode);
        if (s->s_root)
-@@ -494,6 +539,9 @@ int devpts_pty_new(struct inode *ptmx_in
+@@ -492,6 +537,9 @@ int devpts_pty_new(struct inode *ptmx_in
        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);
@@ -2259,9 +2246,9 @@ diff -NurpP --minimal linux-3.2.11/fs/devpts/inode.c linux-3.2.11-vs2.3.2.8/fs/d
        inode->i_private = tty;
        tty->driver_data = inode;
  
-diff -NurpP --minimal linux-3.2.11/fs/ext2/balloc.c linux-3.2.11-vs2.3.2.8/fs/ext2/balloc.c
---- linux-3.2.11/fs/ext2/balloc.c      2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/balloc.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/balloc.c linux-3.3-vs2.3.3.1/fs/ext2/balloc.c
+--- linux-3.3/fs/ext2/balloc.c 2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/balloc.c       2012-02-24 03:55:06.000000000 +0100
 @@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block 
                        start = 0;
                end = EXT2_BLOCKS_PER_GROUP(sb);
@@ -2270,9 +2257,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/balloc.c linux-3.2.11-vs2.3.2.8/fs/ex
        BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
  
  repeat:
-diff -NurpP --minimal linux-3.2.11/fs/ext2/ext2.h linux-3.2.11-vs2.3.2.8/fs/ext2/ext2.h
---- linux-3.2.11/fs/ext2/ext2.h        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/ext2.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/ext2.h linux-3.3-vs2.3.3.1/fs/ext2/ext2.h
+--- linux-3.3/fs/ext2/ext2.h   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/ext2.h 2012-02-24 03:55:06.000000000 +0100
 @@ -126,6 +126,7 @@ extern void ext2_set_inode_flags(struct 
  extern void ext2_get_inode_flags(struct ext2_inode_info *);
  extern int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
@@ -2281,18 +2268,18 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/ext2.h linux-3.2.11-vs2.3.2.8/fs/ext2
  
  /* ioctl.c */
  extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.2.11/fs/ext2/file.c linux-3.2.11-vs2.3.2.8/fs/ext2/file.c
---- linux-3.2.11/fs/ext2/file.c        2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/file.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/file.c linux-3.3-vs2.3.3.1/fs/ext2/file.c
+--- linux-3.3/fs/ext2/file.c   2011-10-24 18:45:27.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/ext2/file.c 2012-02-24 03:55:06.000000000 +0100
 @@ -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.2.11/fs/ext2/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ext2/ialloc.c
---- linux-3.2.11/fs/ext2/ialloc.c      2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/ialloc.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/ialloc.c linux-3.3-vs2.3.3.1/fs/ext2/ialloc.c
+--- linux-3.3/fs/ext2/ialloc.c 2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/ialloc.c       2012-02-24 03:55:06.000000000 +0100
 @@ -17,6 +17,7 @@
  #include <linux/backing-dev.h>
  #include <linux/buffer_head.h>
@@ -2309,10 +2296,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext2/inode.c
---- linux-3.2.11/fs/ext2/inode.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/inode.c     2011-12-05 21:24:12.000000000 +0100
-@@ -32,6 +32,7 @@
+diff -NurpP --minimal linux-3.3/fs/ext2/inode.c linux-3.3-vs2.3.3.1/fs/ext2/inode.c
+--- linux-3.3/fs/ext2/inode.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/inode.c        2012-02-24 03:55:06.000000000 +0100
+@@ -31,6 +31,7 @@
  #include <linux/mpage.h>
  #include <linux/fiemap.h>
  #include <linux/namei.h>
@@ -2320,7 +2307,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  #include "ext2.h"
  #include "acl.h"
  #include "xip.h"
-@@ -1167,7 +1168,7 @@ static void ext2_truncate_blocks(struct 
+@@ -1162,7 +1163,7 @@ static void ext2_truncate_blocks(struct 
                return;
        if (ext2_inode_is_fast_symlink(inode))
                return;
@@ -2329,7 +2316,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                return;
        __ext2_truncate_blocks(inode, offset);
  }
-@@ -1258,36 +1259,61 @@ void ext2_set_inode_flags(struct inode *
+@@ -1253,36 +1254,61 @@ void ext2_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT2_I(inode)->i_flags;
  
@@ -2398,7 +2385,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  }
  
  struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
-@@ -1297,6 +1323,8 @@ struct inode *ext2_iget (struct super_bl
+@@ -1292,6 +1318,8 @@ struct inode *ext2_iget (struct super_bl
        struct ext2_inode *raw_inode;
        struct inode *inode;
        long ret = -EIO;
@@ -2407,7 +2394,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        int n;
  
        inode = iget_locked(sb, ino);
-@@ -1315,12 +1343,16 @@ struct inode *ext2_iget (struct super_bl
+@@ -1310,12 +1338,16 @@ struct inode *ext2_iget (struct super_bl
        }
  
        inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2428,7 +2415,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
        inode->i_size = le32_to_cpu(raw_inode->i_size);
        inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
-@@ -1418,8 +1450,8 @@ static int __ext2_write_inode(struct ino
+@@ -1413,8 +1445,8 @@ 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;
@@ -2439,7 +2426,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        struct buffer_head * bh;
        struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
        int n;
-@@ -1455,6 +1487,9 @@ static int __ext2_write_inode(struct ino
+@@ -1450,6 +1482,9 @@ static int __ext2_write_inode(struct ino
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
@@ -2449,7 +2436,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        raw_inode->i_size = cpu_to_le32(inode->i_size);
        raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
-@@ -1535,7 +1570,8 @@ int ext2_setattr(struct dentry *dentry, 
+@@ -1530,7 +1565,8 @@ int ext2_setattr(struct dentry *dentry, 
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
        if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
@@ -2459,9 +2446,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                error = dquot_transfer(inode, iattr);
                if (error)
                        return error;
-diff -NurpP --minimal linux-3.2.11/fs/ext2/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext2/ioctl.c
---- linux-3.2.11/fs/ext2/ioctl.c       2011-05-22 16:17:51.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/ioctl.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/ioctl.c linux-3.3-vs2.3.3.1/fs/ext2/ioctl.c
+--- linux-3.3/fs/ext2/ioctl.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/ioctl.c        2012-02-24 03:55:06.000000000 +0100
 @@ -17,6 +17,16 @@
  #include <asm/uaccess.h>
  
@@ -2510,10 +2497,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
 +              flags &= EXT2_FL_USER_MODIFIABLE;
                flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
-               mutex_unlock(&inode->i_mutex);
-diff -NurpP --minimal linux-3.2.11/fs/ext2/namei.c linux-3.2.11-vs2.3.2.8/fs/ext2/namei.c
---- linux-3.2.11/fs/ext2/namei.c       2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/namei.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext2/namei.c linux-3.3-vs2.3.3.1/fs/ext2/namei.c
+--- linux-3.3/fs/ext2/namei.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/namei.c        2012-02-24 03:55:06.000000000 +0100
 @@ -32,6 +32,7 @@
  
  #include <linux/pagemap.h>
@@ -2538,10 +2525,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/namei.c linux-3.2.11-vs2.3.2.8/fs/ext
        .get_acl        = ext2_get_acl,
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext2/super.c
---- linux-3.2.11/fs/ext2/super.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext2/super.c     2011-12-05 19:33:02.000000000 +0100
-@@ -394,7 +394,8 @@ enum {
+diff -NurpP --minimal linux-3.3/fs/ext2/super.c linux-3.3-vs2.3.3.1/fs/ext2/super.c
+--- linux-3.3/fs/ext2/super.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext2/super.c        2012-02-24 03:55:06.000000000 +0100
+@@ -393,7 +393,8 @@ enum {
        Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
        Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
        Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota,
@@ -2551,7 +2538,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext
  };
  
  static const match_table_t tokens = {
-@@ -422,6 +423,9 @@ static const match_table_t tokens = {
+@@ -421,6 +422,9 @@ static const match_table_t tokens = {
        {Opt_acl, "acl"},
        {Opt_noacl, "noacl"},
        {Opt_xip, "xip"},
@@ -2561,7 +2548,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        {Opt_grpquota, "grpquota"},
        {Opt_ignore, "noquota"},
        {Opt_quota, "quota"},
-@@ -492,6 +496,20 @@ static int parse_options(char *options, 
+@@ -491,6 +495,20 @@ static int parse_options(char *options, 
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2582,7 +2569,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -850,6 +868,8 @@ static int ext2_fill_super(struct super_
+@@ -849,6 +867,8 @@ static int ext2_fill_super(struct super_
        if (!parse_options((char *) data, sb))
                goto failed_mount;
  
@@ -2591,7 +2578,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
                 MS_POSIXACL : 0);
-@@ -1224,6 +1244,14 @@ static int ext2_remount (struct super_bl
+@@ -1223,6 +1243,14 @@ static int ext2_remount (struct super_bl
                goto restore_opts;
        }
  
@@ -2606,9 +2593,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext2/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.2.11/fs/ext3/file.c linux-3.2.11-vs2.3.2.8/fs/ext3/file.c
---- linux-3.2.11/fs/ext3/file.c        2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/file.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext3/file.c linux-3.3-vs2.3.3.1/fs/ext3/file.c
+--- linux-3.3/fs/ext3/file.c   2011-10-24 18:45:27.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/ext3/file.c 2012-02-24 03:55:06.000000000 +0100
 @@ -80,5 +80,6 @@ const struct inode_operations ext3_file_
  #endif
        .get_acl        = ext3_get_acl,
@@ -2616,9 +2603,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/file.c linux-3.2.11-vs2.3.2.8/fs/ext3
 +      .sync_flags     = ext3_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/ext3/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ext3/ialloc.c
---- linux-3.2.11/fs/ext3/ialloc.c      2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/ialloc.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext3/ialloc.c linux-3.3-vs2.3.3.1/fs/ext3/ialloc.c
+--- linux-3.3/fs/ext3/ialloc.c 2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext3/ialloc.c       2012-02-24 03:55:06.000000000 +0100
 @@ -23,6 +23,7 @@
  #include <linux/buffer_head.h>
  #include <linux/random.h>
@@ -2635,10 +2622,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext3/inode.c
---- linux-3.2.11/fs/ext3/inode.c       2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/inode.c     2012-01-18 02:58:07.000000000 +0100
-@@ -38,6 +38,7 @@
+diff -NurpP --minimal linux-3.3/fs/ext3/inode.c linux-3.3-vs2.3.3.1/fs/ext3/inode.c
+--- linux-3.3/fs/ext3/inode.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext3/inode.c        2012-02-24 03:55:06.000000000 +0100
+@@ -37,6 +37,7 @@
  #include <linux/bio.h>
  #include <linux/fiemap.h>
  #include <linux/namei.h>
@@ -2646,7 +2633,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  #include <trace/events/ext3.h>
  #include "xattr.h"
  #include "acl.h"
-@@ -2852,36 +2853,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2855,36 +2856,60 @@ void ext3_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT3_I(inode)->i_flags;
  
@@ -2714,7 +2701,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  }
  
  struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2895,6 +2920,8 @@ struct inode *ext3_iget(struct super_blo
+@@ -2898,6 +2923,8 @@ struct inode *ext3_iget(struct super_blo
        transaction_t *transaction;
        long ret;
        int block;
@@ -2723,7 +2710,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  
        inode = iget_locked(sb, ino);
        if (!inode)
-@@ -2911,12 +2938,16 @@ struct inode *ext3_iget(struct super_blo
+@@ -2914,12 +2941,16 @@ struct inode *ext3_iget(struct super_blo
        bh = iloc.bh;
        raw_inode = ext3_raw_inode(&iloc);
        inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2744,7 +2731,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
        inode->i_size = le32_to_cpu(raw_inode->i_size);
        inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
-@@ -3071,6 +3102,8 @@ static int ext3_do_update_inode(handle_t
+@@ -3074,6 +3105,8 @@ static int ext3_do_update_inode(handle_t
        struct ext3_inode *raw_inode = ext3_raw_inode(iloc);
        struct ext3_inode_info *ei = EXT3_I(inode);
        struct buffer_head *bh = iloc->bh;
@@ -2753,7 +2740,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        int err = 0, rc, block;
  
  again:
-@@ -3085,29 +3118,32 @@ again:
+@@ -3088,29 +3121,32 @@ again:
        ext3_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
        if(!(test_opt(inode->i_sb, NO_UID32))) {
@@ -2792,7 +2779,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        raw_inode->i_size = cpu_to_le32(ei->i_disksize);
        raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
-@@ -3267,7 +3303,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3270,7 +3306,8 @@ int ext3_setattr(struct dentry *dentry, 
        if (is_quota_modification(inode, attr))
                dquot_initialize(inode);
        if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -2802,7 +2789,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -3289,6 +3326,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3292,6 +3329,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;
@@ -2811,9 +2798,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                error = ext3_mark_inode_dirty(handle, inode);
                ext3_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.2.11/fs/ext3/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext3/ioctl.c
---- linux-3.2.11/fs/ext3/ioctl.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/ioctl.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext3/ioctl.c linux-3.3-vs2.3.3.1/fs/ext3/ioctl.c
+--- linux-3.3/fs/ext3/ioctl.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext3/ioctl.c        2012-02-24 03:55:06.000000000 +0100
 @@ -8,6 +8,7 @@
   */
  
@@ -2889,9 +2876,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
                flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.2.11/fs/ext3/namei.c linux-3.2.11-vs2.3.2.8/fs/ext3/namei.c
---- linux-3.2.11/fs/ext3/namei.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/namei.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext3/namei.c linux-3.3-vs2.3.3.1/fs/ext3/namei.c
+--- linux-3.3/fs/ext3/namei.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext3/namei.c        2012-02-24 03:55:06.000000000 +0100
 @@ -36,6 +36,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -2900,15 +2887,15 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/namei.c linux-3.2.11-vs2.3.2.8/fs/ext
  #include <trace/events/ext3.h>
  
  #include "namei.h"
-@@ -925,6 +926,7 @@ restart:
-                                       ll_rw_block(READ | REQ_META | REQ_PRIO,
-                                                   1, &bh);
-                       }
+@@ -927,6 +928,7 @@ restart:
+                                       submit_bh(READ | REQ_META | REQ_PRIO,
+                                                 bh);
+                               }
 +              dx_propagate_tag(nd, inode);
+                       }
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
-                       goto next;
-@@ -2535,6 +2537,7 @@ const struct inode_operations ext3_dir_i
+@@ -2538,6 +2540,7 @@ const struct inode_operations ext3_dir_i
        .listxattr      = ext3_listxattr,
        .removexattr    = generic_removexattr,
  #endif
@@ -2916,10 +2903,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/namei.c linux-3.2.11-vs2.3.2.8/fs/ext
        .get_acl        = ext3_get_acl,
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/ext3/super.c linux-3.2.11-vs2.3.2.8/fs/ext3/super.c
---- linux-3.2.11/fs/ext3/super.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext3/super.c     2011-12-05 19:33:02.000000000 +0100
-@@ -831,7 +831,8 @@ enum {
+diff -NurpP --minimal linux-3.3/fs/ext3/super.c linux-3.3-vs2.3.3.1/fs/ext3/super.c
+--- linux-3.3/fs/ext3/super.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext3/super.c        2012-02-24 03:55:06.000000000 +0100
+@@ -830,7 +830,8 @@ enum {
        Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
        Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
        Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
@@ -2929,7 +2916,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/super.c linux-3.2.11-vs2.3.2.8/fs/ext
  };
  
  static const match_table_t tokens = {
-@@ -888,6 +889,9 @@ static const match_table_t tokens = {
+@@ -887,6 +888,9 @@ static const match_table_t tokens = {
        {Opt_barrier, "barrier"},
        {Opt_nobarrier, "nobarrier"},
        {Opt_resize, "resize"},
@@ -2939,7 +2926,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        {Opt_err, NULL},
  };
  
-@@ -1040,6 +1044,20 @@ static int parse_options (char *options,
+@@ -1039,6 +1043,20 @@ static int parse_options (char *options,
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2960,7 +2947,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/super.c linux-3.2.11-vs2.3.2.8/fs/ext
                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;
  
@@ -2985,9 +2972,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext3/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4/ext4.h
---- linux-3.2.11/fs/ext4/ext4.h        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/ext4.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext4/ext4.h linux-3.3-vs2.3.3.1/fs/ext4/ext4.h
+--- linux-3.3/fs/ext4/ext4.h   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/ext4.h 2012-02-24 03:55:06.000000000 +0100
 @@ -371,8 +371,12 @@ struct flex_groups {
  #define EXT4_EXTENTS_FL                       0x00080000 /* Inode uses extents */
  #define EXT4_EA_INODE_FL              0x00200000 /* Inode used for large EA */
@@ -3001,7 +2988,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4
  #define EXT4_FL_USER_VISIBLE          0x004BDFFF /* User visible flags */
  #define EXT4_FL_USER_MODIFIABLE               0x004B80FF /* User modifiable flags */
  
-@@ -632,7 +636,8 @@ struct ext4_inode {
+@@ -641,7 +645,8 @@ struct ext4_inode {
                        __le16  l_i_file_acl_high;
                        __le16  l_i_uid_high;   /* these 2 fields */
                        __le16  l_i_gid_high;   /* were reserved2[0] */
@@ -3011,7 +2998,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4
                } linux2;
                struct {
                        __le16  h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
-@@ -750,6 +755,7 @@ do {                                                                              \
+@@ -759,6 +764,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
@@ -3019,7 +3006,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4
  #define i_reserved2   osd2.linux2.l_i_reserved2
  
  #elif defined(__GNU__)
-@@ -926,6 +932,7 @@ struct ext4_inode_info {
+@@ -935,6 +941,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 */
@@ -3027,7 +3014,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4
  #define EXT4_MOUNT_QUOTA              0x80000 /* Some quota option set */
  #define EXT4_MOUNT_USRQUOTA           0x100000 /* "old" user quota */
  #define EXT4_MOUNT_GRPQUOTA           0x200000 /* "old" group quota */
-@@ -2270,6 +2277,7 @@ extern int ext4_map_blocks(handle_t *han
+@@ -2275,6 +2282,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);
@@ -3035,9 +3022,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ext4.h linux-3.2.11-vs2.3.2.8/fs/ext4
  /* move_extent.c */
  extern int ext4_move_extents(struct file *o_filp, struct file *d_filp,
                             __u64 start_orig, __u64 start_donor,
-diff -NurpP --minimal linux-3.2.11/fs/ext4/file.c linux-3.2.11-vs2.3.2.8/fs/ext4/file.c
---- linux-3.2.11/fs/ext4/file.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/file.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext4/file.c linux-3.3-vs2.3.3.1/fs/ext4/file.c
+--- linux-3.3/fs/ext4/file.c   2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/file.c 2012-02-24 03:55:06.000000000 +0100
 @@ -258,5 +258,6 @@ const struct inode_operations ext4_file_
  #endif
        .get_acl        = ext4_get_acl,
@@ -3045,9 +3032,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/file.c linux-3.2.11-vs2.3.2.8/fs/ext4
 +      .sync_flags     = ext4_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/ext4/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ext4/ialloc.c
---- linux-3.2.11/fs/ext4/ialloc.c      2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/ialloc.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext4/ialloc.c linux-3.3-vs2.3.3.1/fs/ext4/ialloc.c
+--- linux-3.3/fs/ext4/ialloc.c 2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/ialloc.c       2012-02-24 03:55:06.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <linux/random.h>
  #include <linux/bitops.h>
@@ -3064,10 +3051,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ialloc.c linux-3.2.11-vs2.3.2.8/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext4/inode.c
---- linux-3.2.11/fs/ext4/inode.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/inode.c     2012-01-09 16:19:31.000000000 +0100
-@@ -38,6 +38,7 @@
+diff -NurpP --minimal linux-3.3/fs/ext4/inode.c linux-3.3-vs2.3.3.1/fs/ext4/inode.c
+--- linux-3.3/fs/ext4/inode.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/inode.c        2012-02-24 03:55:06.000000000 +0100
+@@ -37,6 +37,7 @@
  #include <linux/printk.h>
  #include <linux/slab.h>
  #include <linux/ratelimit.h>
@@ -3075,7 +3062,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  
  #include "ext4_jbd2.h"
  #include "xattr.h"
-@@ -3667,41 +3668,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -3549,41 +3550,64 @@ void ext4_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT4_I(inode)->i_flags;
  
@@ -3147,7 +3134,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
  }
  
-@@ -3737,6 +3761,8 @@ struct inode *ext4_iget(struct super_blo
+@@ -3619,6 +3643,8 @@ struct inode *ext4_iget(struct super_blo
        journal_t *journal = EXT4_SB(sb)->s_journal;
        long ret;
        int block;
@@ -3156,7 +3143,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
  
        inode = iget_locked(sb, ino);
        if (!inode)
-@@ -3752,12 +3778,16 @@ struct inode *ext4_iget(struct super_blo
+@@ -3634,12 +3660,16 @@ struct inode *ext4_iget(struct super_blo
                goto bad_inode;
        raw_inode = ext4_raw_inode(&iloc);
        inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -3177,7 +3164,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
  
        ext4_clear_state_flags(ei);     /* Only relevant on 32-bit archs */
-@@ -3976,6 +4006,8 @@ static int ext4_do_update_inode(handle_t
+@@ -3858,6 +3888,8 @@ static int ext4_do_update_inode(handle_t
        struct ext4_inode *raw_inode = ext4_raw_inode(iloc);
        struct ext4_inode_info *ei = EXT4_I(inode);
        struct buffer_head *bh = iloc->bh;
@@ -3186,7 +3173,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        int err = 0, rc, block;
  
        /* For fields not not tracking in the in-memory inode,
-@@ -3986,29 +4018,32 @@ static int ext4_do_update_inode(handle_t
+@@ -3868,29 +3900,32 @@ static int ext4_do_update_inode(handle_t
        ext4_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
        if (!(test_opt(inode->i_sb, NO_UID32))) {
@@ -3225,7 +3212,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  
        EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4194,7 +4229,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4076,7 +4111,8 @@ int ext4_setattr(struct dentry *dentry, 
        if (is_quota_modification(inode, attr))
                dquot_initialize(inode);
        if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -3235,7 +3222,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -4216,6 +4252,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4098,6 +4134,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;
@@ -3244,10 +3231,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/inode.c linux-3.2.11-vs2.3.2.8/fs/ext
                error = ext4_mark_inode_dirty(handle, inode);
                ext4_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.2.11/fs/ext4/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext4/ioctl.c
---- linux-3.2.11/fs/ext4/ioctl.c       2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/ioctl.c     2012-01-26 08:52:10.000000000 +0100
-@@ -14,10 +14,39 @@
+diff -NurpP --minimal linux-3.3/fs/ext4/ioctl.c linux-3.3-vs2.3.3.1/fs/ext4/ioctl.c
+--- linux-3.3/fs/ext4/ioctl.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/ioctl.c        2012-02-24 04:29:04.000000000 +0100
+@@ -14,12 +14,40 @@
  #include <linux/compat.h>
  #include <linux/mount.h>
  #include <linux/file.h>
@@ -3256,7 +3243,8 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
  #include "ext4_jbd2.h"
  #include "ext4.h"
  
-+
+ #define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1)
 +int ext4_sync_flags(struct inode *inode, int flags, int vflags)
 +{
 +      handle_t *handle = NULL;
@@ -3287,7 +3275,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
  long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        struct inode *inode = filp->f_dentry->d_inode;
-@@ -51,6 +80,11 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -53,6 +81,11 @@ long ext4_ioctl(struct file *filp, unsig
  
                flags = ext4_mask_flags(inode->i_mode, flags);
  
@@ -3299,7 +3287,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
                err = -EPERM;
                mutex_lock(&inode->i_mutex);
                /* Is it quota file? Do not allow user to mess with it */
-@@ -68,7 +102,9 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -70,7 +103,9 @@ long ext4_ioctl(struct file *filp, unsig
                 *
                 * This test looks nicer. Thanks to Pauline Middelink
                 */
@@ -3310,9 +3298,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ext
                        if (!capable(CAP_LINUX_IMMUTABLE))
                                goto flags_out;
                }
-diff -NurpP --minimal linux-3.2.11/fs/ext4/namei.c linux-3.2.11-vs2.3.2.8/fs/ext4/namei.c
---- linux-3.2.11/fs/ext4/namei.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/namei.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ext4/namei.c linux-3.3-vs2.3.3.1/fs/ext4/namei.c
+--- linux-3.3/fs/ext4/namei.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/namei.c        2012-02-24 03:55:06.000000000 +0100
 @@ -34,6 +34,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -3337,10 +3325,10 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/namei.c linux-3.2.11-vs2.3.2.8/fs/ext
  };
  
  const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext4/super.c
---- linux-3.2.11/fs/ext4/super.c       2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ext4/super.c     2012-01-26 08:52:10.000000000 +0100
-@@ -1334,6 +1334,7 @@ enum {
+diff -NurpP --minimal linux-3.3/fs/ext4/super.c linux-3.3-vs2.3.3.1/fs/ext4/super.c
+--- linux-3.3/fs/ext4/super.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ext4/super.c        2012-02-24 03:55:06.000000000 +0100
+@@ -1333,6 +1333,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,
@@ -3348,7 +3336,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext
  };
  
  static const match_table_t tokens = {
-@@ -1409,6 +1410,9 @@ static const match_table_t tokens = {
+@@ -1408,6 +1409,9 @@ static const match_table_t tokens = {
        {Opt_init_itable, "init_itable=%u"},
        {Opt_init_itable, "init_itable"},
        {Opt_noinit_itable, "noinit_itable"},
@@ -3358,7 +3346,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        {Opt_err, NULL},
  };
  
-@@ -1577,6 +1581,20 @@ static int parse_options(char *options, 
+@@ -1576,6 +1580,20 @@ static int parse_options(char *options, 
                case Opt_nouid32:
                        set_opt(sb, NO_UID32);
                        break;
@@ -3379,7 +3367,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext
                case Opt_debug:
                        set_opt(sb, DEBUG);
                        break;
-@@ -3278,6 +3296,9 @@ static int ext4_fill_super(struct super_
+@@ -3276,6 +3294,9 @@ static int ext4_fill_super(struct super_
                }
        }
  
@@ -3389,7 +3377,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -4427,6 +4448,14 @@ static int ext4_remount(struct super_blo
+@@ -4428,6 +4449,14 @@ static int ext4_remount(struct super_blo
        if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
                ext4_abort(sb, "Abort forced by user");
  
@@ -3404,9 +3392,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ext4/super.c linux-3.2.11-vs2.3.2.8/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.2.11/fs/fcntl.c linux-3.2.11-vs2.3.2.8/fs/fcntl.c
---- linux-3.2.11/fs/fcntl.c    2011-05-22 16:17:52.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/fcntl.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/fcntl.c linux-3.3-vs2.3.3.1/fs/fcntl.c
+--- linux-3.3/fs/fcntl.c       2011-05-22 16:17:52.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/fcntl.c     2012-02-24 03:55:06.000000000 +0100
 @@ -20,6 +20,7 @@
  #include <linux/signal.h>
  #include <linux/rcupdate.h>
@@ -3433,9 +3421,9 @@ diff -NurpP --minimal linux-3.2.11/fs/fcntl.c linux-3.2.11-vs2.3.2.8/fs/fcntl.c
  
        if (unlikely(filp->f_mode & FMODE_PATH)) {
                if (!check_fcntl_cmd(cmd)) {
-diff -NurpP --minimal linux-3.2.11/fs/file.c linux-3.2.11-vs2.3.2.8/fs/file.c
---- linux-3.2.11/fs/file.c     2011-05-22 16:17:52.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/file.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/file.c linux-3.3-vs2.3.3.1/fs/file.c
+--- linux-3.3/fs/file.c        2011-05-22 16:17:52.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/file.c      2012-02-24 03:55:06.000000000 +0100
 @@ -21,6 +21,7 @@
  #include <linux/spinlock.h>
  #include <linux/rcupdate.h>
@@ -3461,9 +3449,9 @@ diff -NurpP --minimal linux-3.2.11/fs/file.c linux-3.2.11-vs2.3.2.8/fs/file.c
  #if 1
        /* Sanity check */
        if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-diff -NurpP --minimal linux-3.2.11/fs/file_table.c linux-3.2.11-vs2.3.2.8/fs/file_table.c
---- linux-3.2.11/fs/file_table.c       2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/file_table.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/file_table.c linux-3.3-vs2.3.3.1/fs/file_table.c
+--- linux-3.3/fs/file_table.c  2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/file_table.c        2012-02-24 03:55:06.000000000 +0100
 @@ -24,6 +24,8 @@
  #include <linux/percpu_counter.h>
  #include <linux/percpu.h>
@@ -3500,9 +3488,9 @@ diff -NurpP --minimal linux-3.2.11/fs/file_table.c linux-3.2.11-vs2.3.2.8/fs/fil
                file_sb_list_del(file);
                file_free(file);
        }
-diff -NurpP --minimal linux-3.2.11/fs/fs_struct.c linux-3.2.11-vs2.3.2.8/fs/fs_struct.c
---- linux-3.2.11/fs/fs_struct.c        2011-03-15 18:07:31.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/fs_struct.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/fs_struct.c linux-3.3-vs2.3.3.1/fs/fs_struct.c
+--- linux-3.3/fs/fs_struct.c   2011-03-15 18:07:31.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/fs_struct.c 2012-02-24 03:55:06.000000000 +0100
 @@ -4,6 +4,7 @@
  #include <linux/path.h>
  #include <linux/slab.h>
@@ -3527,9 +3515,9 @@ diff -NurpP --minimal linux-3.2.11/fs/fs_struct.c linux-3.2.11-vs2.3.2.8/fs/fs_s
        }
        return fs;
  }
-diff -NurpP --minimal linux-3.2.11/fs/gfs2/file.c linux-3.2.11-vs2.3.2.8/fs/gfs2/file.c
---- linux-3.2.11/fs/gfs2/file.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/gfs2/file.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/gfs2/file.c linux-3.3-vs2.3.3.1/fs/gfs2/file.c
+--- linux-3.3/fs/gfs2/file.c   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/gfs2/file.c 2012-02-24 03:55:06.000000000 +0100
 @@ -143,6 +143,9 @@ static const u32 fsflags_to_gfs2[32] = {
        [7] = GFS2_DIF_NOATIME,
        [12] = GFS2_DIF_EXHASH,
@@ -3652,9 +3640,9 @@ diff -NurpP --minimal linux-3.2.11/fs/gfs2/file.c linux-3.2.11-vs2.3.2.8/fs/gfs2
  static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        switch(cmd) {
-diff -NurpP --minimal linux-3.2.11/fs/gfs2/inode.h linux-3.2.11-vs2.3.2.8/fs/gfs2/inode.h
---- linux-3.2.11/fs/gfs2/inode.h       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/gfs2/inode.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/gfs2/inode.h linux-3.3-vs2.3.3.1/fs/gfs2/inode.h
+--- linux-3.3/fs/gfs2/inode.h  2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/gfs2/inode.h        2012-02-24 03:55:06.000000000 +0100
 @@ -120,6 +120,7 @@ extern const struct file_operations gfs2
  extern const struct file_operations gfs2_dir_fops_nolock;
  
@@ -3663,18 +3651,18 @@ diff -NurpP --minimal linux-3.2.11/fs/gfs2/inode.h linux-3.2.11-vs2.3.2.8/fs/gfs
   
  #ifdef CONFIG_GFS2_FS_LOCKING_DLM
  extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
---- linux-3.2.11/fs/inode.c    2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/inode.c  2011-12-05 19:33:02.000000000 +0100
-@@ -26,6 +26,7 @@
- #include <linux/ima.h>
+diff -NurpP --minimal linux-3.3/fs/inode.c linux-3.3-vs2.3.3.1/fs/inode.c
+--- linux-3.3/fs/inode.c       2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/inode.c     2012-03-19 20:52:10.000000000 +0100
+@@ -27,6 +27,7 @@
  #include <linux/cred.h>
  #include <linux/buffer_head.h> /* for inode_has_buffers */
+ #include <linux/ratelimit.h>
 +#include <linux/vs_tag.h>
  #include "internal.h"
  
  /*
-@@ -137,6 +138,9 @@ int inode_init_always(struct super_block
+@@ -138,6 +139,9 @@ int inode_init_always(struct super_block
        struct address_space *const mapping = &inode->i_data;
  
        inode->i_sb = sb;
@@ -3684,7 +3672,7 @@ diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
        inode->i_blkbits = sb->s_blocksize_bits;
        inode->i_flags = 0;
        atomic_set(&inode->i_count, 1);
-@@ -158,6 +162,7 @@ int inode_init_always(struct super_block
+@@ -159,6 +163,7 @@ int inode_init_always(struct super_block
        inode->i_bdev = NULL;
        inode->i_cdev = NULL;
        inode->i_rdev = 0;
@@ -3692,7 +3680,7 @@ diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
        inode->dirtied_when = 0;
  
        if (security_inode_alloc(inode))
-@@ -399,6 +404,8 @@ void __insert_inode_hash(struct inode *i
+@@ -480,6 +485,8 @@ void __insert_inode_hash(struct inode *i
  }
  EXPORT_SYMBOL(__insert_inode_hash);
  
@@ -3701,7 +3689,7 @@ diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
  /**
   *    __remove_inode_hash - remove an inode from the hash
   *    @inode: inode to unhash
-@@ -1626,9 +1633,11 @@ void init_special_inode(struct inode *in
+@@ -1709,9 +1716,11 @@ void init_special_inode(struct inode *in
        if (S_ISCHR(mode)) {
                inode->i_fop = &def_chr_fops;
                inode->i_rdev = rdev;
@@ -3713,7 +3701,7 @@ diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
        } else if (S_ISFIFO(mode))
                inode->i_fop = &def_fifo_fops;
        else if (S_ISSOCK(mode))
-@@ -1657,6 +1666,7 @@ void inode_init_owner(struct inode *inod
+@@ -1740,6 +1749,7 @@ void inode_init_owner(struct inode *inod
        } else
                inode->i_gid = current_fsgid();
        inode->i_mode = mode;
@@ -3721,9 +3709,9 @@ diff -NurpP --minimal linux-3.2.11/fs/inode.c linux-3.2.11-vs2.3.2.8/fs/inode.c
  }
  EXPORT_SYMBOL(inode_init_owner);
  
-diff -NurpP --minimal linux-3.2.11/fs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ioctl.c
---- linux-3.2.11/fs/ioctl.c    2011-05-22 16:17:52.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ioctl.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ioctl.c linux-3.3-vs2.3.3.1/fs/ioctl.c
+--- linux-3.3/fs/ioctl.c       2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ioctl.c     2012-02-24 03:55:06.000000000 +0100
 @@ -15,6 +15,9 @@
  #include <linux/writeback.h>
  #include <linux/buffer_head.h>
@@ -3734,9 +3722,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ioctl.c
  
  #include <asm/ioctls.h>
  
-diff -NurpP --minimal linux-3.2.11/fs/ioprio.c linux-3.2.11-vs2.3.2.8/fs/ioprio.c
---- linux-3.2.11/fs/ioprio.c   2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ioprio.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ioprio.c linux-3.3-vs2.3.3.1/fs/ioprio.c
+--- linux-3.3/fs/ioprio.c      2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ioprio.c    2012-02-24 03:55:06.000000000 +0100
 @@ -28,6 +28,7 @@
  #include <linux/syscalls.h>
  #include <linux/security.h>
@@ -3745,7 +3733,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ioprio.c linux-3.2.11-vs2.3.2.8/fs/ioprio.
  
  int set_task_ioprio(struct task_struct *task, int ioprio)
  {
-@@ -120,6 +121,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which, 
+@@ -104,6 +105,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which, 
                        else
                                pgrp = find_vpid(who);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3754,7 +3742,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ioprio.c linux-3.2.11-vs2.3.2.8/fs/ioprio.
                                ret = set_task_ioprio(p, ioprio);
                                if (ret)
                                        break;
-@@ -209,6 +212,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which, 
+@@ -193,6 +196,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which, 
                        else
                                pgrp = find_vpid(who);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3763,9 +3751,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ioprio.c linux-3.2.11-vs2.3.2.8/fs/ioprio.
                                tmpio = get_task_ioprio(p);
                                if (tmpio < 0)
                                        continue;
-diff -NurpP --minimal linux-3.2.11/fs/jfs/file.c linux-3.2.11-vs2.3.2.8/fs/jfs/file.c
---- linux-3.2.11/fs/jfs/file.c 2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/file.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/file.c linux-3.3-vs2.3.3.1/fs/jfs/file.c
+--- linux-3.3/fs/jfs/file.c    2011-10-24 18:45:27.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/jfs/file.c  2012-02-24 03:55:06.000000000 +0100
 @@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
@@ -3784,9 +3772,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/file.c linux-3.2.11-vs2.3.2.8/fs/jfs/f
  };
  
  const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.2.11/fs/jfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/jfs/ioctl.c
---- linux-3.2.11/fs/jfs/ioctl.c        2011-05-22 16:17:52.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/ioctl.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/ioctl.c linux-3.3-vs2.3.3.1/fs/jfs/ioctl.c
+--- linux-3.3/fs/jfs/ioctl.c   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/ioctl.c 2012-02-24 03:55:06.000000000 +0100
 @@ -11,6 +11,7 @@
  #include <linux/mount.h>
  #include <linux/time.h>
@@ -3844,9 +3832,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/jfs/
                flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
                jfs_inode->mode2 = flags;
  
-diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_dinode.h linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_dinode.h
---- linux-3.2.11/fs/jfs/jfs_dinode.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_dinode.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/jfs_dinode.h linux-3.3-vs2.3.3.1/fs/jfs/jfs_dinode.h
+--- linux-3.3/fs/jfs/jfs_dinode.h      2008-12-25 00:26:37.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/jfs_dinode.h    2012-02-24 03:55:06.000000000 +0100
 @@ -161,9 +161,13 @@ struct dinode {
  
  #define JFS_APPEND_FL         0x01000000 /* writes to file may only append */
@@ -3863,9 +3851,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_dinode.h linux-3.2.11-vs2.3.2.8/fs
  #define JFS_FL_INHERIT                0x03C80000
  
  /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_filsys.h linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_filsys.h
---- linux-3.2.11/fs/jfs/jfs_filsys.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_filsys.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/jfs_filsys.h linux-3.3-vs2.3.3.1/fs/jfs/jfs_filsys.h
+--- linux-3.3/fs/jfs/jfs_filsys.h      2008-12-25 00:26:37.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/jfs_filsys.h    2012-02-24 03:55:06.000000000 +0100
 @@ -263,6 +263,7 @@
  #define JFS_NAME_MAX  255
  #define JFS_PATH_MAX  BPSIZE
@@ -3874,9 +3862,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_filsys.h linux-3.2.11-vs2.3.2.8/fs
  
  /*
   *    file system state (superblock state)
-diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_imap.c linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_imap.c
---- linux-3.2.11/fs/jfs/jfs_imap.c     2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_imap.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/jfs_imap.c linux-3.3-vs2.3.3.1/fs/jfs/jfs_imap.c
+--- linux-3.3/fs/jfs/jfs_imap.c        2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/jfs_imap.c      2012-02-24 03:55:06.000000000 +0100
 @@ -46,6 +46,7 @@
  #include <linux/pagemap.h>
  #include <linux/quotaops.h>
@@ -3936,9 +3924,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_imap.c linux-3.2.11-vs2.3.2.8/fs/j
        jfs_get_inode_flags(jfs_ip);
        /*
         * mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_inode.c linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_inode.c
---- linux-3.2.11/fs/jfs/jfs_inode.c    2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_inode.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/jfs_inode.c linux-3.3-vs2.3.3.1/fs/jfs/jfs_inode.c
+--- linux-3.3/fs/jfs/jfs_inode.c       2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/jfs_inode.c     2012-02-24 03:55:06.000000000 +0100
 @@ -18,6 +18,7 @@
  
  #include <linux/fs.h>
@@ -4012,9 +4000,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
  }
  
  /*
-diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_inode.h linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_inode.h
---- linux-3.2.11/fs/jfs/jfs_inode.h    2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/jfs_inode.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/jfs_inode.h linux-3.3-vs2.3.3.1/fs/jfs/jfs_inode.h
+--- linux-3.3/fs/jfs/jfs_inode.h       2011-10-24 18:45:27.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/jfs/jfs_inode.h     2012-02-24 03:55:06.000000000 +0100
 @@ -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);
@@ -4023,9 +4011,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/jfs_inode.h linux-3.2.11-vs2.3.2.8/fs/
  extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
  extern int jfs_setattr(struct dentry *, struct iattr *);
  
-diff -NurpP --minimal linux-3.2.11/fs/jfs/namei.c linux-3.2.11-vs2.3.2.8/fs/jfs/namei.c
---- linux-3.2.11/fs/jfs/namei.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/namei.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/jfs/namei.c linux-3.3-vs2.3.3.1/fs/jfs/namei.c
+--- linux-3.3/fs/jfs/namei.c   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/namei.c 2012-02-24 03:55:06.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <linux/ctype.h>
  #include <linux/quotaops.h>
@@ -4050,10 +4038,10 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/namei.c linux-3.2.11-vs2.3.2.8/fs/jfs/
  };
  
  const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/super.c
---- linux-3.2.11/fs/jfs/super.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/jfs/super.c      2011-12-05 19:33:02.000000000 +0100
-@@ -198,7 +198,8 @@ static void jfs_put_super(struct super_b
+diff -NurpP --minimal linux-3.3/fs/jfs/super.c linux-3.3-vs2.3.3.1/fs/jfs/super.c
+--- linux-3.3/fs/jfs/super.c   2012-03-19 19:47:25.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/jfs/super.c 2012-02-24 03:55:06.000000000 +0100
+@@ -197,7 +197,8 @@ static void jfs_put_super(struct super_b
  enum {
        Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
        Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
@@ -4063,7 +4051,7 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/
  };
  
  static const match_table_t tokens = {
-@@ -208,6 +209,10 @@ static const match_table_t tokens = {
+@@ -207,6 +208,10 @@ static const match_table_t tokens = {
        {Opt_resize, "resize=%u"},
        {Opt_resize_nosize, "resize"},
        {Opt_errors, "errors=%s"},
@@ -4074,7 +4062,7 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/
        {Opt_ignore, "noquota"},
        {Opt_ignore, "quota"},
        {Opt_usrquota, "usrquota"},
-@@ -342,6 +347,20 @@ static int parse_options(char *options, 
+@@ -341,6 +346,20 @@ static int parse_options(char *options, 
                        }
                        break;
                }
@@ -4095,7 +4083,7 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/
                default:
                        printk("jfs: Unrecognized mount option \"%s\" "
                                        " or missing value\n", p);
-@@ -373,6 +392,12 @@ static int jfs_remount(struct super_bloc
+@@ -372,6 +391,12 @@ static int jfs_remount(struct super_bloc
                return -EINVAL;
        }
  
@@ -4108,7 +4096,7 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/
        if (newLVSize) {
                if (sb->s_flags & MS_RDONLY) {
                        printk(KERN_ERR
-@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_b
+@@ -454,6 +479,9 @@ static int jfs_fill_super(struct super_b
  #ifdef CONFIG_JFS_POSIX_ACL
        sb->s_flags |= MS_POSIXACL;
  #endif
@@ -4118,9 +4106,9 @@ diff -NurpP --minimal linux-3.2.11/fs/jfs/super.c linux-3.2.11-vs2.3.2.8/fs/jfs/
  
        if (newLVSize) {
                printk(KERN_ERR "resize option for remount only\n");
-diff -NurpP --minimal linux-3.2.11/fs/libfs.c linux-3.2.11-vs2.3.2.8/fs/libfs.c
---- linux-3.2.11/fs/libfs.c    2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/libfs.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/libfs.c linux-3.3-vs2.3.3.1/fs/libfs.c
+--- linux-3.3/fs/libfs.c       2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/libfs.c     2012-02-24 03:55:06.000000000 +0100
 @@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
   * both impossible due to the lock on directory.
   */
@@ -4166,9 +4154,9 @@ diff -NurpP --minimal linux-3.2.11/fs/libfs.c linux-3.2.11-vs2.3.2.8/fs/libfs.c
  EXPORT_SYMBOL(generic_read_dir);
  EXPORT_SYMBOL(mount_pseudo);
  EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-3.2.11/fs/locks.c linux-3.2.11-vs2.3.2.8/fs/locks.c
---- linux-3.2.11/fs/locks.c    2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/locks.c  2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/locks.c linux-3.3-vs2.3.3.1/fs/locks.c
+--- linux-3.3/fs/locks.c       2012-01-09 16:14:54.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/locks.c     2012-02-24 03:55:06.000000000 +0100
 @@ -126,6 +126,8 @@
  #include <linux/time.h>
  #include <linux/rcupdate.h>
@@ -4366,9 +4354,20 @@ diff -NurpP --minimal linux-3.2.11/fs/locks.c linux-3.2.11-vs2.3.2.8/fs/locks.c
  
        return 0;
  }
-diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
---- linux-3.2.11/fs/namei.c    2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/namei.c  2012-03-01 21:39:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/mount.h linux-3.3-vs2.3.3.1/fs/mount.h
+--- linux-3.3/fs/mount.h       2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/mount.h     2012-02-24 17:29:48.000000000 +0100
+@@ -47,6 +47,7 @@ struct mount {
+       int mnt_expiry_mark;            /* true if marked for expiry */
+       int mnt_pinned;
+       int mnt_ghosts;
++      tag_t mnt_tag;                  /* tagging used for vfsmount */
+ };
+ static inline struct mount *real_mount(struct vfsmount *mnt)
+diff -NurpP --minimal linux-3.3/fs/namei.c linux-3.3-vs2.3.3.1/fs/namei.c
+--- linux-3.3/fs/namei.c       2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/namei.c     2012-03-19 20:52:10.000000000 +0100
 @@ -33,6 +33,14 @@
  #include <linux/device_cgroup.h>
  #include <linux/fs_struct.h>
@@ -4384,7 +4383,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
  #include <asm/uaccess.h>
  
  #include "internal.h"
-@@ -222,6 +230,89 @@ static int check_acl(struct inode *inode
+@@ -221,6 +229,89 @@ static int check_acl(struct inode *inode
        return -EAGAIN;
  }
  
@@ -4474,7 +4473,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
  /*
   * This does the basic permission checking
   */
-@@ -357,10 +448,14 @@ int inode_permission(struct inode *inode
+@@ -356,10 +447,14 @@ int inode_permission(struct inode *inode
                /*
                 * Nobody gets write access to an immutable file.
                 */
@@ -4490,7 +4489,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        retval = do_inode_permission(inode, mask);
        if (retval)
                return retval;
-@@ -1037,7 +1132,8 @@ static void follow_dotdot(struct nameida
+@@ -1038,7 +1133,8 @@ static void follow_dotdot(struct nameida
  
                if (nd->path.dentry == nd->root.dentry &&
                    nd->path.mnt == nd->root.mnt) {
@@ -4500,7 +4499,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
                }
                if (nd->path.dentry != nd->path.mnt->mnt_root) {
                        /* rare case of legitimate dget_parent()... */
-@@ -1148,6 +1244,9 @@ static int do_lookup(struct nameidata *n
+@@ -1149,6 +1245,9 @@ static int do_lookup(struct nameidata *n
                }
                if (unlikely(d_need_lookup(dentry)))
                        goto unlazy;
@@ -4510,7 +4509,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
                path->mnt = mnt;
                path->dentry = dentry;
                if (unlikely(!__follow_mount_rcu(nd, path, inode)))
-@@ -1209,6 +1308,8 @@ retry:
+@@ -1210,6 +1309,8 @@ retry:
                }
        }
  
@@ -4519,7 +4518,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        path->mnt = mnt;
        path->dentry = dentry;
        err = follow_managed(path, nd->flags);
-@@ -1903,7 +2004,7 @@ static int may_delete(struct inode *dir,
+@@ -1926,7 +2027,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)||
@@ -4528,7 +4527,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
                return -EPERM;
        if (isdir) {
                if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -1983,19 +2084,25 @@ int vfs_create(struct inode *dir, struct
+@@ -2006,19 +2107,25 @@ int vfs_create(struct inode *dir, struct
  {
        int error = may_create(dir, dentry);
  
@@ -4556,7 +4555,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        return error;
  }
  
-@@ -2030,6 +2137,15 @@ static int may_open(struct path *path, i
+@@ -2053,6 +2160,15 @@ static int may_open(struct path *path, i
                break;
        }
  
@@ -4572,7 +4571,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        error = inode_permission(inode, acc_mode);
        if (error)
                return error;
-@@ -2254,6 +2370,16 @@ ok:
+@@ -2277,6 +2393,16 @@ ok:
        }
  common:
        error = may_open(&nd->path, acc_mode, open_flag);
@@ -4589,7 +4588,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        if (error)
                goto exit;
        filp = nameidata_to_filp(nd);
-@@ -2296,6 +2422,7 @@ static struct file *path_openat(int dfd,
+@@ -2319,6 +2445,7 @@ static struct file *path_openat(int dfd,
        struct path path;
        int error;
  
@@ -4597,7 +4596,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        filp = get_empty_filp();
        if (!filp)
                return ERR_PTR(-ENFILE);
-@@ -2333,6 +2460,17 @@ static struct file *path_openat(int dfd,
+@@ -2356,6 +2483,17 @@ static struct file *path_openat(int dfd,
                        filp = do_last(nd, &path, op, pathname);
                put_link(nd, &link, cookie);
        }
@@ -4615,7 +4614,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
  out:
        if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
                path_put(&nd->root);
-@@ -2422,6 +2560,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -2445,6 +2583,11 @@ struct dentry *kern_path_create(int dfd,
                goto fail;
        }
        *path = nd.path;
@@ -4627,7 +4626,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
        return dentry;
  eexist:
        dput(dentry);
-@@ -2903,7 +3046,7 @@ int vfs_link(struct dentry *old_dentry, 
+@@ -2926,7 +3069,7 @@ int vfs_link(struct dentry *old_dentry, 
        /*
         * A link to an append-only or immutable file cannot be created.
         */
@@ -4636,7 +4635,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
                return -EPERM;
        if (!dir->i_op->link)
                return -EPERM;
-@@ -3284,6 +3427,227 @@ int vfs_follow_link(struct nameidata *nd
+@@ -3307,6 +3450,227 @@ int vfs_follow_link(struct nameidata *nd
        return __vfs_follow_link(nd, link);
  }
  
@@ -4864,22 +4863,22 @@ diff -NurpP --minimal linux-3.2.11/fs/namei.c linux-3.2.11-vs2.3.2.8/fs/namei.c
  /* get the link contents into pagecache */
  static char *page_getlink(struct dentry * dentry, struct page **ppage)
  {
-diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/namespace.c
---- linux-3.2.11/fs/namespace.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/namespace.c      2011-12-15 01:11:32.000000000 +0100
-@@ -31,6 +31,11 @@
- #include <linux/idr.h>
- #include <linux/fs_struct.h>
- #include <linux/fsnotify.h>
+diff -NurpP --minimal linux-3.3/fs/namespace.c linux-3.3-vs2.3.3.1/fs/namespace.c
+--- linux-3.3/fs/namespace.c   2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/namespace.c 2012-02-24 17:38:42.000000000 +0100
+@@ -20,6 +20,11 @@
+ #include <linux/fs_struct.h>  /* get_fs_root et.al. */
+ #include <linux/fsnotify.h>   /* fsnotify_vfsmount_delete */
+ #include <linux/uaccess.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_tag.h>
 +#include <linux/vserver/space.h>
 +#include <linux/vserver/global.h>
- #include <asm/uaccess.h>
- #include <asm/unistd.h>
  #include "pnode.h"
-@@ -679,6 +684,10 @@ vfs_kern_mount(struct file_system_type *
+ #include "internal.h"
+@@ -697,6 +702,10 @@ vfs_kern_mount(struct file_system_type *
        if (!type)
                return ERR_PTR(-ENODEV);
  
@@ -4890,149 +4889,15 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
        mnt = alloc_vfsmnt(name);
        if (!mnt)
                return ERR_PTR(-ENOMEM);
-@@ -724,6 +733,7 @@ static struct vfsmount *clone_mnt(struct
-               mnt->mnt_root = dget(root);
-               mnt->mnt_mountpoint = mnt->mnt_root;
+@@ -745,6 +754,7 @@ static struct mount *clone_mnt(struct mo
+               mnt->mnt.mnt_root = dget(root);
+               mnt->mnt_mountpoint = mnt->mnt.mnt_root;
                mnt->mnt_parent = mnt;
 +              mnt->mnt_tag = old->mnt_tag;
-               if (flag & CL_SLAVE) {
-                       list_add(&mnt->mnt_slave, &old->mnt_slave_list);
-@@ -852,6 +862,31 @@ static inline void mangle(struct seq_fil
-       seq_escape(m, s, " \t\n\\");
- }
-+static int mnt_is_reachable(struct vfsmount *mnt)
-+{
-+      struct path root;
-+      struct dentry *point;
-+      int ret;
-+
-+      if (mnt == mnt->mnt_ns->root)
-+              return 1;
-+
-+      br_read_lock(vfsmount_lock);
-+      root = current->fs->root;
-+      point = root.dentry;
-+
-+      while ((mnt != mnt->mnt_parent) && (mnt != root.mnt)) {
-+              point = mnt->mnt_mountpoint;
-+              mnt = mnt->mnt_parent;
-+      }
-+
-+      ret = (mnt == root.mnt) && is_subdir(point, root.dentry);
-+
-+      br_read_unlock(vfsmount_lock);
-+
-+      return ret;
-+}
-+
- /*
-  * Simple .show_options callback for filesystems which don't want to
-  * implement more complex mount option showing.
-@@ -954,6 +989,8 @@ static int show_sb_opts(struct seq_file 
-               { MS_SYNCHRONOUS, ",sync" },
-               { MS_DIRSYNC, ",dirsync" },
-               { MS_MANDLOCK, ",mand" },
-+              { MS_TAGGED, ",tag" },
-+              { MS_NOTAGCHECK, ",notagcheck" },
-               { 0, NULL }
-       };
-       const struct proc_fs_info *fs_infop;
-@@ -1000,16 +1037,26 @@ static int show_vfsmnt(struct seq_file *
-       int err = 0;
-       struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
--      if (mnt->mnt_sb->s_op->show_devname) {
--              err = mnt->mnt_sb->s_op->show_devname(m, mnt);
--              if (err)
--                      goto out;
-+      if (vx_flags(VXF_HIDE_MOUNT, 0))
-+              return SEQ_SKIP;
-+      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
-+              return SEQ_SKIP;
-+
-+      if (!vx_check(0, VS_ADMIN|VS_WATCH) &&
-+              mnt == current->fs->root.mnt) {
-+              seq_puts(m, "/dev/root / ");
-       } else {
--              mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
-+              if (mnt->mnt_sb->s_op->show_devname) {
-+                      err = mnt->mnt_sb->s_op->show_devname(m, mnt);
-+                      if (err)
-+                              goto out;
-+              } else {
-+                      mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
-+              }
-+              seq_putc(m, ' ');
-+              seq_path(m, &mnt_path, " \t\n\\");
-+              seq_putc(m, ' ');
-       }
--      seq_putc(m, ' ');
--      seq_path(m, &mnt_path, " \t\n\\");
--      seq_putc(m, ' ');
-       show_type(m, mnt->mnt_sb);
-       seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
-       err = show_sb_opts(m, mnt->mnt_sb);
-@@ -1039,6 +1086,11 @@ static int show_mountinfo(struct seq_fil
-       struct path root = p->root;
-       int err = 0;
-+      if (vx_flags(VXF_HIDE_MOUNT, 0))
-+              return SEQ_SKIP;
-+      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
-+              return SEQ_SKIP;
-+
-       seq_printf(m, "%i %i %u:%u ", mnt->mnt_id, mnt->mnt_parent->mnt_id,
-                  MAJOR(sb->s_dev), MINOR(sb->s_dev));
-       if (sb->s_op->show_path)
-@@ -1104,22 +1156,32 @@ static int show_vfsstat(struct seq_file 
-       struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
-       int err = 0;
--      /* device */
--      if (mnt->mnt_sb->s_op->show_devname) {
--              seq_puts(m, "device ");
--              err = mnt->mnt_sb->s_op->show_devname(m, mnt);
-+      if (vx_flags(VXF_HIDE_MOUNT, 0))
-+              return SEQ_SKIP;
-+      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
-+              return SEQ_SKIP;
-+
-+      if (!vx_check(0, VS_ADMIN|VS_WATCH) &&
-+              mnt == current->fs->root.mnt) {
-+              seq_puts(m, "device /dev/root mounted on / ");
-       } else {
--              if (mnt->mnt_devname) {
-+              /* device */
-+              if (mnt->mnt_sb->s_op->show_devname) {
-                       seq_puts(m, "device ");
--                      mangle(m, mnt->mnt_devname);
--              } else
--                      seq_puts(m, "no device");
--      }
-+                      err = mnt->mnt_sb->s_op->show_devname(m, mnt);
-+              } else {
-+                      if (mnt->mnt_devname) {
-+                              seq_puts(m, "device ");
-+                              mangle(m, mnt->mnt_devname);
-+                      } else
-+                              seq_puts(m, "no device");
-+              }
--      /* mount point */
--      seq_puts(m, " mounted on ");
--      seq_path(m, &mnt_path, " \t\n\\");
--      seq_putc(m, ' ');
-+              /* mount point */
-+              seq_puts(m, " mounted on ");
-+              seq_path(m, &mnt_path, " \t\n\\");
-+              seq_putc(m, ' ');
-+      }
-       /* file system type */
-       seq_puts(m, "with fstype ");
-@@ -1378,7 +1440,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
+               br_write_lock(vfsmount_lock);
+               list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
+               br_write_unlock(vfsmount_lock);
+@@ -1209,7 +1219,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
                goto dput_and_out;
  
        retval = -EPERM;
@@ -5040,8 +4905,8 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
 +      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
                goto dput_and_out;
  
-       retval = do_umount(path.mnt, flags);
-@@ -1404,7 +1466,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
+       retval = do_umount(mnt, flags);
+@@ -1235,7 +1245,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
  
  static int mount_is_safe(struct path *path)
  {
@@ -5050,7 +4915,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
                return 0;
        return -EPERM;
  #ifdef notyet
-@@ -1714,7 +1776,7 @@ static int do_change_type(struct path *p
+@@ -1548,7 +1558,7 @@ static int do_change_type(struct path *p
        int type;
        int err = 0;
  
@@ -5059,7 +4924,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
                return -EPERM;
  
        if (path->dentry != path->mnt->mnt_root)
-@@ -1730,6 +1792,7 @@ static int do_change_type(struct path *p
+@@ -1564,6 +1574,7 @@ static int do_change_type(struct path *p
                if (err)
                        goto out_unlock;
        }
@@ -5067,7 +4932,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
  
        br_write_lock(vfsmount_lock);
        for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -1745,12 +1808,14 @@ static int do_change_type(struct path *p
+@@ -1579,12 +1590,14 @@ static int do_change_type(struct path *p
   * do loopback mount.
   */
  static int do_loopback(struct path *path, char *old_name,
@@ -5076,14 +4941,14 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
  {
        LIST_HEAD(umount_list);
        struct path old_path;
-       struct vfsmount *mnt = NULL;
+       struct mount *mnt = NULL, *old;
        int err = mount_is_safe(path);
 +      int recurse = flags & MS_REC;
 +
        if (err)
                return err;
        if (!old_name || !*old_name)
-@@ -1816,12 +1881,12 @@ static int change_mount_flags(struct vfs
+@@ -1652,13 +1665,13 @@ static int change_mount_flags(struct vfs
   * on it - tough luck.
   */
  static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -5092,22 +4957,23 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
  {
        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(path->mnt))
-@@ -1869,7 +1934,7 @@ static int do_move_mount(struct path *pa
-       struct path old_path, parent_path;
-       struct vfsmount *p;
+       if (!check_mnt(mnt))
+@@ -1707,7 +1720,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;
-@@ -2020,7 +2085,7 @@ static int do_new_mount(struct path *pat
+@@ -1858,7 +1871,7 @@ static int do_new_mount(struct path *pat
                return -EINVAL;
  
        /* we need capabilities... */
@@ -5116,7 +4982,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
                return -EPERM;
  
        mnt = do_kern_mount(type, flags, name, data);
-@@ -2289,6 +2354,7 @@ long do_mount(char *dev_name, char *dir_
+@@ -2128,6 +2141,7 @@ long do_mount(char *dev_name, char *dir_
        struct path path;
        int retval = 0;
        int mnt_flags = 0;
@@ -5124,7 +4990,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
  
        /* Discard magic */
        if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2316,6 +2382,12 @@ long do_mount(char *dev_name, char *dir_
+@@ -2155,6 +2169,12 @@ long do_mount(char *dev_name, char *dir_
        if (!(flags & MS_NOATIME))
                mnt_flags |= MNT_RELATIME;
  
@@ -5137,7 +5003,7 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
-@@ -2332,15 +2404,17 @@ long do_mount(char *dev_name, char *dir_
+@@ -2171,15 +2191,17 @@ long do_mount(char *dev_name, char *dir_
        if (flags & MS_RDONLY)
                mnt_flags |= MNT_READONLY;
  
@@ -5157,39 +5023,39 @@ diff -NurpP --minimal linux-3.2.11/fs/namespace.c linux-3.2.11-vs2.3.2.8/fs/name
        else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
                retval = do_change_type(&path, flags);
        else if (flags & MS_MOVE)
-@@ -2440,6 +2514,7 @@ static struct mnt_namespace *dup_mnt_ns(
-               q = next_mnt(q, new_ns->root);
+@@ -2282,6 +2304,7 @@ static struct mnt_namespace *dup_mnt_ns(
+               q = next_mnt(q, new);
        }
        up_write(&namespace_sem);
 +      atomic_inc(&vs_global_mnt_ns);
  
        if (rootmnt)
                mntput(rootmnt);
-@@ -2611,9 +2686,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
-               goto out3;
+@@ -2478,9 +2501,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
        error = -EINVAL;
--      if (IS_MNT_SHARED(old.mnt) ||
-+      if ((IS_MNT_SHARED(old.mnt) ||
-               IS_MNT_SHARED(new.mnt->mnt_parent) ||
--              IS_MNT_SHARED(root.mnt->mnt_parent))
-+              IS_MNT_SHARED(root.mnt->mnt_parent)) &&
+       new_mnt = real_mount(new.mnt);
+       root_mnt = real_mount(root.mnt);
+-      if (IS_MNT_SHARED(real_mount(old.mnt)) ||
++      if ((IS_MNT_SHARED(real_mount(old.mnt)) ||
+               IS_MNT_SHARED(new_mnt->mnt_parent) ||
+-              IS_MNT_SHARED(root_mnt->mnt_parent))
++              IS_MNT_SHARED(root_mnt->mnt_parent)) &&
 +              !vx_flags(VXF_STATE_SETUP, 0))
                goto out4;
-       if (!check_mnt(root.mnt) || !check_mnt(new.mnt))
+       if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
                goto out4;
-@@ -2745,6 +2821,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -2601,6 +2625,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);
  }
- EXPORT_SYMBOL(put_mnt_ns);
-diff -NurpP --minimal linux-3.2.11/fs/nfs/client.c linux-3.2.11-vs2.3.2.8/fs/nfs/client.c
---- linux-3.2.11/fs/nfs/client.c       2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfs/client.c     2011-12-05 19:33:02.000000000 +0100
-@@ -779,6 +779,9 @@ static int nfs_init_server_rpcclient(str
+diff -NurpP --minimal linux-3.3/fs/nfs/client.c linux-3.3-vs2.3.3.1/fs/nfs/client.c
+--- linux-3.3/fs/nfs/client.c  2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfs/client.c        2012-02-24 03:55:06.000000000 +0100
+@@ -784,6 +784,9 @@ static int nfs_init_server_rpcclient(str
        if (server->flags & NFS_MOUNT_SOFT)
                server->client->cl_softrtry = 1;
  
@@ -5199,7 +5065,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/client.c linux-3.2.11-vs2.3.2.8/fs/nfs
        return 0;
  }
  
-@@ -953,6 +956,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -958,6 +961,10 @@ static void nfs_server_set_fsinfo(struct
                server->acdirmin = server->acdirmax = 0;
        }
  
@@ -5210,9 +5076,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/client.c linux-3.2.11-vs2.3.2.8/fs/nfs
        server->maxfilesize = fsinfo->maxfilesize;
  
        server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.2.11/fs/nfs/dir.c linux-3.2.11-vs2.3.2.8/fs/nfs/dir.c
---- linux-3.2.11/fs/nfs/dir.c  2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfs/dir.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfs/dir.c linux-3.3-vs2.3.3.1/fs/nfs/dir.c
+--- linux-3.3/fs/nfs/dir.c     2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfs/dir.c   2012-02-24 03:55:06.000000000 +0100
 @@ -35,6 +35,7 @@
  #include <linux/sched.h>
  #include <linux/kmemleak.h>
@@ -5229,18 +5095,18 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/dir.c linux-3.2.11-vs2.3.2.8/fs/nfs/di
  no_entry:
        res = d_materialise_unique(dentry, inode);
        if (res != NULL) {
-diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/inode.c
---- linux-3.2.11/fs/nfs/inode.c        2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfs/inode.c      2011-12-05 21:16:35.000000000 +0100
-@@ -38,6 +38,7 @@
- #include <linux/nfs_xdr.h>
+diff -NurpP --minimal linux-3.3/fs/nfs/inode.c linux-3.3-vs2.3.3.1/fs/nfs/inode.c
+--- linux-3.3/fs/nfs/inode.c   2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfs/inode.c 2012-02-24 04:40:22.000000000 +0100
+@@ -39,6 +39,7 @@
  #include <linux/slab.h>
  #include <linux/compat.h>
+ #include <linux/freezer.h>
 +#include <linux/vs_tag.h>
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -273,6 +274,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -274,6 +275,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;
@@ -5249,7 +5115,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
                /* We set i_ino for the few things that still rely on it,
                 * such as stat(2) */
-@@ -321,8 +324,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -322,8 +325,8 @@ nfs_fhget(struct super_block *sb, struct
                inode->i_version = 0;
                inode->i_size = 0;
                clear_nlink(inode);
@@ -5260,7 +5126,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                inode->i_blocks = 0;
                memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
  
-@@ -359,13 +362,13 @@ nfs_fhget(struct super_block *sb, struct
+@@ -360,13 +363,13 @@ 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)
@@ -5276,7 +5142,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
                        nfsi->cache_validity |= NFS_INO_INVALID_ATTR
                                | NFS_INO_INVALID_ACCESS
-@@ -378,6 +381,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -379,6 +382,11 @@ nfs_fhget(struct super_block *sb, struct
                         */
                        inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
                }
@@ -5288,7 +5154,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                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
+@@ -495,6 +503,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;
@@ -5297,7 +5163,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
                spin_unlock(&inode->i_lock);
        }
-@@ -943,6 +953,9 @@ static int nfs_check_inode_attributes(st
+@@ -944,6 +954,9 @@ static int nfs_check_inode_attributes(st
        struct nfs_inode *nfsi = NFS_I(inode);
        loff_t cur_size, new_isize;
        unsigned long invalid = 0;
@@ -5307,7 +5173,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
  
        /* Has the inode gone and changed behind our back? */
-@@ -966,13 +979,18 @@ static int nfs_check_inode_attributes(st
+@@ -967,13 +980,18 @@ static int nfs_check_inode_attributes(st
                        invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
        }
  
@@ -5328,7 +5194,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
        /* Has the link count changed? */
        if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1207,6 +1225,9 @@ static int nfs_update_inode(struct inode
+@@ -1210,6 +1228,9 @@ static int nfs_update_inode(struct inode
        unsigned long invalid = 0;
        unsigned long now = jiffies;
        unsigned long save_cache_validity;
@@ -5338,7 +5204,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
        dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n",
                        __func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1314,6 +1335,9 @@ static int nfs_update_inode(struct inode
+@@ -1317,6 +1338,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_PAGECACHE
                                | NFS_INO_REVAL_FORCED);
  
@@ -5348,7 +5214,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
        if (fattr->valid & NFS_ATTR_FATTR_ATIME)
                memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1335,9 +1359,9 @@ static int nfs_update_inode(struct inode
+@@ -1338,9 +1362,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_FORCED);
  
        if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
@@ -5360,7 +5226,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                }
        } else if (server->caps & NFS_CAP_OWNER)
                invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1346,9 +1370,9 @@ static int nfs_update_inode(struct inode
+@@ -1349,9 +1373,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_FORCED);
  
        if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
@@ -5372,7 +5238,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                }
        } else if (server->caps & NFS_CAP_OWNER_GROUP)
                invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1356,6 +1380,10 @@ static int nfs_update_inode(struct inode
+@@ -1359,6 +1383,10 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_INVALID_ACL
                                | NFS_INO_REVAL_FORCED);
  
@@ -5383,9 +5249,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/inode.c linux-3.2.11-vs2.3.2.8/fs/nfs/
        if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
                if (inode->i_nlink != fattr->nlink) {
                        invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.2.11/fs/nfs/nfs3xdr.c linux-3.2.11-vs2.3.2.8/fs/nfs/nfs3xdr.c
---- linux-3.2.11/fs/nfs/nfs3xdr.c      2011-03-15 18:07:32.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfs/nfs3xdr.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfs/nfs3xdr.c linux-3.3-vs2.3.3.1/fs/nfs/nfs3xdr.c
+--- linux-3.3/fs/nfs/nfs3xdr.c 2011-03-15 18:07:32.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfs/nfs3xdr.c       2012-02-24 03:55:06.000000000 +0100
 @@ -20,6 +20,7 @@
  #include <linux/nfs3.h>
  #include <linux/nfs_fs.h>
@@ -5531,10 +5397,10 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/nfs3xdr.c linux-3.2.11-vs2.3.2.8/fs/nf
  }
  
  /*
-diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/super.c
---- linux-3.2.11/fs/nfs/super.c        2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfs/super.c      2012-01-26 08:52:10.000000000 +0100
-@@ -53,6 +53,7 @@
+diff -NurpP --minimal linux-3.3/fs/nfs/super.c linux-3.3-vs2.3.3.1/fs/nfs/super.c
+--- linux-3.3/fs/nfs/super.c   2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfs/super.c 2012-02-24 03:55:06.000000000 +0100
+@@ -52,6 +52,7 @@
  #include <linux/nfs_xdr.h>
  #include <linux/magic.h>
  #include <linux/parser.h>
@@ -5542,7 +5408,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -87,6 +88,7 @@ enum {
+@@ -86,6 +87,7 @@ enum {
        Opt_sharecache, Opt_nosharecache,
        Opt_resvport, Opt_noresvport,
        Opt_fscache, Opt_nofscache,
@@ -5550,7 +5416,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
        /* Mount options that take integer arguments */
        Opt_port,
-@@ -100,6 +102,7 @@ enum {
+@@ -99,6 +101,7 @@ enum {
        Opt_mountvers,
        Opt_nfsvers,
        Opt_minorversion,
@@ -5558,7 +5424,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
        /* Mount options that take string arguments */
        Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
-@@ -180,6 +183,10 @@ static const match_table_t nfs_mount_opt
+@@ -179,6 +182,10 @@ static const match_table_t nfs_mount_opt
        { Opt_fscache_uniq, "fsc=%s" },
        { Opt_local_lock, "local_lock=%s" },
  
@@ -5569,7 +5435,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
        { Opt_err, NULL }
  };
  
-@@ -650,6 +657,7 @@ static void nfs_show_mount_options(struc
+@@ -649,6 +656,7 @@ static void nfs_show_mount_options(struc
                { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
                { NFS_MOUNT_UNSHARED, ",nosharecache", "" },
                { NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5577,7 +5443,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
                { 0, NULL, NULL }
        };
        const struct proc_nfs_info *nfs_infop;
-@@ -1217,6 +1225,14 @@ static int nfs_parse_mount_options(char 
+@@ -1216,6 +1224,14 @@ static int nfs_parse_mount_options(char 
                        kfree(mnt->fscache_uniq);
                        mnt->fscache_uniq = NULL;
                        break;
@@ -5592,7 +5458,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
                /*
                 * options that take numeric values
-@@ -1323,6 +1339,12 @@ static int nfs_parse_mount_options(char 
+@@ -1322,6 +1338,12 @@ static int nfs_parse_mount_options(char 
                                goto out_invalid_value;
                        mnt->minorversion = option;
                        break;
@@ -5605,9 +5471,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfs/super.c linux-3.2.11-vs2.3.2.8/fs/nfs/
  
                /*
                 * options that take text values
-diff -NurpP --minimal linux-3.2.11/fs/nfsd/auth.c linux-3.2.11-vs2.3.2.8/fs/nfsd/auth.c
---- linux-3.2.11/fs/nfsd/auth.c        2010-02-25 11:52:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfsd/auth.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfsd/auth.c linux-3.3-vs2.3.3.1/fs/nfsd/auth.c
+--- linux-3.3/fs/nfsd/auth.c   2010-02-25 11:52:05.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfsd/auth.c 2012-02-24 03:55:06.000000000 +0100
 @@ -1,6 +1,7 @@
  /* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> */
  
@@ -5626,9 +5492,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfsd/auth.c linux-3.2.11-vs2.3.2.8/fs/nfsd
  
        rqgi = rqstp->rq_cred.cr_group_info;
  
-diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfs3xdr.c linux-3.2.11-vs2.3.2.8/fs/nfsd/nfs3xdr.c
---- linux-3.2.11/fs/nfsd/nfs3xdr.c     2011-07-22 11:18:05.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/nfsd/nfs3xdr.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfsd/nfs3xdr.c linux-3.3-vs2.3.3.1/fs/nfsd/nfs3xdr.c
+--- linux-3.3/fs/nfsd/nfs3xdr.c        2011-07-22 11:18:05.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/nfsd/nfs3xdr.c      2012-02-24 03:55:06.000000000 +0100
 @@ -7,6 +7,7 @@
   */
  
@@ -5679,9 +5545,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfs3xdr.c linux-3.2.11-vs2.3.2.8/fs/n
        if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
                p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
        } else {
-diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfs4xdr.c linux-3.2.11-vs2.3.2.8/fs/nfsd/nfs4xdr.c
---- linux-3.2.11/fs/nfsd/nfs4xdr.c     2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/nfsd/nfs4xdr.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfsd/nfs4xdr.c linux-3.3-vs2.3.3.1/fs/nfsd/nfs4xdr.c
+--- linux-3.3/fs/nfsd/nfs4xdr.c        2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/nfsd/nfs4xdr.c      2012-02-24 03:55:06.000000000 +0100
 @@ -46,6 +46,7 @@
  #include <linux/utsname.h>
  #include <linux/pagemap.h>
@@ -5690,7 +5556,7 @@ diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfs4xdr.c linux-3.2.11-vs2.3.2.8/fs/n
  
  #include "idmap.h"
  #include "acl.h"
-@@ -2328,14 +2329,18 @@ out_acl:
+@@ -2327,14 +2328,18 @@ out_acl:
                WRITE32(stat.nlink);
        }
        if (bmval1 & FATTR4_WORD1_OWNER) {
@@ -5711,9 +5577,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfs4xdr.c linux-3.2.11-vs2.3.2.8/fs/n
                if (status == nfserr_resource)
                        goto out_resource;
                if (status)
-diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfsxdr.c linux-3.2.11-vs2.3.2.8/fs/nfsd/nfsxdr.c
---- linux-3.2.11/fs/nfsd/nfsxdr.c      2011-05-22 16:17:53.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/nfsd/nfsxdr.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/nfsd/nfsxdr.c linux-3.3-vs2.3.3.1/fs/nfsd/nfsxdr.c
+--- linux-3.3/fs/nfsd/nfsxdr.c 2011-05-22 16:17:53.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/nfsd/nfsxdr.c       2012-02-24 03:55:06.000000000 +0100
 @@ -6,6 +6,7 @@
  
  #include "xdr.h"
@@ -5762,9 +5628,9 @@ diff -NurpP --minimal linux-3.2.11/fs/nfsd/nfsxdr.c linux-3.2.11-vs2.3.2.8/fs/nf
  
        if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
                *p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/dlmglue.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/dlmglue.c
---- linux-3.2.11/fs/ocfs2/dlmglue.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/dlmglue.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/dlmglue.c linux-3.3-vs2.3.3.1/fs/ocfs2/dlmglue.c
+--- linux-3.3/fs/ocfs2/dlmglue.c       2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/dlmglue.c     2012-02-24 03:55:06.000000000 +0100
 @@ -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);
@@ -5781,9 +5647,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/dlmglue.c linux-3.2.11-vs2.3.2.8/fs/
        inode->i_mode    = be16_to_cpu(lvb->lvb_imode);
        set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));
        ocfs2_unpack_timespec(&inode->i_atime,
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/dlmglue.h linux-3.2.11-vs2.3.2.8/fs/ocfs2/dlmglue.h
---- linux-3.2.11/fs/ocfs2/dlmglue.h    2010-10-21 13:07:50.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/dlmglue.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/dlmglue.h linux-3.3-vs2.3.3.1/fs/ocfs2/dlmglue.h
+--- linux-3.3/fs/ocfs2/dlmglue.h       2010-10-21 13:07:50.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/dlmglue.h     2012-02-24 03:55:06.000000000 +0100
 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
        __be16       lvb_inlink;
        __be32       lvb_iattr;
@@ -5794,9 +5660,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/dlmglue.h linux-3.2.11-vs2.3.2.8/fs/
  };
  
  #define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/file.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/file.c
---- linux-3.2.11/fs/ocfs2/file.c       2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/file.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/file.c linux-3.3-vs2.3.3.1/fs/ocfs2/file.c
+--- linux-3.3/fs/ocfs2/file.c  2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/file.c        2012-02-24 03:55:06.000000000 +0100
 @@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry,
                attr->ia_valid &= ~ATTR_SIZE;
  
@@ -5806,9 +5672,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/file.c linux-3.2.11-vs2.3.2.8/fs/ocf
        if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
                return 0;
  
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/inode.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/inode.c
---- linux-3.2.11/fs/ocfs2/inode.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/inode.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/inode.c linux-3.3-vs2.3.3.1/fs/ocfs2/inode.c
+--- linux-3.3/fs/ocfs2/inode.c 2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/inode.c       2012-02-24 03:55:06.000000000 +0100
 @@ -28,6 +28,7 @@
  #include <linux/highmem.h>
  #include <linux/pagemap.h>
@@ -5905,9 +5771,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/inode.c linux-3.2.11-vs2.3.2.8/fs/oc
  
        /* Fast symlinks will have i_size but no allocated clusters. */
        if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/inode.h linux-3.2.11-vs2.3.2.8/fs/ocfs2/inode.h
---- linux-3.2.11/fs/ocfs2/inode.h      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/inode.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/inode.h linux-3.3-vs2.3.3.1/fs/ocfs2/inode.h
+--- linux-3.3/fs/ocfs2/inode.h 2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/inode.h       2012-02-24 03:55:06.000000000 +0100
 @@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i
  
  void ocfs2_set_inode_flags(struct inode *inode);
@@ -5916,9 +5782,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/inode.h linux-3.2.11-vs2.3.2.8/fs/oc
  
  static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
  {
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ioctl.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/ioctl.c
---- linux-3.2.11/fs/ocfs2/ioctl.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/ioctl.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/ioctl.c linux-3.3-vs2.3.3.1/fs/ocfs2/ioctl.c
+--- linux-3.3/fs/ocfs2/ioctl.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/ioctl.c       2012-02-24 03:55:06.000000000 +0100
 @@ -78,7 +78,41 @@ static int ocfs2_get_inode_attr(struct i
        return status;
  }
@@ -5982,9 +5848,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ioctl.c linux-3.2.11-vs2.3.2.8/fs/oc
  long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        struct inode *inode = filp->f_path.dentry->d_inode;
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/namei.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/namei.c
---- linux-3.2.11/fs/ocfs2/namei.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/namei.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/namei.c linux-3.3-vs2.3.3.1/fs/ocfs2/namei.c
+--- linux-3.3/fs/ocfs2/namei.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/namei.c       2012-03-19 20:52:10.000000000 +0100
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/highmem.h>
@@ -6015,9 +5881,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/namei.c linux-3.2.11-vs2.3.2.8/fs/oc
        fe->i_mode = cpu_to_le16(inode->i_mode);
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
                fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ocfs2.h linux-3.2.11-vs2.3.2.8/fs/ocfs2/ocfs2.h
---- linux-3.2.11/fs/ocfs2/ocfs2.h      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/ocfs2.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/ocfs2.h linux-3.3-vs2.3.3.1/fs/ocfs2/ocfs2.h
+--- linux-3.3/fs/ocfs2/ocfs2.h 2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/ocfs2.h       2012-02-24 03:55:06.000000000 +0100
 @@ -272,6 +272,7 @@ enum ocfs2_mount_options
                                                     writes */
        OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -6026,9 +5892,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ocfs2.h linux-3.2.11-vs2.3.2.8/fs/oc
  };
  
  #define OCFS2_OSB_SOFT_RO                     0x0001
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ocfs2_fs.h linux-3.2.11-vs2.3.2.8/fs/ocfs2/ocfs2_fs.h
---- linux-3.2.11/fs/ocfs2/ocfs2_fs.h   2011-05-22 16:17:53.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/ocfs2_fs.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/ocfs2_fs.h linux-3.3-vs2.3.3.1/fs/ocfs2/ocfs2_fs.h
+--- linux-3.3/fs/ocfs2/ocfs2_fs.h      2011-05-22 16:17:53.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/ocfs2_fs.h    2012-02-24 03:55:06.000000000 +0100
 @@ -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 */
@@ -6041,9 +5907,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/ocfs2_fs.h linux-3.2.11-vs2.3.2.8/fs
  #define OCFS2_FL_VISIBLE              FS_FL_USER_VISIBLE      /* User visible flags */
  #define OCFS2_FL_MODIFIABLE           FS_FL_USER_MODIFIABLE   /* User modifiable flags */
  
-diff -NurpP --minimal linux-3.2.11/fs/ocfs2/super.c linux-3.2.11-vs2.3.2.8/fs/ocfs2/super.c
---- linux-3.2.11/fs/ocfs2/super.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/ocfs2/super.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/ocfs2/super.c linux-3.3-vs2.3.3.1/fs/ocfs2/super.c
+--- linux-3.3/fs/ocfs2/super.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/ocfs2/super.c       2012-02-24 03:55:06.000000000 +0100
 @@ -185,6 +185,7 @@ enum {
        Opt_coherency_full,
        Opt_resv_level,
@@ -6062,7 +5928,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/super.c linux-3.2.11-vs2.3.2.8/fs/oc
        {Opt_err, NULL}
  };
  
-@@ -663,6 +667,13 @@ static int ocfs2_remount(struct super_bl
+@@ -662,6 +666,13 @@ static int ocfs2_remount(struct super_bl
                goto out;
        }
  
@@ -6076,7 +5942,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/super.c linux-3.2.11-vs2.3.2.8/fs/oc
        /* We're going to/from readonly mode. */
        if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
                /* Disable quota accounting before remounting RO */
-@@ -1178,6 +1189,9 @@ static int ocfs2_fill_super(struct super
+@@ -1177,6 +1188,9 @@ static int ocfs2_fill_super(struct super
  
        ocfs2_complete_mount_recovery(osb);
  
@@ -6086,7 +5952,7 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/super.c linux-3.2.11-vs2.3.2.8/fs/oc
        if (ocfs2_mount_local(osb))
                snprintf(nodestr, sizeof(nodestr), "local");
        else
-@@ -1507,6 +1521,20 @@ static int ocfs2_parse_options(struct su
+@@ -1506,6 +1520,20 @@ static int ocfs2_parse_options(struct su
                            option < OCFS2_MAX_RESV_LEVEL)
                                mopt->dir_resv_level = option;
                        break;
@@ -6107,9 +5973,9 @@ diff -NurpP --minimal linux-3.2.11/fs/ocfs2/super.c linux-3.2.11-vs2.3.2.8/fs/oc
                default:
                        mlog(ML_ERROR,
                             "Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.2.11/fs/open.c linux-3.2.11-vs2.3.2.8/fs/open.c
---- linux-3.2.11/fs/open.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/open.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/open.c linux-3.3-vs2.3.3.1/fs/open.c
+--- linux-3.3/fs/open.c        2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/open.c      2012-02-24 03:55:06.000000000 +0100
 @@ -30,6 +30,11 @@
  #include <linux/fs_struct.h>
  #include <linux/ima.h>
@@ -6201,9 +6067,9 @@ diff -NurpP --minimal linux-3.2.11/fs/open.c linux-3.2.11-vs2.3.2.8/fs/open.c
  }
  
  void put_unused_fd(unsigned int fd)
-diff -NurpP --minimal linux-3.2.11/fs/proc/array.c linux-3.2.11-vs2.3.2.8/fs/proc/array.c
---- linux-3.2.11/fs/proc/array.c       2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/array.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/array.c linux-3.3-vs2.3.3.1/fs/proc/array.c
+--- linux-3.3/fs/proc/array.c  2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/array.c        2012-02-24 03:55:06.000000000 +0100
 @@ -81,6 +81,8 @@
  #include <linux/pid_namespace.h>
  #include <linux/ptrace.h>
@@ -6316,20 +6182,20 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/array.c linux-3.2.11-vs2.3.2.8/fs/pro
 +
        seq_printf(m, "%d (%s) %c %d %d %d %d %d %u %lu \
  %lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \
- %lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld\n",
-diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc/base.c
---- linux-3.2.11/fs/proc/base.c        2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/base.c      2012-02-15 03:26:56.000000000 +0100
-@@ -83,6 +83,8 @@
- #include <linux/pid_namespace.h>
+ %lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld %lu %lu %lu\n",
+diff -NurpP --minimal linux-3.3/fs/proc/base.c linux-3.3-vs2.3.3.1/fs/proc/base.c
+--- linux-3.3/fs/proc/base.c   2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/base.c 2012-02-24 04:45:58.000000000 +0100
+@@ -84,6 +84,8 @@
  #include <linux/fs_struct.h>
  #include <linux/slab.h>
+ #include <linux/flex_array.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_network.h>
  #ifdef CONFIG_HARDWALL
  #include <asm/hardwall.h>
  #endif
-@@ -1021,11 +1023,16 @@ static ssize_t oom_adjust_write(struct f
+@@ -937,11 +939,16 @@ static ssize_t oom_adjust_write(struct f
                goto err_task_lock;
        }
  
@@ -6347,16 +6213,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        /*
         * Warn that /proc/pid/oom_adj is deprecated, see
         * Documentation/feature-removal-schedule.txt.
-@@ -1180,7 +1187,7 @@ static ssize_t proc_loginuid_write(struc
-       ssize_t length;
-       uid_t loginuid;
--      if (!capable(CAP_AUDIT_CONTROL))
-+      if (!vx_capable(CAP_AUDIT_CONTROL, VXC_AUDIT_CONTROL))
-               return -EPERM;
-       rcu_read_lock();
-@@ -1627,6 +1634,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1542,6 +1549,8 @@ struct inode *proc_pid_make_inode(struct
                inode->i_gid = cred->egid;
                rcu_read_unlock();
        }
@@ -6365,7 +6222,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        security_task_to_inode(task, inode);
  
  out:
-@@ -1663,6 +1672,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1587,6 +1596,8 @@ int pid_getattr(struct vfsmount *mnt, st
  
  /* dentry stuff */
  
@@ -6374,7 +6231,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
  /*
   *    Exceptional case: normally we are not allowed to unhash a busy
   * directory. In this case, however, we can do it - no aliasing problems
-@@ -1691,6 +1702,12 @@ int pid_revalidate(struct dentry *dentry
+@@ -1615,6 +1626,12 @@ int pid_revalidate(struct dentry *dentry
        task = get_proc_task(inode);
  
        if (task) {
@@ -6387,7 +6244,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
                    task_dumpable(task)) {
                        rcu_read_lock();
-@@ -1707,6 +1724,7 @@ int pid_revalidate(struct dentry *dentry
+@@ -1631,6 +1648,7 @@ int pid_revalidate(struct dentry *dentry
                put_task_struct(task);
                return 1;
        }
@@ -6395,7 +6252,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        d_drop(dentry);
        return 0;
  }
-@@ -2196,6 +2214,13 @@ static struct dentry *proc_pident_lookup
+@@ -2469,6 +2487,13 @@ static struct dentry *proc_pident_lookup
        if (!task)
                goto out_no_task;
  
@@ -6409,7 +6266,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2581,7 +2606,7 @@ out_iput:
+@@ -2854,7 +2879,7 @@ out_iput:
  static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
  {
        struct dentry *error;
@@ -6418,7 +6275,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        const struct pid_entry *p, *last;
  
        error = ERR_PTR(-ENOENT);
-@@ -2688,6 +2713,9 @@ static int proc_pid_personality(struct s
+@@ -2961,6 +2986,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;
  
@@ -6428,7 +6285,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
  static const struct pid_entry tgid_base_stuff[] = {
        DIR("task",       S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations),
        DIR("fd",         S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
-@@ -2751,6 +2779,8 @@ static const struct pid_entry tgid_base_
+@@ -3027,6 +3055,8 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_CGROUPS
        REG("cgroup",  S_IRUGO, proc_cgroup_operations),
  #endif
@@ -6437,7 +6294,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        INF("oom_score",  S_IRUGO, proc_oom_score),
        REG("oom_adj",    S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
        REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -2770,6 +2800,7 @@ static const struct pid_entry tgid_base_
+@@ -3046,6 +3076,7 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_HARDWALL
        INF("hardwall",   S_IRUGO, proc_pid_hardwall),
  #endif
@@ -6445,7 +6302,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
  };
  
  static int proc_tgid_base_readdir(struct file * filp,
-@@ -2962,7 +2993,7 @@ retry:
+@@ -3239,7 +3270,7 @@ retry:
        iter.task = NULL;
        pid = find_ge_pid(iter.tgid, ns);
        if (pid) {
@@ -6454,7 +6311,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
                iter.task = pid_task(pid, PIDTYPE_PID);
                /* What we to know is if the pid we have find is the
                 * pid of a thread_group_leader.  Testing for task
-@@ -2992,7 +3023,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -3269,7 +3300,7 @@ static int proc_pid_fill_cache(struct fi
        struct tgid_iter iter)
  {
        char name[PROC_NUMBUF];
@@ -6463,7 +6320,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        return proc_fill_cache(filp, dirent, filldir, name, len,
                                proc_pid_instantiate, iter.task, NULL);
  }
-@@ -3009,7 +3040,7 @@ int proc_pid_readdir(struct file * filp,
+@@ -3293,7 +3324,7 @@ int proc_pid_readdir(struct file * filp,
                goto out_no_task;
        nr = filp->f_pos - FIRST_PROCESS_ENTRY;
  
@@ -6472,16 +6329,16 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
        if (!reaper)
                goto out_no_task;
  
-@@ -3026,6 +3057,8 @@ int proc_pid_readdir(struct file * filp,
-            iter.task;
-            iter.tgid += 1, iter = next_tgid(ns, iter)) {
+@@ -3315,6 +3346,8 @@ int proc_pid_readdir(struct file * filp,
+                       __filldir = fake_filldir;
                filp->f_pos = iter.tgid + TGID_OFFSET;
 +              if (!vx_proc_task_visible(iter.task))
 +                      continue;
-               if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
+               if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
                        put_task_struct(iter.task);
                        goto out;
-@@ -3179,6 +3212,8 @@ static struct dentry *proc_task_lookup(s
+@@ -3468,6 +3501,8 @@ static struct dentry *proc_task_lookup(s
        tid = name_to_int(dentry);
        if (tid == ~0U)
                goto out;
@@ -6490,9 +6347,9 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/base.c linux-3.2.11-vs2.3.2.8/fs/proc
  
        ns = dentry->d_sb->s_fs_info;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.2.11/fs/proc/generic.c linux-3.2.11-vs2.3.2.8/fs/proc/generic.c
---- linux-3.2.11/fs/proc/generic.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/generic.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/generic.c linux-3.3-vs2.3.3.1/fs/proc/generic.c
+--- linux-3.3/fs/proc/generic.c        2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/generic.c      2012-02-24 03:55:06.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <linux/bitops.h>
  #include <linux/spinlock.h>
@@ -6552,10 +6409,10 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/generic.c linux-3.2.11-vs2.3.2.8/fs/p
                } else {
                        kfree(ent);
                        ent = NULL;
-diff -NurpP --minimal linux-3.2.11/fs/proc/inode.c linux-3.2.11-vs2.3.2.8/fs/proc/inode.c
---- linux-3.2.11/fs/proc/inode.c       2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/inode.c     2011-12-05 19:33:02.000000000 +0100
-@@ -442,6 +442,8 @@ struct inode *proc_get_inode(struct supe
+diff -NurpP --minimal linux-3.3/fs/proc/inode.c linux-3.3-vs2.3.3.1/fs/proc/inode.c
+--- linux-3.3/fs/proc/inode.c  2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/inode.c        2012-02-24 03:55:06.000000000 +0100
+@@ -459,6 +459,8 @@ struct inode *proc_get_inode(struct supe
                        inode->i_uid = de->uid;
                        inode->i_gid = de->gid;
                }
@@ -6564,9 +6421,9 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/inode.c linux-3.2.11-vs2.3.2.8/fs/pro
                if (de->size)
                        inode->i_size = de->size;
                if (de->nlink)
-diff -NurpP --minimal linux-3.2.11/fs/proc/internal.h linux-3.2.11-vs2.3.2.8/fs/proc/internal.h
---- linux-3.2.11/fs/proc/internal.h    2011-07-22 11:18:06.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/internal.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/internal.h linux-3.3-vs2.3.3.1/fs/proc/internal.h
+--- linux-3.3/fs/proc/internal.h       2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/internal.h     2012-02-24 03:55:06.000000000 +0100
 @@ -10,6 +10,7 @@
   */
  
@@ -6603,9 +6460,9 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/internal.h linux-3.2.11-vs2.3.2.8/fs/
  static inline int proc_fd(struct inode *inode)
  {
        return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-3.2.11/fs/proc/loadavg.c linux-3.2.11-vs2.3.2.8/fs/proc/loadavg.c
---- linux-3.2.11/fs/proc/loadavg.c     2009-09-10 15:26:23.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/loadavg.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/loadavg.c linux-3.3-vs2.3.3.1/fs/proc/loadavg.c
+--- linux-3.3/fs/proc/loadavg.c        2009-09-10 15:26:23.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/proc/loadavg.c      2012-02-24 03:55:06.000000000 +0100
 @@ -12,15 +12,27 @@
  
  static int loadavg_proc_show(struct seq_file *m, void *v)
@@ -6635,9 +6492,9 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/loadavg.c linux-3.2.11-vs2.3.2.8/fs/p
                task_active_pid_ns(current)->last_pid);
        return 0;
  }
-diff -NurpP --minimal linux-3.2.11/fs/proc/meminfo.c linux-3.2.11-vs2.3.2.8/fs/proc/meminfo.c
---- linux-3.2.11/fs/proc/meminfo.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/meminfo.c   2011-12-15 01:11:32.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/meminfo.c linux-3.3-vs2.3.3.1/fs/proc/meminfo.c
+--- linux-3.3/fs/proc/meminfo.c        2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/meminfo.c      2012-02-24 03:55:06.000000000 +0100
 @@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_
        allowed = ((totalram_pages - hugetlb_total_pages())
                * sysctl_overcommit_ratio / 100) + total_swap_pages;
@@ -6648,13 +6505,13 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/meminfo.c linux-3.2.11-vs2.3.2.8/fs/p
                        total_swapcache_pages - i.bufferram;
        if (cached < 0)
                cached = 0;
-diff -NurpP --minimal linux-3.2.11/fs/proc/root.c linux-3.2.11-vs2.3.2.8/fs/proc/root.c
---- linux-3.2.11/fs/proc/root.c        2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/root.c      2012-01-09 16:19:31.000000000 +0100
-@@ -18,9 +18,14 @@
- #include <linux/bitops.h>
+diff -NurpP --minimal linux-3.3/fs/proc/root.c linux-3.3-vs2.3.3.1/fs/proc/root.c
+--- linux-3.3/fs/proc/root.c   2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/root.c 2012-02-24 04:46:50.000000000 +0100
+@@ -19,9 +19,14 @@
  #include <linux/mount.h>
  #include <linux/pid_namespace.h>
+ #include <linux/parser.h>
 +#include <linux/vserver/inode.h>
  
  #include "internal.h"
@@ -6666,7 +6523,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/root.c linux-3.2.11-vs2.3.2.8/fs/proc
  static int proc_test_super(struct super_block *sb, void *data)
  {
        return sb->s_fs_info == data;
-@@ -123,6 +128,7 @@ void __init proc_root_init(void)
+@@ -189,6 +194,7 @@ void __init proc_root_init(void)
  #endif
        proc_mkdir("bus", NULL);
        proc_sys_init();
@@ -6674,7 +6531,7 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/root.c linux-3.2.11-vs2.3.2.8/fs/proc
  }
  
  static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
-@@ -190,6 +196,7 @@ struct proc_dir_entry proc_root = {
+@@ -256,6 +262,7 @@ struct proc_dir_entry proc_root = {
        .proc_iops      = &proc_root_inode_operations, 
        .proc_fops      = &proc_root_operations,
        .parent         = &proc_root,
@@ -6682,9 +6539,9 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/root.c linux-3.2.11-vs2.3.2.8/fs/proc
        .name           = "/proc",
  };
  
-diff -NurpP --minimal linux-3.2.11/fs/proc/uptime.c linux-3.2.11-vs2.3.2.8/fs/proc/uptime.c
---- linux-3.2.11/fs/proc/uptime.c      2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/proc/uptime.c    2012-01-26 09:03:19.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/proc/uptime.c linux-3.3-vs2.3.3.1/fs/proc/uptime.c
+--- linux-3.3/fs/proc/uptime.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc/uptime.c       2012-02-24 03:55:06.000000000 +0100
 @@ -5,6 +5,7 @@
  #include <linux/seq_file.h>
  #include <linux/time.h>
@@ -6704,10 +6561,122 @@ diff -NurpP --minimal linux-3.2.11/fs/proc/uptime.c linux-3.2.11-vs2.3.2.8/fs/pr
        seq_printf(m, "%lu.%02lu %lu.%02lu\n",
                        (unsigned long) uptime.tv_sec,
                        (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-diff -NurpP --minimal linux-3.2.11/fs/quota/dquot.c linux-3.2.11-vs2.3.2.8/fs/quota/dquot.c
---- linux-3.2.11/fs/quota/dquot.c      2011-07-22 11:18:06.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/quota/dquot.c    2011-12-05 19:33:02.000000000 +0100
-@@ -1548,6 +1548,9 @@ int __dquot_alloc_space(struct inode *in
+diff -NurpP --minimal linux-3.3/fs/proc_namespace.c linux-3.3-vs2.3.3.1/fs/proc_namespace.c
+--- linux-3.3/fs/proc_namespace.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/proc_namespace.c    2012-02-24 17:41:22.000000000 +0100
+@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file 
+               { MS_SYNCHRONOUS, ",sync" },
+               { MS_DIRSYNC, ",dirsync" },
+               { MS_MANDLOCK, ",mand" },
++              { MS_TAGGED, ",tag" },
++              { MS_NOTAGCHECK, ",notagcheck" },
+               { 0, NULL }
+       };
+       const struct proc_fs_info *fs_infop;
+@@ -80,6 +82,34 @@ static inline void mangle(struct seq_fil
+       seq_escape(m, s, " \t\n\\");
+ }
++static int mnt_is_reachable(struct vfsmount *vfsmnt)
++{
++      struct path root;
++      struct dentry *point;
++      struct mount *mnt = real_mount(vfsmnt);
++      struct mount *root_mnt;
++      int ret;
++
++      if (mnt == mnt->mnt_ns->root)
++              return 1;
++
++      br_read_lock(vfsmount_lock);
++      root = current->fs->root;
++      root_mnt = real_mount(root.mnt);
++      point = root.dentry;
++
++      while ((mnt != mnt->mnt_parent) && (mnt != root_mnt)) {
++              point = mnt->mnt_mountpoint;
++              mnt = mnt->mnt_parent;
++      }
++
++      ret = (mnt == root_mnt) && is_subdir(point, root.dentry);
++
++      br_read_unlock(vfsmount_lock);
++
++      return ret;
++}
++
+ static void show_type(struct seq_file *m, struct super_block *sb)
+ {
+       mangle(m, sb->s_type->name);
+@@ -96,6 +126,17 @@ static int show_vfsmnt(struct seq_file *
+       struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
+       struct super_block *sb = mnt_path.dentry->d_sb;
++      if (vx_flags(VXF_HIDE_MOUNT, 0))
++              return SEQ_SKIP;
++      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
++              return SEQ_SKIP;
++
++      if (!vx_check(0, VS_ADMIN|VS_WATCH) &&
++              mnt == current->fs->root.mnt) {
++              seq_puts(m, "/dev/root / ");
++              goto type;
++      }
++
+       if (sb->s_op->show_devname) {
+               err = sb->s_op->show_devname(m, mnt_path.dentry);
+               if (err)
+@@ -106,6 +147,7 @@ static int show_vfsmnt(struct seq_file *
+       seq_putc(m, ' ');
+       seq_path(m, &mnt_path, " \t\n\\");
+       seq_putc(m, ' ');
++type:
+       show_type(m, sb);
+       seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
+       err = show_sb_opts(m, sb);
+@@ -128,6 +170,11 @@ static int show_mountinfo(struct seq_fil
+       struct path root = p->root;
+       int err = 0;
++      if (vx_flags(VXF_HIDE_MOUNT, 0))
++              return SEQ_SKIP;
++      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
++              return SEQ_SKIP;
++
+       seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
+                  MAJOR(sb->s_dev), MINOR(sb->s_dev));
+       if (sb->s_op->show_path)
+@@ -187,6 +234,17 @@ static int show_vfsstat(struct seq_file 
+       struct super_block *sb = mnt_path.dentry->d_sb;
+       int err = 0;
++      if (vx_flags(VXF_HIDE_MOUNT, 0))
++              return SEQ_SKIP;
++      if (!mnt_is_reachable(mnt) && !vx_check(0, VS_WATCH_P))
++              return SEQ_SKIP;
++
++      if (!vx_check(0, VS_ADMIN|VS_WATCH) &&
++              mnt == current->fs->root.mnt) {
++              seq_puts(m, "device /dev/root mounted on / ");
++              goto type;
++      }
++
+       /* device */
+       if (sb->s_op->show_devname) {
+               seq_puts(m, "device ");
+@@ -203,7 +261,7 @@ static int show_vfsstat(struct seq_file 
+       seq_puts(m, " mounted on ");
+       seq_path(m, &mnt_path, " \t\n\\");
+       seq_putc(m, ' ');
+-
++type:
+       /* file system type */
+       seq_puts(m, "with fstype ");
+       show_type(m, sb);
+diff -NurpP --minimal linux-3.3/fs/quota/dquot.c linux-3.3-vs2.3.3.1/fs/quota/dquot.c
+--- linux-3.3/fs/quota/dquot.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/quota/dquot.c       2012-02-24 03:55:06.000000000 +0100
+@@ -1547,6 +1547,9 @@ int __dquot_alloc_space(struct inode *in
        int reserve = flags & DQUOT_SPACE_RESERVE;
        int nofail = flags & DQUOT_SPACE_NOFAIL;
  
@@ -6717,7 +6686,7 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/dquot.c linux-3.2.11-vs2.3.2.8/fs/qu
        /*
         * First test before acquiring mutex - solves deadlocks when we
         * re-enter the quota code and are already holding the mutex
-@@ -1602,6 +1605,9 @@ int dquot_alloc_inode(const struct inode
+@@ -1601,6 +1604,9 @@ int dquot_alloc_inode(const struct inode
        int cnt, ret = 0;
        char warntype[MAXQUOTAS];
  
@@ -6727,7 +6696,7 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/dquot.c linux-3.2.11-vs2.3.2.8/fs/qu
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode))
-@@ -1672,6 +1678,8 @@ void __dquot_free_space(struct inode *in
+@@ -1671,6 +1677,8 @@ void __dquot_free_space(struct inode *in
        char warntype[MAXQUOTAS];
        int reserve = flags & DQUOT_SPACE_RESERVE;
  
@@ -6736,7 +6705,7 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/dquot.c linux-3.2.11-vs2.3.2.8/fs/qu
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode)) {
-@@ -1710,6 +1718,8 @@ void dquot_free_inode(const struct inode
+@@ -1709,6 +1717,8 @@ void dquot_free_inode(const struct inode
        unsigned int cnt;
        char warntype[MAXQUOTAS];
  
@@ -6745,9 +6714,9 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/dquot.c linux-3.2.11-vs2.3.2.8/fs/qu
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode))
-diff -NurpP --minimal linux-3.2.11/fs/quota/quota.c linux-3.2.11-vs2.3.2.8/fs/quota/quota.c
---- linux-3.2.11/fs/quota/quota.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/quota/quota.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/quota/quota.c linux-3.3-vs2.3.3.1/fs/quota/quota.c
+--- linux-3.3/fs/quota/quota.c 2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/quota/quota.c       2012-03-19 20:54:39.000000000 +0100
 @@ -8,6 +8,7 @@
  #include <linux/fs.h>
  #include <linux/namei.h>
@@ -6756,7 +6725,7 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/quota.c linux-3.2.11-vs2.3.2.8/fs/qu
  #include <asm/current.h>
  #include <asm/uaccess.h>
  #include <linux/kernel.h>
-@@ -38,7 +39,7 @@ static int check_quotactl_permission(str
+@@ -37,7 +38,7 @@ static int check_quotactl_permission(str
                        break;
                /*FALLTHROUGH*/
        default:
@@ -6765,7 +6734,7 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/quota.c linux-3.2.11-vs2.3.2.8/fs/qu
                        return -EPERM;
        }
  
-@@ -293,6 +294,46 @@ static int do_quotactl(struct super_bloc
+@@ -292,6 +293,46 @@ static int do_quotactl(struct super_bloc
        }
  }
  
@@ -6809,10 +6778,10 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/quota.c linux-3.2.11-vs2.3.2.8/fs/qu
 +
 +#endif
 +
- /*
-  * look up a superblock on which quota ops will be performed
-  * - use the name of a block device to find the superblock thereon
-@@ -310,6 +351,22 @@ static struct super_block *quotactl_bloc
+ /* Return 1 if 'cmd' will block on frozen filesystem */
+ static int quotactl_cmd_write(int cmd)
+ {
+@@ -324,6 +365,22 @@ static struct super_block *quotactl_bloc
        putname(tmp);
        if (IS_ERR(bdev))
                return ERR_CAST(bdev);
@@ -6832,12 +6801,12 @@ diff -NurpP --minimal linux-3.2.11/fs/quota/quota.c linux-3.2.11-vs2.3.2.8/fs/qu
 +              bdev = bdnew;
 +      }
 +#endif
-       sb = get_super(bdev);
-       bdput(bdev);
-       if (!sb)
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/file.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/file.c
---- linux-3.2.11/fs/reiserfs/file.c    2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/file.c  2011-12-05 19:33:02.000000000 +0100
+       if (quotactl_cmd_write(cmd))
+               sb = get_super_thawed(bdev);
+       else
+diff -NurpP --minimal linux-3.3/fs/reiserfs/file.c linux-3.3-vs2.3.3.1/fs/reiserfs/file.c
+--- linux-3.3/fs/reiserfs/file.c       2011-10-24 18:45:27.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/file.c     2012-02-24 03:55:06.000000000 +0100
 @@ -319,5 +319,6 @@ const struct inode_operations reiserfs_f
        .listxattr = reiserfs_listxattr,
        .removexattr = reiserfs_removexattr,
@@ -6845,9 +6814,9 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/file.c linux-3.2.11-vs2.3.2.8/fs/
 +      .sync_flags = reiserfs_sync_flags,
        .get_acl = reiserfs_get_acl,
  };
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/inode.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/inode.c
---- linux-3.2.11/fs/reiserfs/inode.c   2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/inode.c 2011-12-05 21:18:16.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/reiserfs/inode.c linux-3.3-vs2.3.3.1/fs/reiserfs/inode.c
+--- linux-3.3/fs/reiserfs/inode.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/inode.c    2012-02-24 03:55:06.000000000 +0100
 @@ -18,6 +18,7 @@
  #include <linux/writeback.h>
  #include <linux/quotaops.h>
@@ -7013,9 +6982,9 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/inode.c linux-3.2.11-vs2.3.2.8/fs
                mark_inode_dirty(inode);
                error = journal_end(&th, inode->i_sb, jbegin_count);
                if (error)
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/ioctl.c
---- linux-3.2.11/fs/reiserfs/ioctl.c   2011-05-22 16:17:53.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/ioctl.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/reiserfs/ioctl.c linux-3.3-vs2.3.3.1/fs/reiserfs/ioctl.c
+--- linux-3.3/fs/reiserfs/ioctl.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/ioctl.c    2012-02-24 03:55:06.000000000 +0100
 @@ -11,6 +11,21 @@
  #include <linux/pagemap.h>
  #include <linux/compat.h>
@@ -7077,9 +7046,9 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/ioctl.c linux-3.2.11-vs2.3.2.8/fs
                        sd_attrs_to_i_attrs(flags, inode);
                        REISERFS_I(inode)->i_attrs = flags;
                        inode->i_ctime = CURRENT_TIME_SEC;
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/namei.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/namei.c
---- linux-3.2.11/fs/reiserfs/namei.c   2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/namei.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/reiserfs/namei.c linux-3.3-vs2.3.3.1/fs/reiserfs/namei.c
+--- linux-3.3/fs/reiserfs/namei.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/namei.c    2012-02-24 03:55:06.000000000 +0100
 @@ -18,6 +18,7 @@
  #include <linux/reiserfs_acl.h>
  #include <linux/reiserfs_xattr.h>
@@ -7096,10 +7065,10 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/namei.c linux-3.2.11-vs2.3.2.8/fs
  
        return d_splice_alias(inode, dentry);
  }
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/super.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/super.c
---- linux-3.2.11/fs/reiserfs/super.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/super.c 2012-01-18 02:58:07.000000000 +0100
-@@ -903,6 +903,14 @@ static int reiserfs_parse_options(struct
+diff -NurpP --minimal linux-3.3/fs/reiserfs/super.c linux-3.3-vs2.3.3.1/fs/reiserfs/super.c
+--- linux-3.3/fs/reiserfs/super.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/super.c    2012-02-24 03:55:06.000000000 +0100
+@@ -980,6 +980,14 @@ static int reiserfs_parse_options(struct
                {"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
                {"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
  #endif
@@ -7114,7 +7083,7 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/super.c linux-3.2.11-vs2.3.2.8/fs
  #ifdef CONFIG_REISERFS_FS_POSIX_ACL
                {"acl",.setmask = 1 << REISERFS_POSIXACL},
                {"noacl",.clrmask = 1 << REISERFS_POSIXACL},
-@@ -1213,6 +1221,14 @@ static int reiserfs_remount(struct super
+@@ -1298,6 +1306,14 @@ static int reiserfs_remount(struct super
        handle_quota_files(s, qf_names, &qfmt);
  #endif
  
@@ -7129,8 +7098,8 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/super.c linux-3.2.11-vs2.3.2.8/fs
        handle_attrs(s);
  
        /* Add options that are safe here */
-@@ -1696,6 +1712,10 @@ static int reiserfs_fill_super(struct su
-               goto error;
+@@ -1777,6 +1793,10 @@ static int reiserfs_fill_super(struct su
+               goto error_unlocked;
        }
  
 +      /* map mount option tagxid */
@@ -7140,9 +7109,9 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/super.c linux-3.2.11-vs2.3.2.8/fs
        rs = SB_DISK_SUPER_BLOCK(s);
        /* Let's do basic sanity check to verify that underlying device is not
           smaller than the filesystem. If the check fails then abort and scream,
-diff -NurpP --minimal linux-3.2.11/fs/reiserfs/xattr.c linux-3.2.11-vs2.3.2.8/fs/reiserfs/xattr.c
---- linux-3.2.11/fs/reiserfs/xattr.c   2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/reiserfs/xattr.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/reiserfs/xattr.c linux-3.3-vs2.3.3.1/fs/reiserfs/xattr.c
+--- linux-3.3/fs/reiserfs/xattr.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/reiserfs/xattr.c    2012-02-24 03:55:06.000000000 +0100
 @@ -40,6 +40,7 @@
  #include <linux/errno.h>
  #include <linux/gfp.h>
@@ -7151,9 +7120,9 @@ diff -NurpP --minimal linux-3.2.11/fs/reiserfs/xattr.c linux-3.2.11-vs2.3.2.8/fs
  #include <linux/file.h>
  #include <linux/pagemap.h>
  #include <linux/xattr.h>
-diff -NurpP --minimal linux-3.2.11/fs/stat.c linux-3.2.11-vs2.3.2.8/fs/stat.c
---- linux-3.2.11/fs/stat.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/stat.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/stat.c linux-3.3-vs2.3.3.1/fs/stat.c
+--- linux-3.3/fs/stat.c        2012-01-09 16:14:55.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/stat.c      2012-02-24 03:55:06.000000000 +0100
 @@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
        stat->nlink = inode->i_nlink;
        stat->uid = inode->i_uid;
@@ -7162,19 +7131,19 @@ diff -NurpP --minimal linux-3.2.11/fs/stat.c linux-3.2.11-vs2.3.2.8/fs/stat.c
        stat->rdev = inode->i_rdev;
        stat->size = i_size_read(inode);
        stat->atime = inode->i_atime;
-diff -NurpP --minimal linux-3.2.11/fs/statfs.c linux-3.2.11-vs2.3.2.8/fs/statfs.c
---- linux-3.2.11/fs/statfs.c   2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/statfs.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/statfs.c linux-3.3-vs2.3.3.1/fs/statfs.c
+--- linux-3.3/fs/statfs.c      2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/statfs.c    2012-02-24 04:27:47.000000000 +0100
 @@ -7,6 +7,8 @@
  #include <linux/statfs.h>
  #include <linux/security.h>
  #include <linux/uaccess.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_dlimit.h>
+ #include "internal.h"
  
  static int flags_by_mnt(int mnt_flags)
- {
-@@ -59,6 +61,8 @@ int statfs_by_dentry(struct dentry *dent
+@@ -60,6 +62,8 @@ static int statfs_by_dentry(struct dentr
        retval = dentry->d_sb->s_op->statfs(dentry, buf);
        if (retval == 0 && buf->f_frsize == 0)
                buf->f_frsize = buf->f_bsize;
@@ -7183,9 +7152,9 @@ diff -NurpP --minimal linux-3.2.11/fs/statfs.c linux-3.2.11-vs2.3.2.8/fs/statfs.
        return retval;
  }
  
-diff -NurpP --minimal linux-3.2.11/fs/super.c linux-3.2.11-vs2.3.2.8/fs/super.c
---- linux-3.2.11/fs/super.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/super.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/super.c linux-3.3-vs2.3.3.1/fs/super.c
+--- linux-3.3/fs/super.c       2012-03-19 19:47:26.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/super.c     2012-03-19 20:52:10.000000000 +0100
 @@ -32,6 +32,9 @@
  #include <linux/backing-dev.h>
  #include <linux/rculist_bl.h>
@@ -7196,7 +7165,7 @@ diff -NurpP --minimal linux-3.2.11/fs/super.c linux-3.2.11-vs2.3.2.8/fs/super.c
  #include "internal.h"
  
  
-@@ -1100,6 +1103,13 @@ mount_fs(struct file_system_type *type, 
+@@ -1137,6 +1140,13 @@ mount_fs(struct file_system_type *type, 
        WARN_ON(sb->s_bdi == &default_backing_dev_info);
        sb->s_flags |= MS_BORN;
  
@@ -7210,9 +7179,9 @@ diff -NurpP --minimal linux-3.2.11/fs/super.c linux-3.2.11-vs2.3.2.8/fs/super.c
        error = security_sb_kern_mount(sb, flags, secdata);
        if (error)
                goto out_sb;
-diff -NurpP --minimal linux-3.2.11/fs/sysfs/mount.c linux-3.2.11-vs2.3.2.8/fs/sysfs/mount.c
---- linux-3.2.11/fs/sysfs/mount.c      2011-07-22 11:18:06.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/sysfs/mount.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/sysfs/mount.c linux-3.3-vs2.3.3.1/fs/sysfs/mount.c
+--- linux-3.3/fs/sysfs/mount.c 2011-07-22 11:18:06.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/sysfs/mount.c       2012-02-24 03:55:06.000000000 +0100
 @@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
  
        sb->s_blocksize = PAGE_CACHE_SIZE;
@@ -7222,9 +7191,9 @@ diff -NurpP --minimal linux-3.2.11/fs/sysfs/mount.c linux-3.2.11-vs2.3.2.8/fs/sy
        sb->s_op = &sysfs_ops;
        sb->s_time_gran = 1;
  
-diff -NurpP --minimal linux-3.2.11/fs/utimes.c linux-3.2.11-vs2.3.2.8/fs/utimes.c
---- linux-3.2.11/fs/utimes.c   2011-05-22 16:17:54.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/utimes.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/utimes.c linux-3.3-vs2.3.3.1/fs/utimes.c
+--- linux-3.3/fs/utimes.c      2011-05-22 16:17:54.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/utimes.c    2012-02-24 03:55:06.000000000 +0100
 @@ -8,6 +8,8 @@
  #include <linux/stat.h>
  #include <linux/utime.h>
@@ -7254,9 +7223,9 @@ diff -NurpP --minimal linux-3.2.11/fs/utimes.c linux-3.2.11-vs2.3.2.8/fs/utimes.
        if (times && times[0].tv_nsec == UTIME_NOW &&
                     times[1].tv_nsec == UTIME_NOW)
                times = NULL;
-diff -NurpP --minimal linux-3.2.11/fs/xattr.c linux-3.2.11-vs2.3.2.8/fs/xattr.c
---- linux-3.2.11/fs/xattr.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xattr.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xattr.c linux-3.3-vs2.3.3.1/fs/xattr.c
+--- linux-3.3/fs/xattr.c       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xattr.c     2012-02-24 03:55:06.000000000 +0100
 @@ -19,6 +19,7 @@
  #include <linux/module.h>
  #include <linux/fsnotify.h>
@@ -7274,9 +7243,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xattr.c linux-3.2.11-vs2.3.2.8/fs/xattr.c
                        return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
                return 0;
        }
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_dinode.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_dinode.h
---- linux-3.2.11/fs/xfs/xfs_dinode.h   2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_dinode.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_dinode.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_dinode.h
+--- linux-3.3/fs/xfs/xfs_dinode.h      2011-10-24 18:45:31.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_dinode.h    2012-02-24 03:55:06.000000000 +0100
 @@ -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 */
@@ -7317,9 +7286,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_dinode.h linux-3.2.11-vs2.3.2.8/fs
 +#define XFS_DIVFLAG_COW               0x02
  
  #endif        /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_fs.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_fs.h
---- linux-3.2.11/fs/xfs/xfs_fs.h       2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_fs.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_fs.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_fs.h
+--- linux-3.3/fs/xfs/xfs_fs.h  2011-10-24 18:45:31.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_fs.h        2012-02-24 03:55:06.000000000 +0100
 @@ -67,6 +67,9 @@ struct fsxattr {
  #define XFS_XFLAG_EXTSZINHERIT        0x00001000      /* inherit inode extent size */
  #define XFS_XFLAG_NODEFRAG    0x00002000      /* do not defragment */
@@ -7340,9 +7309,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_fs.h linux-3.2.11-vs2.3.2.8/fs/xfs
        __u32           bs_dmevmask;    /* DMIG event mask              */
        __u16           bs_dmstate;     /* DMIG state info              */
        __u16           bs_aextents;    /* attribute number of extents  */
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ialloc.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ialloc.c
---- linux-3.2.11/fs/xfs/xfs_ialloc.c   2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ialloc.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_ialloc.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_ialloc.c
+--- linux-3.3/fs/xfs/xfs_ialloc.c      2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_ialloc.c    2012-02-24 03:55:06.000000000 +0100
 @@ -37,7 +37,6 @@
  #include "xfs_error.h"
  #include "xfs_bmap.h"
@@ -7351,9 +7320,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ialloc.c linux-3.2.11-vs2.3.2.8/fs
  /*
   * Allocation group level functions.
   */
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_inode.c
---- linux-3.2.11/fs/xfs/xfs_inode.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_inode.c  2011-12-15 01:11:32.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_inode.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_inode.c
+--- linux-3.3/fs/xfs/xfs_inode.c       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_inode.c     2012-02-24 03:55:06.000000000 +0100
 @@ -236,6 +236,7 @@ xfs_inotobp(
        return 0;
  }
@@ -7362,7 +7331,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
  
  /*
   * This routine is called to map an inode to the buffer containing
-@@ -634,15 +635,25 @@ xfs_iformat_btree(
+@@ -631,15 +632,25 @@ xfs_iformat_btree(
  STATIC void
  xfs_dinode_from_disk(
        xfs_icdinode_t          *to,
@@ -7391,7 +7360,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        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);
-@@ -664,21 +675,26 @@ xfs_dinode_from_disk(
+@@ -661,21 +672,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);
@@ -7421,7 +7390,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        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);
-@@ -700,12 +716,14 @@ xfs_dinode_to_disk(
+@@ -697,12 +713,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);
@@ -7437,7 +7406,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
  {
        uint                    flags = 0;
  
-@@ -716,6 +734,8 @@ _xfs_dic2xflags(
+@@ -713,6 +731,8 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_PREALLOC;
                if (di_flags & XFS_DIFLAG_IMMUTABLE)
                        flags |= XFS_XFLAG_IMMUTABLE;
@@ -7446,7 +7415,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
                if (di_flags & XFS_DIFLAG_APPEND)
                        flags |= XFS_XFLAG_APPEND;
                if (di_flags & XFS_DIFLAG_SYNC)
-@@ -740,6 +760,10 @@ _xfs_dic2xflags(
+@@ -737,6 +757,10 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_FILESTREAM;
        }
  
@@ -7457,7 +7426,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        return flags;
  }
  
-@@ -749,7 +773,7 @@ xfs_ip2xflags(
+@@ -746,7 +770,7 @@ xfs_ip2xflags(
  {
        xfs_icdinode_t          *dic = &ip->i_d;
  
@@ -7466,7 +7435,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
                                (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -757,7 +781,8 @@ uint
+@@ -754,7 +778,8 @@ uint
  xfs_dic2xflags(
        xfs_dinode_t            *dip)
  {
@@ -7476,7 +7445,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
                                (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -790,7 +815,6 @@ xfs_iread(
+@@ -787,7 +812,6 @@ xfs_iread(
        if (error)
                return error;
        dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset);
@@ -7484,7 +7453,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        /*
         * If we got something that isn't an inode it means someone
         * (nfs or dmi) has a stale handle.
-@@ -813,7 +837,8 @@ xfs_iread(
+@@ -810,7 +834,8 @@ xfs_iread(
         * Otherwise, just get the truly permanent information.
         */
        if (dip->di_mode) {
@@ -7494,7 +7463,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
                error = xfs_iformat(ip, dip);
                if (error)  {
  #ifdef DEBUG
-@@ -1008,6 +1033,7 @@ xfs_ialloc(
+@@ -998,6 +1023,7 @@ xfs_ialloc(
        ASSERT(ip->i_d.di_nlink == nlink);
        ip->i_d.di_uid = current_fsuid();
        ip->i_d.di_gid = current_fsgid();
@@ -7502,7 +7471,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        xfs_set_projid(ip, prid);
        memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
  
-@@ -1068,6 +1094,7 @@ xfs_ialloc(
+@@ -1057,6 +1083,7 @@ xfs_ialloc(
        ip->i_d.di_dmevmask = 0;
        ip->i_d.di_dmstate = 0;
        ip->i_d.di_flags = 0;
@@ -7510,15 +7479,15 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
        flags = XFS_ILOG_CORE;
        switch (mode & S_IFMT) {
        case S_IFIFO:
-@@ -1842,6 +1869,7 @@ xfs_ifree(
+@@ -1726,6 +1753,7 @@ xfs_ifree(
        }
        ip->i_d.di_mode = 0;            /* mark incore inode as free */
        ip->i_d.di_flags = 0;
 +      ip->i_d.di_vflags = 0;
        ip->i_d.di_dmevmask = 0;
        ip->i_d.di_forkoff = 0;         /* mark the attr fork not in use */
-       ip->i_df.if_ext_max =
-@@ -2723,7 +2751,8 @@ xfs_iflush_int(
+       ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS;
+@@ -2620,7 +2648,8 @@ xfs_iflush_int(
         * because if the inode is dirty at all the core must
         * be.
         */
@@ -7528,10 +7497,10 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.c linux-3.2.11-vs2.3.2.8/fs/
  
        /* Wrap, we never let the log put out DI_MAX_FLUSH */
        if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_inode.h
---- linux-3.2.11/fs/xfs/xfs_inode.h    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_inode.h  2011-12-15 01:11:32.000000000 +0100
-@@ -135,7 +135,9 @@ typedef struct xfs_icdinode {
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_inode.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_inode.h
+--- linux-3.3/fs/xfs/xfs_inode.h       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_inode.h     2012-02-24 03:55:06.000000000 +0100
+@@ -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 */
        __uint16_t      di_projid_hi;   /* higher part of owner's project id */
@@ -7542,7 +7511,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.h linux-3.2.11-vs2.3.2.8/fs/
        __uint16_t      di_flushiter;   /* incremented on flush */
        xfs_ictimestamp_t di_atime;     /* time last accessed */
        xfs_ictimestamp_t di_mtime;     /* time last modified */
-@@ -536,7 +538,7 @@ int                xfs_itobp(struct xfs_mount *, struc
+@@ -556,7 +558,7 @@ int                xfs_itobp(struct xfs_mount *, struc
  int           xfs_iread(struct xfs_mount *, struct xfs_trans *,
                          struct xfs_inode *, uint);
  void          xfs_dinode_to_disk(struct xfs_dinode *,
@@ -7551,9 +7520,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_inode.h linux-3.2.11-vs2.3.2.8/fs/
  void          xfs_idestroy_fork(struct xfs_inode *, int);
  void          xfs_idata_realloc(struct xfs_inode *, int, int);
  void          xfs_iroot_realloc(struct xfs_inode *, int, int);
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ioctl.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ioctl.c
---- linux-3.2.11/fs/xfs/xfs_ioctl.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ioctl.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_ioctl.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_ioctl.c
+--- linux-3.3/fs/xfs/xfs_ioctl.c       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_ioctl.c     2012-02-24 03:55:06.000000000 +0100
 @@ -28,7 +28,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7622,9 +7591,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ioctl.c linux-3.2.11-vs2.3.2.8/fs/
                return xfs_ioc_setxflags(ip, filp, arg);
  
        case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ioctl.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ioctl.h
---- linux-3.2.11/fs/xfs/xfs_ioctl.h    2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_ioctl.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_ioctl.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_ioctl.h
+--- linux-3.3/fs/xfs/xfs_ioctl.h       2011-10-24 18:45:31.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_ioctl.h     2012-02-24 03:55:06.000000000 +0100
 @@ -70,6 +70,12 @@ xfs_handle_to_dentry(
        void __user             *uhandle,
        u32                     hlen);
@@ -7638,9 +7607,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_ioctl.h linux-3.2.11-vs2.3.2.8/fs/
  extern long
  xfs_file_ioctl(
        struct file             *filp,
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_iops.c
---- linux-3.2.11/fs/xfs/xfs_iops.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_iops.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_iops.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_iops.c
+--- linux-3.3/fs/xfs/xfs_iops.c        2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_iops.c      2012-02-24 03:55:06.000000000 +0100
 @@ -30,6 +30,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7665,7 +7634,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
        stat->ino = ip->i_ino;
        stat->atime = inode->i_atime;
        stat->mtime = inode->i_mtime;
-@@ -1039,6 +1042,7 @@ static const struct inode_operations xfs
+@@ -1051,6 +1054,7 @@ static const struct inode_operations xfs
        .removexattr            = generic_removexattr,
        .listxattr              = xfs_vn_listxattr,
        .fiemap                 = xfs_vn_fiemap,
@@ -7673,7 +7642,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
  };
  
  static const struct inode_operations xfs_dir_inode_operations = {
-@@ -1064,6 +1068,7 @@ static const struct inode_operations xfs
+@@ -1076,6 +1080,7 @@ static const struct inode_operations xfs
        .getxattr               = generic_getxattr,
        .removexattr            = generic_removexattr,
        .listxattr              = xfs_vn_listxattr,
@@ -7681,7 +7650,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
  };
  
  static const struct inode_operations xfs_dir_ci_inode_operations = {
-@@ -1113,6 +1118,10 @@ xfs_diflags_to_iflags(
+@@ -1125,6 +1130,10 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_IMMUTABLE;
        else
                inode->i_flags &= ~S_IMMUTABLE;
@@ -7692,7 +7661,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
        if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
                inode->i_flags |= S_APPEND;
        else
-@@ -1125,6 +1134,15 @@ xfs_diflags_to_iflags(
+@@ -1137,6 +1146,15 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_NOATIME;
        else
                inode->i_flags &= ~S_NOATIME;
@@ -7708,7 +7677,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
  }
  
  /*
-@@ -1156,6 +1174,7 @@ xfs_setup_inode(
+@@ -1168,6 +1186,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;
@@ -7716,9 +7685,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_iops.c linux-3.2.11-vs2.3.2.8/fs/x
  
        switch (inode->i_mode & S_IFMT) {
        case S_IFBLK:
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_itable.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_itable.c
---- linux-3.2.11/fs/xfs/xfs_itable.c   2011-05-22 16:17:54.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_itable.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_itable.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_itable.c
+--- linux-3.3/fs/xfs/xfs_itable.c      2011-05-22 16:17:54.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_itable.c    2012-02-24 03:55:06.000000000 +0100
 @@ -98,6 +98,7 @@ xfs_bulkstat_one_int(
        buf->bs_mode = dic->di_mode;
        buf->bs_uid = dic->di_uid;
@@ -7727,9 +7696,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_itable.c linux-3.2.11-vs2.3.2.8/fs
        buf->bs_size = dic->di_size;
  
        /*
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_linux.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_linux.h
---- linux-3.2.11/fs/xfs/xfs_linux.h    2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_linux.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_linux.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_linux.h
+--- linux-3.3/fs/xfs/xfs_linux.h       2011-10-24 18:45:31.000000000 +0200
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_linux.h     2012-02-24 03:55:06.000000000 +0100
 @@ -121,6 +121,7 @@
  
  #define current_cpu()         (raw_smp_processor_id())
@@ -7738,9 +7707,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_linux.h linux-3.2.11-vs2.3.2.8/fs/
  #define current_test_flags(f) (current->flags & (f))
  #define current_set_flags_nested(sp, f)               \
                (*(sp) = current->flags, current->flags |= (f))
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_log_recover.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_log_recover.c
---- linux-3.2.11/fs/xfs/xfs_log_recover.c      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_log_recover.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_log_recover.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_log_recover.c
+--- linux-3.3/fs/xfs/xfs_log_recover.c 2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_log_recover.c       2012-03-19 20:52:10.000000000 +0100
 @@ -2344,7 +2344,8 @@ xlog_recover_inode_pass2(
        }
  
@@ -7751,10 +7720,10 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_log_recover.c linux-3.2.11-vs2.3.2
  
        /* the rest is in on-disk format */
        if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_mount.h linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_mount.h
---- linux-3.2.11/fs/xfs/xfs_mount.h    2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_mount.h  2011-12-05 19:33:02.000000000 +0100
-@@ -249,6 +249,7 @@ typedef struct xfs_mount {
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_mount.h linux-3.3-vs2.3.3.1/fs/xfs/xfs_mount.h
+--- linux-3.3/fs/xfs/xfs_mount.h       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_mount.h     2012-02-24 03:55:06.000000000 +0100
+@@ -248,6 +248,7 @@ typedef struct xfs_mount {
                                                   allocator */
  #define XFS_MOUNT_NOATTR2     (1ULL << 25)    /* disable use of attr2 format */
  
@@ -7762,9 +7731,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_mount.h linux-3.2.11-vs2.3.2.8/fs/
  
  /*
   * Default minimum read and write sizes.
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_super.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_super.c
---- linux-3.2.11/fs/xfs/xfs_super.c    2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_super.c  2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_super.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_super.c
+--- linux-3.3/fs/xfs/xfs_super.c       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_super.c     2012-02-24 03:55:06.000000000 +0100
 @@ -113,6 +113,9 @@ mempool_t *xfs_ioend_pool;
  #define MNTOPT_NODELAYLOG  "nodelaylog"       /* Delayed logging disabled */
  #define MNTOPT_DISCARD           "discard"    /* Discard unused blocks */
@@ -7790,7 +7759,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_super.c linux-3.2.11-vs2.3.2.8/fs/
        {Opt_barrier, "barrier"},
        {Opt_nobarrier, "nobarrier"},
        {Opt_err, NULL}
-@@ -374,6 +381,19 @@ xfs_parseargs(
+@@ -373,6 +380,19 @@ xfs_parseargs(
                } else if (!strcmp(this_char, "irixsgid")) {
                        xfs_warn(mp,
        "irixsgid is now a sysctl(2) variable, option is deprecated.");
@@ -7810,7 +7779,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_super.c linux-3.2.11-vs2.3.2.8/fs/
                } else {
                        xfs_warn(mp, "unknown mount option [%s].", this_char);
                        return EINVAL;
-@@ -1138,6 +1158,16 @@ xfs_fs_remount(
+@@ -1114,6 +1134,16 @@ xfs_fs_remount(
                case Opt_nobarrier:
                        mp->m_flags &= ~XFS_MOUNT_BARRIER;
                        break;
@@ -7827,7 +7796,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_super.c linux-3.2.11-vs2.3.2.8/fs/
                default:
                        /*
                         * Logically we would return an error here to prevent
-@@ -1353,6 +1383,9 @@ xfs_fs_fill_super(
+@@ -1329,6 +1359,9 @@ xfs_fs_fill_super(
        if (error)
                goto out_free_sb;
  
@@ -7837,9 +7806,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_super.c linux-3.2.11-vs2.3.2.8/fs/
        /*
         * we must configure the block size in the superblock before we run the
         * full mount process as the mount process can lookup and cache inodes.
-diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_vnodeops.c linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_vnodeops.c
---- linux-3.2.11/fs/xfs/xfs_vnodeops.c 2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/fs/xfs/xfs_vnodeops.c       2012-03-14 10:19:18.000000000 +0100
+diff -NurpP --minimal linux-3.3/fs/xfs/xfs_vnodeops.c linux-3.3-vs2.3.3.1/fs/xfs/xfs_vnodeops.c
+--- linux-3.3/fs/xfs/xfs_vnodeops.c    2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/fs/xfs/xfs_vnodeops.c  2012-02-24 03:55:06.000000000 +0100
 @@ -106,6 +106,77 @@ xfs_readlink_bmap(
        return error;
  }
@@ -7890,7 +7859,7 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_vnodeops.c linux-3.2.11-vs2.3.2.8/
 +              goto error_out;
 +
 +      xfs_ilock(ip, XFS_ILOCK_EXCL);
-+      xfs_trans_ijoin(tp, ip, 0);
++      xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
 +
 +      inode->i_flags = flags;
 +      inode->i_vflags = vflags;
@@ -7918,9 +7887,9 @@ diff -NurpP --minimal linux-3.2.11/fs/xfs/xfs_vnodeops.c linux-3.2.11-vs2.3.2.8/
  int
  xfs_readlink(
        xfs_inode_t     *ip,
-diff -NurpP --minimal linux-3.2.11/include/linux/Kbuild linux-3.2.11-vs2.3.2.8/include/linux/Kbuild
---- linux-3.2.11/include/linux/Kbuild  2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/Kbuild        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/Kbuild linux-3.3-vs2.3.3.1/include/linux/Kbuild
+--- linux-3.3/include/linux/Kbuild     2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/Kbuild   2012-02-24 03:55:06.000000000 +0100
 @@ -17,6 +17,7 @@ header-y += netfilter_bridge/
  header-y += netfilter_ipv4/
  header-y += netfilter_ipv6/
@@ -7929,9 +7898,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/Kbuild linux-3.2.11-vs2.3.2.8/i
  header-y += wimax/
  
  objhdr-y += version.h
-diff -NurpP --minimal linux-3.2.11/include/linux/capability.h linux-3.2.11-vs2.3.2.8/include/linux/capability.h
---- linux-3.2.11/include/linux/capability.h    2012-01-09 16:14:56.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/capability.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/capability.h linux-3.3-vs2.3.3.1/include/linux/capability.h
+--- linux-3.3/include/linux/capability.h       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/capability.h     2012-02-24 03:55:06.000000000 +0100
 @@ -280,6 +280,7 @@ struct cpu_vfs_cap_data {
     arbitrary SCSI commands */
  /* Allow setting encryption key on loopback filesystem */
@@ -7954,9 +7923,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/capability.h linux-3.2.11-vs2.3
  
  /*
   * Bit location of each capability (used by user-space library and kernel)
-diff -NurpP --minimal linux-3.2.11/include/linux/cred.h linux-3.2.11-vs2.3.2.8/include/linux/cred.h
---- linux-3.2.11/include/linux/cred.h  2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/cred.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/cred.h linux-3.3-vs2.3.3.1/include/linux/cred.h
+--- linux-3.3/include/linux/cred.h     2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/cred.h   2012-02-24 03:55:06.000000000 +0100
 @@ -156,6 +156,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 *);
@@ -7997,18 +7966,18 @@ diff -NurpP --minimal linux-3.2.11/include/linux/cred.h linux-3.2.11-vs2.3.2.8/i
  /**
   * get_new_cred - Get a reference on a new set of credentials
   * @cred: The new credentials to reference
-diff -NurpP --minimal linux-3.2.11/include/linux/devpts_fs.h linux-3.2.11-vs2.3.2.8/include/linux/devpts_fs.h
---- linux-3.2.11/include/linux/devpts_fs.h     2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/devpts_fs.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/devpts_fs.h linux-3.3-vs2.3.3.1/include/linux/devpts_fs.h
+--- linux-3.3/include/linux/devpts_fs.h        2008-12-25 00:26:37.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/devpts_fs.h      2012-02-24 03:55:06.000000000 +0100
 @@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
  
  #endif
  
 -
  #endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/ext2_fs.h linux-3.2.11-vs2.3.2.8/include/linux/ext2_fs.h
---- linux-3.2.11/include/linux/ext2_fs.h       2012-01-09 16:14:56.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/ext2_fs.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/ext2_fs.h linux-3.3-vs2.3.3.1/include/linux/ext2_fs.h
+--- linux-3.3/include/linux/ext2_fs.h  2012-01-09 16:14:56.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/ext2_fs.h        2012-02-24 03:55:06.000000000 +0100
 @@ -190,8 +190,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) */
@@ -8048,9 +8017,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/ext2_fs.h linux-3.2.11-vs2.3.2.
  
  
  #define clear_opt(o, opt)             o &= ~EXT2_MOUNT_##opt
-diff -NurpP --minimal linux-3.2.11/include/linux/ext3_fs.h linux-3.2.11-vs2.3.2.8/include/linux/ext3_fs.h
---- linux-3.2.11/include/linux/ext3_fs.h       2012-01-09 16:14:56.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/ext3_fs.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/ext3_fs.h linux-3.3-vs2.3.3.1/include/linux/ext3_fs.h
+--- linux-3.3/include/linux/ext3_fs.h  2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/ext3_fs.h        2012-02-24 03:55:06.000000000 +0100
 @@ -173,10 +173,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) */
@@ -8102,9 +8071,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/ext3_fs.h linux-3.2.11-vs2.3.2.
  
  /* ioctl.c */
  extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/include/linux/fs.h
---- linux-3.2.11/include/linux/fs.h    2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/fs.h  2012-03-01 21:39:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/fs.h linux-3.3-vs2.3.3.1/include/linux/fs.h
+--- linux-3.3/include/linux/fs.h       2012-03-19 19:47:27.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/fs.h     2012-03-19 20:52:10.000000000 +0100
 @@ -210,6 +210,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 */
@@ -8165,7 +8134,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  /* the read-only stuff doesn't really belong here, but any other place is
     probably as bad and I don't want to create yet another include file. */
  
-@@ -364,11 +388,14 @@ struct inodes_stat_t {
+@@ -365,11 +389,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 */
@@ -8182,7 +8151,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  
  #define SYNC_FILE_RANGE_WAIT_BEFORE   1
  #define SYNC_FILE_RANGE_WRITE         2
-@@ -449,6 +476,7 @@ typedef void (dio_iodone_t)(struct kiocb
+@@ -451,6 +478,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)
@@ -8190,7 +8159,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  
  /*
   * This is the Inode Attributes structure, used for notify_change().  It
-@@ -464,6 +492,7 @@ struct iattr {
+@@ -466,6 +494,7 @@ struct iattr {
        umode_t         ia_mode;
        uid_t           ia_uid;
        gid_t           ia_gid;
@@ -8198,7 +8167,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
        loff_t          ia_size;
        struct timespec ia_atime;
        struct timespec ia_mtime;
-@@ -477,6 +506,9 @@ struct iattr {
+@@ -479,6 +508,9 @@ struct iattr {
        struct file     *ia_file;
  };
  
@@ -8208,7 +8177,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  /*
   * Includes for diskquotas.
   */
-@@ -751,7 +783,9 @@ struct inode {
+@@ -758,7 +790,9 @@ struct inode {
        unsigned short          i_opflags;
        uid_t                   i_uid;
        gid_t                   i_gid;
@@ -8219,7 +8188,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  
  #ifdef CONFIG_FS_POSIX_ACL
        struct posix_acl        *i_acl;
-@@ -780,6 +814,7 @@ struct inode {
+@@ -787,6 +821,7 @@ struct inode {
                unsigned int __i_nlink;
        };
        dev_t                   i_rdev;
@@ -8227,7 +8196,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
        struct timespec         i_atime;
        struct timespec         i_mtime;
        struct timespec         i_ctime;
-@@ -917,12 +952,12 @@ static inline void i_size_write(struct i
+@@ -924,12 +959,12 @@ static inline void i_size_write(struct i
  
  static inline unsigned iminor(const struct inode *inode)
  {
@@ -8242,7 +8211,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  }
  
  extern struct block_device *I_BDEV(struct inode *inode);
-@@ -989,6 +1024,7 @@ struct file {
+@@ -996,6 +1031,7 @@ struct file {
        loff_t                  f_pos;
        struct fown_struct      f_owner;
        const struct cred       *f_cred;
@@ -8250,7 +8219,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
        struct file_ra_state    f_ra;
  
        u64                     f_version;
-@@ -1136,6 +1172,7 @@ struct file_lock {
+@@ -1143,6 +1179,7 @@ struct file_lock {
        struct file *fl_file;
        loff_t fl_start;
        loff_t fl_end;
@@ -8258,7 +8227,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  
        struct fasync_struct *  fl_fasync; /* for lease break notifications */
        /* for lease breaks: */
-@@ -1636,6 +1673,7 @@ struct inode_operations {
+@@ -1650,6 +1687,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 *);
@@ -8266,7 +8235,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
        void (*truncate_range)(struct inode *, loff_t, loff_t);
        int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
                      u64 len);
-@@ -1655,6 +1693,7 @@ extern ssize_t vfs_readv(struct file *, 
+@@ -1669,6 +1707,7 @@ extern ssize_t vfs_readv(struct file *, 
                unsigned long, loff_t *);
  extern ssize_t vfs_writev(struct file *, const struct iovec __user *,
                unsigned long, loff_t *);
@@ -8274,7 +8243,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  
  struct super_operations {
        struct inode *(*alloc_inode)(struct super_block *sb);
-@@ -2542,6 +2581,7 @@ extern int dcache_dir_open(struct inode 
+@@ -2507,6 +2546,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);
@@ -8282,10 +8251,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/fs.h linux-3.2.11-vs2.3.2.8/inc
  extern int simple_setattr(struct dentry *, struct iattr *);
  extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
  extern int simple_statfs(struct dentry *, struct kstatfs *);
-diff -NurpP --minimal linux-3.2.11/include/linux/gfs2_ondisk.h linux-3.2.11-vs2.3.2.8/include/linux/gfs2_ondisk.h
---- linux-3.2.11/include/linux/gfs2_ondisk.h   2010-07-07 18:31:55.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/gfs2_ondisk.h 2011-12-05 19:33:02.000000000 +0100
-@@ -211,6 +211,9 @@ enum {
+diff -NurpP --minimal linux-3.3/include/linux/gfs2_ondisk.h linux-3.3-vs2.3.3.1/include/linux/gfs2_ondisk.h
+--- linux-3.3/include/linux/gfs2_ondisk.h      2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/gfs2_ondisk.h    2012-02-24 03:55:06.000000000 +0100
+@@ -213,6 +213,9 @@ enum {
        gfs2fl_NoAtime          = 7,
        gfs2fl_Sync             = 8,
        gfs2fl_System           = 9,
@@ -8295,7 +8264,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/gfs2_ondisk.h linux-3.2.11-vs2.
        gfs2fl_TruncInProg      = 29,
        gfs2fl_InheritDirectio  = 30,
        gfs2fl_InheritJdata     = 31,
-@@ -227,6 +230,9 @@ enum {
+@@ -229,6 +232,9 @@ enum {
  #define GFS2_DIF_NOATIME              0x00000080
  #define GFS2_DIF_SYNC                 0x00000100
  #define GFS2_DIF_SYSTEM                       0x00000200 /* New in gfs2 */
@@ -8305,9 +8274,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/gfs2_ondisk.h linux-3.2.11-vs2.
  #define GFS2_DIF_TRUNC_IN_PROG                0x20000000 /* New in gfs2 */
  #define GFS2_DIF_INHERIT_DIRECTIO     0x40000000
  #define GFS2_DIF_INHERIT_JDATA                0x80000000
-diff -NurpP --minimal linux-3.2.11/include/linux/if_tun.h linux-3.2.11-vs2.3.2.8/include/linux/if_tun.h
---- linux-3.2.11/include/linux/if_tun.h        2010-08-02 16:52:54.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/if_tun.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/if_tun.h linux-3.3-vs2.3.3.1/include/linux/if_tun.h
+--- linux-3.3/include/linux/if_tun.h   2010-08-02 16:52:54.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/if_tun.h 2012-02-24 03:55:06.000000000 +0100
 @@ -53,6 +53,7 @@
  #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
  #define TUNGETVNETHDRSZ _IOR('T', 215, int)
@@ -8316,10 +8285,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/if_tun.h linux-3.2.11-vs2.3.2.8
  
  /* TUNSETIFF ifr flags */
  #define IFF_TUN               0x0001
-diff -NurpP --minimal linux-3.2.11/include/linux/init_task.h linux-3.2.11-vs2.3.2.8/include/linux/init_task.h
---- linux-3.2.11/include/linux/init_task.h     2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/init_task.h   2011-12-15 01:11:32.000000000 +0100
-@@ -193,6 +193,10 @@ extern struct cred init_cred;
+diff -NurpP --minimal linux-3.3/include/linux/init_task.h linux-3.3-vs2.3.3.1/include/linux/init_task.h
+--- linux-3.3/include/linux/init_task.h        2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/init_task.h      2012-02-24 03:55:06.000000000 +0100
+@@ -192,6 +192,10 @@ extern struct cred init_cred;
        INIT_FTRACE_GRAPH                                               \
        INIT_TRACE_RECURSION                                            \
        INIT_TASK_RCU_PREEMPT(tsk)                                      \
@@ -8330,9 +8299,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/init_task.h linux-3.2.11-vs2.3.
  }
  
  
-diff -NurpP --minimal linux-3.2.11/include/linux/ipc.h linux-3.2.11-vs2.3.2.8/include/linux/ipc.h
---- linux-3.2.11/include/linux/ipc.h   2009-12-03 20:02:55.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/ipc.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/ipc.h linux-3.3-vs2.3.3.1/include/linux/ipc.h
+--- linux-3.3/include/linux/ipc.h      2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/ipc.h    2012-02-24 03:55:06.000000000 +0100
 @@ -91,6 +91,7 @@ struct kern_ipc_perm
        key_t           key;
        uid_t           uid;
@@ -8340,10 +8309,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/ipc.h linux-3.2.11-vs2.3.2.8/in
 +      xid_t           xid;
        uid_t           cuid;
        gid_t           cgid;
-       mode_t          mode; 
-diff -NurpP --minimal linux-3.2.11/include/linux/ipc_namespace.h linux-3.2.11-vs2.3.2.8/include/linux/ipc_namespace.h
---- linux-3.2.11/include/linux/ipc_namespace.h 2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/ipc_namespace.h       2011-12-05 19:33:02.000000000 +0100
+       umode_t         mode; 
+diff -NurpP --minimal linux-3.3/include/linux/ipc_namespace.h linux-3.3-vs2.3.3.1/include/linux/ipc_namespace.h
+--- linux-3.3/include/linux/ipc_namespace.h    2011-10-24 18:45:32.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/ipc_namespace.h  2012-02-24 03:55:06.000000000 +0100
 @@ -101,7 +101,8 @@ static inline int mq_init_ns(struct ipc_
  
  #if defined(CONFIG_IPC_NS)
@@ -8370,9 +8339,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/ipc_namespace.h linux-3.2.11-vs
  }
  
  static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-diff -NurpP --minimal linux-3.2.11/include/linux/loop.h linux-3.2.11-vs2.3.2.8/include/linux/loop.h
---- linux-3.2.11/include/linux/loop.h  2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/loop.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/loop.h linux-3.3-vs2.3.3.1/include/linux/loop.h
+--- linux-3.3/include/linux/loop.h     2012-01-09 16:14:58.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/loop.h   2012-02-24 03:55:06.000000000 +0100
 @@ -45,6 +45,7 @@ struct loop_device {
        struct loop_func_table *lo_encryption;
        __u32           lo_init[2];
@@ -8381,9 +8350,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/loop.h linux-3.2.11-vs2.3.2.8/i
        int             (*ioctl)(struct loop_device *, int cmd, 
                                 unsigned long arg); 
  
-diff -NurpP --minimal linux-3.2.11/include/linux/magic.h linux-3.2.11-vs2.3.2.8/include/linux/magic.h
---- linux-3.2.11/include/linux/magic.h 2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/magic.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/magic.h linux-3.3-vs2.3.3.1/include/linux/magic.h
+--- linux-3.3/include/linux/magic.h    2012-01-09 16:14:58.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/magic.h  2012-02-24 03:55:06.000000000 +0100
 @@ -3,7 +3,7 @@
  
  #define ADFS_SUPER_MAGIC      0xadf5
@@ -8401,9 +8370,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/magic.h linux-3.2.11-vs2.3.2.8/
  #define QNX4_SUPER_MAGIC      0x002f          /* qnx4 fs detection */
  
  #define REISERFS_SUPER_MAGIC  0x52654973      /* used by gcc */
-diff -NurpP --minimal linux-3.2.11/include/linux/major.h linux-3.2.11-vs2.3.2.8/include/linux/major.h
---- linux-3.2.11/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/major.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/major.h linux-3.3-vs2.3.3.1/include/linux/major.h
+--- linux-3.3/include/linux/major.h    2009-09-10 15:26:25.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/major.h  2012-02-24 03:55:06.000000000 +0100
 @@ -15,6 +15,7 @@
  #define HD_MAJOR              IDE0_MAJOR
  #define PTY_SLAVE_MAJOR               3
@@ -8412,12 +8381,12 @@ diff -NurpP --minimal linux-3.2.11/include/linux/major.h linux-3.2.11-vs2.3.2.8/
  #define TTYAUX_MAJOR          5
  #define LP_MAJOR              6
  #define VCS_MAJOR             7
-diff -NurpP --minimal linux-3.2.11/include/linux/memcontrol.h linux-3.2.11-vs2.3.2.8/include/linux/memcontrol.h
---- linux-3.2.11/include/linux/memcontrol.h    2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/memcontrol.h  2012-01-26 08:52:10.000000000 +0100
-@@ -85,6 +85,13 @@ extern struct mem_cgroup *try_get_mem_cg
- extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p);
- extern struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm);
+diff -NurpP --minimal linux-3.3/include/linux/memcontrol.h linux-3.3-vs2.3.3.1/include/linux/memcontrol.h
+--- linux-3.3/include/linux/memcontrol.h       2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/memcontrol.h     2012-03-19 20:52:10.000000000 +0100
+@@ -87,6 +87,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);
  
 +extern u64 mem_cgroup_res_read_u64(struct mem_cgroup *mem, int member);
 +extern u64 mem_cgroup_memsw_read_u64(struct mem_cgroup *mem, int member);
@@ -8429,10 +8398,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/memcontrol.h linux-3.2.11-vs2.3
  static inline
  int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
  {
-diff -NurpP --minimal linux-3.2.11/include/linux/mm_types.h linux-3.2.11-vs2.3.2.8/include/linux/mm_types.h
---- linux-3.2.11/include/linux/mm_types.h      2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/mm_types.h    2011-12-05 19:33:02.000000000 +0100
-@@ -344,6 +344,7 @@ struct mm_struct {
+diff -NurpP --minimal linux-3.3/include/linux/mm_types.h linux-3.3-vs2.3.3.1/include/linux/mm_types.h
+--- linux-3.3/include/linux/mm_types.h 2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/mm_types.h       2012-02-24 03:55:06.000000000 +0100
+@@ -343,6 +343,7 @@ struct mm_struct {
  
        /* Architecture-specific MM context */
        mm_context_t context;
@@ -8440,10 +8409,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/mm_types.h linux-3.2.11-vs2.3.2
  
        /* Swap token stuff */
        /*
-diff -NurpP --minimal linux-3.2.11/include/linux/mmzone.h linux-3.2.11-vs2.3.2.8/include/linux/mmzone.h
---- linux-3.2.11/include/linux/mmzone.h        2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/mmzone.h      2011-12-05 19:33:02.000000000 +0100
-@@ -673,6 +673,13 @@ typedef struct pglist_data {
+diff -NurpP --minimal linux-3.3/include/linux/mmzone.h linux-3.3-vs2.3.3.1/include/linux/mmzone.h
+--- linux-3.3/include/linux/mmzone.h   2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/mmzone.h 2012-02-24 03:55:06.000000000 +0100
+@@ -683,6 +683,13 @@ typedef struct pglist_data {
        __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
  })
  
@@ -8457,30 +8426,22 @@ diff -NurpP --minimal linux-3.2.11/include/linux/mmzone.h linux-3.2.11-vs2.3.2.8
  #include <linux/memory_hotplug.h>
  
  extern struct mutex zonelists_mutex;
-diff -NurpP --minimal linux-3.2.11/include/linux/mount.h linux-3.2.11-vs2.3.2.8/include/linux/mount.h
---- linux-3.2.11/include/linux/mount.h 2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/mount.h       2011-12-05 19:33:02.000000000 +0100
-@@ -52,6 +52,9 @@ struct mnt_pcp {
-       int mnt_writers;
- };
+diff -NurpP --minimal linux-3.3/include/linux/mount.h linux-3.3-vs2.3.3.1/include/linux/mount.h
+--- linux-3.3/include/linux/mount.h    2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/mount.h  2012-02-24 17:29:28.000000000 +0100
+@@ -47,6 +47,9 @@ struct mnt_namespace;
+ #define MNT_INTERNAL  0x4000
  
 +#define MNT_TAGID     0x10000
 +#define MNT_NOTAG     0x20000
 +
  struct vfsmount {
-       struct list_head mnt_hash;
-       struct vfsmount *mnt_parent;    /* fs we are mounted on */
-@@ -86,6 +89,7 @@ struct vfsmount {
-       int mnt_expiry_mark;            /* true if marked for expiry */
-       int mnt_pinned;
-       int mnt_ghosts;
-+      tag_t mnt_tag;                  /* tagging used for vfsmount */
- };
- struct file; /* forward dec */
-diff -NurpP --minimal linux-3.2.11/include/linux/net.h linux-3.2.11-vs2.3.2.8/include/linux/net.h
---- linux-3.2.11/include/linux/net.h   2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/net.h 2011-12-05 19:33:02.000000000 +0100
+       struct dentry *mnt_root;        /* root of the mounted tree */
+       struct super_block *mnt_sb;     /* pointer to superblock */
+diff -NurpP --minimal linux-3.3/include/linux/net.h linux-3.3-vs2.3.3.1/include/linux/net.h
+--- linux-3.3/include/linux/net.h      2011-07-22 11:18:11.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/net.h    2012-02-24 03:55:06.000000000 +0100
 @@ -72,6 +72,7 @@ struct net;
  #define SOCK_NOSPACE          2
  #define SOCK_PASSCRED         3
@@ -8489,10 +8450,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/net.h linux-3.2.11-vs2.3.2.8/in
  
  #ifndef ARCH_HAS_SOCKET_TYPES
  /**
-diff -NurpP --minimal linux-3.2.11/include/linux/netdevice.h linux-3.2.11-vs2.3.2.8/include/linux/netdevice.h
---- linux-3.2.11/include/linux/netdevice.h     2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/netdevice.h   2011-12-15 01:11:33.000000000 +0100
-@@ -1646,6 +1646,7 @@ extern void              netdev_resync_ops(struct ne
+diff -NurpP --minimal linux-3.3/include/linux/netdevice.h linux-3.3-vs2.3.3.1/include/linux/netdevice.h
+--- linux-3.3/include/linux/netdevice.h        2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/netdevice.h      2012-02-24 03:55:06.000000000 +0100
+@@ -1627,6 +1627,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);
@@ -8500,9 +8461,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/netdevice.h linux-3.2.11-vs2.3.
  extern struct net_device      *dev_get_by_index_rcu(struct net *net, int ifindex);
  extern int            dev_restart(struct net_device *dev);
  #ifdef CONFIG_NETPOLL_TRAP
-diff -NurpP --minimal linux-3.2.11/include/linux/nfs_mount.h linux-3.2.11-vs2.3.2.8/include/linux/nfs_mount.h
---- linux-3.2.11/include/linux/nfs_mount.h     2011-01-05 21:50:31.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/nfs_mount.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/nfs_mount.h linux-3.3-vs2.3.3.1/include/linux/nfs_mount.h
+--- linux-3.3/include/linux/nfs_mount.h        2011-01-05 21:50:31.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/nfs_mount.h      2012-02-24 03:55:06.000000000 +0100
 @@ -63,7 +63,8 @@ struct nfs_mount_data {
  #define NFS_MOUNT_SECFLAVOUR  0x2000  /* 5 */
  #define NFS_MOUNT_NORDIRPLUS  0x4000  /* 5 */
@@ -8513,9 +8474,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/nfs_mount.h linux-3.2.11-vs2.3.
  
  /* The following are for internal use only */
  #define NFS_MOUNT_LOOKUP_CACHE_NONEG  0x10000
-diff -NurpP --minimal linux-3.2.11/include/linux/nsproxy.h linux-3.2.11-vs2.3.2.8/include/linux/nsproxy.h
---- linux-3.2.11/include/linux/nsproxy.h       2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/nsproxy.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/nsproxy.h linux-3.3-vs2.3.3.1/include/linux/nsproxy.h
+--- linux-3.3/include/linux/nsproxy.h  2011-10-24 18:45:32.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/nsproxy.h        2012-02-24 03:55:06.000000000 +0100
 @@ -3,6 +3,7 @@
  
  #include <linux/spinlock.h>
@@ -8565,9 +8526,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/nsproxy.h linux-3.2.11-vs2.3.2.
  }
  
  #endif
-diff -NurpP --minimal linux-3.2.11/include/linux/pid.h linux-3.2.11-vs2.3.2.8/include/linux/pid.h
---- linux-3.2.11/include/linux/pid.h   2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/pid.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/pid.h linux-3.3-vs2.3.3.1/include/linux/pid.h
+--- linux-3.3/include/linux/pid.h      2011-07-22 11:18:11.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/pid.h    2012-02-24 03:55:06.000000000 +0100
 @@ -8,7 +8,8 @@ enum pid_type
        PIDTYPE_PID,
        PIDTYPE_PGID,
@@ -8586,9 +8547,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/pid.h linux-3.2.11-vs2.3.2.8/in
  pid_t pid_vnr(struct pid *pid);
  
  #define do_each_pid_task(pid, type, task)                             \
-diff -NurpP --minimal linux-3.2.11/include/linux/proc_fs.h linux-3.2.11-vs2.3.2.8/include/linux/proc_fs.h
---- linux-3.2.11/include/linux/proc_fs.h       2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/proc_fs.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/proc_fs.h linux-3.3-vs2.3.3.1/include/linux/proc_fs.h
+--- linux-3.3/include/linux/proc_fs.h  2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/proc_fs.h        2012-02-24 04:17:21.000000000 +0100
 @@ -54,6 +54,7 @@ struct proc_dir_entry {
        nlink_t nlink;
        uid_t uid;
@@ -8605,7 +8566,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/proc_fs.h linux-3.2.11-vs2.3.2.
 +struct nx_info;
 +
  union proc_op {
-       int (*proc_get_link)(struct inode *, struct path *);
+       int (*proc_get_link)(struct dentry *, struct path *);
        int (*proc_read)(struct task_struct *task, char *page);
        int (*proc_show)(struct seq_file *m,
                struct pid_namespace *ns, struct pid *pid,
@@ -8624,9 +8585,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/proc_fs.h linux-3.2.11-vs2.3.2.
        int fd;
        union proc_op op;
        struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-3.2.11/include/linux/quotaops.h linux-3.2.11-vs2.3.2.8/include/linux/quotaops.h
---- linux-3.2.11/include/linux/quotaops.h      2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/quotaops.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/quotaops.h linux-3.3-vs2.3.3.1/include/linux/quotaops.h
+--- linux-3.3/include/linux/quotaops.h 2012-01-09 16:14:58.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/quotaops.h       2012-02-24 03:55:06.000000000 +0100
 @@ -8,6 +8,7 @@
  #define _LINUX_QUOTAOPS_
  
@@ -8668,9 +8629,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/quotaops.h linux-3.2.11-vs2.3.2
  }
  
  static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-3.2.11/include/linux/reboot.h linux-3.2.11-vs2.3.2.8/include/linux/reboot.h
---- linux-3.2.11/include/linux/reboot.h        2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/reboot.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/reboot.h linux-3.3-vs2.3.3.1/include/linux/reboot.h
+--- linux-3.3/include/linux/reboot.h   2011-10-24 18:45:32.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/reboot.h 2012-02-24 03:55:06.000000000 +0100
 @@ -33,6 +33,7 @@
  #define       LINUX_REBOOT_CMD_RESTART2       0xA1B2C3D4
  #define       LINUX_REBOOT_CMD_SW_SUSPEND     0xD000FCE2
@@ -8679,9 +8640,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/reboot.h linux-3.2.11-vs2.3.2.8
  
  
  #ifdef __KERNEL__
-diff -NurpP --minimal linux-3.2.11/include/linux/reiserfs_fs.h linux-3.2.11-vs2.3.2.8/include/linux/reiserfs_fs.h
---- linux-3.2.11/include/linux/reiserfs_fs.h   2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/reiserfs_fs.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/reiserfs_fs.h linux-3.3-vs2.3.3.1/include/linux/reiserfs_fs.h
+--- linux-3.3/include/linux/reiserfs_fs.h      2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/reiserfs_fs.h    2012-02-24 03:55:06.000000000 +0100
 @@ -976,6 +976,11 @@ struct stat_data_v1 {
  #define REISERFS_COMPR_FL     FS_COMPR_FL
  #define REISERFS_NOTAIL_FL    FS_NOTAIL_FL
@@ -8704,7 +8665,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/reiserfs_fs.h linux-3.2.11-vs2.
  /* Stat Data on disk (reiserfs version of UFS disk inode minus the
     address blocks) */
  struct stat_data {
-@@ -2073,6 +2081,7 @@ static inline void reiserfs_update_sd(st
+@@ -2074,6 +2082,7 @@ static inline void reiserfs_update_sd(st
  void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode);
  void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs);
  int reiserfs_setattr(struct dentry *dentry, struct iattr *attr);
@@ -8712,10 +8673,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/reiserfs_fs.h linux-3.2.11-vs2.
  
  int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len);
  
-diff -NurpP --minimal linux-3.2.11/include/linux/reiserfs_fs_sb.h linux-3.2.11-vs2.3.2.8/include/linux/reiserfs_fs_sb.h
---- linux-3.2.11/include/linux/reiserfs_fs_sb.h        2010-02-25 11:52:07.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/reiserfs_fs_sb.h      2011-12-05 19:33:02.000000000 +0100
-@@ -476,6 +476,7 @@ enum reiserfs_mount_options {
+diff -NurpP --minimal linux-3.3/include/linux/reiserfs_fs_sb.h linux-3.3-vs2.3.3.1/include/linux/reiserfs_fs_sb.h
+--- linux-3.3/include/linux/reiserfs_fs_sb.h   2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/reiserfs_fs_sb.h 2012-02-24 03:55:06.000000000 +0100
+@@ -477,6 +477,7 @@ enum reiserfs_mount_options {
        REISERFS_EXPOSE_PRIVROOT,
        REISERFS_BARRIER_NONE,
        REISERFS_BARRIER_FLUSH,
@@ -8723,10 +8684,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/reiserfs_fs_sb.h linux-3.2.11-v
  
        /* Actions on error */
        REISERFS_ERROR_PANIC,
-diff -NurpP --minimal linux-3.2.11/include/linux/sched.h linux-3.2.11-vs2.3.2.8/include/linux/sched.h
---- linux-3.2.11/include/linux/sched.h 2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/sched.h       2011-12-05 19:33:02.000000000 +0100
-@@ -1403,6 +1403,14 @@ struct task_struct {
+diff -NurpP --minimal linux-3.3/include/linux/sched.h linux-3.3-vs2.3.3.1/include/linux/sched.h
+--- linux-3.3/include/linux/sched.h    2012-03-19 19:47:28.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/sched.h  2012-03-19 20:52:10.000000000 +0100
+@@ -1420,6 +1420,14 @@ struct task_struct {
  #endif
        seccomp_t seccomp;
  
@@ -8741,7 +8702,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sched.h linux-3.2.11-vs2.3.2.8/
  /* Thread group tracking */
        u32 parent_exec_id;
        u32 self_exec_id;
-@@ -1651,6 +1659,11 @@ struct pid_namespace;
+@@ -1669,6 +1677,11 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
                        struct pid_namespace *ns);
  
@@ -8753,7 +8714,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sched.h linux-3.2.11-vs2.3.2.8/
  static inline pid_t task_pid_nr(struct task_struct *tsk)
  {
        return tsk->pid;
-@@ -1664,7 +1677,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1682,7 +1695,8 @@ static inline pid_t task_pid_nr_ns(struc
  
  static inline pid_t task_pid_vnr(struct task_struct *tsk)
  {
@@ -8763,7 +8724,7 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sched.h linux-3.2.11-vs2.3.2.8/
  }
  
  
-@@ -1677,7 +1691,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1695,7 +1709,7 @@ pid_t task_tgid_nr_ns(struct task_struct
  
  static inline pid_t task_tgid_vnr(struct task_struct *tsk)
  {
@@ -8772,9 +8733,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sched.h linux-3.2.11-vs2.3.2.8/
  }
  
  
-diff -NurpP --minimal linux-3.2.11/include/linux/shmem_fs.h linux-3.2.11-vs2.3.2.8/include/linux/shmem_fs.h
---- linux-3.2.11/include/linux/shmem_fs.h      2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/shmem_fs.h    2012-01-26 08:52:10.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/shmem_fs.h linux-3.3-vs2.3.3.1/include/linux/shmem_fs.h
+--- linux-3.3/include/linux/shmem_fs.h 2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/shmem_fs.h       2012-02-24 03:55:06.000000000 +0100
 @@ -8,6 +8,9 @@
  
  /* inode in-kernel data */
@@ -8785,9 +8746,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/shmem_fs.h linux-3.2.11-vs2.3.2
  struct shmem_inode_info {
        spinlock_t              lock;
        unsigned long           flags;
-diff -NurpP --minimal linux-3.2.11/include/linux/stat.h linux-3.2.11-vs2.3.2.8/include/linux/stat.h
---- linux-3.2.11/include/linux/stat.h  2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/stat.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/stat.h linux-3.3-vs2.3.3.1/include/linux/stat.h
+--- linux-3.3/include/linux/stat.h     2008-12-25 00:26:37.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/stat.h   2012-02-24 03:55:06.000000000 +0100
 @@ -66,6 +66,7 @@ struct kstat {
        unsigned int    nlink;
        uid_t           uid;
@@ -8796,20 +8757,20 @@ diff -NurpP --minimal linux-3.2.11/include/linux/stat.h linux-3.2.11-vs2.3.2.8/i
        dev_t           rdev;
        loff_t          size;
        struct timespec  atime;
-diff -NurpP --minimal linux-3.2.11/include/linux/sunrpc/auth.h linux-3.2.11-vs2.3.2.8/include/linux/sunrpc/auth.h
---- linux-3.2.11/include/linux/sunrpc/auth.h   2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/sunrpc/auth.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/sunrpc/auth.h linux-3.3-vs2.3.3.1/include/linux/sunrpc/auth.h
+--- linux-3.3/include/linux/sunrpc/auth.h      2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/sunrpc/auth.h    2012-02-24 03:55:06.000000000 +0100
 @@ -25,6 +25,7 @@
  struct auth_cred {
        uid_t   uid;
        gid_t   gid;
 +      tag_t   tag;
        struct group_info *group_info;
+       const char *principal;
        unsigned char machine_cred : 1;
- };
-diff -NurpP --minimal linux-3.2.11/include/linux/sunrpc/clnt.h linux-3.2.11-vs2.3.2.8/include/linux/sunrpc/clnt.h
---- linux-3.2.11/include/linux/sunrpc/clnt.h   2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/sunrpc/clnt.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/sunrpc/clnt.h linux-3.3-vs2.3.3.1/include/linux/sunrpc/clnt.h
+--- linux-3.3/include/linux/sunrpc/clnt.h      2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/sunrpc/clnt.h    2012-02-24 03:55:06.000000000 +0100
 @@ -50,7 +50,8 @@ struct rpc_clnt {
        unsigned int            cl_softrtry : 1,/* soft timeouts */
                                cl_discrtry : 1,/* disconnect before retry */
@@ -8820,21 +8781,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sunrpc/clnt.h linux-3.2.11-vs2.
  
        struct rpc_rtt *        cl_rtt;         /* RTO estimator data */
        const struct rpc_timeout *cl_timeout;   /* Timeout strategy */
-diff -NurpP --minimal linux-3.2.11/include/linux/syscalls.h linux-3.2.11-vs2.3.2.8/include/linux/syscalls.h
---- linux-3.2.11/include/linux/syscalls.h      2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/syscalls.h    2011-12-05 19:33:02.000000000 +0100
-@@ -483,6 +483,8 @@ asmlinkage long sys_symlink(const char _
- asmlinkage long sys_unlink(const char __user *pathname);
- asmlinkage long sys_rename(const char __user *oldname,
-                               const char __user *newname);
-+asmlinkage long sys_copyfile(const char __user *from, const char __user *to,
-+                              umode_t mode);
- asmlinkage long sys_chmod(const char __user *filename, mode_t mode);
- asmlinkage long sys_fchmod(unsigned int fd, mode_t mode);
-diff -NurpP --minimal linux-3.2.11/include/linux/sysctl.h linux-3.2.11-vs2.3.2.8/include/linux/sysctl.h
---- linux-3.2.11/include/linux/sysctl.h        2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/sysctl.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/sysctl.h linux-3.3-vs2.3.3.1/include/linux/sysctl.h
+--- linux-3.3/include/linux/sysctl.h   2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/sysctl.h 2012-02-24 03:55:06.000000000 +0100
 @@ -60,6 +60,7 @@ enum
        CTL_ABI=9,              /* Binary emulation */
        CTL_CPU=10,             /* CPU stuff (speed scaling, etc) */
@@ -8851,9 +8800,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sysctl.h linux-3.2.11-vs2.3.2.8
  
        KERN_SPARC_REBOOT=21,   /* reboot command on Sparc */
        KERN_CTLALTDEL=22,      /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-3.2.11/include/linux/sysfs.h linux-3.2.11-vs2.3.2.8/include/linux/sysfs.h
---- linux-3.2.11/include/linux/sysfs.h 2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/sysfs.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/sysfs.h linux-3.3-vs2.3.3.1/include/linux/sysfs.h
+--- linux-3.3/include/linux/sysfs.h    2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/sysfs.h  2012-02-24 03:55:06.000000000 +0100
 @@ -19,6 +19,8 @@
  #include <linux/kobject_ns.h>
  #include <linux/atomic.h>
@@ -8863,9 +8812,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/sysfs.h linux-3.2.11-vs2.3.2.8/
  struct kobject;
  struct module;
  enum kobj_ns_type;
-diff -NurpP --minimal linux-3.2.11/include/linux/time.h linux-3.2.11-vs2.3.2.8/include/linux/time.h
---- linux-3.2.11/include/linux/time.h  2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/linux/time.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/time.h linux-3.3-vs2.3.3.1/include/linux/time.h
+--- linux-3.3/include/linux/time.h     2011-07-22 11:18:11.000000000 +0200
++++ linux-3.3-vs2.3.3.1/include/linux/time.h   2012-02-24 03:55:06.000000000 +0100
 @@ -256,6 +256,9 @@ static __always_inline void timespec_add
        a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns);
        a->tv_nsec = ns;
@@ -8876,10 +8825,10 @@ diff -NurpP --minimal linux-3.2.11/include/linux/time.h linux-3.2.11-vs2.3.2.8/i
  #endif /* __KERNEL__ */
  
  #define NFDBITS                       __NFDBITS
-diff -NurpP --minimal linux-3.2.11/include/linux/types.h linux-3.2.11-vs2.3.2.8/include/linux/types.h
---- linux-3.2.11/include/linux/types.h 2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/types.h       2011-12-05 19:33:02.000000000 +0100
-@@ -40,6 +40,9 @@ typedef __kernel_uid32_t     uid_t;
+diff -NurpP --minimal linux-3.3/include/linux/types.h linux-3.3-vs2.3.3.1/include/linux/types.h
+--- linux-3.3/include/linux/types.h    2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/types.h  2012-02-24 03:55:06.000000000 +0100
+@@ -41,6 +41,9 @@ typedef __kernel_uid32_t     uid_t;
  typedef __kernel_gid32_t      gid_t;
  typedef __kernel_uid16_t        uid16_t;
  typedef __kernel_gid16_t        gid16_t;
@@ -8889,9 +8838,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/types.h linux-3.2.11-vs2.3.2.8/
  
  typedef unsigned long         uintptr_t;
  
-diff -NurpP --minimal linux-3.2.11/include/linux/utsname.h linux-3.2.11-vs2.3.2.8/include/linux/utsname.h
---- linux-3.2.11/include/linux/utsname.h       2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/utsname.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/utsname.h linux-3.3-vs2.3.3.1/include/linux/utsname.h
+--- linux-3.3/include/linux/utsname.h  2012-01-09 16:14:59.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/utsname.h        2012-02-24 03:55:06.000000000 +0100
 @@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts
  }
  
@@ -8918,9 +8867,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/utsname.h linux-3.2.11-vs2.3.2.
  }
  #endif
  
-diff -NurpP --minimal linux-3.2.11/include/linux/vroot.h linux-3.2.11-vs2.3.2.8/include/linux/vroot.h
---- linux-3.2.11/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vroot.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vroot.h linux-3.3-vs2.3.3.1/include/linux/vroot.h
+--- linux-3.3/include/linux/vroot.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vroot.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,51 @@
 +
 +/*
@@ -8973,9 +8922,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vroot.h linux-3.2.11-vs2.3.2.8/
 +#define VROOT_CLR_DEV         0x5601
 +
 +#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_base.h linux-3.2.11-vs2.3.2.8/include/linux/vs_base.h
---- linux-3.2.11/include/linux/vs_base.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_base.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_base.h linux-3.3-vs2.3.3.1/include/linux/vs_base.h
+--- linux-3.3/include/linux/vs_base.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_base.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,10 @@
 +#ifndef _VS_BASE_H
 +#define _VS_BASE_H
@@ -8987,9 +8936,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_base.h linux-3.2.11-vs2.3.2.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_context.h linux-3.2.11-vs2.3.2.8/include/linux/vs_context.h
---- linux-3.2.11/include/linux/vs_context.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_context.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_context.h linux-3.3-vs2.3.3.1/include/linux/vs_context.h
+--- linux-3.3/include/linux/vs_context.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_context.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,242 @@
 +#ifndef _VS_CONTEXT_H
 +#define _VS_CONTEXT_H
@@ -9233,9 +9182,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_context.h linux-3.2.11-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_cowbl.h linux-3.2.11-vs2.3.2.8/include/linux/vs_cowbl.h
---- linux-3.2.11/include/linux/vs_cowbl.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_cowbl.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_cowbl.h linux-3.3-vs2.3.3.1/include/linux/vs_cowbl.h
+--- linux-3.3/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_cowbl.h       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,48 @@
 +#ifndef _VS_COWBL_H
 +#define _VS_COWBL_H
@@ -9285,9 +9234,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_cowbl.h linux-3.2.11-vs2.3.2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_cvirt.h linux-3.2.11-vs2.3.2.8/include/linux/vs_cvirt.h
---- linux-3.2.11/include/linux/vs_cvirt.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_cvirt.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_cvirt.h linux-3.3-vs2.3.3.1/include/linux/vs_cvirt.h
+--- linux-3.3/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_cvirt.h       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,50 @@
 +#ifndef _VS_CVIRT_H
 +#define _VS_CVIRT_H
@@ -9339,9 +9288,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_cvirt.h linux-3.2.11-vs2.3.2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_device.h linux-3.2.11-vs2.3.2.8/include/linux/vs_device.h
---- linux-3.2.11/include/linux/vs_device.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_device.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_device.h linux-3.3-vs2.3.3.1/include/linux/vs_device.h
+--- linux-3.3/include/linux/vs_device.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_device.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,45 @@
 +#ifndef _VS_DEVICE_H
 +#define _VS_DEVICE_H
@@ -9388,9 +9337,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_device.h linux-3.2.11-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_dlimit.h linux-3.2.11-vs2.3.2.8/include/linux/vs_dlimit.h
---- linux-3.2.11/include/linux/vs_dlimit.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_dlimit.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_dlimit.h linux-3.3-vs2.3.3.1/include/linux/vs_dlimit.h
+--- linux-3.3/include/linux/vs_dlimit.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_dlimit.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,215 @@
 +#ifndef _VS_DLIMIT_H
 +#define _VS_DLIMIT_H
@@ -9607,9 +9556,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_dlimit.h linux-3.2.11-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_inet.h linux-3.2.11-vs2.3.2.8/include/linux/vs_inet.h
---- linux-3.2.11/include/linux/vs_inet.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_inet.h     2012-02-15 03:03:53.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_inet.h linux-3.3-vs2.3.3.1/include/linux/vs_inet.h
+--- linux-3.3/include/linux/vs_inet.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_inet.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,353 @@
 +#ifndef _VS_INET_H
 +#define _VS_INET_H
@@ -9964,9 +9913,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_inet.h linux-3.2.11-vs2.3.2.
 +#else
 +// #warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_inet6.h linux-3.2.11-vs2.3.2.8/include/linux/vs_inet6.h
---- linux-3.2.11/include/linux/vs_inet6.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_inet6.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_inet6.h linux-3.3-vs2.3.3.1/include/linux/vs_inet6.h
+--- linux-3.3/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_inet6.h       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,246 @@
 +#ifndef _VS_INET6_H
 +#define _VS_INET6_H
@@ -10214,9 +10163,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_inet6.h linux-3.2.11-vs2.3.2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_limit.h linux-3.2.11-vs2.3.2.8/include/linux/vs_limit.h
---- linux-3.2.11/include/linux/vs_limit.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_limit.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_limit.h linux-3.3-vs2.3.3.1/include/linux/vs_limit.h
+--- linux-3.3/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_limit.h       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,140 @@
 +#ifndef _VS_LIMIT_H
 +#define _VS_LIMIT_H
@@ -10358,9 +10307,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_limit.h linux-3.2.11-vs2.3.2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_network.h linux-3.2.11-vs2.3.2.8/include/linux/vs_network.h
---- linux-3.2.11/include/linux/vs_network.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_network.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_network.h linux-3.3-vs2.3.3.1/include/linux/vs_network.h
+--- linux-3.3/include/linux/vs_network.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_network.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,169 @@
 +#ifndef _NX_VS_NETWORK_H
 +#define _NX_VS_NETWORK_H
@@ -10531,9 +10480,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_network.h linux-3.2.11-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_pid.h linux-3.2.11-vs2.3.2.8/include/linux/vs_pid.h
---- linux-3.2.11/include/linux/vs_pid.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_pid.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_pid.h linux-3.3-vs2.3.3.1/include/linux/vs_pid.h
+--- linux-3.3/include/linux/vs_pid.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_pid.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,50 @@
 +#ifndef _VS_PID_H
 +#define _VS_PID_H
@@ -10585,9 +10534,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_pid.h linux-3.2.11-vs2.3.2.8
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_sched.h linux-3.2.11-vs2.3.2.8/include/linux/vs_sched.h
---- linux-3.2.11/include/linux/vs_sched.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_sched.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_sched.h linux-3.3-vs2.3.3.1/include/linux/vs_sched.h
+--- linux-3.3/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_sched.h       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,40 @@
 +#ifndef _VS_SCHED_H
 +#define _VS_SCHED_H
@@ -10629,9 +10578,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_sched.h linux-3.2.11-vs2.3.2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_socket.h linux-3.2.11-vs2.3.2.8/include/linux/vs_socket.h
---- linux-3.2.11/include/linux/vs_socket.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_socket.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_socket.h linux-3.3-vs2.3.3.1/include/linux/vs_socket.h
+--- linux-3.3/include/linux/vs_socket.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_socket.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,67 @@
 +#ifndef _VS_SOCKET_H
 +#define _VS_SOCKET_H
@@ -10700,9 +10649,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_socket.h linux-3.2.11-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_tag.h linux-3.2.11-vs2.3.2.8/include/linux/vs_tag.h
---- linux-3.2.11/include/linux/vs_tag.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_tag.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_tag.h linux-3.3-vs2.3.3.1/include/linux/vs_tag.h
+--- linux-3.3/include/linux/vs_tag.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_tag.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,47 @@
 +#ifndef _VS_TAG_H
 +#define _VS_TAG_H
@@ -10751,9 +10700,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_tag.h linux-3.2.11-vs2.3.2.8
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vs_time.h linux-3.2.11-vs2.3.2.8/include/linux/vs_time.h
---- linux-3.2.11/include/linux/vs_time.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vs_time.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vs_time.h linux-3.3-vs2.3.3.1/include/linux/vs_time.h
+--- linux-3.3/include/linux/vs_time.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vs_time.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,19 @@
 +#ifndef _VS_TIME_H
 +#define _VS_TIME_H
@@ -10774,9 +10723,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vs_time.h linux-3.2.11-vs2.3.2.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/Kbuild linux-3.2.11-vs2.3.2.8/include/linux/vserver/Kbuild
---- linux-3.2.11/include/linux/vserver/Kbuild  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/Kbuild        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/Kbuild linux-3.3-vs2.3.3.1/include/linux/vserver/Kbuild
+--- linux-3.3/include/linux/vserver/Kbuild     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/Kbuild   2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,8 @@
 +
 +header-y += context_cmd.h network_cmd.h space_cmd.h \
@@ -10786,9 +10735,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/Kbuild linux-3.2.11-vs2
 +
 +header-y += switch.h network.h monitor.h inode.h device.h
 +
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/base.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/base.h
---- linux-3.2.11/include/linux/vserver/base.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/base.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/base.h linux-3.3-vs2.3.3.1/include/linux/vserver/base.h
+--- linux-3.3/include/linux/vserver/base.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/base.h   2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,178 @@
 +#ifndef _VX_BASE_H
 +#define _VX_BASE_H
@@ -10968,9 +10917,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/base.h linux-3.2.11-vs2
 +#define nx_info_state(n, m)   (__nx_state(n) & (m))
 +
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct.h
---- linux-3.2.11/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cacct.h linux-3.3-vs2.3.3.1/include/linux/vserver/cacct.h
+--- linux-3.3/include/linux/vserver/cacct.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cacct.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,15 @@
 +#ifndef _VX_CACCT_H
 +#define _VX_CACCT_H
@@ -10987,9 +10936,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct.h linux-3.2.11-vs
 +};
 +
 +#endif        /* _VX_CACCT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_cmd.h
---- linux-3.2.11/include/linux/vserver/cacct_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cacct_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_cmd.h
+--- linux-3.3/include/linux/vserver/cacct_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,23 @@
 +#ifndef _VX_CACCT_CMD_H
 +#define _VX_CACCT_CMD_H
@@ -11014,9 +10963,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_def.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_def.h
---- linux-3.2.11/include/linux/vserver/cacct_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_def.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cacct_def.h linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_def.h
+--- linux-3.3/include/linux/vserver/cacct_def.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_def.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,43 @@
 +#ifndef _VX_CACCT_DEF_H
 +#define _VX_CACCT_DEF_H
@@ -11061,9 +11010,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_def.h linux-3.2.1
 +#endif
 +
 +#endif        /* _VX_CACCT_DEF_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_int.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_int.h
---- linux-3.2.11/include/linux/vserver/cacct_int.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cacct_int.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cacct_int.h linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_int.h
+--- linux-3.3/include/linux/vserver/cacct_int.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cacct_int.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,21 @@
 +#ifndef _VX_CACCT_INT_H
 +#define _VX_CACCT_INT_H
@@ -11086,9 +11035,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cacct_int.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_INT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/check.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/check.h
---- linux-3.2.11/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/check.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/check.h linux-3.3-vs2.3.3.1/include/linux/vserver/check.h
+--- linux-3.3/include/linux/vserver/check.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/check.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,89 @@
 +#ifndef _VS_CHECK_H
 +#define _VS_CHECK_H
@@ -11179,9 +11128,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/check.h linux-3.2.11-vs
 +#define nx_weak_check(c, m)   ((m) ? nx_check(c, m) : 1)
 +
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/context.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/context.h
---- linux-3.2.11/include/linux/vserver/context.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/context.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/context.h linux-3.3-vs2.3.3.1/include/linux/vserver/context.h
+--- linux-3.3/include/linux/vserver/context.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/context.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,188 @@
 +#ifndef _VX_CONTEXT_H
 +#define _VX_CONTEXT_H
@@ -11371,9 +11320,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/context.h linux-3.2.11-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/context_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/context_cmd.h
---- linux-3.2.11/include/linux/vserver/context_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/context_cmd.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/context_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/context_cmd.h
+--- linux-3.3/include/linux/vserver/context_cmd.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/context_cmd.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,162 @@
 +#ifndef _VX_CONTEXT_CMD_H
 +#define _VX_CONTEXT_CMD_H
@@ -11537,9 +11486,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/context_cmd.h linux-3.2
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt.h
---- linux-3.2.11/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cvirt.h linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt.h
+--- linux-3.3/include/linux/vserver/cvirt.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,20 @@
 +#ifndef _VX_CVIRT_H
 +#define _VX_CVIRT_H
@@ -11561,9 +11510,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt.h linux-3.2.11-vs
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt_cmd.h
---- linux-3.2.11/include/linux/vserver/cvirt_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cvirt_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt_cmd.h
+--- linux-3.3/include/linux/vserver/cvirt_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CVIRT_CMD_H
 +#define _VX_CVIRT_CMD_H
@@ -11618,9 +11567,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt_def.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt_def.h
---- linux-3.2.11/include/linux/vserver/cvirt_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/cvirt_def.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/cvirt_def.h linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt_def.h
+--- linux-3.3/include/linux/vserver/cvirt_def.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/cvirt_def.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,80 @@
 +#ifndef _VX_CVIRT_DEF_H
 +#define _VX_CVIRT_DEF_H
@@ -11702,9 +11651,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/cvirt_def.h linux-3.2.1
 +#endif
 +
 +#endif        /* _VX_CVIRT_DEF_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/debug.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/debug.h
---- linux-3.2.11/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/debug.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/debug.h linux-3.3-vs2.3.3.1/include/linux/vserver/debug.h
+--- linux-3.3/include/linux/vserver/debug.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/debug.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,145 @@
 +#ifndef _VX_DEBUG_H
 +#define _VX_DEBUG_H
@@ -11851,9 +11800,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/debug.h linux-3.2.11-vs
 +
 +
 +#endif /* _VX_DEBUG_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/debug_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/debug_cmd.h
---- linux-3.2.11/include/linux/vserver/debug_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/debug_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/debug_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/debug_cmd.h
+--- linux-3.3/include/linux/vserver/debug_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/debug_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,58 @@
 +#ifndef _VX_DEBUG_CMD_H
 +#define _VX_DEBUG_CMD_H
@@ -11913,9 +11862,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/debug_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEBUG_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/device.h
---- linux-3.2.11/include/linux/vserver/device.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/device.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/device.h linux-3.3-vs2.3.3.1/include/linux/vserver/device.h
+--- linux-3.3/include/linux/vserver/device.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/device.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,15 @@
 +#ifndef _VX_DEVICE_H
 +#define _VX_DEVICE_H
@@ -11932,9 +11881,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device.h linux-3.2.11-v
 +#else /* _VX_DEVICE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DEVICE_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/device_cmd.h
---- linux-3.2.11/include/linux/vserver/device_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/device_cmd.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/device_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/device_cmd.h
+--- linux-3.3/include/linux/vserver/device_cmd.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/device_cmd.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,44 @@
 +#ifndef _VX_DEVICE_CMD_H
 +#define _VX_DEVICE_CMD_H
@@ -11980,9 +11929,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device_cmd.h linux-3.2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEVICE_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device_def.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/device_def.h
---- linux-3.2.11/include/linux/vserver/device_def.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/device_def.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/device_def.h linux-3.3-vs2.3.3.1/include/linux/vserver/device_def.h
+--- linux-3.3/include/linux/vserver/device_def.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/device_def.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,17 @@
 +#ifndef _VX_DEVICE_DEF_H
 +#define _VX_DEVICE_DEF_H
@@ -12001,9 +11950,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/device_def.h linux-3.2.
 +};
 +
 +#endif        /* _VX_DEVICE_DEF_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/dlimit.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/dlimit.h
---- linux-3.2.11/include/linux/vserver/dlimit.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/dlimit.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/dlimit.h linux-3.3-vs2.3.3.1/include/linux/vserver/dlimit.h
+--- linux-3.3/include/linux/vserver/dlimit.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/dlimit.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,54 @@
 +#ifndef _VX_DLIMIT_H
 +#define _VX_DLIMIT_H
@@ -12059,9 +12008,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/dlimit.h linux-3.2.11-v
 +#else /* _VX_DLIMIT_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DLIMIT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/dlimit_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/dlimit_cmd.h
---- linux-3.2.11/include/linux/vserver/dlimit_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/dlimit_cmd.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/dlimit_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/dlimit_cmd.h
+--- linux-3.3/include/linux/vserver/dlimit_cmd.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/dlimit_cmd.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,109 @@
 +#ifndef _VX_DLIMIT_CMD_H
 +#define _VX_DLIMIT_CMD_H
@@ -12172,9 +12121,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/dlimit_cmd.h linux-3.2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/global.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/global.h
---- linux-3.2.11/include/linux/vserver/global.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/global.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/global.h linux-3.3-vs2.3.3.1/include/linux/vserver/global.h
+--- linux-3.3/include/linux/vserver/global.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/global.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,19 @@
 +#ifndef _VX_GLOBAL_H
 +#define _VX_GLOBAL_H
@@ -12195,9 +12144,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/global.h linux-3.2.11-v
 +
 +
 +#endif /* _VX_GLOBAL_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/history.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/history.h
---- linux-3.2.11/include/linux/vserver/history.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/history.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/history.h linux-3.3-vs2.3.3.1/include/linux/vserver/history.h
+--- linux-3.3/include/linux/vserver/history.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/history.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,197 @@
 +#ifndef _VX_HISTORY_H
 +#define _VX_HISTORY_H
@@ -12396,9 +12345,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/history.h linux-3.2.11-
 +#endif /* CONFIG_VSERVER_HISTORY */
 +
 +#endif /* _VX_HISTORY_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/inode.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/inode.h
---- linux-3.2.11/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/inode.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/inode.h linux-3.3-vs2.3.3.1/include/linux/vserver/inode.h
+--- linux-3.3/include/linux/vserver/inode.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/inode.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,39 @@
 +#ifndef _VX_INODE_H
 +#define _VX_INODE_H
@@ -12439,9 +12388,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/inode.h linux-3.2.11-vs
 +#else /* _VX_INODE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_INODE_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/inode_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/inode_cmd.h
---- linux-3.2.11/include/linux/vserver/inode_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/inode_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/inode_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/inode_cmd.h
+--- linux-3.3/include/linux/vserver/inode_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/inode_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,59 @@
 +#ifndef _VX_INODE_CMD_H
 +#define _VX_INODE_CMD_H
@@ -12502,9 +12451,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/inode_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_INODE_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit.h
---- linux-3.2.11/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/limit.h linux-3.3-vs2.3.3.1/include/linux/vserver/limit.h
+--- linux-3.3/include/linux/vserver/limit.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/limit.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,71 @@
 +#ifndef _VX_LIMIT_H
 +#define _VX_LIMIT_H
@@ -12577,9 +12526,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit.h linux-3.2.11-vs
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_cmd.h
---- linux-3.2.11/include/linux/vserver/limit_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/limit_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/limit_cmd.h
+--- linux-3.3/include/linux/vserver/limit_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/limit_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,71 @@
 +#ifndef _VX_LIMIT_CMD_H
 +#define _VX_LIMIT_CMD_H
@@ -12652,9 +12601,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_def.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_def.h
---- linux-3.2.11/include/linux/vserver/limit_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_def.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/limit_def.h linux-3.3-vs2.3.3.1/include/linux/vserver/limit_def.h
+--- linux-3.3/include/linux/vserver/limit_def.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/limit_def.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,47 @@
 +#ifndef _VX_LIMIT_DEF_H
 +#define _VX_LIMIT_DEF_H
@@ -12703,9 +12652,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_def.h linux-3.2.1
 +#endif
 +
 +#endif        /* _VX_LIMIT_DEF_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_int.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_int.h
---- linux-3.2.11/include/linux/vserver/limit_int.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/limit_int.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/limit_int.h linux-3.3-vs2.3.3.1/include/linux/vserver/limit_int.h
+--- linux-3.3/include/linux/vserver/limit_int.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/limit_int.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,198 @@
 +#ifndef _VX_LIMIT_INT_H
 +#define _VX_LIMIT_INT_H
@@ -12905,9 +12854,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/limit_int.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_INT_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/monitor.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/monitor.h
---- linux-3.2.11/include/linux/vserver/monitor.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/monitor.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/monitor.h linux-3.3-vs2.3.3.1/include/linux/vserver/monitor.h
+--- linux-3.3/include/linux/vserver/monitor.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/monitor.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,96 @@
 +#ifndef _VX_MONITOR_H
 +#define _VX_MONITOR_H
@@ -13005,9 +12954,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/monitor.h linux-3.2.11-
 +
 +
 +#endif /* _VX_MONITOR_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/network.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/network.h
---- linux-3.2.11/include/linux/vserver/network.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/network.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/network.h linux-3.3-vs2.3.3.1/include/linux/vserver/network.h
+--- linux-3.3/include/linux/vserver/network.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/network.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,148 @@
 +#ifndef _VX_NETWORK_H
 +#define _VX_NETWORK_H
@@ -13157,9 +13106,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/network.h linux-3.2.11-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_NETWORK_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/network_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/network_cmd.h
---- linux-3.2.11/include/linux/vserver/network_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/network_cmd.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/network_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/network_cmd.h
+--- linux-3.3/include/linux/vserver/network_cmd.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/network_cmd.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,164 @@
 +#ifndef _VX_NETWORK_CMD_H
 +#define _VX_NETWORK_CMD_H
@@ -13325,9 +13274,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/network_cmd.h linux-3.2
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/percpu.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/percpu.h
---- linux-3.2.11/include/linux/vserver/percpu.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/percpu.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/percpu.h linux-3.3-vs2.3.3.1/include/linux/vserver/percpu.h
+--- linux-3.3/include/linux/vserver/percpu.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/percpu.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,14 @@
 +#ifndef _VX_PERCPU_H
 +#define _VX_PERCPU_H
@@ -13343,9 +13292,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/percpu.h linux-3.2.11-v
 +#define       PERCPU_PERCTX   (sizeof(struct _vx_percpu))
 +
 +#endif        /* _VX_PERCPU_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/pid.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/pid.h
---- linux-3.2.11/include/linux/vserver/pid.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/pid.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/pid.h linux-3.3-vs2.3.3.1/include/linux/vserver/pid.h
+--- linux-3.3/include/linux/vserver/pid.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/pid.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,51 @@
 +#ifndef _VSERVER_PID_H
 +#define _VSERVER_PID_H
@@ -13398,9 +13347,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/pid.h linux-3.2.11-vs2.
 +}
 +
 +#endif
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched.h
---- linux-3.2.11/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/sched.h linux-3.3-vs2.3.3.1/include/linux/vserver/sched.h
+--- linux-3.3/include/linux/vserver/sched.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/sched.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,23 @@
 +#ifndef _VX_SCHED_H
 +#define _VX_SCHED_H
@@ -13425,9 +13374,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched.h linux-3.2.11-vs
 +#else /* _VX_SCHED_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SCHED_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched_cmd.h
---- linux-3.2.11/include/linux/vserver/sched_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/sched_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/sched_cmd.h
+--- linux-3.3/include/linux/vserver/sched_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/sched_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,21 @@
 +#ifndef _VX_SCHED_CMD_H
 +#define _VX_SCHED_CMD_H
@@ -13450,9 +13399,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SCHED_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched_def.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched_def.h
---- linux-3.2.11/include/linux/vserver/sched_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/sched_def.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/sched_def.h linux-3.3-vs2.3.3.1/include/linux/vserver/sched_def.h
+--- linux-3.3/include/linux/vserver/sched_def.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/sched_def.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,38 @@
 +#ifndef _VX_SCHED_DEF_H
 +#define _VX_SCHED_DEF_H
@@ -13492,9 +13441,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/sched_def.h linux-3.2.1
 +#endif
 +
 +#endif        /* _VX_SCHED_DEF_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/signal.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/signal.h
---- linux-3.2.11/include/linux/vserver/signal.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/signal.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/signal.h linux-3.3-vs2.3.3.1/include/linux/vserver/signal.h
+--- linux-3.3/include/linux/vserver/signal.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/signal.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,14 @@
 +#ifndef _VX_SIGNAL_H
 +#define _VX_SIGNAL_H
@@ -13510,9 +13459,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/signal.h linux-3.2.11-v
 +#else /* _VX_SIGNAL_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SIGNAL_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/signal_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/signal_cmd.h
---- linux-3.2.11/include/linux/vserver/signal_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/signal_cmd.h  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/signal_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/signal_cmd.h
+--- linux-3.3/include/linux/vserver/signal_cmd.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/signal_cmd.h     2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,43 @@
 +#ifndef _VX_SIGNAL_CMD_H
 +#define _VX_SIGNAL_CMD_H
@@ -13557,9 +13506,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/signal_cmd.h linux-3.2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/space.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/space.h
---- linux-3.2.11/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/space.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/space.h linux-3.3-vs2.3.3.1/include/linux/vserver/space.h
+--- linux-3.3/include/linux/vserver/space.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/space.h  2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,12 @@
 +#ifndef _VX_SPACE_H
 +#define _VX_SPACE_H
@@ -13573,9 +13522,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/space.h linux-3.2.11-vs
 +#else /* _VX_SPACE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SPACE_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/space_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/space_cmd.h
---- linux-3.2.11/include/linux/vserver/space_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/space_cmd.h   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/space_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/space_cmd.h
+--- linux-3.3/include/linux/vserver/space_cmd.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/space_cmd.h      2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,38 @@
 +#ifndef _VX_SPACE_CMD_H
 +#define _VX_SPACE_CMD_H
@@ -13615,9 +13564,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/space_cmd.h linux-3.2.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SPACE_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/switch.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/switch.h
---- linux-3.2.11/include/linux/vserver/switch.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/switch.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/switch.h linux-3.3-vs2.3.3.1/include/linux/vserver/switch.h
+--- linux-3.3/include/linux/vserver/switch.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/switch.h 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,98 @@
 +#ifndef _VX_SWITCH_H
 +#define _VX_SWITCH_H
@@ -13717,9 +13666,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/switch.h linux-3.2.11-v
 +
 +#endif        /* _VX_SWITCH_H */
 +
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/tag.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/tag.h
---- linux-3.2.11/include/linux/vserver/tag.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/tag.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/tag.h linux-3.3-vs2.3.3.1/include/linux/vserver/tag.h
+--- linux-3.3/include/linux/vserver/tag.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/tag.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,143 @@
 +#ifndef _DX_TAG_H
 +#define _DX_TAG_H
@@ -13864,9 +13813,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/tag.h linux-3.2.11-vs2.
 +#endif
 +
 +#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-3.2.11/include/linux/vserver/tag_cmd.h linux-3.2.11-vs2.3.2.8/include/linux/vserver/tag_cmd.h
---- linux-3.2.11/include/linux/vserver/tag_cmd.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/linux/vserver/tag_cmd.h     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/linux/vserver/tag_cmd.h linux-3.3-vs2.3.3.1/include/linux/vserver/tag_cmd.h
+--- linux-3.3/include/linux/vserver/tag_cmd.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/linux/vserver/tag_cmd.h        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,22 @@
 +#ifndef _VX_TAG_CMD_H
 +#define _VX_TAG_CMD_H
@@ -13890,9 +13839,9 @@ diff -NurpP --minimal linux-3.2.11/include/linux/vserver/tag_cmd.h linux-3.2.11-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_TAG_CMD_H */
-diff -NurpP --minimal linux-3.2.11/include/net/addrconf.h linux-3.2.11-vs2.3.2.8/include/net/addrconf.h
---- linux-3.2.11/include/net/addrconf.h        2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/net/addrconf.h      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/net/addrconf.h linux-3.3-vs2.3.3.1/include/net/addrconf.h
+--- linux-3.3/include/net/addrconf.h   2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/addrconf.h 2012-02-24 03:55:06.000000000 +0100
 @@ -80,7 +80,8 @@ extern int                   ipv6_dev_get_saddr(struct n
                                               struct net_device *dev,
                                               const struct in6_addr *daddr,
@@ -13903,9 +13852,9 @@ diff -NurpP --minimal linux-3.2.11/include/net/addrconf.h linux-3.2.11-vs2.3.2.8
  extern int                    ipv6_get_lladdr(struct net_device *dev,
                                                struct in6_addr *addr,
                                                unsigned char banned_flags);
-diff -NurpP --minimal linux-3.2.11/include/net/af_unix.h linux-3.2.11-vs2.3.2.8/include/net/af_unix.h
---- linux-3.2.11/include/net/af_unix.h 2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/net/af_unix.h       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/net/af_unix.h linux-3.3-vs2.3.3.1/include/net/af_unix.h
+--- linux-3.3/include/net/af_unix.h    2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/af_unix.h  2012-02-24 03:55:06.000000000 +0100
 @@ -4,6 +4,7 @@
  #include <linux/socket.h>
  #include <linux/un.h>
@@ -13914,9 +13863,9 @@ diff -NurpP --minimal linux-3.2.11/include/net/af_unix.h linux-3.2.11-vs2.3.2.8/
  #include <net/sock.h>
  
  extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-3.2.11/include/net/inet_timewait_sock.h linux-3.2.11-vs2.3.2.8/include/net/inet_timewait_sock.h
---- linux-3.2.11/include/net/inet_timewait_sock.h      2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/net/inet_timewait_sock.h    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/net/inet_timewait_sock.h linux-3.3-vs2.3.3.1/include/net/inet_timewait_sock.h
+--- linux-3.3/include/net/inet_timewait_sock.h 2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/inet_timewait_sock.h       2012-02-24 03:55:06.000000000 +0100
 @@ -112,6 +112,10 @@ struct inet_timewait_sock {
  #define tw_net                        __tw_common.skc_net
  #define tw_daddr              __tw_common.skc_daddr
@@ -13928,10 +13877,10 @@ diff -NurpP --minimal linux-3.2.11/include/net/inet_timewait_sock.h linux-3.2.11
        int                     tw_timeout;
        volatile unsigned char  tw_substate;
        unsigned char           tw_rcv_wscale;
-diff -NurpP --minimal linux-3.2.11/include/net/ip6_route.h linux-3.2.11-vs2.3.2.8/include/net/ip6_route.h
---- linux-3.2.11/include/net/ip6_route.h       2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/include/net/ip6_route.h     2011-12-05 19:33:02.000000000 +0100
-@@ -86,7 +86,8 @@ extern int                   ip6_route_get_saddr(struct 
+diff -NurpP --minimal linux-3.3/include/net/ip6_route.h linux-3.3-vs2.3.3.1/include/net/ip6_route.h
+--- linux-3.3/include/net/ip6_route.h  2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/ip6_route.h        2012-02-24 03:55:06.000000000 +0100
+@@ -88,7 +88,8 @@ extern int                   ip6_route_get_saddr(struct 
                                                    struct rt6_info *rt,
                                                    const struct in6_addr *daddr,
                                                    unsigned int prefs,
@@ -13941,9 +13890,9 @@ diff -NurpP --minimal linux-3.2.11/include/net/ip6_route.h linux-3.2.11-vs2.3.2.
  
  extern struct rt6_info                *rt6_lookup(struct net *net,
                                            const struct in6_addr *daddr,
-diff -NurpP --minimal linux-3.2.11/include/net/route.h linux-3.2.11-vs2.3.2.8/include/net/route.h
---- linux-3.2.11/include/net/route.h   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/net/route.h 2012-03-01 21:39:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/include/net/route.h linux-3.3-vs2.3.3.1/include/net/route.h
+--- linux-3.3/include/net/route.h      2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/route.h    2012-02-24 03:55:06.000000000 +0100
 @@ -202,6 +202,9 @@ static inline void ip_rt_put(struct rtab
                dst_release(&rt->dst);
  }
@@ -13991,10 +13940,10 @@ diff -NurpP --minimal linux-3.2.11/include/net/route.h linux-3.2.11-vs2.3.2.8/in
                rt = __ip_route_output_key(net, fl4);
                if (IS_ERR(rt))
                        return rt;
-diff -NurpP --minimal linux-3.2.11/include/net/sock.h linux-3.2.11-vs2.3.2.8/include/net/sock.h
---- linux-3.2.11/include/net/sock.h    2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/include/net/sock.h  2012-01-09 16:19:31.000000000 +0100
-@@ -149,6 +149,10 @@ struct sock_common {
+diff -NurpP --minimal linux-3.3/include/net/sock.h linux-3.3-vs2.3.3.1/include/net/sock.h
+--- linux-3.3/include/net/sock.h       2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/include/net/sock.h     2012-02-24 03:55:06.000000000 +0100
+@@ -168,6 +168,10 @@ struct sock_common {
  #ifdef CONFIG_NET_NS
        struct net              *skc_net;
  #endif
@@ -14005,7 +13954,7 @@ diff -NurpP --minimal linux-3.2.11/include/net/sock.h linux-3.2.11-vs2.3.2.8/inc
        /*
         * fields between dontcopy_begin/dontcopy_end
         * are not copied in sock_copy()
-@@ -256,6 +260,10 @@ struct sock {
+@@ -278,6 +282,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
@@ -14016,10 +13965,10 @@ diff -NurpP --minimal linux-3.2.11/include/net/sock.h linux-3.2.11-vs2.3.2.8/inc
        socket_lock_t           sk_lock;
        struct sk_buff_head     sk_receive_queue;
        /*
-diff -NurpP --minimal linux-3.2.11/init/Kconfig linux-3.2.11-vs2.3.2.8/init/Kconfig
---- linux-3.2.11/init/Kconfig  2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/init/Kconfig        2011-12-05 19:33:02.000000000 +0100
-@@ -574,6 +574,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
+diff -NurpP --minimal linux-3.3/init/Kconfig linux-3.3-vs2.3.3.1/init/Kconfig
+--- linux-3.3/init/Kconfig     2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/init/Kconfig   2012-02-24 03:55:06.000000000 +0100
+@@ -588,6 +588,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
  menuconfig CGROUPS
        boolean "Control Group support"
        depends on EVENTFD
@@ -14027,7 +13976,7 @@ diff -NurpP --minimal linux-3.2.11/init/Kconfig linux-3.2.11-vs2.3.2.8/init/Kcon
        help
          This option adds support for grouping sets of processes together, for
          use with process control subsystems such as Cpusets, CFS, memory
-@@ -802,6 +803,7 @@ config IPC_NS
+@@ -837,6 +838,7 @@ config IPC_NS
  config USER_NS
        bool "User namespace (EXPERIMENTAL)"
        depends on EXPERIMENTAL
@@ -14035,9 +13984,9 @@ diff -NurpP --minimal linux-3.2.11/init/Kconfig linux-3.2.11-vs2.3.2.8/init/Kcon
        default y
        help
          This allows containers, i.e. vservers, to use user namespaces
-diff -NurpP --minimal linux-3.2.11/init/main.c linux-3.2.11-vs2.3.2.8/init/main.c
---- linux-3.2.11/init/main.c   2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/init/main.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/init/main.c linux-3.3-vs2.3.3.1/init/main.c
+--- linux-3.3/init/main.c      2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/init/main.c    2012-02-24 03:55:06.000000000 +0100
 @@ -68,6 +68,7 @@
  #include <linux/shmem_fs.h>
  #include <linux/slab.h>
@@ -14046,19 +13995,19 @@ diff -NurpP --minimal linux-3.2.11/init/main.c linux-3.2.11-vs2.3.2.8/init/main.
  
  #include <asm/io.h>
  #include <asm/bugs.h>
-diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueue.c
---- linux-3.2.11/ipc/mqueue.c  2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/ipc/mqueue.c        2012-01-09 16:19:31.000000000 +0100
-@@ -33,6 +33,8 @@
- #include <linux/pid.h>
+diff -NurpP --minimal linux-3.3/ipc/mqueue.c linux-3.3-vs2.3.3.1/ipc/mqueue.c
+--- linux-3.3/ipc/mqueue.c     2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/ipc/mqueue.c   2012-02-24 04:07:13.000000000 +0100
+@@ -34,6 +34,8 @@
  #include <linux/ipc_namespace.h>
+ #include <linux/user_namespace.h>
  #include <linux/slab.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_limit.h>
  
  #include <net/sock.h>
  #include "util.h"
-@@ -66,6 +68,7 @@ struct mqueue_inode_info {
+@@ -67,6 +69,7 @@ struct mqueue_inode_info {
        struct sigevent notify;
        struct pid* notify_owner;
        struct user_struct *user;       /* user who created, for accounting */
@@ -14066,14 +14015,14 @@ diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueu
        struct sock *notify_sock;
        struct sk_buff *notify_cookie;
  
-@@ -128,6 +131,7 @@ static struct inode *mqueue_get_inode(st
+@@ -129,6 +132,7 @@ static struct inode *mqueue_get_inode(st
        if (S_ISREG(mode)) {
                struct mqueue_inode_info *info;
-               struct task_struct *p = current;
-+              struct vx_info *vxi = p->vx_info;
                unsigned long mq_bytes, mq_msg_tblsz;
++              struct vx_info *vxi = current_vx_info();
  
                inode->i_fop = &mqueue_file_operations;
+               inode->i_size = FILENT_SIZE;
 @@ -141,6 +145,7 @@ static struct inode *mqueue_get_inode(st
                info->notify_owner = NULL;
                info->qsize = 0;
@@ -14086,8 +14035,8 @@ diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueu
  
                spin_lock(&mq_lock);
                if (u->mq_bytes + mq_bytes < u->mq_bytes ||
--                  u->mq_bytes + mq_bytes > task_rlimit(p, RLIMIT_MSGQUEUE)) {
-+                  u->mq_bytes + mq_bytes > task_rlimit(p, RLIMIT_MSGQUEUE) ||
+-                  u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
++                  u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE) ||
 +                  !vx_ipcmsg_avail(vxi, mq_bytes)) {
                        spin_unlock(&mq_lock);
                        /* mqueue_evict_inode() releases info->messages */
@@ -14104,7 +14053,7 @@ diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueu
        } else if (S_ISDIR(mode)) {
                inc_nlink(inode);
                /* Some things misbehave if size == 0 on a directory */
-@@ -278,8 +286,11 @@ static void mqueue_evict_inode(struct in
+@@ -277,8 +285,11 @@ static void mqueue_evict_inode(struct in
            + info->attr.mq_msgsize);
        user = info->user;
        if (user) {
@@ -14116,7 +14065,7 @@ diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueu
                /*
                 * get_ns_from_inode() ensures that the
                 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -289,6 +300,7 @@ static void mqueue_evict_inode(struct in
+@@ -288,6 +299,7 @@ static void mqueue_evict_inode(struct in
                if (ipc_ns)
                        ipc_ns->mq_queues_count--;
                spin_unlock(&mq_lock);
@@ -14124,9 +14073,9 @@ diff -NurpP --minimal linux-3.2.11/ipc/mqueue.c linux-3.2.11-vs2.3.2.8/ipc/mqueu
                free_uid(user);
        }
        if (ipc_ns)
-diff -NurpP --minimal linux-3.2.11/ipc/msg.c linux-3.2.11-vs2.3.2.8/ipc/msg.c
---- linux-3.2.11/ipc/msg.c     2011-05-22 16:17:59.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/ipc/msg.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/ipc/msg.c linux-3.3-vs2.3.3.1/ipc/msg.c
+--- linux-3.3/ipc/msg.c        2011-05-22 16:17:59.000000000 +0200
++++ linux-3.3-vs2.3.3.1/ipc/msg.c      2012-02-24 03:55:06.000000000 +0100
 @@ -37,6 +37,7 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -14143,9 +14092,9 @@ diff -NurpP --minimal linux-3.2.11/ipc/msg.c linux-3.2.11-vs2.3.2.8/ipc/msg.c
  
        msq->q_perm.security = NULL;
        retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-3.2.11/ipc/namespace.c linux-3.2.11-vs2.3.2.8/ipc/namespace.c
---- linux-3.2.11/ipc/namespace.c       2011-07-22 11:18:12.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/ipc/namespace.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/ipc/namespace.c linux-3.3-vs2.3.3.1/ipc/namespace.c
+--- linux-3.3/ipc/namespace.c  2011-07-22 11:18:12.000000000 +0200
++++ linux-3.3-vs2.3.3.1/ipc/namespace.c        2012-02-24 03:55:06.000000000 +0100
 @@ -13,11 +13,12 @@
  #include <linux/mount.h>
  #include <linux/user_namespace.h>
@@ -14186,9 +14135,9 @@ diff -NurpP --minimal linux-3.2.11/ipc/namespace.c linux-3.2.11-vs2.3.2.8/ipc/na
  }
  
  /*
-diff -NurpP --minimal linux-3.2.11/ipc/sem.c linux-3.2.11-vs2.3.2.8/ipc/sem.c
---- linux-3.2.11/ipc/sem.c     2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/ipc/sem.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/ipc/sem.c linux-3.3-vs2.3.3.1/ipc/sem.c
+--- linux-3.3/ipc/sem.c        2012-01-09 16:14:59.000000000 +0100
++++ linux-3.3-vs2.3.3.1/ipc/sem.c      2012-02-24 03:55:06.000000000 +0100
 @@ -86,6 +86,8 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -14226,9 +14175,9 @@ diff -NurpP --minimal linux-3.2.11/ipc/sem.c linux-3.2.11-vs2.3.2.8/ipc/sem.c
        security_sem_free(sma);
        ipc_rcu_putref(sma);
  }
-diff -NurpP --minimal linux-3.2.11/ipc/shm.c linux-3.2.11-vs2.3.2.8/ipc/shm.c
---- linux-3.2.11/ipc/shm.c     2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/ipc/shm.c   2012-01-26 08:52:10.000000000 +0100
+diff -NurpP --minimal linux-3.3/ipc/shm.c linux-3.3-vs2.3.3.1/ipc/shm.c
+--- linux-3.3/ipc/shm.c        2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/ipc/shm.c      2012-02-24 03:55:06.000000000 +0100
 @@ -39,6 +39,8 @@
  #include <linux/nsproxy.h>
  #include <linux/mount.h>
@@ -14284,20 +14233,32 @@ diff -NurpP --minimal linux-3.2.11/ipc/shm.c linux-3.2.11-vs2.3.2.8/ipc/shm.c
        return error;
  
  no_id:
-diff -NurpP --minimal linux-3.2.11/kernel/Makefile linux-3.2.11-vs2.3.2.8/kernel/Makefile
---- linux-3.2.11/kernel/Makefile       2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/Makefile     2011-12-05 19:33:02.000000000 +0100
-@@ -24,6 +24,7 @@ CFLAGS_REMOVE_sched_clock.o = -pg
- CFLAGS_REMOVE_irq_work.o = -pg
- endif
+diff -NurpP --minimal linux-3.3/kernel/Makefile linux-3.3-vs2.3.3.1/kernel/Makefile
+--- linux-3.3/kernel/Makefile  2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/Makefile        2012-02-24 03:55:06.000000000 +0100
+@@ -25,6 +25,7 @@ endif
+ obj-y += sched/
+ obj-y += power/
  
 +obj-y += vserver/
  obj-$(CONFIG_FREEZER) += freezer.o
  obj-$(CONFIG_PROFILING) += profile.o
  obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o
-diff -NurpP --minimal linux-3.2.11/kernel/capability.c linux-3.2.11-vs2.3.2.8/kernel/capability.c
---- linux-3.2.11/kernel/capability.c   2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/capability.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/auditsc.c linux-3.3-vs2.3.3.1/kernel/auditsc.c
+--- linux-3.3/kernel/auditsc.c 2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/auditsc.c       2012-02-24 16:47:49.000000000 +0100
+@@ -2308,7 +2308,7 @@ int audit_set_loginuid(uid_t loginuid)
+       if (task->loginuid != -1)
+               return -EPERM;
+ #else /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
+-      if (!capable(CAP_AUDIT_CONTROL))
++      if (!vx_capable(CAP_AUDIT_CONTROL, VXC_AUDIT_CONTROL))
+               return -EPERM;
+ #endif  /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
+diff -NurpP --minimal linux-3.3/kernel/capability.c linux-3.3-vs2.3.3.1/kernel/capability.c
+--- linux-3.3/kernel/capability.c      2012-03-19 19:47:29.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/capability.c    2012-02-24 03:55:06.000000000 +0100
 @@ -15,6 +15,7 @@
  #include <linux/syscalls.h>
  #include <linux/pid_namespace.h>
@@ -14314,18 +14275,18 @@ diff -NurpP --minimal linux-3.2.11/kernel/capability.c linux-3.2.11-vs2.3.2.8/ke
  /*
   * The only thing that can change the capabilities of the current
   * process is the current process. As such, we can't be in this code
-@@ -340,6 +342,8 @@ bool has_capability_noaudit(struct task_
+@@ -349,6 +351,8 @@ bool has_ns_capability_noaudit(struct ta
        return (ret == 0);
  }
  
 +#include <linux/vserver/base.h>
 +
  /**
-  * capable - Determine if the current task has a superior capability in effect
-  * @cap: The capability to be tested for
-diff -NurpP --minimal linux-3.2.11/kernel/compat.c linux-3.2.11-vs2.3.2.8/kernel/compat.c
---- linux-3.2.11/kernel/compat.c       2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/compat.c     2011-12-05 19:33:02.000000000 +0100
+  * has_capability_noaudit - Does a task have a capability (unaudited) in the
+  * initial user ns
+diff -NurpP --minimal linux-3.3/kernel/compat.c linux-3.3-vs2.3.3.1/kernel/compat.c
+--- linux-3.3/kernel/compat.c  2012-01-09 16:14:59.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/compat.c        2012-02-24 03:55:06.000000000 +0100
 @@ -973,7 +973,7 @@ asmlinkage long compat_sys_stime(compat_
        if (err)
                return err;
@@ -14335,9 +14296,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/compat.c linux-3.2.11-vs2.3.2.8/kernel
        return 0;
  }
  
-diff -NurpP --minimal linux-3.2.11/kernel/cred.c linux-3.2.11-vs2.3.2.8/kernel/cred.c
---- linux-3.2.11/kernel/cred.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/cred.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/cred.c linux-3.3-vs2.3.3.1/kernel/cred.c
+--- linux-3.3/kernel/cred.c    2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/cred.c  2012-02-24 03:55:06.000000000 +0100
 @@ -61,31 +61,6 @@ struct cred init_cred = {
  #endif
  };
@@ -14407,9 +14368,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/cred.c linux-3.2.11-vs2.3.2.8/kernel/c
  EXPORT_SYMBOL(prepare_creds);
  
  /*
-diff -NurpP --minimal linux-3.2.11/kernel/exit.c linux-3.2.11-vs2.3.2.8/kernel/exit.c
---- linux-3.2.11/kernel/exit.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/exit.c       2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/exit.c linux-3.3-vs2.3.3.1/kernel/exit.c
+--- linux-3.3/kernel/exit.c    2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/exit.c  2012-02-24 04:09:40.000000000 +0100
 @@ -48,6 +48,10 @@
  #include <linux/fs_struct.h>
  #include <linux/init_task.h>
@@ -14421,7 +14382,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/exit.c linux-3.2.11-vs2.3.2.8/kernel/e
  #include <trace/events/sched.h>
  #include <linux/hw_breakpoint.h>
  #include <linux/oom.h>
-@@ -480,9 +484,11 @@ static void close_files(struct files_str
+@@ -481,9 +485,11 @@ static void close_files(struct files_str
                                        filp_close(file, files);
                                        cond_resched();
                                }
@@ -14433,26 +14394,25 @@ diff -NurpP --minimal linux-3.2.11/kernel/exit.c linux-3.2.11-vs2.3.2.8/kernel/e
                }
        }
  }
-@@ -1036,11 +1042,16 @@ NORET_TYPE void do_exit(long code)
-       validate_creds_for_do_exit(tsk);
+@@ -1054,10 +1060,15 @@ void do_exit(long code)
+       smp_mb();
+       raw_spin_unlock_wait(&tsk->pi_lock);
  
 +      /* needs to stay after exit_notify() */
 +      exit_vx_info(tsk, code);
 +      exit_nx_info(tsk);
 +
-       preempt_disable();
-       exit_rcu();
        /* causes final put_task_struct in finish_task_switch(). */
        tsk->state = TASK_DEAD;
+       tsk->flags |= PF_NOFREEZE;      /* tell freezer to ignore us */
        schedule();
 +      printk("bad task: %p [%lx]\n", current, current->state);
        BUG();
        /* Avoid "noreturn function does return".  */
        for (;;)
-diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/fork.c
---- linux-3.2.11/kernel/fork.c 2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/fork.c       2012-03-01 21:40:03.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/fork.c linux-3.3-vs2.3.3.1/kernel/fork.c
+--- linux-3.3/kernel/fork.c    2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/fork.c  2012-03-19 20:52:37.000000000 +0100
 @@ -67,6 +67,9 @@
  #include <linux/oom.h>
  #include <linux/khugepaged.h>
@@ -14463,7 +14423,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
  
  #include <asm/pgtable.h>
  #include <asm/pgalloc.h>
-@@ -166,6 +169,8 @@ void free_task(struct task_struct *tsk)
+@@ -169,6 +172,8 @@ void free_task(struct task_struct *tsk)
        account_kernel_stack(tsk->stack, -1);
        free_thread_info(tsk->stack);
        rt_mutex_debug_task_free(tsk);
@@ -14472,7 +14432,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        ftrace_graph_exit_task(tsk);
        free_task_struct(tsk);
  }
-@@ -501,6 +506,7 @@ static struct mm_struct *mm_init(struct 
+@@ -504,6 +509,7 @@ static struct mm_struct *mm_init(struct 
        if (likely(!mm_alloc_pgd(mm))) {
                mm->def_flags = 0;
                mmu_notifier_mm_init(mm);
@@ -14480,7 +14440,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
                return mm;
        }
  
-@@ -538,6 +544,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -541,6 +547,7 @@ void __mmdrop(struct mm_struct *mm)
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
        VM_BUG_ON(mm->pmd_huge_pte);
  #endif
@@ -14488,7 +14448,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        free_mm(mm);
  }
  EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -725,6 +732,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -776,6 +783,7 @@ struct mm_struct *dup_mm(struct task_str
                goto fail_nomem;
  
        memcpy(mm, oldmm, sizeof(*mm));
@@ -14496,7 +14456,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        mm_init_cpumask(mm);
  
        /* Initializing for Swap token stuff */
-@@ -768,6 +776,7 @@ fail_nocontext:
+@@ -819,6 +827,7 @@ fail_nocontext:
         * If init_new_context() failed, we cannot use mmput() to free the mm
         * because it calls destroy_context()
         */
@@ -14504,7 +14464,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        mm_free_pgd(mm);
        free_mm(mm);
        return NULL;
-@@ -1053,6 +1062,8 @@ static struct task_struct *copy_process(
+@@ -1104,6 +1113,8 @@ static struct task_struct *copy_process(
        int retval;
        struct task_struct *p;
        int cgroup_callbacks_done = 0;
@@ -14513,7 +14473,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
  
        if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
                return ERR_PTR(-EINVAL);
-@@ -1099,7 +1110,12 @@ static struct task_struct *copy_process(
+@@ -1150,7 +1161,12 @@ static struct task_struct *copy_process(
        DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
@@ -14526,7 +14486,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        if (atomic_read(&p->real_cred->user->processes) >=
                        task_rlimit(p, RLIMIT_NPROC)) {
                if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1372,6 +1388,18 @@ static struct task_struct *copy_process(
+@@ -1420,6 +1436,18 @@ static struct task_struct *copy_process(
  
        total_forks++;
        spin_unlock(&current->sighand->siglock);
@@ -14545,9 +14505,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/fork.c linux-3.2.11-vs2.3.2.8/kernel/f
        write_unlock_irq(&tasklist_lock);
        proc_fork_connector(p);
        cgroup_post_fork(p);
-diff -NurpP --minimal linux-3.2.11/kernel/kthread.c linux-3.2.11-vs2.3.2.8/kernel/kthread.c
---- linux-3.2.11/kernel/kthread.c      2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/kthread.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/kthread.c linux-3.3-vs2.3.3.1/kernel/kthread.c
+--- linux-3.3/kernel/kthread.c 2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/kthread.c       2012-02-24 03:55:06.000000000 +0100
 @@ -16,6 +16,7 @@
  #include <linux/mutex.h>
  #include <linux/slab.h>
@@ -14556,10 +14516,10 @@ diff -NurpP --minimal linux-3.2.11/kernel/kthread.c linux-3.2.11-vs2.3.2.8/kerne
  #include <trace/events/sched.h>
  
  static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kernel/nsproxy.c
---- linux-3.2.11/kernel/nsproxy.c      2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/nsproxy.c    2011-12-05 19:33:02.000000000 +0100
-@@ -20,6 +20,8 @@
+diff -NurpP --minimal linux-3.3/kernel/nsproxy.c linux-3.3-vs2.3.3.1/kernel/nsproxy.c
+--- linux-3.3/kernel/nsproxy.c 2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/nsproxy.c       2012-02-24 16:59:37.000000000 +0100
+@@ -20,11 +20,14 @@
  #include <linux/mnt_namespace.h>
  #include <linux/utsname.h>
  #include <linux/pid_namespace.h>
@@ -14568,7 +14528,13 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
  #include <net/net_namespace.h>
  #include <linux/ipc_namespace.h>
  #include <linux/proc_fs.h>
-@@ -46,8 +48,11 @@ static inline struct nsproxy *create_nsp
+ #include <linux/file.h>
+ #include <linux/syscalls.h>
++#include "../fs/mount.h"
+ static struct kmem_cache *nsproxy_cachep;
+@@ -46,8 +49,11 @@ static inline struct nsproxy *create_nsp
        struct nsproxy *nsproxy;
  
        nsproxy = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL);
@@ -14581,7 +14547,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
        return nsproxy;
  }
  
-@@ -56,8 +61,11 @@ static inline struct nsproxy *create_nsp
+@@ -56,8 +62,11 @@ 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.
   */
@@ -14595,7 +14561,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
  {
        struct nsproxy *new_nsp;
        int err;
-@@ -66,31 +74,31 @@ static struct nsproxy *create_new_namesp
+@@ -66,31 +75,31 @@ static struct nsproxy *create_new_namesp
        if (!new_nsp)
                return ERR_PTR(-ENOMEM);
  
@@ -14632,7 +14598,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
        if (IS_ERR(new_nsp->net_ns)) {
                err = PTR_ERR(new_nsp->net_ns);
                goto out_net;
-@@ -115,6 +123,40 @@ out_ns:
+@@ -115,6 +124,40 @@ out_ns:
        return ERR_PTR(err);
  }
  
@@ -14673,7 +14639,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
  /*
   * called from clone.  This now handles copy for nsproxy and all
   * namespaces therein.
-@@ -122,9 +164,12 @@ out_ns:
+@@ -122,9 +165,12 @@ out_ns:
  int copy_namespaces(unsigned long flags, struct task_struct *tsk)
  {
        struct nsproxy *old_ns = tsk->nsproxy;
@@ -14687,7 +14653,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
        if (!old_ns)
                return 0;
  
-@@ -134,7 +179,7 @@ int copy_namespaces(unsigned long flags,
+@@ -134,7 +180,7 @@ int copy_namespaces(unsigned long flags,
                                CLONE_NEWPID | CLONE_NEWNET)))
                return 0;
  
@@ -14696,7 +14662,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
                err = -EPERM;
                goto out;
        }
-@@ -161,6 +206,9 @@ int copy_namespaces(unsigned long flags,
+@@ -161,6 +207,9 @@ int copy_namespaces(unsigned long flags,
  
  out:
        put_nsproxy(old_ns);
@@ -14706,7 +14672,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
        return err;
  }
  
-@@ -174,7 +222,9 @@ void free_nsproxy(struct nsproxy *ns)
+@@ -174,7 +223,9 @@ void free_nsproxy(struct nsproxy *ns)
                put_ipc_ns(ns->ipc_ns);
        if (ns->pid_ns)
                put_pid_ns(ns->pid_ns);
@@ -14717,7 +14683,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
        kmem_cache_free(nsproxy_cachep, ns);
  }
  
-@@ -187,11 +237,15 @@ int unshare_nsproxy_namespaces(unsigned 
+@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned 
  {
        int err = 0;
  
@@ -14734,9 +14700,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/nsproxy.c linux-3.2.11-vs2.3.2.8/kerne
                return -EPERM;
  
        *new_nsp = create_new_namespaces(unshare_flags, current,
-diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pid.c
---- linux-3.2.11/kernel/pid.c  2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/pid.c        2011-12-05 19:43:14.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/pid.c linux-3.3-vs2.3.3.1/kernel/pid.c
+--- linux-3.3/kernel/pid.c     2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/pid.c   2012-03-19 20:52:10.000000000 +0100
 @@ -36,6 +36,7 @@
  #include <linux/pid_namespace.h>
  #include <linux/init_task.h>
@@ -14745,7 +14711,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
  
  #define pid_hashfn(nr, ns)    \
        hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift)
-@@ -342,7 +343,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
+@@ -344,7 +345,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
  
  struct pid *find_vpid(int nr)
  {
@@ -14754,7 +14720,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
  }
  EXPORT_SYMBOL_GPL(find_vpid);
  
-@@ -402,6 +403,9 @@ void transfer_pid(struct task_struct *ol
+@@ -404,6 +405,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;
@@ -14764,7 +14730,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
        if (pid) {
                struct hlist_node *first;
                first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
-@@ -421,7 +425,7 @@ struct task_struct *find_task_by_pid_ns(
+@@ -423,7 +427,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");
@@ -14773,7 +14739,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
  }
  
  struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -465,7 +469,7 @@ struct pid *find_get_pid(pid_t nr)
+@@ -467,7 +471,7 @@ struct pid *find_get_pid(pid_t nr)
  }
  EXPORT_SYMBOL_GPL(find_get_pid);
  
@@ -14782,7 +14748,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
  {
        struct upid *upid;
        pid_t nr = 0;
-@@ -478,6 +482,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 
+@@ -480,6 +484,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 
        return nr;
  }
  
@@ -14794,9 +14760,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid.c linux-3.2.11-vs2.3.2.8/kernel/pi
  pid_t pid_vnr(struct pid *pid)
  {
        return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-3.2.11/kernel/pid_namespace.c linux-3.2.11-vs2.3.2.8/kernel/pid_namespace.c
---- linux-3.2.11/kernel/pid_namespace.c        2011-05-22 16:17:59.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/kernel/pid_namespace.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/pid_namespace.c linux-3.3-vs2.3.3.1/kernel/pid_namespace.c
+--- linux-3.3/kernel/pid_namespace.c   2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/pid_namespace.c 2012-02-24 03:55:06.000000000 +0100
 @@ -15,6 +15,7 @@
  #include <linux/acct.h>
  #include <linux/slab.h>
@@ -14821,9 +14787,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/pid_namespace.c linux-3.2.11-vs2.3.2.8
        kmem_cache_free(pid_ns_cachep, ns);
  }
  
-diff -NurpP --minimal linux-3.2.11/kernel/posix-timers.c linux-3.2.11-vs2.3.2.8/kernel/posix-timers.c
---- linux-3.2.11/kernel/posix-timers.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/posix-timers.c       2011-12-05 19:44:00.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/posix-timers.c linux-3.3-vs2.3.3.1/kernel/posix-timers.c
+--- linux-3.3/kernel/posix-timers.c    2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/posix-timers.c  2012-02-24 03:55:06.000000000 +0100
 @@ -47,6 +47,7 @@
  #include <linux/wait.h>
  #include <linux/workqueue.h>
@@ -14859,9 +14825,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/posix-timers.c linux-3.2.11-vs2.3.2.8/
        /* If we failed to send the signal the timer stops. */
        return ret > 0;
  }
-diff -NurpP --minimal linux-3.2.11/kernel/printk.c linux-3.2.11-vs2.3.2.8/kernel/printk.c
---- linux-3.2.11/kernel/printk.c       2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/printk.c     2011-12-15 01:11:33.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/printk.c linux-3.3-vs2.3.3.1/kernel/printk.c
+--- linux-3.3/kernel/printk.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/printk.c        2012-03-19 20:52:10.000000000 +0100
 @@ -41,6 +41,7 @@
  #include <linux/cpu.h>
  #include <linux/notifier.h>
@@ -14929,9 +14895,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/printk.c linux-3.2.11-vs2.3.2.8/kernel
                count = len;
                if (count > log_buf_len)
                        count = log_buf_len;
-diff -NurpP --minimal linux-3.2.11/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/kernel/ptrace.c
---- linux-3.2.11/kernel/ptrace.c       2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/ptrace.c     2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/ptrace.c linux-3.3-vs2.3.3.1/kernel/ptrace.c
+--- linux-3.3/kernel/ptrace.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/ptrace.c        2012-02-24 03:55:06.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <linux/syscalls.h>
  #include <linux/uaccess.h>
@@ -14940,9 +14906,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/kernel
  #include <linux/hw_breakpoint.h>
  #include <linux/cn_proc.h>
  
-@@ -209,6 +210,11 @@ ok:
+@@ -217,6 +218,11 @@ ok:
                dumpable = get_dumpable(task->mm);
-       if (!dumpable && !task_ns_capable(task, CAP_SYS_PTRACE))
+       if (!dumpable  && !ptrace_has_cap(task_user_ns(task), mode))
                return -EPERM;
 +      if (!vx_check(task->xid, VS_ADMIN_P|VS_WATCH_P|VS_IDENT))
 +              return -EPERM;
@@ -14952,10 +14918,10 @@ diff -NurpP --minimal linux-3.2.11/kernel/ptrace.c linux-3.2.11-vs2.3.2.8/kernel
  
        return security_ptrace_access_check(task, mode);
  }
-diff -NurpP --minimal linux-3.2.11/kernel/sched.c linux-3.2.11-vs2.3.2.8/kernel/sched.c
---- linux-3.2.11/kernel/sched.c        2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/sched.c      2011-12-15 01:14:00.000000000 +0100
-@@ -72,6 +72,8 @@
+diff -NurpP --minimal linux-3.3/kernel/sched/core.c linux-3.3-vs2.3.3.1/kernel/sched/core.c
+--- linux-3.3/kernel/sched/core.c      2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/sched/core.c    2012-03-19 20:52:10.000000000 +0100
+@@ -71,6 +71,8 @@
  #include <linux/ftrace.h>
  #include <linux/slab.h>
  #include <linux/init_task.h>
@@ -14964,7 +14930,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/sched.c linux-3.2.11-vs2.3.2.8/kernel/
  
  #include <asm/tlb.h>
  #include <asm/irq_regs.h>
-@@ -3607,9 +3609,17 @@ static void calc_global_nohz(unsigned lo
+@@ -2335,9 +2337,17 @@ static void calc_global_nohz(unsigned lo
   */
  void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
  {
@@ -14985,41 +14951,39 @@ diff -NurpP --minimal linux-3.2.11/kernel/sched.c linux-3.2.11-vs2.3.2.8/kernel/
  }
  
  /*
-@@ -3868,16 +3878,19 @@ void account_user_time(struct task_struc
+@@ -2633,14 +2643,17 @@ static inline void task_group_account_fi
+ void account_user_time(struct task_struct *p, cputime_t cputime,
                       cputime_t cputime_scaled)
  {
-       struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
 +      struct vx_info *vxi = p->vx_info;  /* p is _always_ current */
-       cputime64_t tmp;
 +      int nice = (TASK_NICE(p) > 0);
+       int index;
  
        /* Add user time to process. */
-       p->utime = cputime_add(p->utime, cputime);
-       p->utimescaled = cputime_add(p->utimescaled, cputime_scaled);
+       p->utime += cputime;
+       p->utimescaled += cputime_scaled;
 +      vx_account_user(vxi, cputime, nice);
        account_group_user_time(p, cputime);
  
+-      index = (TASK_NICE(p) > 0) ? CPUTIME_NICE : CPUTIME_USER;
++      index = (nice) ? CPUTIME_NICE : CPUTIME_USER;
        /* Add user time to cpustat. */
-       tmp = cputime_to_cputime64(cputime);
--      if (TASK_NICE(p) > 0)
-+      if (nice)
-               cpustat->nice = cputime64_add(cpustat->nice, tmp);
-       else
-               cpustat->user = cputime64_add(cpustat->user, tmp);
-@@ -3929,10 +3942,12 @@ void __account_system_time(struct task_s
-                       cputime_t cputime_scaled, cputime64_t *target_cputime64)
+       task_group_account_field(p, index, (__force u64) cputime);
+@@ -2687,9 +2700,12 @@ static inline
+ void __account_system_time(struct task_struct *p, cputime_t cputime,
+                       cputime_t cputime_scaled, int index)
  {
-       cputime64_t tmp = cputime_to_cputime64(cputime);
 +      struct vx_info *vxi = p->vx_info;  /* p is _always_ current */
++
        /* Add system time to process. */
-       p->stime = cputime_add(p->stime, cputime);
-       p->stimescaled = cputime_add(p->stimescaled, cputime_scaled);
+       p->stime += cputime;
+       p->stimescaled += cputime_scaled;
 +      vx_account_system(vxi, cputime, 0 /* do we have idle time? */);
        account_group_system_time(p, cputime);
  
        /* Add system time to cpustat. */
-@@ -5132,7 +5147,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -3886,7 +3902,7 @@ SYSCALL_DEFINE1(nice, int, increment)
                nice = 19;
  
        if (increment < 0 && !can_nice(current, nice))
@@ -15028,10 +14992,18 @@ diff -NurpP --minimal linux-3.2.11/kernel/sched.c linux-3.2.11-vs2.3.2.8/kernel/
  
        retval = security_task_setnice(current, nice);
        if (retval)
-diff -NurpP --minimal linux-3.2.11/kernel/sched_fair.c linux-3.2.11-vs2.3.2.8/kernel/sched_fair.c
---- linux-3.2.11/kernel/sched_fair.c   2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/sched_fair.c 2012-01-09 16:19:31.000000000 +0100
-@@ -1014,6 +1014,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
+diff -NurpP --minimal linux-3.3/kernel/sched/fair.c linux-3.3-vs2.3.3.1/kernel/sched/fair.c
+--- linux-3.3/kernel/sched/fair.c      2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/sched/fair.c    2012-03-19 20:52:10.000000000 +0100
+@@ -26,6 +26,7 @@
+ #include <linux/slab.h>
+ #include <linux/profile.h>
+ #include <linux/interrupt.h>
++#include <linux/vs_cvirt.h>
+ #include <trace/events/sched.h>
+@@ -1126,6 +1127,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
                __enqueue_entity(cfs_rq, se);
        se->on_rq = 1;
  
@@ -15040,7 +15012,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/sched_fair.c linux-3.2.11-vs2.3.2.8/ke
        if (cfs_rq->nr_running == 1) {
                list_add_leaf_cfs_rq(cfs_rq);
                check_enqueue_throttle(cfs_rq);
-@@ -1094,6 +1096,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
+@@ -1206,6 +1209,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
        if (se != cfs_rq->curr)
                __dequeue_entity(cfs_rq, se);
        se->on_rq = 0;
@@ -15049,19 +15021,19 @@ diff -NurpP --minimal linux-3.2.11/kernel/sched_fair.c linux-3.2.11-vs2.3.2.8/ke
        update_cfs_load(cfs_rq, 0);
        account_entity_dequeue(cfs_rq, se);
  
-diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel/signal.c
---- linux-3.2.11/kernel/signal.c       2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/signal.c     2012-01-09 16:19:31.000000000 +0100
-@@ -28,6 +28,8 @@
- #include <linux/freezer.h>
+diff -NurpP --minimal linux-3.3/kernel/signal.c linux-3.3-vs2.3.3.1/kernel/signal.c
+--- linux-3.3/kernel/signal.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/signal.c        2012-02-24 04:10:10.000000000 +0100
+@@ -29,6 +29,8 @@
  #include <linux/pid_namespace.h>
  #include <linux/nsproxy.h>
+ #include <linux/user_namespace.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_pid.h>
  #define CREATE_TRACE_POINTS
  #include <trace/events/signal.h>
  
-@@ -789,9 +791,18 @@ static int check_kill_permission(int sig
+@@ -790,9 +792,18 @@ static int check_kill_permission(int sig
        struct pid *sid;
        int error;
  
@@ -15080,7 +15052,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
        if (!si_fromuser(info))
                return 0;
  
-@@ -815,6 +826,20 @@ static int check_kill_permission(int sig
+@@ -816,6 +827,20 @@ static int check_kill_permission(int sig
                }
        }
  
@@ -15101,7 +15073,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
        return security_task_kill(t, info, sig, 0);
  }
  
-@@ -1319,7 +1344,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);
@@ -15110,7 +15082,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
                error = group_send_sig_info(sig, info, p);
                if (unlikely(error == -ESRCH))
                        /*
-@@ -1369,7 +1394,7 @@ int kill_pid_info_as_cred(int sig, struc
+@@ -1401,7 +1426,7 @@ int kill_pid_info_as_cred(int sig, struc
  
        rcu_read_lock();
        p = pid_task(pid, PIDTYPE_PID);
@@ -15119,7 +15091,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
                ret = -ESRCH;
                goto out_unlock;
        }
-@@ -1421,8 +1446,10 @@ static int kill_something_info(int sig, 
+@@ -1453,8 +1478,10 @@ static int kill_something_info(int sig, 
                struct task_struct * p;
  
                for_each_process(p) {
@@ -15132,7 +15104,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
                                int err = group_send_sig_info(sig, info, p);
                                ++count;
                                if (err != -EPERM)
-@@ -2255,6 +2282,11 @@ relock:
+@@ -2290,6 +2317,11 @@ relock:
                                !sig_kernel_only(signr))
                        continue;
  
@@ -15144,9 +15116,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/signal.c linux-3.2.11-vs2.3.2.8/kernel
                if (sig_kernel_stop(signr)) {
                        /*
                         * The default action is to stop all threads in
-diff -NurpP --minimal linux-3.2.11/kernel/softirq.c linux-3.2.11-vs2.3.2.8/kernel/softirq.c
---- linux-3.2.11/kernel/softirq.c      2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/softirq.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/softirq.c linux-3.3-vs2.3.3.1/kernel/softirq.c
+--- linux-3.3/kernel/softirq.c 2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/softirq.c       2012-02-24 03:55:06.000000000 +0100
 @@ -24,6 +24,7 @@
  #include <linux/ftrace.h>
  #include <linux/smp.h>
@@ -15155,9 +15127,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/softirq.c linux-3.2.11-vs2.3.2.8/kerne
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/irq.h>
-diff -NurpP --minimal linux-3.2.11/kernel/sys.c linux-3.2.11-vs2.3.2.8/kernel/sys.c
---- linux-3.2.11/kernel/sys.c  2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/sys.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/sys.c linux-3.3-vs2.3.3.1/kernel/sys.c
+--- linux-3.3/kernel/sys.c     2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/sys.c   2012-03-19 20:52:10.000000000 +0100
 @@ -45,6 +45,7 @@
  #include <linux/syscalls.h>
  #include <linux/kprobes.h>
@@ -15254,9 +15226,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/sys.c linux-3.2.11-vs2.3.2.8/kernel/sy
                return 0;
  
        return -EPERM;
-diff -NurpP --minimal linux-3.2.11/kernel/sysctl.c linux-3.2.11-vs2.3.2.8/kernel/sysctl.c
---- linux-3.2.11/kernel/sysctl.c       2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/sysctl.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/sysctl.c linux-3.3-vs2.3.3.1/kernel/sysctl.c
+--- linux-3.3/kernel/sysctl.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/sysctl.c        2012-02-24 03:55:06.000000000 +0100
 @@ -76,6 +76,7 @@
  #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
  #include <linux/lockdep.h>
@@ -15279,9 +15251,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/sysctl.c linux-3.2.11-vs2.3.2.8/kernel
  #ifdef CONFIG_CHR_DEV_SG
        {
                .procname       = "sg-big-buff",
-diff -NurpP --minimal linux-3.2.11/kernel/sysctl_binary.c linux-3.2.11-vs2.3.2.8/kernel/sysctl_binary.c
---- linux-3.2.11/kernel/sysctl_binary.c        2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/sysctl_binary.c      2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/sysctl_binary.c linux-3.3-vs2.3.3.1/kernel/sysctl_binary.c
+--- linux-3.3/kernel/sysctl_binary.c   2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/sysctl_binary.c 2012-02-24 03:55:06.000000000 +0100
 @@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
  
        { CTL_INT,      KERN_PANIC,                     "panic" },
@@ -15290,9 +15262,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/sysctl_binary.c linux-3.2.11-vs2.3.2.8
  
        { CTL_STR,      KERN_SPARC_REBOOT,              "reboot-cmd" },
        { CTL_INT,      KERN_CTLALTDEL,                 "ctrl-alt-del" },
-diff -NurpP --minimal linux-3.2.11/kernel/time/timekeeping.c linux-3.2.11-vs2.3.2.8/kernel/time/timekeeping.c
---- linux-3.2.11/kernel/time/timekeeping.c     2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/time/timekeeping.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/time/timekeeping.c linux-3.3-vs2.3.3.1/kernel/time/timekeeping.c
+--- linux-3.3/kernel/time/timekeeping.c        2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/time/timekeeping.c      2012-02-24 03:55:06.000000000 +0100
 @@ -233,6 +233,7 @@ void getnstimeofday(struct timespec *ts)
        } while (read_seqretry(&xtime_lock, seq));
  
@@ -15301,9 +15273,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/time/timekeeping.c linux-3.2.11-vs2.3.
  }
  
  EXPORT_SYMBOL(getnstimeofday);
-diff -NurpP --minimal linux-3.2.11/kernel/time.c linux-3.2.11-vs2.3.2.8/kernel/time.c
---- linux-3.2.11/kernel/time.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/time.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/time.c linux-3.3-vs2.3.3.1/kernel/time.c
+--- linux-3.3/kernel/time.c    2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/time.c  2012-02-24 03:55:06.000000000 +0100
 @@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *, 
        if (err)
                return err;
@@ -15322,9 +15294,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/time.c linux-3.2.11-vs2.3.2.8/kernel/t
        }
        return 0;
  }
-diff -NurpP --minimal linux-3.2.11/kernel/timer.c linux-3.2.11-vs2.3.2.8/kernel/timer.c
---- linux-3.2.11/kernel/timer.c        2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/timer.c      2011-12-15 01:11:33.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/timer.c linux-3.3-vs2.3.3.1/kernel/timer.c
+--- linux-3.3/kernel/timer.c   2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/timer.c 2012-02-24 03:55:06.000000000 +0100
 @@ -40,6 +40,10 @@
  #include <linux/irq_work.h>
  #include <linux/sched.h>
@@ -15336,7 +15308,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/timer.c linux-3.2.11-vs2.3.2.8/kernel/
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-@@ -1336,12 +1340,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
+@@ -1386,12 +1390,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
  
  #endif
  
@@ -15349,7 +15321,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/timer.c linux-3.2.11-vs2.3.2.8/kernel/
  
  /**
   * sys_getpid - return the thread group id of the current process
-@@ -1370,10 +1368,23 @@ SYSCALL_DEFINE0(getppid)
+@@ -1420,10 +1418,23 @@ SYSCALL_DEFINE0(getppid)
        rcu_read_lock();
        pid = task_tgid_vnr(rcu_dereference(current->real_parent));
        rcu_read_unlock();
@@ -15374,9 +15346,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/timer.c linux-3.2.11-vs2.3.2.8/kernel/
  SYSCALL_DEFINE0(getuid)
  {
        /* Only we change this so SMP safe */
-diff -NurpP --minimal linux-3.2.11/kernel/user_namespace.c linux-3.2.11-vs2.3.2.8/kernel/user_namespace.c
---- linux-3.2.11/kernel/user_namespace.c       2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/user_namespace.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/user_namespace.c linux-3.3-vs2.3.3.1/kernel/user_namespace.c
+--- linux-3.3/kernel/user_namespace.c  2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/user_namespace.c        2012-02-24 03:55:06.000000000 +0100
 @@ -11,6 +11,7 @@
  #include <linux/user_namespace.h>
  #include <linux/highuid.h>
@@ -15402,9 +15374,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/user_namespace.c linux-3.2.11-vs2.3.2.
        INIT_WORK(&ns->destroyer, free_user_ns_work);
        schedule_work(&ns->destroyer);
  }
-diff -NurpP --minimal linux-3.2.11/kernel/utsname.c linux-3.2.11-vs2.3.2.8/kernel/utsname.c
---- linux-3.2.11/kernel/utsname.c      2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/utsname.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/utsname.c linux-3.3-vs2.3.3.1/kernel/utsname.c
+--- linux-3.3/kernel/utsname.c 2012-01-09 16:15:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/utsname.c       2012-02-24 03:55:06.000000000 +0100
 @@ -16,14 +16,17 @@
  #include <linux/slab.h>
  #include <linux/user_namespace.h>
@@ -15473,9 +15445,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/utsname.c linux-3.2.11-vs2.3.2.8/kerne
        kfree(ns);
  }
  
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/Kconfig linux-3.2.11-vs2.3.2.8/kernel/vserver/Kconfig
---- linux-3.2.11/kernel/vserver/Kconfig        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/Kconfig      2011-12-15 01:52:48.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/Kconfig linux-3.3-vs2.3.3.1/kernel/vserver/Kconfig
+--- linux-3.3/kernel/vserver/Kconfig   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/Kconfig 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,224 @@
 +#
 +# Linux VServer configuration
@@ -15701,9 +15673,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/Kconfig linux-3.2.11-vs2.3.2.8
 +      bool
 +      default n
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/Makefile linux-3.2.11-vs2.3.2.8/kernel/vserver/Makefile
---- linux-3.2.11/kernel/vserver/Makefile       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/Makefile     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/Makefile linux-3.3-vs2.3.3.1/kernel/vserver/Makefile
+--- linux-3.3/kernel/vserver/Makefile  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/Makefile        2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,18 @@
 +#
 +# Makefile for the Linux vserver routines.
@@ -15723,9 +15695,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/Makefile linux-3.2.11-vs2.3.2.
 +vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
 +vserver-$(CONFIG_VSERVER_DEVICE) += device.o
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct.c linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct.c
---- linux-3.2.11/kernel/vserver/cacct.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/cacct.c linux-3.3-vs2.3.3.1/kernel/vserver/cacct.c
+--- linux-3.3/kernel/vserver/cacct.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cacct.c 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,42 @@
 +/*
 + *  linux/kernel/vserver/cacct.c
@@ -15769,9 +15741,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct.c linux-3.2.11-vs2.3.2.8
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct_init.h linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct_init.h
---- linux-3.2.11/kernel/vserver/cacct_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct_init.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/cacct_init.h linux-3.3-vs2.3.3.1/kernel/vserver/cacct_init.h
+--- linux-3.3/kernel/vserver/cacct_init.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cacct_init.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,25 @@
 +
 +
@@ -15798,9 +15770,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct_init.h linux-3.2.11-vs2.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct_proc.h linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct_proc.h
---- linux-3.2.11/kernel/vserver/cacct_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cacct_proc.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/cacct_proc.h linux-3.3-vs2.3.3.1/kernel/vserver/cacct_proc.h
+--- linux-3.3/kernel/vserver/cacct_proc.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cacct_proc.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CACCT_PROC_H
 +#define _VX_CACCT_PROC_H
@@ -15855,9 +15827,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cacct_proc.h linux-3.2.11-vs2.
 +}
 +
 +#endif        /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/context.c linux-3.2.11-vs2.3.2.8/kernel/vserver/context.c
---- linux-3.2.11/kernel/vserver/context.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/context.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/context.c linux-3.3-vs2.3.3.1/kernel/vserver/context.c
+--- linux-3.3/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/context.c       2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,1107 @@
 +/*
 + *  linux/kernel/vserver/context.c
@@ -16966,9 +16938,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/context.c linux-3.2.11-vs2.3.2
 +
 +EXPORT_SYMBOL_GPL(free_vx_info);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt.c linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt.c
---- linux-3.2.11/kernel/vserver/cvirt.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/cvirt.c linux-3.3-vs2.3.3.1/kernel/vserver/cvirt.c
+--- linux-3.3/kernel/vserver/cvirt.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cvirt.c 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,303 @@
 +/*
 + *  linux/kernel/vserver/cvirt.c
@@ -17273,9 +17245,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt.c linux-3.2.11-vs2.3.2.8
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_init.h linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt_init.h
---- linux-3.2.11/kernel/vserver/cvirt_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt_init.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/cvirt_init.h linux-3.3-vs2.3.3.1/kernel/vserver/cvirt_init.h
+--- linux-3.3/kernel/vserver/cvirt_init.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cvirt_init.h    2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,70 @@
 +
 +
@@ -17347,10 +17319,10 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_init.h linux-3.2.11-vs2.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_proc.h linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt_proc.h
---- linux-3.2.11/kernel/vserver/cvirt_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/cvirt_proc.h 2011-12-05 19:33:02.000000000 +0100
-@@ -0,0 +1,135 @@
+diff -NurpP --minimal linux-3.3/kernel/vserver/cvirt_proc.h linux-3.3-vs2.3.3.1/kernel/vserver/cvirt_proc.h
+--- linux-3.3/kernel/vserver/cvirt_proc.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/cvirt_proc.h    2012-02-24 17:26:10.000000000 +0100
+@@ -0,0 +1,137 @@
 +#ifndef _VX_CVIRT_PROC_H
 +#define _VX_CVIRT_PROC_H
 +
@@ -17383,6 +17355,8 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_proc.h linux-3.2.11-vs2.
 +      if (!ns)
 +              goto skip_ns;
 +
++/*    FIXME: move to fs?
++
 +      pstr = kmalloc(PATH_MAX, GFP_KERNEL);
 +      if (!pstr)
 +              goto skip_ns;
@@ -17395,7 +17369,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_proc.h linux-3.2.11-vs2.
 +              "RootPath:\t%s\n",
 +              ns, atomic_read(&ns->count),
 +              root);
-+      kfree(pstr);
++      kfree(pstr); */
 +skip_ns:
 +
 +      uts = nsproxy->uts_ns;
@@ -17486,9 +17460,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/cvirt_proc.h linux-3.2.11-vs2.
 +}
 +
 +#endif        /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/debug.c linux-3.2.11-vs2.3.2.8/kernel/vserver/debug.c
---- linux-3.2.11/kernel/vserver/debug.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/debug.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/debug.c linux-3.3-vs2.3.3.1/kernel/vserver/debug.c
+--- linux-3.3/kernel/vserver/debug.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/debug.c 2012-02-24 03:55:06.000000000 +0100
 @@ -0,0 +1,32 @@
 +/*
 + *  kernel/vserver/debug.c
@@ -17522,9 +17496,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/debug.c linux-3.2.11-vs2.3.2.8
 +
 +EXPORT_SYMBOL_GPL(dump_vx_info);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/device.c linux-3.2.11-vs2.3.2.8/kernel/vserver/device.c
---- linux-3.2.11/kernel/vserver/device.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/device.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/device.c linux-3.3-vs2.3.3.1/kernel/vserver/device.c
+--- linux-3.3/kernel/vserver/device.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/device.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,443 @@
 +/*
 + *  linux/kernel/vserver/device.c
@@ -17969,9 +17943,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/device.c linux-3.2.11-vs2.3.2.
 +#endif        /* CONFIG_COMPAT */
 +
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/dlimit.c linux-3.2.11-vs2.3.2.8/kernel/vserver/dlimit.c
---- linux-3.2.11/kernel/vserver/dlimit.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/dlimit.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/dlimit.c linux-3.3-vs2.3.3.1/kernel/vserver/dlimit.c
+--- linux-3.3/kernel/vserver/dlimit.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/dlimit.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,531 @@
 +/*
 + *  linux/kernel/vserver/dlimit.c
@@ -18504,9 +18478,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/dlimit.c linux-3.2.11-vs2.3.2.
 +EXPORT_SYMBOL_GPL(locate_dl_info);
 +EXPORT_SYMBOL_GPL(rcu_free_dl_info);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/helper.c linux-3.2.11-vs2.3.2.8/kernel/vserver/helper.c
---- linux-3.2.11/kernel/vserver/helper.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/helper.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/helper.c linux-3.3-vs2.3.3.1/kernel/vserver/helper.c
+--- linux-3.3/kernel/vserver/helper.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/helper.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,223 @@
 +/*
 + *  linux/kernel/vserver/helper.c
@@ -18731,9 +18705,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/helper.c linux-3.2.11-vs2.3.2.
 +      return do_vshelper(vshelper_path, argv, envp, 1);
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/history.c linux-3.2.11-vs2.3.2.8/kernel/vserver/history.c
---- linux-3.2.11/kernel/vserver/history.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/history.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/history.c linux-3.3-vs2.3.3.1/kernel/vserver/history.c
+--- linux-3.3/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/history.c       2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,258 @@
 +/*
 + *  kernel/vserver/history.c
@@ -18993,9 +18967,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/history.c linux-3.2.11-vs2.3.2
 +
 +#endif        /* CONFIG_COMPAT */
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/inet.c linux-3.2.11-vs2.3.2.8/kernel/vserver/inet.c
---- linux-3.2.11/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/inet.c       2011-12-15 01:33:09.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/inet.c linux-3.3-vs2.3.3.1/kernel/vserver/inet.c
+--- linux-3.3/kernel/vserver/inet.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/inet.c  2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,226 @@
 +
 +#include <linux/in.h>
@@ -19223,9 +19197,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/inet.c linux-3.2.11-vs2.3.2.8/
 +
 +EXPORT_SYMBOL_GPL(ip_v4_find_src);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/init.c linux-3.2.11-vs2.3.2.8/kernel/vserver/init.c
---- linux-3.2.11/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/init.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/init.c linux-3.3-vs2.3.3.1/kernel/vserver/init.c
+--- linux-3.3/kernel/vserver/init.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/init.c  2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,45 @@
 +/*
 + *  linux/kernel/init.c
@@ -19272,9 +19246,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/init.c linux-3.2.11-vs2.3.2.8/
 +module_init(init_vserver);
 +module_exit(exit_vserver);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/inode.c linux-3.2.11-vs2.3.2.8/kernel/vserver/inode.c
---- linux-3.2.11/kernel/vserver/inode.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/inode.c      2011-12-06 23:56:11.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/inode.c linux-3.3-vs2.3.3.1/kernel/vserver/inode.c
+--- linux-3.3/kernel/vserver/inode.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/inode.c 2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,437 @@
 +/*
 + *  linux/kernel/vserver/inode.c
@@ -19713,9 +19687,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/inode.c linux-3.2.11-vs2.3.2.8
 +
 +#endif        /* CONFIG_PROPAGATE */
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit.c linux-3.2.11-vs2.3.2.8/kernel/vserver/limit.c
---- linux-3.2.11/kernel/vserver/limit.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/limit.c      2011-12-15 01:52:48.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/limit.c linux-3.3-vs2.3.3.1/kernel/vserver/limit.c
+--- linux-3.3/kernel/vserver/limit.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/limit.c 2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,330 @@
 +/*
 + *  linux/kernel/vserver/limit.c
@@ -20047,9 +20021,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit.c linux-3.2.11-vs2.3.2.8
 +#endif
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit_init.h linux-3.2.11-vs2.3.2.8/kernel/vserver/limit_init.h
---- linux-3.2.11/kernel/vserver/limit_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/limit_init.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/limit_init.h linux-3.3-vs2.3.3.1/kernel/vserver/limit_init.h
+--- linux-3.3/kernel/vserver/limit_init.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/limit_init.h    2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,31 @@
 +
 +
@@ -20082,9 +20056,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit_init.h linux-3.2.11-vs2.
 +      }
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit_proc.h linux-3.2.11-vs2.3.2.8/kernel/vserver/limit_proc.h
---- linux-3.2.11/kernel/vserver/limit_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/limit_proc.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/limit_proc.h linux-3.3-vs2.3.3.1/kernel/vserver/limit_proc.h
+--- linux-3.3/kernel/vserver/limit_proc.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/limit_proc.h    2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,57 @@
 +#ifndef _VX_LIMIT_PROC_H
 +#define _VX_LIMIT_PROC_H
@@ -20143,9 +20117,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/limit_proc.h linux-3.2.11-vs2.
 +#endif        /* _VX_LIMIT_PROC_H */
 +
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/network.c linux-3.2.11-vs2.3.2.8/kernel/vserver/network.c
---- linux-3.2.11/kernel/vserver/network.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/network.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/network.c linux-3.3-vs2.3.3.1/kernel/vserver/network.c
+--- linux-3.3/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/network.c       2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,912 @@
 +/*
 + *  linux/kernel/vserver/network.c
@@ -21059,9 +21033,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/network.c linux-3.2.11-vs2.3.2
 +EXPORT_SYMBOL_GPL(free_nx_info);
 +EXPORT_SYMBOL_GPL(unhash_nx_info);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/proc.c linux-3.2.11-vs2.3.2.8/kernel/vserver/proc.c
---- linux-3.2.11/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/proc.c       2011-12-06 23:19:52.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/proc.c linux-3.3-vs2.3.3.1/kernel/vserver/proc.c
+--- linux-3.3/kernel/vserver/proc.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/proc.c  2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,1103 @@
 +/*
 + *  linux/kernel/vserver/proc.c
@@ -22166,9 +22140,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/proc.c linux-3.2.11-vs2.3.2.8/
 +      return buffer - orig;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched.c linux-3.2.11-vs2.3.2.8/kernel/vserver/sched.c
---- linux-3.2.11/kernel/vserver/sched.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/sched.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/sched.c linux-3.3-vs2.3.3.1/kernel/vserver/sched.c
+--- linux-3.3/kernel/vserver/sched.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/sched.c 2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,82 @@
 +/*
 + *  linux/kernel/vserver/sched.c
@@ -22252,9 +22226,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched.c linux-3.2.11-vs2.3.2.8
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched_init.h linux-3.2.11-vs2.3.2.8/kernel/vserver/sched_init.h
---- linux-3.2.11/kernel/vserver/sched_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/sched_init.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/sched_init.h linux-3.3-vs2.3.3.1/kernel/vserver/sched_init.h
+--- linux-3.3/kernel/vserver/sched_init.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/sched_init.h    2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,27 @@
 +
 +static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -22283,9 +22257,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched_init.h linux-3.2.11-vs2.
 +{
 +      return;
 +}
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched_proc.h linux-3.2.11-vs2.3.2.8/kernel/vserver/sched_proc.h
---- linux-3.2.11/kernel/vserver/sched_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/sched_proc.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/sched_proc.h linux-3.3-vs2.3.3.1/kernel/vserver/sched_proc.h
+--- linux-3.3/kernel/vserver/sched_proc.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/sched_proc.h    2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,32 @@
 +#ifndef _VX_SCHED_PROC_H
 +#define _VX_SCHED_PROC_H
@@ -22319,9 +22293,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/sched_proc.h linux-3.2.11-vs2.
 +}
 +
 +#endif        /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/signal.c linux-3.2.11-vs2.3.2.8/kernel/vserver/signal.c
---- linux-3.2.11/kernel/vserver/signal.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/signal.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/signal.c linux-3.3-vs2.3.3.1/kernel/vserver/signal.c
+--- linux-3.3/kernel/vserver/signal.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/signal.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,134 @@
 +/*
 + *  linux/kernel/vserver/signal.c
@@ -22457,10 +22431,10 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/signal.c linux-3.2.11-vs2.3.2.
 +      return ret;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/space.c linux-3.2.11-vs2.3.2.8/kernel/vserver/space.c
---- linux-3.2.11/kernel/vserver/space.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/space.c      2011-12-05 19:33:02.000000000 +0100
-@@ -0,0 +1,435 @@
+diff -NurpP --minimal linux-3.3/kernel/vserver/space.c linux-3.3-vs2.3.3.1/kernel/vserver/space.c
+--- linux-3.3/kernel/vserver/space.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/space.c 2012-02-24 17:01:40.000000000 +0100
+@@ -0,0 +1,436 @@
 +/*
 + *  linux/kernel/vserver/space.c
 + *
@@ -22502,6 +22476,7 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/space.c linux-3.2.11-vs2.3.2.8
 +#include <linux/pid_namespace.h>
 +#include <linux/ipc_namespace.h>
 +#include <net/net_namespace.h>
++#include "../fs/mount.h"
 +
 +
 +static const struct vcmd_space_mask_v1 space_mask_v0 = {
@@ -22896,9 +22871,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/space.c linux-3.2.11-vs2.3.2.8
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/switch.c linux-3.2.11-vs2.3.2.8/kernel/vserver/switch.c
---- linux-3.2.11/kernel/vserver/switch.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/switch.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/switch.c linux-3.3-vs2.3.3.1/kernel/vserver/switch.c
+--- linux-3.3/kernel/vserver/switch.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/switch.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,556 @@
 +/*
 + *  linux/kernel/vserver/switch.c
@@ -23456,9 +23431,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/switch.c linux-3.2.11-vs2.3.2.
 +}
 +
 +#endif        /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/sysctl.c linux-3.2.11-vs2.3.2.8/kernel/vserver/sysctl.c
---- linux-3.2.11/kernel/vserver/sysctl.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/sysctl.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/sysctl.c linux-3.3-vs2.3.3.1/kernel/vserver/sysctl.c
+--- linux-3.3/kernel/vserver/sysctl.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/sysctl.c        2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,247 @@
 +/*
 + *  kernel/vserver/sysctl.c
@@ -23707,9 +23682,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/sysctl.c linux-3.2.11-vs2.3.2.
 +EXPORT_SYMBOL_GPL(vs_debug_perm);
 +EXPORT_SYMBOL_GPL(vs_debug_misc);
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/tag.c linux-3.2.11-vs2.3.2.8/kernel/vserver/tag.c
---- linux-3.2.11/kernel/vserver/tag.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/tag.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/tag.c linux-3.3-vs2.3.3.1/kernel/vserver/tag.c
+--- linux-3.3/kernel/vserver/tag.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/tag.c   2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,63 @@
 +/*
 + *  linux/kernel/vserver/tag.c
@@ -23774,9 +23749,9 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/tag.c linux-3.2.11-vs2.3.2.8/k
 +}
 +
 +
-diff -NurpP --minimal linux-3.2.11/kernel/vserver/vci_config.h linux-3.2.11-vs2.3.2.8/kernel/vserver/vci_config.h
---- linux-3.2.11/kernel/vserver/vci_config.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/kernel/vserver/vci_config.h 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/kernel/vserver/vci_config.h linux-3.3-vs2.3.3.1/kernel/vserver/vci_config.h
+--- linux-3.3/kernel/vserver/vci_config.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/kernel/vserver/vci_config.h    2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,76 @@
 +
 +/*  interface version */
@@ -23854,10 +23829,10 @@ diff -NurpP --minimal linux-3.2.11/kernel/vserver/vci_config.h linux-3.2.11-vs2.
 +      0;
 +}
 +
-diff -NurpP --minimal linux-3.2.11/mm/memcontrol.c linux-3.2.11-vs2.3.2.8/mm/memcontrol.c
---- linux-3.2.11/mm/memcontrol.c       2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/memcontrol.c     2012-03-14 10:24:05.000000000 +0100
-@@ -766,6 +766,31 @@ struct mem_cgroup *mem_cgroup_from_task(
+diff -NurpP --minimal linux-3.3/mm/memcontrol.c linux-3.3-vs2.3.3.1/mm/memcontrol.c
+--- linux-3.3/mm/memcontrol.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/memcontrol.c        2012-03-19 20:52:10.000000000 +0100
+@@ -839,6 +839,31 @@ struct mem_cgroup *mem_cgroup_from_task(
                                struct mem_cgroup, css);
  }
  
@@ -23889,21 +23864,21 @@ diff -NurpP --minimal linux-3.2.11/mm/memcontrol.c linux-3.2.11-vs2.3.2.8/mm/mem
  struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
  {
        struct mem_cgroup *memcg = NULL;
-diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_kill.c
---- linux-3.2.11/mm/oom_kill.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/oom_kill.c       2012-01-09 16:19:31.000000000 +0100
-@@ -33,6 +33,8 @@
- #include <linux/security.h>
+diff -NurpP --minimal linux-3.3/mm/oom_kill.c linux-3.3-vs2.3.3.1/mm/oom_kill.c
+--- linux-3.3/mm/oom_kill.c    2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/oom_kill.c  2012-02-24 04:15:27.000000000 +0100
+@@ -34,6 +34,8 @@
  #include <linux/ptrace.h>
  #include <linux/freezer.h>
+ #include <linux/ftrace.h>
 +#include <linux/reboot.h>
 +#include <linux/vs_context.h>
  
- int sysctl_panic_on_oom;
- int sysctl_oom_kill_allocating_task;
-@@ -148,11 +150,18 @@ struct task_struct *find_lock_task_mm(st
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/oom.h>
+@@ -154,11 +156,18 @@ struct task_struct *find_lock_task_mm(st
  static bool oom_unkillable_task(struct task_struct *p,
-               const struct mem_cgroup *mem, const nodemask_t *nodemask)
+               const struct mem_cgroup *memcg, const nodemask_t *nodemask)
  {
 -      if (is_global_init(p))
 +      unsigned xid = vx_current_xid();
@@ -23919,9 +23894,9 @@ diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_k
 +              return true;
 +
        /* When mem_cgroup_out_of_memory() and p is not member of the group */
-       if (mem && !task_in_mem_cgroup(p, mem))
+       if (memcg && !task_in_mem_cgroup(p, memcg))
                return true;
-@@ -440,8 +449,8 @@ static int oom_kill_task(struct task_str
+@@ -446,8 +455,8 @@ static int oom_kill_task(struct task_str
        /* mm cannot be safely dereferenced after task_unlock(p) */
        mm = p->mm;
  
@@ -23932,7 +23907,7 @@ diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_k
                K(get_mm_counter(p->mm, MM_ANONPAGES)),
                K(get_mm_counter(p->mm, MM_FILEPAGES)));
        task_unlock(p);
-@@ -499,8 +508,8 @@ static int oom_kill_process(struct task_
+@@ -505,8 +514,8 @@ static int oom_kill_process(struct task_
        }
  
        task_lock(p);
@@ -23943,7 +23918,7 @@ diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_k
        task_unlock(p);
  
        /*
-@@ -601,6 +610,8 @@ int unregister_oom_notifier(struct notif
+@@ -607,6 +616,8 @@ int unregister_oom_notifier(struct notif
  }
  EXPORT_SYMBOL_GPL(unregister_oom_notifier);
  
@@ -23952,7 +23927,7 @@ diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_k
  /*
   * Try to acquire the OOM killer lock for the zones in zonelist.  Returns zero
   * if a parallel OOM killing is already taking place that includes a zone in
-@@ -759,7 +770,12 @@ retry:
+@@ -765,7 +776,12 @@ retry:
        if (!p) {
                dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
                read_unlock(&tasklist_lock);
@@ -23966,19 +23941,19 @@ diff -NurpP --minimal linux-3.2.11/mm/oom_kill.c linux-3.2.11-vs2.3.2.8/mm/oom_k
        }
  
        if (oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-diff -NurpP --minimal linux-3.2.11/mm/page_alloc.c linux-3.2.11-vs2.3.2.8/mm/page_alloc.c
---- linux-3.2.11/mm/page_alloc.c       2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/page_alloc.c     2012-01-26 08:52:10.000000000 +0100
-@@ -57,6 +57,8 @@
- #include <linux/ftrace_event.h>
+diff -NurpP --minimal linux-3.3/mm/page_alloc.c linux-3.3-vs2.3.3.1/mm/page_alloc.c
+--- linux-3.3/mm/page_alloc.c  2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/page_alloc.c        2012-03-19 20:52:10.000000000 +0100
+@@ -58,6 +58,8 @@
  #include <linux/memcontrol.h>
  #include <linux/prefetch.h>
+ #include <linux/page-debug-flags.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_limit.h>
  
  #include <asm/tlbflush.h>
  #include <asm/div64.h>
-@@ -2491,6 +2493,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -2602,6 +2604,9 @@ void si_meminfo(struct sysinfo *val)
        val->totalhigh = totalhigh_pages;
        val->freehigh = nr_free_highpages();
        val->mem_unit = PAGE_SIZE;
@@ -23988,7 +23963,7 @@ diff -NurpP --minimal linux-3.2.11/mm/page_alloc.c linux-3.2.11-vs2.3.2.8/mm/pag
  }
  
  EXPORT_SYMBOL(si_meminfo);
-@@ -2511,6 +2516,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2622,6 +2627,9 @@ void si_meminfo_node(struct sysinfo *val
        val->freehigh = 0;
  #endif
        val->mem_unit = PAGE_SIZE;
@@ -23998,9 +23973,9 @@ diff -NurpP --minimal linux-3.2.11/mm/page_alloc.c linux-3.2.11-vs2.3.2.8/mm/pag
  }
  #endif
  
-diff -NurpP --minimal linux-3.2.11/mm/pgtable-generic.c linux-3.2.11-vs2.3.2.8/mm/pgtable-generic.c
---- linux-3.2.11/mm/pgtable-generic.c  2011-03-15 18:07:42.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/pgtable-generic.c        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/mm/pgtable-generic.c linux-3.3-vs2.3.3.1/mm/pgtable-generic.c
+--- linux-3.3/mm/pgtable-generic.c     2011-03-15 18:07:42.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/pgtable-generic.c   2012-02-24 03:55:07.000000000 +0100
 @@ -6,6 +6,8 @@
   *  Copyright (C) 2010  Linus Torvalds
   */
@@ -24010,9 +23985,9 @@ diff -NurpP --minimal linux-3.2.11/mm/pgtable-generic.c linux-3.2.11-vs2.3.2.8/m
  #include <linux/pagemap.h>
  #include <asm/tlb.h>
  #include <asm-generic/pgtable.h>
-diff -NurpP --minimal linux-3.2.11/mm/shmem.c linux-3.2.11-vs2.3.2.8/mm/shmem.c
---- linux-3.2.11/mm/shmem.c    2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/shmem.c  2012-01-26 08:52:10.000000000 +0100
+diff -NurpP --minimal linux-3.3/mm/shmem.c linux-3.3-vs2.3.3.1/mm/shmem.c
+--- linux-3.3/mm/shmem.c       2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/shmem.c     2012-02-24 03:55:07.000000000 +0100
 @@ -1460,7 +1460,7 @@ static int shmem_statfs(struct dentry *d
  {
        struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
@@ -24031,10 +24006,10 @@ diff -NurpP --minimal linux-3.2.11/mm/shmem.c linux-3.2.11-vs2.3.2.8/mm/shmem.c
        sb->s_op = &shmem_ops;
        sb->s_time_gran = 1;
  #ifdef CONFIG_TMPFS_XATTR
-diff -NurpP --minimal linux-3.2.11/mm/slab.c linux-3.2.11-vs2.3.2.8/mm/slab.c
---- linux-3.2.11/mm/slab.c     2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/slab.c   2011-12-15 01:11:34.000000000 +0100
-@@ -411,6 +411,8 @@ static void kmem_list3_init(struct kmem_
+diff -NurpP --minimal linux-3.3/mm/slab.c linux-3.3-vs2.3.3.1/mm/slab.c
+--- linux-3.3/mm/slab.c        2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/slab.c      2012-02-24 03:55:07.000000000 +0100
+@@ -413,6 +413,8 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEMISS(x) do { } while (0)
  #endif
  
@@ -24043,7 +24018,7 @@ diff -NurpP --minimal linux-3.2.11/mm/slab.c linux-3.2.11-vs2.3.2.8/mm/slab.c
  #if DEBUG
  
  /*
-@@ -3397,6 +3399,7 @@ retry:
+@@ -3414,6 +3416,7 @@ retry:
  
        obj = slab_get_obj(cachep, slabp, nodeid);
        check_slabp(cachep, slabp);
@@ -24051,7 +24026,7 @@ diff -NurpP --minimal linux-3.2.11/mm/slab.c linux-3.2.11-vs2.3.2.8/mm/slab.c
        l3->free_objects--;
        /* move slabp to correct slabp list: */
        list_del(&slabp->list);
-@@ -3474,6 +3477,7 @@ __cache_alloc_node(struct kmem_cache *ca
+@@ -3491,6 +3494,7 @@ __cache_alloc_node(struct kmem_cache *ca
        /* ___cache_alloc_node can fall back to other nodes */
        ptr = ____cache_alloc_node(cachep, flags, nodeid);
    out:
@@ -24059,7 +24034,7 @@ diff -NurpP --minimal linux-3.2.11/mm/slab.c linux-3.2.11-vs2.3.2.8/mm/slab.c
        local_irq_restore(save_flags);
        ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
        kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags,
-@@ -3661,6 +3665,7 @@ static inline void __cache_free(struct k
+@@ -3678,6 +3682,7 @@ static inline void __cache_free(struct k
        check_irq_off();
        kmemleak_free_recursive(objp, cachep->flags);
        objp = cache_free_debugcheck(cachep, objp, caller);
@@ -24067,9 +24042,9 @@ diff -NurpP --minimal linux-3.2.11/mm/slab.c linux-3.2.11-vs2.3.2.8/mm/slab.c
  
        kmemcheck_slab_free(cachep, objp, obj_size(cachep));
  
-diff -NurpP --minimal linux-3.2.11/mm/slab_vs.h linux-3.2.11-vs2.3.2.8/mm/slab_vs.h
---- linux-3.2.11/mm/slab_vs.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/slab_vs.h        2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/mm/slab_vs.h linux-3.3-vs2.3.3.1/mm/slab_vs.h
+--- linux-3.3/mm/slab_vs.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/slab_vs.h   2012-02-24 03:55:07.000000000 +0100
 @@ -0,0 +1,29 @@
 +
 +#include <linux/vserver/context.h>
@@ -24100,9 +24075,9 @@ diff -NurpP --minimal linux-3.2.11/mm/slab_vs.h linux-3.2.11-vs2.3.2.8/mm/slab_v
 +      atomic_sub(cachep->buffer_size, &vxi->cacct.slab[what]);
 +}
 +
-diff -NurpP --minimal linux-3.2.11/mm/swapfile.c linux-3.2.11-vs2.3.2.8/mm/swapfile.c
---- linux-3.2.11/mm/swapfile.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/mm/swapfile.c       2011-12-15 01:52:28.000000000 +0100
+diff -NurpP --minimal linux-3.3/mm/swapfile.c linux-3.3-vs2.3.3.1/mm/swapfile.c
+--- linux-3.3/mm/swapfile.c    2012-03-19 19:47:30.000000000 +0100
++++ linux-3.3-vs2.3.3.1/mm/swapfile.c  2012-02-24 03:55:07.000000000 +0100
 @@ -36,6 +36,7 @@
  #include <asm/tlbflush.h>
  #include <linux/swapops.h>
@@ -24111,7 +24086,7 @@ diff -NurpP --minimal linux-3.2.11/mm/swapfile.c linux-3.2.11-vs2.3.2.8/mm/swapf
  
  static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
                                 unsigned char);
-@@ -1753,6 +1754,16 @@ static int swap_show(struct seq_file *sw
+@@ -1754,6 +1755,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");
@@ -24128,7 +24103,7 @@ diff -NurpP --minimal linux-3.2.11/mm/swapfile.c linux-3.2.11-vs2.3.2.8/mm/swapf
                return 0;
        }
  
-@@ -2176,6 +2187,8 @@ void si_swapinfo(struct sysinfo *val)
+@@ -2177,6 +2188,8 @@ void si_swapinfo(struct sysinfo *val)
        val->freeswap = nr_swap_pages + nr_to_be_unused;
        val->totalswap = total_swap_pages + nr_to_be_unused;
        spin_unlock(&swap_lock);
@@ -24137,21 +24112,21 @@ diff -NurpP --minimal linux-3.2.11/mm/swapfile.c linux-3.2.11-vs2.3.2.8/mm/swapf
  }
  
  /*
-diff -NurpP --minimal linux-3.2.11/net/bridge/br_multicast.c linux-3.2.11-vs2.3.2.8/net/bridge/br_multicast.c
---- linux-3.2.11/net/bridge/br_multicast.c     2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/bridge/br_multicast.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/bridge/br_multicast.c linux-3.3-vs2.3.3.1/net/bridge/br_multicast.c
+--- linux-3.3/net/bridge/br_multicast.c        2012-03-19 19:47:32.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/bridge/br_multicast.c      2012-03-19 20:53:28.000000000 +0100
 @@ -447,7 +447,7 @@ static struct sk_buff *br_ip6_multicast_
        ip6h->hop_limit = 1;
        ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
-       ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
--                         &ip6h->saddr);
-+                         &ip6h->saddr, NULL);
-       ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest);
-       hopopt = (u8 *)(ip6h + 1);
-diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/core/dev.c
---- linux-3.2.11/net/core/dev.c        2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/core/dev.c      2012-03-01 21:39:38.000000000 +0100
+       if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
+-                             &ip6h->saddr)) {
++                             &ip6h->saddr, NULL)) {
+               kfree_skb(skb);
+               return NULL;
+       }
+diff -NurpP --minimal linux-3.3/net/core/dev.c linux-3.3-vs2.3.3.1/net/core/dev.c
+--- linux-3.3/net/core/dev.c   2012-03-19 19:47:32.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/core/dev.c 2012-02-24 03:55:07.000000000 +0100
 @@ -127,6 +127,7 @@
  #include <linux/in.h>
  #include <linux/jhash.h>
@@ -24160,7 +24135,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
  #include <trace/events/napi.h>
  #include <trace/events/net.h>
  #include <trace/events/skb.h>
-@@ -623,7 +624,8 @@ struct net_device *__dev_get_by_name(str
+@@ -622,7 +623,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)
@@ -24170,7 +24145,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
                        return dev;
  
        return NULL;
-@@ -649,7 +651,8 @@ struct net_device *dev_get_by_name_rcu(s
+@@ -648,7 +650,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)
@@ -24180,7 +24155,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
                        return dev;
  
        return NULL;
-@@ -700,7 +703,8 @@ struct net_device *__dev_get_by_index(st
+@@ -699,7 +702,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)
@@ -24190,7 +24165,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
                        return dev;
  
        return NULL;
-@@ -718,7 +722,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
+@@ -717,7 +721,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
   *    about locking. The caller must hold RCU lock.
   */
  
@@ -24199,7 +24174,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
  {
        struct hlist_node *p;
        struct net_device *dev;
-@@ -730,6 +734,16 @@ struct net_device *dev_get_by_index_rcu(
+@@ -729,6 +733,16 @@ struct net_device *dev_get_by_index_rcu(
  
        return NULL;
  }
@@ -24216,7 +24191,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
  EXPORT_SYMBOL(dev_get_by_index_rcu);
  
  
-@@ -778,7 +792,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
+@@ -777,7 +791,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
  
        for_each_netdev_rcu(net, dev)
                if (dev->type == type &&
@@ -24226,7 +24201,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
                        return dev;
  
        return NULL;
-@@ -790,9 +805,11 @@ struct net_device *__dev_getfirstbyhwtyp
+@@ -789,9 +804,11 @@ struct net_device *__dev_getfirstbyhwtyp
        struct net_device *dev;
  
        ASSERT_RTNL();
@@ -24240,7 +24215,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
  
        return NULL;
  }
-@@ -910,6 +927,8 @@ static int __dev_alloc_name(struct net *
+@@ -909,6 +926,8 @@ static int __dev_alloc_name(struct net *
                                continue;
                        if (i < 0 || i >= max_netdevices)
                                continue;
@@ -24249,7 +24224,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
  
                        /*  avoid cases where sscanf is not exact inverse of printf */
                        snprintf(buf, IFNAMSIZ, name, i);
-@@ -4073,6 +4092,8 @@ static int dev_ifconf(struct net *net, c
+@@ -4008,6 +4027,8 @@ static int dev_ifconf(struct net *net, c
  
        total = 0;
        for_each_netdev(net, dev) {
@@ -24258,7 +24233,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
                for (i = 0; i < NPROTO; i++) {
                        if (gifconf_list[i]) {
                                int done;
-@@ -4201,6 +4222,10 @@ static void dev_seq_printf_stats(struct 
+@@ -4136,6 +4157,10 @@ static void dev_seq_printf_stats(struct 
        struct rtnl_link_stats64 temp;
        const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
  
@@ -24269,10 +24244,10 @@ diff -NurpP --minimal linux-3.2.11/net/core/dev.c linux-3.2.11-vs2.3.2.8/net/cor
        seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
                   "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
                   dev->name, stats->rx_bytes, stats->rx_packets,
-diff -NurpP --minimal linux-3.2.11/net/core/rtnetlink.c linux-3.2.11-vs2.3.2.8/net/core/rtnetlink.c
---- linux-3.2.11/net/core/rtnetlink.c  2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/core/rtnetlink.c        2011-12-05 19:33:02.000000000 +0100
-@@ -1058,6 +1058,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
+diff -NurpP --minimal linux-3.3/net/core/rtnetlink.c linux-3.3-vs2.3.3.1/net/core/rtnetlink.c
+--- linux-3.3/net/core/rtnetlink.c     2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/core/rtnetlink.c   2012-03-19 20:52:10.000000000 +0100
+@@ -1073,6 +1073,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
                hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
                        if (idx < s_idx)
                                goto cont;
@@ -24281,21 +24256,21 @@ diff -NurpP --minimal linux-3.2.11/net/core/rtnetlink.c linux-3.2.11-vs2.3.2.8/n
                        if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
                                             NETLINK_CB(cb->skb).pid,
                                             cb->nlh->nlmsg_seq, 0,
-@@ -1907,6 +1909,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -1953,6 +1955,9 @@ void rtmsg_ifinfo(int type, struct net_d
        int err = -ENOBUFS;
        size_t if_info_size;
  
 +      if (!nx_dev_visible(current_nx_info(), dev))
 +              return;
 +
-       skb = nlmsg_new((if_info_size = if_nlmsg_size(dev)), GFP_KERNEL);
+       skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
        if (skb == NULL)
                goto errout;
-diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/core/sock.c
---- linux-3.2.11/net/core/sock.c       2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/core/sock.c     2012-01-09 16:19:31.000000000 +0100
-@@ -127,6 +127,10 @@
- #include <net/cls_cgroup.h>
+diff -NurpP --minimal linux-3.3/net/core/sock.c linux-3.3-vs2.3.3.1/net/core/sock.c
+--- linux-3.3/net/core/sock.c  2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/core/sock.c        2012-02-24 03:55:07.000000000 +0100
+@@ -130,6 +130,10 @@
+ #include <net/netprio_cgroup.h>
  
  #include <linux/filter.h>
 +#include <linux/vs_socket.h>
@@ -24305,7 +24280,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
  
  #include <trace/events/sock.h>
  
-@@ -1066,6 +1070,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1127,6 +1131,8 @@ static struct sock *sk_prot_alloc(struct
                        goto out_free_sec;
                sk_tx_queue_clear(sk);
        }
@@ -24314,7 +24289,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
  
        return sk;
  
-@@ -1165,6 +1171,11 @@ static void __sk_free(struct sock *sk)
+@@ -1235,6 +1241,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));
@@ -24326,7 +24301,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
        sk_prot_free(sk->sk_prot_creator, sk);
  }
  
-@@ -1212,6 +1223,8 @@ struct sock *sk_clone(const struct sock 
+@@ -1295,6 +1306,8 @@ struct sock *sk_clone_lock(const struct 
  
                /* SANITY */
                get_net(sock_net(newsk));
@@ -24335,7 +24310,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
                sk_node_init(&newsk->sk_node);
                sock_lock_init(newsk);
                bh_lock_sock(newsk);
-@@ -1268,6 +1281,12 @@ struct sock *sk_clone(const struct sock 
+@@ -1351,6 +1364,12 @@ struct sock *sk_clone_lock(const struct 
                smp_wmb();
                atomic_set(&newsk->sk_refcnt, 2);
  
@@ -24348,7 +24323,7 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
                /*
                 * Increment the counter in the same struct proto as the master
                 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -2014,6 +2033,12 @@ void sock_init_data(struct socket *sock,
+@@ -2102,6 +2121,12 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_stamp = ktime_set(-1L, 0);
  
@@ -24361,9 +24336,9 @@ diff -NurpP --minimal linux-3.2.11/net/core/sock.c linux-3.2.11-vs2.3.2.8/net/co
        /*
         * Before updating sk_refcnt, we must commit prior changes to memory
         * (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-3.2.11/net/ipv4/af_inet.c linux-3.2.11-vs2.3.2.8/net/ipv4/af_inet.c
---- linux-3.2.11/net/ipv4/af_inet.c    2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/af_inet.c  2012-02-15 03:03:53.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/af_inet.c linux-3.3-vs2.3.3.1/net/ipv4/af_inet.c
+--- linux-3.3/net/ipv4/af_inet.c       2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/af_inet.c     2012-02-24 03:55:07.000000000 +0100
 @@ -117,6 +117,7 @@
  #ifdef CONFIG_IP_MROUTE
  #include <linux/mroute.h>
@@ -24441,18 +24416,18 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/af_inet.c linux-3.2.11-vs2.3.2.8/net
                sin->sin_port = inet->inet_sport;
                sin->sin_addr.s_addr = addr;
        }
-diff -NurpP --minimal linux-3.2.11/net/ipv4/arp.c linux-3.2.11-vs2.3.2.8/net/ipv4/arp.c
---- linux-3.2.11/net/ipv4/arp.c        2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/arp.c      2012-03-01 21:39:38.000000000 +0100
-@@ -1333,6 +1333,7 @@ static void arp_format_neigh_entry(struc
+diff -NurpP --minimal linux-3.3/net/ipv4/arp.c linux-3.3-vs2.3.3.1/net/ipv4/arp.c
+--- linux-3.3/net/ipv4/arp.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/arp.c 2012-02-24 03:55:07.000000000 +0100
+@@ -1329,6 +1329,7 @@ static void arp_format_neigh_entry(struc
        struct net_device *dev = n->dev;
        int hatype = dev->type;
  
 +      /* FIXME: check for network context */
        read_lock(&n->lock);
        /* Convert hardware address to XX:XX:XX:XX ... form. */
- #if defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
-@@ -1364,6 +1365,7 @@ static void arp_format_pneigh_entry(stru
+ #if IS_ENABLED(CONFIG_AX25)
+@@ -1360,6 +1361,7 @@ static void arp_format_pneigh_entry(stru
        int hatype = dev ? dev->type : 0;
        char tbuf[16];
  
@@ -24460,9 +24435,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/arp.c linux-3.2.11-vs2.3.2.8/net/ipv
        sprintf(tbuf, "%pI4", n->key);
        seq_printf(seq, "%-16s 0x%-10x0x%-10x%s     *        %s\n",
                   tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00",
-diff -NurpP --minimal linux-3.2.11/net/ipv4/devinet.c linux-3.2.11-vs2.3.2.8/net/ipv4/devinet.c
---- linux-3.2.11/net/ipv4/devinet.c    2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/devinet.c  2012-02-07 03:14:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/devinet.c linux-3.3-vs2.3.3.1/net/ipv4/devinet.c
+--- linux-3.3/net/ipv4/devinet.c       2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/devinet.c     2012-02-24 03:55:07.000000000 +0100
 @@ -518,6 +518,7 @@ struct in_device *inetdev_by_index(struc
  }
  EXPORT_SYMBOL(inetdev_by_index);
@@ -24529,10 +24504,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/devinet.c linux-3.2.11-vs2.3.2.8/net
                                if (ip_idx < s_ip_idx)
                                        continue;
                                if (inet_fill_ifaddr(skb, ifa,
-diff -NurpP --minimal linux-3.2.11/net/ipv4/fib_trie.c linux-3.2.11-vs2.3.2.8/net/ipv4/fib_trie.c
---- linux-3.2.11/net/ipv4/fib_trie.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/fib_trie.c 2012-02-07 03:14:01.000000000 +0100
-@@ -2555,6 +2555,7 @@ static int fib_route_seq_show(struct seq
+diff -NurpP --minimal linux-3.3/net/ipv4/fib_trie.c linux-3.3-vs2.3.3.1/net/ipv4/fib_trie.c
+--- linux-3.3/net/ipv4/fib_trie.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/fib_trie.c    2012-02-24 03:55:07.000000000 +0100
+@@ -2556,6 +2556,7 @@ static int fib_route_seq_show(struct seq
                            || fa->fa_type == RTN_MULTICAST)
                                continue;
  
@@ -24540,9 +24515,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/fib_trie.c linux-3.2.11-vs2.3.2.8/ne
                        if (fi)
                                seq_printf(seq,
                                         "%s\t%08X\t%08X\t%04X\t%d\t%u\t"
-diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_connection_sock.c linux-3.2.11-vs2.3.2.8/net/ipv4/inet_connection_sock.c
---- linux-3.2.11/net/ipv4/inet_connection_sock.c       2011-07-22 11:18:13.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/inet_connection_sock.c     2012-02-07 03:13:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/inet_connection_sock.c linux-3.3-vs2.3.3.1/net/ipv4/inet_connection_sock.c
+--- linux-3.3/net/ipv4/inet_connection_sock.c  2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/inet_connection_sock.c        2012-02-24 03:55:07.000000000 +0100
 @@ -52,6 +52,37 @@ void inet_get_local_port_range(int *low,
  }
  EXPORT_SYMBOL(inet_get_local_port_range);
@@ -24592,19 +24567,19 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_connection_sock.c linux-3.2.11-
                                        break;
                        }
                }
-diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/net/ipv4/inet_diag.c
---- linux-3.2.11/net/ipv4/inet_diag.c  2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/inet_diag.c        2012-02-15 03:03:53.000000000 +0100
-@@ -33,6 +33,8 @@
- #include <linux/stddef.h>
+diff -NurpP --minimal linux-3.3/net/ipv4/inet_diag.c linux-3.3-vs2.3.3.1/net/ipv4/inet_diag.c
+--- linux-3.3/net/ipv4/inet_diag.c     2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/inet_diag.c   2012-02-24 04:26:38.000000000 +0100
+@@ -31,6 +31,8 @@
  
- #include <linux/inet_diag.h>
+ #include <linux/inet.h>
+ #include <linux/stddef.h>
 +#include <linux/vs_network.h>
 +#include <linux/vs_inet.h>
  
- static const struct inet_diag_handler **inet_diag_table;
-@@ -119,8 +121,10 @@ static int inet_csk_diag_fill(struct soc
+ #include <linux/inet_diag.h>
+ #include <linux/sock_diag.h>
+@@ -106,8 +108,10 @@ int inet_sk_diag_fill(struct sock *sk, s
  
        r->id.idiag_sport = inet->inet_sport;
        r->id.idiag_dport = inet->inet_dport;
@@ -24617,8 +24592,8 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
  
        /* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
         * hence this needs to be included regardless of socket family.
-@@ -214,8 +218,8 @@ static int inet_twsk_diag_fill(struct in
-       r->id.idiag_cookie[1] = (u32)(((unsigned long)tw >> 31) >> 1);
+@@ -227,8 +231,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;
 -      r->id.idiag_src[0]    = tw->tw_rcv_saddr;
@@ -24628,23 +24603,30 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
        r->idiag_state        = tw->tw_substate;
        r->idiag_timer        = 3;
        r->idiag_expires      = DIV_ROUND_UP(tmo * 1000, HZ);
-@@ -272,6 +276,7 @@ static int inet_diag_get_exact(struct sk
-       err = -EINVAL;
+@@ -272,12 +276,14 @@ int inet_diag_dump_one_icsk(struct inet_
  
-       if (req->idiag_family == AF_INET) {
+       err = -EINVAL;
+       if (req->sdiag_family == AF_INET) {
 +              /* TODO: lback */
                sk = inet_lookup(&init_net, hashinfo, req->id.idiag_dst[0],
                                 req->id.idiag_dport, req->id.idiag_src[0],
                                 req->id.idiag_sport, req->id.idiag_if);
-@@ -514,6 +519,7 @@ static int inet_csk_diag_dump(struct soc
-               } else
+       }
+ #if IS_ENABLED(CONFIG_IPV6)
+       else if (req->sdiag_family == AF_INET6) {
++              /* TODO: lback */
+               sk = inet6_lookup(&init_net, hashinfo,
+                                 (struct in6_addr *)req->id.idiag_dst,
+                                 req->id.idiag_dport,
+@@ -472,6 +478,7 @@ int inet_diag_bc_sk(const struct nlattr 
+       } else
  #endif
-               {
+       {
 +                      /* TODO: lback */
-                       entry.saddr = &inet->inet_rcv_saddr;
-                       entry.daddr = &inet->inet_daddr;
-               }
-@@ -552,6 +558,7 @@ static int inet_twsk_diag_dump(struct in
+               entry.saddr = &inet->inet_rcv_saddr;
+               entry.daddr = &inet->inet_daddr;
+       }
+@@ -570,6 +577,7 @@ static int inet_twsk_diag_dump(struct in
                } else
  #endif
                {
@@ -24652,7 +24634,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
                        entry.saddr = &tw->tw_rcv_saddr;
                        entry.daddr = &tw->tw_daddr;
                }
-@@ -598,8 +605,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -615,8 +623,8 @@ static int inet_diag_fill_req(struct sk_
  
        r->id.idiag_sport = inet->inet_sport;
        r->id.idiag_dport = ireq->rmt_port;
@@ -24663,15 +24645,15 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
        r->idiag_expires = jiffies_to_msecs(tmo);
        r->idiag_rqueue = 0;
        r->idiag_wqueue = 0;
-@@ -670,6 +677,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -683,6 +691,7 @@ static int inet_diag_dump_reqs(struct sk
                                continue;
  
                        if (bc) {
 +                              /* TODO: lback */
                                entry.saddr =
- #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
+ #if IS_ENABLED(CONFIG_IPV6)
                                        (entry.family == AF_INET6) ?
-@@ -740,6 +748,8 @@ static int inet_diag_dump(struct sk_buff
+@@ -744,6 +753,8 @@ void inet_diag_dump_icsk(struct inet_has
                        sk_nulls_for_each(sk, node, &ilb->head) {
                                struct inet_sock *inet = inet_sk(sk);
  
@@ -24680,7 +24662,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
                                if (num < s_num) {
                                        num++;
                                        continue;
-@@ -806,6 +816,8 @@ skip_listen_ht:
+@@ -814,6 +825,8 @@ skip_listen_ht:
                sk_nulls_for_each(sk, node, &head->chain) {
                        struct inet_sock *inet = inet_sk(sk);
  
@@ -24689,7 +24671,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
                        if (num < s_num)
                                goto next_normal;
                        if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -830,6 +842,8 @@ next_normal:
+@@ -841,6 +854,8 @@ next_normal:
                        inet_twsk_for_each(tw, node,
                                    &head->twchain) {
  
@@ -24697,10 +24679,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_diag.c linux-3.2.11-vs2.3.2.8/n
 +                                      continue;
                                if (num < s_num)
                                        goto next_dying;
-                               if (r->id.idiag_sport != tw->tw_sport &&
-diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_hashtables.c linux-3.2.11-vs2.3.2.8/net/ipv4/inet_hashtables.c
---- linux-3.2.11/net/ipv4/inet_hashtables.c    2011-10-24 18:45:34.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/inet_hashtables.c  2011-12-05 19:33:02.000000000 +0100
+                               if (r->sdiag_family != AF_UNSPEC &&
+diff -NurpP --minimal linux-3.3/net/ipv4/inet_hashtables.c linux-3.3-vs2.3.3.1/net/ipv4/inet_hashtables.c
+--- linux-3.3/net/ipv4/inet_hashtables.c       2011-10-24 18:45:34.000000000 +0200
++++ linux-3.3-vs2.3.3.1/net/ipv4/inet_hashtables.c     2012-02-24 03:55:07.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <net/inet_connection_sock.h>
  #include <net/inet_hashtables.h>
@@ -24737,9 +24719,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/inet_hashtables.c linux-3.2.11-vs2.3
        /*
         * if the nulls value we got at the end of this lookup is
         * not the expected one, we must restart lookup.
-diff -NurpP --minimal linux-3.2.11/net/ipv4/netfilter/nf_nat_helper.c linux-3.2.11-vs2.3.2.8/net/ipv4/netfilter/nf_nat_helper.c
---- linux-3.2.11/net/ipv4/netfilter/nf_nat_helper.c    2011-07-22 11:18:13.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/netfilter/nf_nat_helper.c  2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/netfilter/nf_nat_helper.c linux-3.3-vs2.3.3.1/net/ipv4/netfilter/nf_nat_helper.c
+--- linux-3.3/net/ipv4/netfilter/nf_nat_helper.c       2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/netfilter/nf_nat_helper.c     2012-02-24 03:55:07.000000000 +0100
 @@ -20,6 +20,7 @@
  #include <net/route.h>
  
@@ -24748,9 +24730,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/netfilter/nf_nat_helper.c linux-3.2.
  #include <net/netfilter/nf_conntrack.h>
  #include <net/netfilter/nf_conntrack_helper.h>
  #include <net/netfilter/nf_conntrack_ecache.h>
-diff -NurpP --minimal linux-3.2.11/net/ipv4/netfilter.c linux-3.2.11-vs2.3.2.8/net/ipv4/netfilter.c
---- linux-3.2.11/net/ipv4/netfilter.c  2012-01-09 16:15:03.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/netfilter.c        2012-02-07 03:13:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/netfilter.c linux-3.3-vs2.3.3.1/net/ipv4/netfilter.c
+--- linux-3.3/net/ipv4/netfilter.c     2012-01-09 16:15:03.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/netfilter.c   2012-02-24 03:55:07.000000000 +0100
 @@ -6,7 +6,7 @@
  #include <linux/skbuff.h>
  #include <linux/gfp.h>
@@ -24760,9 +24742,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/netfilter.c linux-3.2.11-vs2.3.2.8/n
  #include <net/xfrm.h>
  #include <net/ip.h>
  #include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv4/raw.c
---- linux-3.2.11/net/ipv4/raw.c        2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/raw.c      2012-02-15 03:03:53.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/raw.c linux-3.3-vs2.3.3.1/net/ipv4/raw.c
+--- linux-3.3/net/ipv4/raw.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/raw.c 2012-02-24 03:55:07.000000000 +0100
 @@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru
  
                if (net_eq(sock_net(sk), net) && inet->inet_num == num  &&
@@ -24772,7 +24754,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
                    !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif))
                        goto found; /* gotcha */
        }
-@@ -386,6 +386,12 @@ static int raw_send_hdrinc(struct sock *
+@@ -390,6 +390,12 @@ static int raw_send_hdrinc(struct sock *
                icmp_out_count(net, ((struct icmphdr *)
                        skb_transport_header(skb))->type);
  
@@ -24785,7 +24767,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
        err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL,
                      rt->dst.dev, dst_output);
        if (err > 0)
-@@ -573,6 +579,16 @@ static int raw_sendmsg(struct kiocb *ioc
+@@ -577,6 +583,16 @@ static int raw_sendmsg(struct kiocb *ioc
                        goto done;
        }
  
@@ -24802,7 +24784,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
        security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
        rt = ip_route_output_flow(sock_net(sk), &fl4, sk);
        if (IS_ERR(rt)) {
-@@ -649,17 +665,19 @@ static int raw_bind(struct sock *sk, str
+@@ -653,17 +669,19 @@ static int raw_bind(struct sock *sk, str
  {
        struct inet_sock *inet = inet_sk(sk);
        struct sockaddr_in *addr = (struct sockaddr_in *) uaddr;
@@ -24825,7 +24807,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
        if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
                inet->inet_saddr = 0;  /* Use device */
        sk_dst_reset(sk);
-@@ -711,7 +729,8 @@ static int raw_recvmsg(struct kiocb *ioc
+@@ -715,7 +733,8 @@ static int raw_recvmsg(struct kiocb *ioc
        /* Copy the address. */
        if (sin) {
                sin->sin_family = AF_INET;
@@ -24835,7 +24817,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
                sin->sin_port = 0;
                memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
-@@ -907,7 +926,8 @@ static struct sock *raw_get_first(struct
+@@ -911,7 +930,8 @@ static struct sock *raw_get_first(struct
                struct hlist_node *node;
  
                sk_for_each(sk, node, &state->h->ht[state->bucket])
@@ -24845,7 +24827,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
                                goto found;
        }
        sk = NULL;
-@@ -923,7 +943,8 @@ static struct sock *raw_get_next(struct 
+@@ -927,7 +947,8 @@ static struct sock *raw_get_next(struct 
                sk = sk_next(sk);
  try_again:
                ;
@@ -24855,10 +24837,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
  
        if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
                sk = sk_head(&state->h->ht[state->bucket]);
-diff -NurpP --minimal linux-3.2.11/net/ipv4/route.c linux-3.2.11-vs2.3.2.8/net/ipv4/route.c
---- linux-3.2.11/net/ipv4/route.c      2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/route.c    2012-02-07 03:13:38.000000000 +0100
-@@ -2709,7 +2709,7 @@ static struct rtable *ip_route_output_sl
+diff -NurpP --minimal linux-3.3/net/ipv4/route.c linux-3.3-vs2.3.3.1/net/ipv4/route.c
+--- linux-3.3/net/ipv4/route.c 2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/route.c       2012-03-19 20:52:10.000000000 +0100
+@@ -2697,7 +2697,7 @@ static struct rtable *ip_route_output_sl
  
  
        if (fl4->flowi4_oif) {
@@ -24867,9 +24849,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/route.c linux-3.2.11-vs2.3.2.8/net/i
                rth = ERR_PTR(-ENODEV);
                if (dev_out == NULL)
                        goto out;
-diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp.c linux-3.2.11-vs2.3.2.8/net/ipv4/tcp.c
---- linux-3.2.11/net/ipv4/tcp.c        2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/tcp.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/tcp.c linux-3.3-vs2.3.3.1/net/ipv4/tcp.c
+--- linux-3.3/net/ipv4/tcp.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/tcp.c 2012-03-19 20:52:10.000000000 +0100
 @@ -266,6 +266,7 @@
  #include <linux/crypto.h>
  #include <linux/time.h>
@@ -24878,10 +24860,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp.c linux-3.2.11-vs2.3.2.8/net/ipv
  
  #include <net/icmp.h>
  #include <net/tcp.h>
-diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/net/ipv4/tcp_ipv4.c
---- linux-3.2.11/net/ipv4/tcp_ipv4.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/tcp_ipv4.c 2012-03-01 21:39:38.000000000 +0100
-@@ -2028,6 +2028,12 @@ static void *listening_get_next(struct s
+diff -NurpP --minimal linux-3.3/net/ipv4/tcp_ipv4.c linux-3.3-vs2.3.3.1/net/ipv4/tcp_ipv4.c
+--- linux-3.3/net/ipv4/tcp_ipv4.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/tcp_ipv4.c    2012-03-19 20:52:10.000000000 +0100
+@@ -2036,6 +2036,12 @@ static void *listening_get_next(struct s
                req = req->dl_next;
                while (1) {
                        while (req) {
@@ -24894,7 +24876,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                                if (req->rsk_ops->family == st->family) {
                                        cur = req;
                                        goto out;
-@@ -2052,6 +2058,10 @@ get_req:
+@@ -2060,6 +2066,10 @@ get_req:
        }
  get_sk:
        sk_nulls_for_each_from(sk, node) {
@@ -24905,7 +24887,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                if (!net_eq(sock_net(sk), net))
                        continue;
                if (sk->sk_family == st->family) {
-@@ -2128,6 +2138,11 @@ static void *established_get_first(struc
+@@ -2136,6 +2146,11 @@ static void *established_get_first(struc
  
                spin_lock_bh(lock);
                sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -24917,7 +24899,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                        if (sk->sk_family != st->family ||
                            !net_eq(sock_net(sk), net)) {
                                continue;
-@@ -2138,6 +2153,11 @@ static void *established_get_first(struc
+@@ -2146,6 +2161,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) {
@@ -24929,7 +24911,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                        if (tw->tw_family != st->family ||
                            !net_eq(twsk_net(tw), net)) {
                                continue;
-@@ -2167,7 +2187,9 @@ static void *established_get_next(struct
+@@ -2175,7 +2195,9 @@ static void *established_get_next(struct
                tw = cur;
                tw = tw_next(tw);
  get_tw:
@@ -24940,7 +24922,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                        tw = tw_next(tw);
                }
                if (tw) {
-@@ -2191,6 +2213,11 @@ get_tw:
+@@ -2199,6 +2221,11 @@ get_tw:
                sk = sk_nulls_next(sk);
  
        sk_nulls_for_each_from(sk, node) {
@@ -24952,7 +24934,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
                        goto found;
        }
-@@ -2396,9 +2423,9 @@ static void get_openreq4(const struct so
+@@ -2404,9 +2431,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,
@@ -24964,7 +24946,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
                ntohs(ireq->rmt_port),
                TCP_SYN_RECV,
                0, 0, /* could print option size, but that is af dependent. */
-@@ -2420,8 +2447,8 @@ static void get_tcp4_sock(struct sock *s
+@@ -2428,8 +2455,8 @@ static void get_tcp4_sock(struct sock *s
        const struct tcp_sock *tp = tcp_sk(sk);
        const struct inet_connection_sock *icsk = inet_csk(sk);
        const struct inet_sock *inet = inet_sk(sk);
@@ -24975,7 +24957,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
        __u16 destp = ntohs(inet->inet_dport);
        __u16 srcp = ntohs(inet->inet_sport);
        int rx_queue;
-@@ -2478,8 +2505,8 @@ static void get_timewait4_sock(const str
+@@ -2486,8 +2513,8 @@ static void get_timewait4_sock(const str
        if (ttd < 0)
                ttd = 0;
  
@@ -24986,9 +24968,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_ipv4.c linux-3.2.11-vs2.3.2.8/ne
        destp = ntohs(tw->tw_dport);
        srcp  = ntohs(tw->tw_sport);
  
-diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_minisocks.c linux-3.2.11-vs2.3.2.8/net/ipv4/tcp_minisocks.c
---- linux-3.2.11/net/ipv4/tcp_minisocks.c      2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/tcp_minisocks.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/tcp_minisocks.c linux-3.3-vs2.3.3.1/net/ipv4/tcp_minisocks.c
+--- linux-3.3/net/ipv4/tcp_minisocks.c 2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/tcp_minisocks.c       2012-02-24 04:25:11.000000000 +0100
 @@ -23,6 +23,9 @@
  #include <linux/slab.h>
  #include <linux/sysctl.h>
@@ -25008,12 +24990,12 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/tcp_minisocks.c linux-3.2.11-vs2.3.2
 +              tw->tw_nid              = sk->sk_nid;
 +              tw->tw_nx_info          = NULL;
 +
- #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+ #if IS_ENABLED(CONFIG_IPV6)
                if (tw->tw_family == PF_INET6) {
                        struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv4/udp.c
---- linux-3.2.11/net/ipv4/udp.c        2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv4/udp.c      2012-02-15 03:03:53.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv4/udp.c linux-3.3-vs2.3.3.1/net/ipv4/udp.c
+--- linux-3.3/net/ipv4/udp.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv4/udp.c 2012-02-24 03:55:07.000000000 +0100
 @@ -297,14 +297,7 @@ fail:
  }
  EXPORT_SYMBOL(udp_lib_get_port);
@@ -25078,7 +25060,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
        rcu_read_unlock();
        return result;
  }
-@@ -551,8 +557,7 @@ static inline struct sock *udp_v4_mcast_
+@@ -552,8 +558,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) ||
@@ -25088,7 +25070,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
                    ipv6_only_sock(s) ||
                    (s->sk_bound_dev_if && s->sk_bound_dev_if != dif))
                        continue;
-@@ -930,6 +935,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
+@@ -931,6 +936,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
                                   inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP,
                                   faddr, saddr, dport, inet->inet_sport);
  
@@ -25105,7 +25087,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
                security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
                rt = ip_route_output_flow(net, fl4, sk);
                if (IS_ERR(rt)) {
-@@ -1228,7 +1243,8 @@ try_again:
+@@ -1229,7 +1244,8 @@ try_again:
        if (sin) {
                sin->sin_family = AF_INET;
                sin->sin_port = udp_hdr(skb)->source;
@@ -25115,7 +25097,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
                memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
        if (inet->cmsg_flags)
-@@ -1974,6 +1990,8 @@ static struct sock *udp_get_first(struct
+@@ -1976,6 +1992,8 @@ static struct sock *udp_get_first(struct
                sk_nulls_for_each(sk, node, &hslot->head) {
                        if (!net_eq(sock_net(sk), net))
                                continue;
@@ -25124,7 +25106,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
                        if (sk->sk_family == state->family)
                                goto found;
                }
-@@ -1991,7 +2009,9 @@ static struct sock *udp_get_next(struct 
+@@ -1993,7 +2011,9 @@ static struct sock *udp_get_next(struct 
  
        do {
                sk = sk_nulls_next(sk);
@@ -25135,9 +25117,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv4/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
  
        if (!sk) {
                if (state->bucket <= state->udp_table->mask)
-diff -NurpP --minimal linux-3.2.11/net/ipv6/Kconfig linux-3.2.11-vs2.3.2.8/net/ipv6/Kconfig
---- linux-3.2.11/net/ipv6/Kconfig      2010-08-02 16:52:59.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/Kconfig    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/Kconfig linux-3.3-vs2.3.3.1/net/ipv6/Kconfig
+--- linux-3.3/net/ipv6/Kconfig 2010-08-02 16:52:59.000000000 +0200
++++ linux-3.3-vs2.3.3.1/net/ipv6/Kconfig       2012-02-24 03:55:07.000000000 +0100
 @@ -4,8 +4,8 @@
  
  #   IPv6 as module will cause a CRASH if you try to unload it
@@ -25149,9 +25131,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/Kconfig linux-3.2.11-vs2.3.2.8/net/i
        ---help---
          This is complemental support for the IP version 6.
          You will still be able to do traditional IPv4 networking as well.
-diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/net/ipv6/addrconf.c
---- linux-3.2.11/net/ipv6/addrconf.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/addrconf.c 2012-02-07 03:14:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/addrconf.c linux-3.3-vs2.3.3.1/net/ipv6/addrconf.c
+--- linux-3.3/net/ipv6/addrconf.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/addrconf.c    2012-03-19 20:52:10.000000000 +0100
 @@ -88,6 +88,8 @@
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
@@ -25161,7 +25143,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
  
  /* Set to 3 to get tracing... */
  #define ACONF_DEBUG 2
-@@ -1109,7 +1111,7 @@ out:
+@@ -1105,7 +1107,7 @@ out:
  
  int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
                       const struct in6_addr *daddr, unsigned int prefs,
@@ -25170,7 +25152,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
  {
        struct ipv6_saddr_score scores[2],
                                *score = &scores[0], *hiscore = &scores[1];
-@@ -1181,6 +1183,8 @@ int ipv6_dev_get_saddr(struct net *net, 
+@@ -1177,6 +1179,8 @@ int ipv6_dev_get_saddr(struct net *net, 
                                               dev->name);
                                continue;
                        }
@@ -25179,7 +25161,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
  
                        score->rule = -1;
                        bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -3153,7 +3157,10 @@ static void if6_seq_stop(struct seq_file
+@@ -3162,7 +3166,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;
@@ -25191,7 +25173,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
                   &ifp->addr,
                   ifp->idev->dev->ifindex,
                   ifp->prefix_len,
-@@ -3659,6 +3666,11 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3668,6 +3675,11 @@ static int in6_dump_addrs(struct inet6_d
        struct ifacaddr6 *ifaca;
        int err = 1;
        int ip_idx = *p_ip_idx;
@@ -25203,7 +25185,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
  
        read_lock_bh(&idev->lock);
        switch (type) {
-@@ -3669,6 +3681,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3678,6 +3690,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;
@@ -25212,7 +25194,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
                        err = inet6_fill_ifaddr(skb, ifa,
                                                NETLINK_CB(cb->skb).pid,
                                                cb->nlh->nlmsg_seq,
-@@ -3685,6 +3699,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3694,6 +3708,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifmca = ifmca->next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
@@ -25221,7 +25203,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
                        err = inet6_fill_ifmcaddr(skb, ifmca,
                                                  NETLINK_CB(cb->skb).pid,
                                                  cb->nlh->nlmsg_seq,
-@@ -3700,6 +3716,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3709,6 +3725,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifaca = ifaca->aca_next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
@@ -25230,7 +25212,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
                        err = inet6_fill_ifacaddr(skb, ifaca,
                                                  NETLINK_CB(cb->skb).pid,
                                                  cb->nlh->nlmsg_seq,
-@@ -4085,6 +4103,11 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4094,6 +4112,11 @@ static int inet6_dump_ifinfo(struct sk_b
        struct inet6_dev *idev;
        struct hlist_head *head;
        struct hlist_node *node;
@@ -25242,7 +25224,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
  
        s_h = cb->args[0];
        s_idx = cb->args[1];
-@@ -4096,6 +4119,8 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4105,6 +4128,8 @@ static int inet6_dump_ifinfo(struct sk_b
                hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
                        if (idx < s_idx)
                                goto cont;
@@ -25251,9 +25233,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/addrconf.c linux-3.2.11-vs2.3.2.8/ne
                        idev = __in6_dev_get(dev);
                        if (!idev)
                                goto cont;
-diff -NurpP --minimal linux-3.2.11/net/ipv6/af_inet6.c linux-3.2.11-vs2.3.2.8/net/ipv6/af_inet6.c
---- linux-3.2.11/net/ipv6/af_inet6.c   2011-10-24 18:45:34.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/af_inet6.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/af_inet6.c linux-3.3-vs2.3.3.1/net/ipv6/af_inet6.c
+--- linux-3.3/net/ipv6/af_inet6.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/af_inet6.c    2012-02-24 04:23:27.000000000 +0100
 @@ -42,6 +42,8 @@
  #include <linux/netdevice.h>
  #include <linux/icmpv6.h>
@@ -25340,18 +25322,18 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/af_inet6.c linux-3.2.11-vs2.3.2.8/ne
 @@ -459,9 +482,11 @@ int inet6_getname(struct socket *sock, s
                        return -ENOTCONN;
                sin->sin6_port = inet->inet_dport;
-               ipv6_addr_copy(&sin->sin6_addr, &np->daddr);
+               sin->sin6_addr = np->daddr;
 +              /* FIXME: remap lback? */
                if (np->sndflow)
                        sin->sin6_flowinfo = np->flow_label;
        } else {
 +              /* FIXME: remap lback? */
                if (ipv6_addr_any(&np->rcv_saddr))
-                       ipv6_addr_copy(&sin->sin6_addr, &np->saddr);
+                       sin->sin6_addr = np->saddr;
                else
-diff -NurpP --minimal linux-3.2.11/net/ipv6/datagram.c linux-3.2.11-vs2.3.2.8/net/ipv6/datagram.c
---- linux-3.2.11/net/ipv6/datagram.c   2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/datagram.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/datagram.c linux-3.3-vs2.3.3.1/net/ipv6/datagram.c
+--- linux-3.3/net/ipv6/datagram.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/datagram.c    2012-02-24 03:55:07.000000000 +0100
 @@ -642,7 +642,7 @@ int datagram_send_ctl(struct net *net, s
  
                        rcu_read_lock();
@@ -25361,9 +25343,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/datagram.c linux-3.2.11-vs2.3.2.8/ne
                                if (!dev) {
                                        rcu_read_unlock();
                                        return -ENODEV;
-diff -NurpP --minimal linux-3.2.11/net/ipv6/fib6_rules.c linux-3.2.11-vs2.3.2.8/net/ipv6/fib6_rules.c
---- linux-3.2.11/net/ipv6/fib6_rules.c 2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/fib6_rules.c       2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/fib6_rules.c linux-3.3-vs2.3.3.1/net/ipv6/fib6_rules.c
+--- linux-3.3/net/ipv6/fib6_rules.c    2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/fib6_rules.c  2012-02-24 03:55:07.000000000 +0100
 @@ -91,7 +91,7 @@ static int fib6_rule_action(struct fib_r
                                               ip6_dst_idev(&rt->dst)->dev,
                                               &flp6->daddr,
@@ -25373,9 +25355,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/fib6_rules.c linux-3.2.11-vs2.3.2.8/
                                goto again;
                        if (!ipv6_prefix_equal(&saddr, &r->src.addr,
                                               r->src.plen))
-diff -NurpP --minimal linux-3.2.11/net/ipv6/inet6_hashtables.c linux-3.2.11-vs2.3.2.8/net/ipv6/inet6_hashtables.c
---- linux-3.2.11/net/ipv6/inet6_hashtables.c   2011-10-24 18:45:34.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/inet6_hashtables.c 2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/inet6_hashtables.c linux-3.3-vs2.3.3.1/net/ipv6/inet6_hashtables.c
+--- linux-3.3/net/ipv6/inet6_hashtables.c      2011-10-24 18:45:34.000000000 +0200
++++ linux-3.3-vs2.3.3.1/net/ipv6/inet6_hashtables.c    2012-02-24 03:55:07.000000000 +0100
 @@ -16,6 +16,7 @@
  
  #include <linux/module.h>
@@ -25411,10 +25393,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/inet6_hashtables.c linux-3.2.11-vs2.
                }
                if (sk->sk_bound_dev_if) {
                        if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-3.2.11/net/ipv6/ip6_output.c linux-3.2.11-vs2.3.2.8/net/ipv6/ip6_output.c
---- linux-3.2.11/net/ipv6/ip6_output.c 2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/ip6_output.c       2012-01-09 16:19:31.000000000 +0100
-@@ -963,7 +963,8 @@ static int ip6_dst_lookup_tail(struct so
+diff -NurpP --minimal linux-3.3/net/ipv6/ip6_output.c linux-3.3-vs2.3.3.1/net/ipv6/ip6_output.c
+--- linux-3.3/net/ipv6/ip6_output.c    2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/ip6_output.c  2012-02-24 03:55:07.000000000 +0100
+@@ -968,7 +968,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,
@@ -25424,10 +25406,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/ip6_output.c linux-3.2.11-vs2.3.2.8/
                if (err)
                        goto out_err_release;
        }
-diff -NurpP --minimal linux-3.2.11/net/ipv6/ndisc.c linux-3.2.11-vs2.3.2.8/net/ipv6/ndisc.c
---- linux-3.2.11/net/ipv6/ndisc.c      2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/ndisc.c    2011-12-15 01:11:37.000000000 +0100
-@@ -588,7 +588,7 @@ static void ndisc_send_na(struct net_dev
+diff -NurpP --minimal linux-3.3/net/ipv6/ndisc.c linux-3.3-vs2.3.3.1/net/ipv6/ndisc.c
+--- linux-3.3/net/ipv6/ndisc.c 2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/ndisc.c       2012-03-19 20:52:10.000000000 +0100
+@@ -575,7 +575,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,
@@ -25436,9 +25418,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/ndisc.c linux-3.2.11-vs2.3.2.8/net/i
                        return;
                src_addr = &tmpaddr;
        }
-diff -NurpP --minimal linux-3.2.11/net/ipv6/raw.c linux-3.2.11-vs2.3.2.8/net/ipv6/raw.c
---- linux-3.2.11/net/ipv6/raw.c        2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/raw.c      2012-02-07 03:14:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/raw.c linux-3.3-vs2.3.3.1/net/ipv6/raw.c
+--- linux-3.3/net/ipv6/raw.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/raw.c 2012-02-24 03:55:07.000000000 +0100
 @@ -30,6 +30,7 @@
  #include <linux/icmpv6.h>
  #include <linux/netfilter.h>
@@ -25461,9 +25443,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/raw.c linux-3.2.11-vs2.3.2.8/net/ipv
                /* ipv4 addr of the socket is invalid.  Only the
                 * unspecified and mapped address have a v4 equivalent.
                 */
-diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/ipv6/route.c
---- linux-3.2.11/net/ipv6/route.c      2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/route.c    2012-01-09 16:19:31.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/route.c linux-3.3-vs2.3.3.1/net/ipv6/route.c
+--- linux-3.3/net/ipv6/route.c 2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/route.c       2012-03-19 20:52:10.000000000 +0100
 @@ -55,6 +55,7 @@
  #include <net/xfrm.h>
  #include <net/netevent.h>
@@ -25472,7 +25454,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/i
  
  #include <asm/uaccess.h>
  
-@@ -2093,15 +2094,17 @@ int ip6_route_get_saddr(struct net *net,
+@@ -2107,15 +2108,17 @@ int ip6_route_get_saddr(struct net *net,
                        struct rt6_info *rt,
                        const struct in6_addr *daddr,
                        unsigned int prefs,
@@ -25485,7 +25467,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/i
 -      if (rt->rt6i_prefsrc.plen)
 +      if (rt->rt6i_prefsrc.plen && (!nxi ||
 +          v6_addr_in_nx_info(nxi, &rt->rt6i_prefsrc.addr, NXA_TYPE_ADDR)))
-               ipv6_addr_copy(saddr, &rt->rt6i_prefsrc.addr);
+               *saddr = rt->rt6i_prefsrc.addr;
        else
                err = ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,
 -                                       daddr, prefs, saddr);
@@ -25493,7 +25475,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/i
        return err;
  }
  
-@@ -2431,7 +2434,8 @@ static int rt6_fill_node(struct net *net
+@@ -2446,7 +2449,8 @@ static int rt6_fill_node(struct net *net
                        NLA_PUT_U32(skb, RTA_IIF, iif);
        } else if (dst) {
                struct in6_addr saddr_buf;
@@ -25503,7 +25485,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/i
                        NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
        }
  
-@@ -2634,6 +2638,7 @@ static int rt6_info_route(struct rt6_inf
+@@ -2656,6 +2660,7 @@ static int rt6_info_route(struct rt6_inf
        struct seq_file *m = p_arg;
        struct neighbour *n;
  
@@ -25511,10 +25493,10 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/route.c linux-3.2.11-vs2.3.2.8/net/i
        seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
  
  #ifdef CONFIG_IPV6_SUBTREES
-diff -NurpP --minimal linux-3.2.11/net/ipv6/tcp_ipv6.c linux-3.2.11-vs2.3.2.8/net/ipv6/tcp_ipv6.c
---- linux-3.2.11/net/ipv6/tcp_ipv6.c   2012-03-14 10:22:15.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/tcp_ipv6.c 2012-02-07 03:14:01.000000000 +0100
-@@ -70,6 +70,7 @@
+diff -NurpP --minimal linux-3.3/net/ipv6/tcp_ipv6.c linux-3.3-vs2.3.3.1/net/ipv6/tcp_ipv6.c
+--- linux-3.3/net/ipv6/tcp_ipv6.c      2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/tcp_ipv6.c    2012-02-24 03:55:07.000000000 +0100
+@@ -71,6 +71,7 @@
  
  #include <linux/crypto.h>
  #include <linux/scatterlist.h>
@@ -25522,7 +25504,7 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/tcp_ipv6.c linux-3.2.11-vs2.3.2.8/ne
  
  static void   tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb);
  static void   tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
-@@ -162,8 +163,15 @@ static int tcp_v6_connect(struct sock *s
+@@ -163,8 +164,15 @@ static int tcp_v6_connect(struct sock *s
         *      connect() to INADDR_ANY means loopback (BSD'ism).
         */
  
@@ -25540,9 +25522,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/tcp_ipv6.c linux-3.2.11-vs2.3.2.8/ne
  
        addr_type = ipv6_addr_type(&usin->sin6_addr);
  
-diff -NurpP --minimal linux-3.2.11/net/ipv6/udp.c linux-3.2.11-vs2.3.2.8/net/ipv6/udp.c
---- linux-3.2.11/net/ipv6/udp.c        2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/udp.c      2011-12-15 01:11:37.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/udp.c linux-3.3-vs2.3.3.1/net/ipv6/udp.c
+--- linux-3.3/net/ipv6/udp.c   2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/udp.c 2012-02-24 03:55:07.000000000 +0100
 @@ -45,41 +45,67 @@
  #include <net/tcp_states.h>
  #include <net/ip6_checksum.h>
@@ -25635,9 +25617,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/udp.c linux-3.2.11-vs2.3.2.8/net/ipv
                }
                if (!ipv6_addr_any(&np->daddr)) {
                        if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-3.2.11/net/ipv6/xfrm6_policy.c linux-3.2.11-vs2.3.2.8/net/ipv6/xfrm6_policy.c
---- linux-3.2.11/net/ipv6/xfrm6_policy.c       2011-07-22 11:18:13.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/ipv6/xfrm6_policy.c     2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/ipv6/xfrm6_policy.c linux-3.3-vs2.3.3.1/net/ipv6/xfrm6_policy.c
+--- linux-3.3/net/ipv6/xfrm6_policy.c  2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/ipv6/xfrm6_policy.c        2012-02-24 03:55:07.000000000 +0100
 @@ -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,
@@ -25647,9 +25629,9 @@ diff -NurpP --minimal linux-3.2.11/net/ipv6/xfrm6_policy.c linux-3.2.11-vs2.3.2.
        dst_release(dst);
        return 0;
  }
-diff -NurpP --minimal linux-3.2.11/net/netfilter/ipvs/ip_vs_xmit.c linux-3.2.11-vs2.3.2.8/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-3.2.11/net/netfilter/ipvs/ip_vs_xmit.c       2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/netfilter/ipvs/ip_vs_xmit.c     2012-02-07 03:13:38.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/netfilter/ipvs/ip_vs_xmit.c linux-3.3-vs2.3.3.1/net/netfilter/ipvs/ip_vs_xmit.c
+--- linux-3.3/net/netfilter/ipvs/ip_vs_xmit.c  2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/netfilter/ipvs/ip_vs_xmit.c        2012-02-24 03:55:07.000000000 +0100
 @@ -226,7 +226,7 @@ __ip_vs_route_output_v6(struct net *net,
                return dst;
        if (ipv6_addr_any(&fl6.saddr) &&
@@ -25659,9 +25641,9 @@ diff -NurpP --minimal linux-3.2.11/net/netfilter/ipvs/ip_vs_xmit.c linux-3.2.11-
                goto out_err;
        if (do_xfrm) {
                dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
-diff -NurpP --minimal linux-3.2.11/net/netlink/af_netlink.c linux-3.2.11-vs2.3.2.8/net/netlink/af_netlink.c
---- linux-3.2.11/net/netlink/af_netlink.c      2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/netlink/af_netlink.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/netlink/af_netlink.c linux-3.3-vs2.3.3.1/net/netlink/af_netlink.c
+--- linux-3.3/net/netlink/af_netlink.c 2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/netlink/af_netlink.c       2012-02-24 03:55:07.000000000 +0100
 @@ -55,6 +55,9 @@
  #include <linux/types.h>
  #include <linux/audit.h>
@@ -25672,7 +25654,7 @@ diff -NurpP --minimal linux-3.2.11/net/netlink/af_netlink.c linux-3.2.11-vs2.3.2
  
  #include <net/net_namespace.h>
  #include <net/sock.h>
-@@ -1912,6 +1915,8 @@ static struct sock *netlink_seq_socket_i
+@@ -1908,6 +1911,8 @@ static struct sock *netlink_seq_socket_i
                        sk_for_each(s, node, &hash->table[j]) {
                                if (sock_net(s) != seq_file_net(seq))
                                        continue;
@@ -25681,7 +25663,7 @@ diff -NurpP --minimal linux-3.2.11/net/netlink/af_netlink.c linux-3.2.11-vs2.3.2
                                if (off == pos) {
                                        iter->link = i;
                                        iter->hash_idx = j;
-@@ -1946,7 +1951,8 @@ static void *netlink_seq_next(struct seq
+@@ -1942,7 +1947,8 @@ static void *netlink_seq_next(struct seq
        s = v;
        do {
                s = sk_next(s);
@@ -25691,7 +25673,7 @@ diff -NurpP --minimal linux-3.2.11/net/netlink/af_netlink.c linux-3.2.11-vs2.3.2
        if (s)
                return s;
  
-@@ -1958,7 +1964,8 @@ static void *netlink_seq_next(struct seq
+@@ -1954,7 +1960,8 @@ static void *netlink_seq_next(struct seq
  
                for (; j <= hash->mask; j++) {
                        s = sk_head(&hash->table[j]);
@@ -25701,9 +25683,9 @@ diff -NurpP --minimal linux-3.2.11/net/netlink/af_netlink.c linux-3.2.11-vs2.3.2
                                s = sk_next(s);
                        if (s) {
                                iter->link = i;
-diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socket.c
---- linux-3.2.11/net/socket.c  2012-03-14 10:22:16.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/socket.c        2012-02-07 03:14:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/socket.c linux-3.3-vs2.3.3.1/net/socket.c
+--- linux-3.3/net/socket.c     2012-03-19 19:47:33.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/socket.c   2012-02-24 03:55:07.000000000 +0100
 @@ -98,6 +98,10 @@
  
  #include <net/sock.h>
@@ -25715,7 +25697,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  
  #include <linux/if_tun.h>
  #include <linux/ipv6_route.h>
-@@ -546,6 +550,7 @@ static inline int __sock_sendmsg_nosec(s
+@@ -548,6 +552,7 @@ static inline int __sock_sendmsg_nosec(s
                                       struct msghdr *msg, size_t size)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25723,7 +25705,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  
        sock_update_classid(sock->sk);
  
-@@ -554,7 +559,22 @@ static inline int __sock_sendmsg_nosec(s
+@@ -558,7 +563,22 @@ static inline int __sock_sendmsg_nosec(s
        si->msg = msg;
        si->size = size;
  
@@ -25747,7 +25729,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  }
  
  static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock,
-@@ -694,6 +714,7 @@ static inline int __sock_recvmsg_nosec(s
+@@ -714,6 +734,7 @@ static inline int __sock_recvmsg_nosec(s
                                       struct msghdr *msg, size_t size, int flags)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25755,7 +25737,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  
        sock_update_classid(sock->sk);
  
-@@ -703,7 +724,18 @@ static inline int __sock_recvmsg_nosec(s
+@@ -723,7 +744,18 @@ static inline int __sock_recvmsg_nosec(s
        si->size = size;
        si->flags = flags;
  
@@ -25775,7 +25757,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  }
  
  static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-@@ -1188,6 +1220,13 @@ int __sock_create(struct net *net, int f
+@@ -1208,6 +1240,13 @@ int __sock_create(struct net *net, int f
        if (type < 0 || type >= SOCK_MAX)
                return -EINVAL;
  
@@ -25789,7 +25771,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
        /* Compatibility.
  
           This uglymoron is moved from INET layer to here to avoid
-@@ -1323,6 +1362,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1343,6 +1382,7 @@ SYSCALL_DEFINE3(socket, int, family, int
        if (retval < 0)
                goto out;
  
@@ -25797,7 +25779,7 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
        retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
        if (retval < 0)
                goto out_release;
-@@ -1364,10 +1404,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1384,10 +1424,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
        err = sock_create(family, type, protocol, &sock1);
        if (err < 0)
                goto out;
@@ -25810,9 +25792,9 @@ diff -NurpP --minimal linux-3.2.11/net/socket.c linux-3.2.11-vs2.3.2.8/net/socke
  
        err = sock1->ops->socketpair(sock1, sock2);
        if (err < 0)
-diff -NurpP --minimal linux-3.2.11/net/sunrpc/auth.c linux-3.2.11-vs2.3.2.8/net/sunrpc/auth.c
---- linux-3.2.11/net/sunrpc/auth.c     2011-10-24 18:45:34.000000000 +0200
-+++ linux-3.2.11-vs2.3.2.8/net/sunrpc/auth.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/sunrpc/auth.c linux-3.3-vs2.3.3.1/net/sunrpc/auth.c
+--- linux-3.3/net/sunrpc/auth.c        2011-10-24 18:45:34.000000000 +0200
++++ linux-3.3-vs2.3.3.1/net/sunrpc/auth.c      2012-02-24 03:55:07.000000000 +0100
 @@ -14,6 +14,7 @@
  #include <linux/hash.h>
  #include <linux/sunrpc/clnt.h>
@@ -25837,9 +25819,9 @@ diff -NurpP --minimal linux-3.2.11/net/sunrpc/auth.c linux-3.2.11-vs2.3.2.8/net/
        };
  
        dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-3.2.11/net/sunrpc/auth_unix.c linux-3.2.11-vs2.3.2.8/net/sunrpc/auth_unix.c
---- linux-3.2.11/net/sunrpc/auth_unix.c        2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/sunrpc/auth_unix.c      2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/sunrpc/auth_unix.c linux-3.3-vs2.3.3.1/net/sunrpc/auth_unix.c
+--- linux-3.3/net/sunrpc/auth_unix.c   2012-01-09 16:15:04.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/sunrpc/auth_unix.c 2012-02-24 03:55:07.000000000 +0100
 @@ -12,12 +12,14 @@
  #include <linux/module.h>
  #include <linux/sunrpc/clnt.h>
@@ -25898,9 +25880,9 @@ diff -NurpP --minimal linux-3.2.11/net/sunrpc/auth_unix.c linux-3.2.11-vs2.3.2.8
        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.2.11/net/sunrpc/clnt.c linux-3.2.11-vs2.3.2.8/net/sunrpc/clnt.c
---- linux-3.2.11/net/sunrpc/clnt.c     2012-01-09 16:15:04.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/sunrpc/clnt.c   2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/sunrpc/clnt.c linux-3.3-vs2.3.3.1/net/sunrpc/clnt.c
+--- linux-3.3/net/sunrpc/clnt.c        2012-01-09 16:15:04.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/sunrpc/clnt.c      2012-02-24 03:55:07.000000000 +0100
 @@ -31,6 +31,7 @@
  #include <linux/in.h>
  #include <linux/in6.h>
@@ -25919,9 +25901,9 @@ diff -NurpP --minimal linux-3.2.11/net/sunrpc/clnt.c linux-3.2.11-vs2.3.2.8/net/
        return clnt;
  }
  EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-3.2.11/net/unix/af_unix.c linux-3.2.11-vs2.3.2.8/net/unix/af_unix.c
---- linux-3.2.11/net/unix/af_unix.c    2012-03-14 10:22:16.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/net/unix/af_unix.c  2012-02-07 03:14:01.000000000 +0100
+diff -NurpP --minimal linux-3.3/net/unix/af_unix.c linux-3.3-vs2.3.3.1/net/unix/af_unix.c
+--- linux-3.3/net/unix/af_unix.c       2012-03-19 19:47:34.000000000 +0100
++++ linux-3.3-vs2.3.3.1/net/unix/af_unix.c     2012-02-24 03:55:07.000000000 +0100
 @@ -114,6 +114,8 @@
  #include <linux/mount.h>
  #include <net/checksum.h>
@@ -25929,9 +25911,9 @@ diff -NurpP --minimal linux-3.2.11/net/unix/af_unix.c linux-3.2.11-vs2.3.2.8/net
 +#include <linux/vs_context.h>
 +#include <linux/vs_limit.h>
  
- static struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
static DEFINE_SPINLOCK(unix_table_lock);
-@@ -258,6 +260,8 @@ static struct sock *__unix_find_socket_b
+ struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
EXPORT_SYMBOL_GPL(unix_socket_table);
+@@ -261,6 +263,8 @@ static struct sock *__unix_find_socket_b
                if (!net_eq(sock_net(s), net))
                        continue;
  
@@ -25940,7 +25922,7 @@ diff -NurpP --minimal linux-3.2.11/net/unix/af_unix.c linux-3.2.11-vs2.3.2.8/net
                if (u->addr->len == len &&
                    !memcmp(u->addr->name, sunname, len))
                        goto found;
-@@ -2219,6 +2223,8 @@ static struct sock *unix_seq_idx(struct 
+@@ -2235,6 +2239,8 @@ static struct sock *unix_seq_idx(struct 
        for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) {
                if (sock_net(s) != seq_file_net(seq))
                        continue;
@@ -25949,7 +25931,7 @@ diff -NurpP --minimal linux-3.2.11/net/unix/af_unix.c linux-3.2.11-vs2.3.2.8/net
                if (off == pos)
                        return s;
                ++off;
-@@ -2243,7 +2249,8 @@ static void *unix_seq_next(struct seq_fi
+@@ -2259,7 +2265,8 @@ static void *unix_seq_next(struct seq_fi
                sk = first_unix_socket(&iter->i);
        else
                sk = next_unix_socket(&iter->i, sk);
@@ -25959,9 +25941,9 @@ diff -NurpP --minimal linux-3.2.11/net/unix/af_unix.c linux-3.2.11-vs2.3.2.8/net
                sk = next_unix_socket(&iter->i, sk);
        return sk;
  }
-diff -NurpP --minimal linux-3.2.11/scripts/checksyscalls.sh linux-3.2.11-vs2.3.2.8/scripts/checksyscalls.sh
---- linux-3.2.11/scripts/checksyscalls.sh      2011-03-15 18:07:46.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/scripts/checksyscalls.sh    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/scripts/checksyscalls.sh linux-3.3-vs2.3.3.1/scripts/checksyscalls.sh
+--- linux-3.3/scripts/checksyscalls.sh 2012-03-19 19:47:34.000000000 +0100
++++ linux-3.3-vs2.3.3.1/scripts/checksyscalls.sh       2012-02-24 03:55:07.000000000 +0100
 @@ -193,7 +193,6 @@ cat << EOF
  #define __IGNORE_afs_syscall
  #define __IGNORE_getpmsg
@@ -25970,22 +25952,14 @@ diff -NurpP --minimal linux-3.2.11/scripts/checksyscalls.sh linux-3.2.11-vs2.3.2
  EOF
  }
  
-diff -NurpP --minimal linux-3.2.11/security/commoncap.c linux-3.2.11-vs2.3.2.8/security/commoncap.c
---- linux-3.2.11/security/commoncap.c  2012-01-09 16:15:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/security/commoncap.c        2011-12-05 19:33:02.000000000 +0100
-@@ -62,6 +62,7 @@ int cap_netlink_recv(struct sk_buff *skb
-               return -EPERM;
-       return 0;
- }
-+
- EXPORT_SYMBOL(cap_netlink_recv);
- /**
-@@ -83,14 +84,20 @@ EXPORT_SYMBOL(cap_netlink_recv);
- int cap_capable(struct task_struct *tsk, const struct cred *cred,
-               struct user_namespace *targ_ns, int cap, int audit)
+diff -NurpP --minimal linux-3.3/security/commoncap.c linux-3.3-vs2.3.3.1/security/commoncap.c
+--- linux-3.3/security/commoncap.c     2012-03-19 19:47:34.000000000 +0100
++++ linux-3.3-vs2.3.3.1/security/commoncap.c   2012-02-24 18:08:52.000000000 +0100
+@@ -74,14 +74,20 @@ 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 = tsk->vx_info;
++      struct vx_info *vxi = current_vx_info(); /* FIXME: get vxi from cred? */
 +
        for (;;) {
                /* The creator of the user namespace has all caps. */
@@ -26004,7 +25978,7 @@ diff -NurpP --minimal linux-3.2.11/security/commoncap.c linux-3.2.11-vs2.3.2.8/s
  
                /* Have we tried all of the parent namespaces? */
                if (targ_ns == &init_user_ns)
-@@ -615,7 +622,7 @@ int cap_inode_setxattr(struct dentry *de
+@@ -605,7 +611,7 @@ int cap_inode_setxattr(struct dentry *de
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26013,7 +25987,7 @@ diff -NurpP --minimal linux-3.2.11/security/commoncap.c linux-3.2.11-vs2.3.2.8/s
                return -EPERM;
        return 0;
  }
-@@ -641,7 +648,7 @@ int cap_inode_removexattr(struct dentry 
+@@ -631,7 +637,7 @@ int cap_inode_removexattr(struct dentry 
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26022,9 +25996,9 @@ diff -NurpP --minimal linux-3.2.11/security/commoncap.c linux-3.2.11-vs2.3.2.8/s
                return -EPERM;
        return 0;
  }
-diff -NurpP --minimal linux-3.2.11/security/selinux/hooks.c linux-3.2.11-vs2.3.2.8/security/selinux/hooks.c
---- linux-3.2.11/security/selinux/hooks.c      2012-01-09 16:15:05.000000000 +0100
-+++ linux-3.2.11-vs2.3.2.8/security/selinux/hooks.c    2011-12-05 19:33:02.000000000 +0100
+diff -NurpP --minimal linux-3.3/security/selinux/hooks.c linux-3.3-vs2.3.3.1/security/selinux/hooks.c
+--- linux-3.3/security/selinux/hooks.c 2012-03-19 19:47:34.000000000 +0100
++++ linux-3.3-vs2.3.3.1/security/selinux/hooks.c       2012-02-24 03:55:07.000000000 +0100
 @@ -67,7 +67,6 @@
  #include <linux/dccp.h>
  #include <linux/quota.h>
index e330eaecc035b5c3d7942fa5aed333f4d8d67f37..0fc6ddade8e06c98c568a3f050aa76d46ea6a1c1 100644 (file)
@@ -212,7 +212,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.2.11-vs2.3.2.8.diff
+# http://vserver.13thfloor.at/Experimental/patch-3.3-vs2.3.3.1.diff
 Patch100:      kernel-vserver-2.3.patch
 Patch101:      kernel-vserver-fixes.patch
 
This page took 1.5372 seconds and 4 git commands to generate.