]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- new vserver patch
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 10 Sep 2009 20:19:56 +0000 (20:19 +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.17
    kernel.spec -> 1.701

kernel-vserver-2.3.patch
kernel.spec

index 32e82f244de229ca798dfc2a3effc53c08a7a36a..8d98f35b807dd5ed75a7fee3d670839cfbea03e3 100644 (file)
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/Kconfig
---- linux-2.6.30.5/arch/alpha/Kconfig  2009-03-24 14:18:07.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/Kconfig       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/alpha/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/Kconfig
+--- linux-2.6.31/arch/alpha/Kconfig    2009-03-24 14:18:07.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/Kconfig 2009-09-10 16:11:43.000000000 +0200
 @@ -666,6 +666,8 @@ config DUMMY_CONSOLE
        depends on VGA_HOSE
        default y
@@ -10,9 +10,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/Kconfig linux-2.6.30.5-vs2.3.0.3
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/entry.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/entry.S
---- linux-2.6.30.5/arch/alpha/kernel/entry.S   2009-06-11 17:11:46.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/entry.S        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/alpha/kernel/entry.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/entry.S
+--- linux-2.6.31/arch/alpha/kernel/entry.S     2009-06-11 17:11:46.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/entry.S  2009-09-10 16:11:43.000000000 +0200
 @@ -874,24 +874,15 @@ sys_getxgid:
        .globl  sys_getxpid
        .ent    sys_getxpid
@@ -45,10 +45,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/entry.S linux-2.6.30.5-vs
        ret
  .end sys_getxpid
  
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/osf_sys.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/osf_sys.c
---- linux-2.6.30.5/arch/alpha/kernel/osf_sys.c 2009-06-11 17:11:46.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/osf_sys.c      2009-07-04 01:11:38.000000000 +0200
-@@ -875,7 +875,7 @@ SYSCALL_DEFINE2(osf_gettimeofday, struct
+diff -NurpP --minimal linux-2.6.31/arch/alpha/kernel/osf_sys.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/osf_sys.c
+--- linux-2.6.31/arch/alpha/kernel/osf_sys.c   2009-09-10 15:25:14.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/osf_sys.c        2009-09-10 16:11:43.000000000 +0200
+@@ -872,7 +872,7 @@ SYSCALL_DEFINE2(osf_gettimeofday, struct
  {
        if (tv) {
                struct timeval ktv;
@@ -57,10 +57,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/osf_sys.c linux-2.6.30.5-
                if (put_tv32(tv, &ktv))
                        return -EFAULT;
        }
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/ptrace.c
---- linux-2.6.30.5/arch/alpha/kernel/ptrace.c  2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/ptrace.c       2009-07-04 01:11:38.000000000 +0200
-@@ -15,6 +15,7 @@
+diff -NurpP --minimal linux-2.6.31/arch/alpha/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/ptrace.c
+--- linux-2.6.31/arch/alpha/kernel/ptrace.c    2009-09-10 15:25:14.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/ptrace.c 2009-09-10 16:11:43.000000000 +0200
+@@ -14,6 +14,7 @@
  #include <linux/slab.h>
  #include <linux/security.h>
  #include <linux/signal.h>
@@ -68,9 +68,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/ptrace.c linux-2.6.30.5-v
  
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/systbls.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/systbls.S
---- linux-2.6.30.5/arch/alpha/kernel/systbls.S 2009-03-24 14:18:08.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/systbls.S      2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/alpha/kernel/systbls.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/systbls.S
+--- linux-2.6.31/arch/alpha/kernel/systbls.S   2009-03-24 14:18:08.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/systbls.S        2009-09-10 16:11:43.000000000 +0200
 @@ -446,7 +446,7 @@ sys_call_table:
        .quad sys_stat64                        /* 425 */
        .quad sys_lstat64
@@ -80,9 +80,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/systbls.S linux-2.6.30.5-
        .quad sys_ni_syscall                    /* sys_mbind */
        .quad sys_ni_syscall                    /* sys_get_mempolicy */
        .quad sys_ni_syscall                    /* sys_set_mempolicy */
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/traps.c
---- linux-2.6.30.5/arch/alpha/kernel/traps.c   2009-06-11 17:11:46.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/kernel/traps.c        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/alpha/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/traps.c
+--- linux-2.6.31/arch/alpha/kernel/traps.c     2009-06-11 17:11:46.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/kernel/traps.c  2009-09-10 16:11:43.000000000 +0200
 @@ -183,7 +183,8 @@ die_if_kernel(char * str, struct pt_regs
  #ifdef CONFIG_SMP
        printk("CPU %d ", hard_smp_processor_id());
@@ -93,9 +93,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/kernel/traps.c linux-2.6.30.5-vs
        dik_show_regs(regs, r9_15);
        add_taint(TAINT_DIE);
        dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-2.6.30.5/arch/alpha/mm/fault.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/mm/fault.c
---- linux-2.6.30.5/arch/alpha/mm/fault.c       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/alpha/mm/fault.c    2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/alpha/mm/fault.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/mm/fault.c
+--- linux-2.6.31/arch/alpha/mm/fault.c 2009-09-10 15:25:14.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/alpha/mm/fault.c      2009-09-10 16:11:43.000000000 +0200
 @@ -193,8 +193,8 @@ do_page_fault(unsigned long address, uns
                down_read(&mm->mmap_sem);
                goto survive;
@@ -107,10 +107,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/alpha/mm/fault.c linux-2.6.30.5-vs2.3.
        if (!user_mode(regs))
                goto no_context;
        do_group_exit(SIGKILL);
-diff -NurpP --minimal linux-2.6.30.5/arch/arm/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/Kconfig
---- linux-2.6.30.5/arch/arm/Kconfig    2009-06-11 17:11:46.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/Kconfig 2009-07-04 01:11:38.000000000 +0200
-@@ -1429,6 +1429,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/arm/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/Kconfig
+--- linux-2.6.31/arch/arm/Kconfig      2009-09-10 15:25:14.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/Kconfig   2009-09-10 16:11:43.000000000 +0200
+@@ -1483,6 +1483,8 @@ source "fs/Kconfig"
  
  source "arch/arm/Kconfig.debug"
  
@@ -119,9 +119,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/arm/Kconfig linux-2.6.30.5-vs2.3.0.36.
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/calls.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/calls.S
---- linux-2.6.30.5/arch/arm/kernel/calls.S     2009-06-11 17:11:48.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/calls.S  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/arm/kernel/calls.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/calls.S
+--- linux-2.6.31/arch/arm/kernel/calls.S       2009-09-10 15:25:15.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/calls.S    2009-09-10 16:11:43.000000000 +0200
 @@ -322,7 +322,7 @@
  /* 310 */     CALL(sys_request_key)
                CALL(sys_keyctl)
@@ -131,10 +131,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/calls.S linux-2.6.30.5-vs2.
                CALL(sys_ioprio_set)
  /* 315 */     CALL(sys_ioprio_get)
                CALL(sys_inotify_init)
-diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/process.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/process.c
---- linux-2.6.30.5/arch/arm/kernel/process.c   2009-06-11 17:11:49.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/process.c        2009-07-04 01:11:38.000000000 +0200
-@@ -263,7 +263,8 @@ void __show_regs(struct pt_regs *regs)
+diff -NurpP --minimal linux-2.6.31/arch/arm/kernel/process.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/process.c
+--- linux-2.6.31/arch/arm/kernel/process.c     2009-09-10 15:25:15.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/process.c  2009-09-10 16:11:43.000000000 +0200
+@@ -269,7 +269,8 @@ void __show_regs(struct pt_regs *regs)
  void show_regs(struct pt_regs * regs)
  {
        printk("\n");
@@ -144,9 +144,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/process.c linux-2.6.30.5-vs
        __show_regs(regs);
        __backtrace();
  }
-diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/traps.c
---- linux-2.6.30.5/arch/arm/kernel/traps.c     2009-06-11 17:11:49.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/kernel/traps.c  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/arm/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/traps.c
+--- linux-2.6.31/arch/arm/kernel/traps.c       2009-06-11 17:11:49.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/kernel/traps.c    2009-09-10 16:11:43.000000000 +0200
 @@ -228,8 +228,8 @@ static void __die(const char *str, int e
               str, err, ++die_counter);
        print_modules();
@@ -158,9 +158,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/arm/kernel/traps.c linux-2.6.30.5-vs2.
  
        if (!user_mode(regs) || in_interrupt()) {
                dump_mem("Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-2.6.30.5/arch/arm/mm/fault.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/mm/fault.c
---- linux-2.6.30.5/arch/arm/mm/fault.c 2009-03-24 14:18:17.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/arm/mm/fault.c      2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/arm/mm/fault.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/mm/fault.c
+--- linux-2.6.31/arch/arm/mm/fault.c   2009-09-10 15:25:18.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/arm/mm/fault.c        2009-09-10 16:11:43.000000000 +0200
 @@ -294,7 +294,8 @@ do_page_fault(unsigned long addr, unsign
                 * happened to us that made us unable to handle
                 * the page fault gracefully.
@@ -171,9 +171,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/arm/mm/fault.c linux-2.6.30.5-vs2.3.0.
                do_group_exit(SIGKILL);
                return 0;
        }
-diff -NurpP --minimal linux-2.6.30.5/arch/cris/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/cris/Kconfig
---- linux-2.6.30.5/arch/cris/Kconfig   2009-06-11 17:11:56.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/cris/Kconfig        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/cris/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/cris/Kconfig
+--- linux-2.6.31/arch/cris/Kconfig     2009-06-11 17:11:56.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/cris/Kconfig  2009-09-10 16:11:43.000000000 +0200
 @@ -685,6 +685,8 @@ source "drivers/staging/Kconfig"
  
  source "arch/cris/Kconfig.debug"
@@ -183,9 +183,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/cris/Kconfig linux-2.6.30.5-vs2.3.0.36
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/frv/kernel/kernel_thread.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/frv/kernel/kernel_thread.S
---- linux-2.6.30.5/arch/frv/kernel/kernel_thread.S     2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/frv/kernel/kernel_thread.S  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/frv/kernel/kernel_thread.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/frv/kernel/kernel_thread.S
+--- linux-2.6.31/arch/frv/kernel/kernel_thread.S       2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/frv/kernel/kernel_thread.S    2009-09-10 16:11:43.000000000 +0200
 @@ -37,7 +37,7 @@ kernel_thread:
  
        # start by forking the current process, but with shared VM
@@ -195,9 +195,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/frv/kernel/kernel_thread.S linux-2.6.3
        sethi.p         #0xe4e4,gr9             ; second syscall arg    [newsp]
        setlo           #0xe4e4,gr9
        setlos.p        #0,gr10                 ; third syscall arg     [parent_tidptr]
-diff -NurpP --minimal linux-2.6.30.5/arch/h8300/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/h8300/Kconfig
---- linux-2.6.30.5/arch/h8300/Kconfig  2009-03-24 14:18:24.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/h8300/Kconfig       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/h8300/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/h8300/Kconfig
+--- linux-2.6.31/arch/h8300/Kconfig    2009-03-24 14:18:24.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/h8300/Kconfig 2009-09-10 16:11:43.000000000 +0200
 @@ -226,6 +226,8 @@ source "fs/Kconfig"
  
  source "arch/h8300/Kconfig.debug"
@@ -207,9 +207,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/h8300/Kconfig linux-2.6.30.5-vs2.3.0.3
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/ia32/ia32_entry.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/ia32/ia32_entry.S
---- linux-2.6.30.5/arch/ia64/ia32/ia32_entry.S 2009-06-11 17:11:57.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/ia32/ia32_entry.S      2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/ia32/ia32_entry.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/ia32/ia32_entry.S
+--- linux-2.6.31/arch/ia64/ia32/ia32_entry.S   2009-06-11 17:11:57.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/ia32/ia32_entry.S        2009-09-10 16:11:43.000000000 +0200
 @@ -451,7 +451,7 @@ ia32_syscall_table:
        data8 sys_tgkill        /* 270 */
        data8 compat_sys_utimes
@@ -219,10 +219,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/ia32/ia32_entry.S linux-2.6.30.5-
        data8 sys_ni_syscall
        data8 sys_ni_syscall    /* 275 */
        data8 sys_ni_syscall
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/Kconfig
---- linux-2.6.30.5/arch/ia64/Kconfig   2009-06-11 17:11:57.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/Kconfig        2009-07-04 01:11:38.000000000 +0200
-@@ -675,6 +675,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/ia64/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/Kconfig
+--- linux-2.6.31/arch/ia64/Kconfig     2009-09-10 15:25:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/Kconfig  2009-09-10 16:11:43.000000000 +0200
+@@ -676,6 +676,8 @@ source "fs/Kconfig"
  
  source "arch/ia64/Kconfig.debug"
  
@@ -231,9 +231,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/Kconfig linux-2.6.30.5-vs2.3.0.36
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/entry.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/entry.S
---- linux-2.6.30.5/arch/ia64/kernel/entry.S    2009-06-11 17:11:57.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/entry.S 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/kernel/entry.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/entry.S
+--- linux-2.6.31/arch/ia64/kernel/entry.S      2009-09-10 15:25:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/entry.S   2009-09-10 16:11:43.000000000 +0200
 @@ -1753,7 +1753,7 @@ sys_call_table:
        data8 sys_mq_notify
        data8 sys_mq_getsetattr
@@ -243,9 +243,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/entry.S linux-2.6.30.5-vs2
        data8 sys_waitid                        // 1270
        data8 sys_add_key
        data8 sys_request_key
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/perfmon.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/perfmon.c
---- linux-2.6.30.5/arch/ia64/kernel/perfmon.c  2009-06-11 17:11:57.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/perfmon.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/kernel/perfmon.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/perfmon.c
+--- linux-2.6.31/arch/ia64/kernel/perfmon.c    2009-09-10 15:25:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/perfmon.c 2009-09-10 16:11:43.000000000 +0200
 @@ -41,6 +41,7 @@
  #include <linux/rcupdate.h>
  #include <linux/completion.h>
@@ -263,9 +263,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/perfmon.c linux-2.6.30.5-v
        vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
                                                        vma_pages(vma));
        up_write(&task->mm->mmap_sem);
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/process.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/process.c
---- linux-2.6.30.5/arch/ia64/kernel/process.c  2009-06-11 17:11:57.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/process.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/kernel/process.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/process.c
+--- linux-2.6.31/arch/ia64/kernel/process.c    2009-06-11 17:11:57.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/process.c 2009-09-10 16:11:43.000000000 +0200
 @@ -110,8 +110,8 @@ show_regs (struct pt_regs *regs)
        unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
  
@@ -277,10 +277,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/process.c linux-2.6.30.5-v
        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-2.6.30.5/arch/ia64/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/ptrace.c
---- linux-2.6.30.5/arch/ia64/kernel/ptrace.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/ptrace.c        2009-07-04 01:11:38.000000000 +0200
-@@ -23,6 +23,7 @@
+diff -NurpP --minimal linux-2.6.31/arch/ia64/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/ptrace.c
+--- linux-2.6.31/arch/ia64/kernel/ptrace.c     2009-09-10 15:25:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/ptrace.c  2009-09-10 16:11:43.000000000 +0200
+@@ -22,6 +22,7 @@
  #include <linux/regset.h>
  #include <linux/elf.h>
  #include <linux/tracehook.h>
@@ -288,9 +288,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/ptrace.c linux-2.6.30.5-vs
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/traps.c
---- linux-2.6.30.5/arch/ia64/kernel/traps.c    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/kernel/traps.c 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/traps.c
+--- linux-2.6.31/arch/ia64/kernel/traps.c      2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/kernel/traps.c   2009-09-10 16:11:43.000000000 +0200
 @@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
        put_cpu();
  
@@ -315,9 +315,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/kernel/traps.c linux-2.6.30.5-vs2
                        }
                }
        }
-diff -NurpP --minimal linux-2.6.30.5/arch/ia64/mm/fault.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/mm/fault.c
---- linux-2.6.30.5/arch/ia64/mm/fault.c        2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/ia64/mm/fault.c     2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/ia64/mm/fault.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/mm/fault.c
+--- linux-2.6.31/arch/ia64/mm/fault.c  2009-09-10 15:25:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/ia64/mm/fault.c       2009-09-10 16:11:43.000000000 +0200
 @@ -10,6 +10,7 @@
  #include <linux/interrupt.h>
  #include <linux/kprobes.h>
@@ -326,9 +326,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/ia64/mm/fault.c linux-2.6.30.5-vs2.3.0
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/m32r/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m32r/kernel/traps.c
---- linux-2.6.30.5/arch/m32r/kernel/traps.c    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m32r/kernel/traps.c 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m32r/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/m32r/kernel/traps.c
+--- linux-2.6.31/arch/m32r/kernel/traps.c      2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m32r/kernel/traps.c   2009-09-10 16:11:43.000000000 +0200
 @@ -196,8 +196,9 @@ static void show_registers(struct pt_reg
        } else {
                printk("SPI: %08lx\n", sp);
@@ -341,9 +341,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m32r/kernel/traps.c linux-2.6.30.5-vs2
  
        /*
         * When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-2.6.30.5/arch/m68k/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/Kconfig
---- linux-2.6.30.5/arch/m68k/Kconfig   2009-03-24 14:18:26.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/Kconfig        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m68k/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/Kconfig
+--- linux-2.6.31/arch/m68k/Kconfig     2009-03-24 14:18:26.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/Kconfig  2009-09-10 16:11:43.000000000 +0200
 @@ -616,6 +616,8 @@ source "fs/Kconfig"
  
  source "arch/m68k/Kconfig.debug"
@@ -353,9 +353,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m68k/Kconfig linux-2.6.30.5-vs2.3.0.36
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/m68k/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/kernel/ptrace.c
---- linux-2.6.30.5/arch/m68k/kernel/ptrace.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/kernel/ptrace.c        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m68k/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/kernel/ptrace.c
+--- linux-2.6.31/arch/m68k/kernel/ptrace.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/kernel/ptrace.c  2009-09-10 16:11:43.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <linux/ptrace.h>
  #include <linux/user.h>
@@ -373,9 +373,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m68k/kernel/ptrace.c linux-2.6.30.5-vs
  
        return ret;
  out_eio:
-diff -NurpP --minimal linux-2.6.30.5/arch/m68k/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/kernel/traps.c
---- linux-2.6.30.5/arch/m68k/kernel/traps.c    2009-03-24 14:18:26.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68k/kernel/traps.c 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m68k/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/kernel/traps.c
+--- linux-2.6.31/arch/m68k/kernel/traps.c      2009-09-10 15:25:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68k/kernel/traps.c   2009-09-10 16:11:43.000000000 +0200
 @@ -906,8 +906,8 @@ void show_registers(struct pt_regs *regs
        printk("d4: %08lx    d5: %08lx    a0: %08lx    a1: %08lx\n",
               regs->d4, regs->d5, regs->a0, regs->a1);
@@ -387,9 +387,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m68k/kernel/traps.c linux-2.6.30.5-vs2
        addr = (unsigned long)&fp->un;
        printk("Frame format=%X ", regs->format);
        switch (regs->format) {
-diff -NurpP --minimal linux-2.6.30.5/arch/m68knommu/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68knommu/Kconfig
---- linux-2.6.30.5/arch/m68knommu/Kconfig      2009-06-11 17:11:59.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68knommu/Kconfig   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m68knommu/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68knommu/Kconfig
+--- linux-2.6.31/arch/m68knommu/Kconfig        2009-06-11 17:11:59.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68knommu/Kconfig     2009-09-10 16:11:43.000000000 +0200
 @@ -721,6 +721,8 @@ source "fs/Kconfig"
  
  source "arch/m68knommu/Kconfig.debug"
@@ -399,9 +399,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m68knommu/Kconfig linux-2.6.30.5-vs2.3
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/m68knommu/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68knommu/kernel/traps.c
---- linux-2.6.30.5/arch/m68knommu/kernel/traps.c       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/m68knommu/kernel/traps.c    2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/m68knommu/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68knommu/kernel/traps.c
+--- linux-2.6.31/arch/m68knommu/kernel/traps.c 2009-09-10 15:25:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/m68knommu/kernel/traps.c      2009-09-10 16:11:43.000000000 +0200
 @@ -78,8 +78,9 @@ void die_if_kernel(char *str, struct pt_
        printk(KERN_EMERG "d4: %08lx    d5: %08lx    a0: %08lx    a1: %08lx\n",
               fp->d4, fp->d5, fp->a0, fp->a1);
@@ -414,10 +414,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/m68knommu/kernel/traps.c linux-2.6.30.
        show_stack(NULL, (unsigned long *)(fp + 1));
        add_taint(TAINT_DIE);
        do_exit(SIGSEGV);
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/Kconfig
---- linux-2.6.30.5/arch/mips/Kconfig   2009-06-11 17:12:00.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/Kconfig        2009-07-04 01:11:38.000000000 +0200
-@@ -2137,6 +2137,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/mips/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/Kconfig
+--- linux-2.6.31/arch/mips/Kconfig     2009-09-10 15:25:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/Kconfig  2009-09-10 16:11:43.000000000 +0200
+@@ -2186,6 +2186,8 @@ source "fs/Kconfig"
  
  source "arch/mips/Kconfig.debug"
  
@@ -426,9 +426,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/Kconfig linux-2.6.30.5-vs2.3.0.36
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/ptrace.c
---- linux-2.6.30.5/arch/mips/kernel/ptrace.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/ptrace.c        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/ptrace.c
+--- linux-2.6.31/arch/mips/kernel/ptrace.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/ptrace.c  2009-09-10 16:11:43.000000000 +0200
 @@ -25,6 +25,7 @@
  #include <linux/security.h>
  #include <linux/audit.h>
@@ -447,9 +447,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/ptrace.c linux-2.6.30.5-vs
        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-2.6.30.5/arch/mips/kernel/scall32-o32.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall32-o32.S
---- linux-2.6.30.5/arch/mips/kernel/scall32-o32.S      2009-06-11 17:12:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall32-o32.S   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/scall32-o32.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall32-o32.S
+--- linux-2.6.31/arch/mips/kernel/scall32-o32.S        2009-09-10 15:25:38.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall32-o32.S     2009-09-10 16:11:43.000000000 +0200
 @@ -597,7 +597,7 @@ einval:    li      v0, -ENOSYS
        sys     sys_mq_timedreceive     5
        sys     sys_mq_notify           2       /* 4275 */
@@ -459,9 +459,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall32-o32.S linux-2.6.30
        sys     sys_waitid              5
        sys     sys_ni_syscall          0       /* available, was setaltroot */
        sys     sys_add_key             5       /* 4280 */
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-64.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-64.S
---- linux-2.6.30.5/arch/mips/kernel/scall64-64.S       2009-06-11 17:12:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-64.S    2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/scall64-64.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-64.S
+--- linux-2.6.31/arch/mips/kernel/scall64-64.S 2009-09-10 15:25:38.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-64.S      2009-09-10 16:11:43.000000000 +0200
 @@ -434,7 +434,7 @@ sys_call_table:
        PTR     sys_mq_timedreceive
        PTR     sys_mq_notify
@@ -471,9 +471,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-64.S linux-2.6.30.
        PTR     sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-n32.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-n32.S
---- linux-2.6.30.5/arch/mips/kernel/scall64-n32.S      2009-06-11 17:12:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-n32.S   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/scall64-n32.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-n32.S
+--- linux-2.6.31/arch/mips/kernel/scall64-n32.S        2009-09-10 15:25:38.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-n32.S     2009-09-10 16:11:43.000000000 +0200
 @@ -360,7 +360,7 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
@@ -483,9 +483,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-n32.S linux-2.6.30
        PTR     compat_sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-o32.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-o32.S
---- linux-2.6.30.5/arch/mips/kernel/scall64-o32.S      2009-06-11 17:12:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/scall64-o32.S   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/scall64-o32.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-o32.S
+--- linux-2.6.31/arch/mips/kernel/scall64-o32.S        2009-09-10 15:25:38.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/scall64-o32.S     2009-09-10 16:11:43.000000000 +0200
 @@ -480,7 +480,7 @@ sys_call_table:
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify            /* 4275 */
@@ -495,9 +495,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/scall64-o32.S linux-2.6.30
        PTR     sys_32_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key                     /* 4280 */
-diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/traps.c
---- linux-2.6.30.5/arch/mips/kernel/traps.c    2009-06-11 17:12:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/mips/kernel/traps.c 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/mips/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/traps.c
+--- linux-2.6.31/arch/mips/kernel/traps.c      2009-09-10 15:25:38.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/mips/kernel/traps.c   2009-09-10 16:11:43.000000000 +0200
 @@ -335,9 +335,10 @@ void show_registers(const struct pt_regs
  
        __show_regs(regs);
@@ -512,10 +512,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/mips/kernel/traps.c linux-2.6.30.5-vs2
        if (cpu_has_userlocal) {
                unsigned long tls;
  
-diff -NurpP --minimal linux-2.6.30.5/arch/parisc/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/Kconfig
---- linux-2.6.30.5/arch/parisc/Kconfig 2009-06-11 17:12:02.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/Kconfig      2009-07-04 01:11:38.000000000 +0200
-@@ -291,6 +291,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/parisc/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/Kconfig
+--- linux-2.6.31/arch/parisc/Kconfig   2009-09-10 15:25:39.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/Kconfig        2009-09-10 16:11:43.000000000 +0200
+@@ -293,6 +293,8 @@ source "fs/Kconfig"
  
  source "arch/parisc/Kconfig.debug"
  
@@ -524,9 +524,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/Kconfig linux-2.6.30.5-vs2.3.0.
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/parisc/kernel/syscall_table.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/kernel/syscall_table.S
---- linux-2.6.30.5/arch/parisc/kernel/syscall_table.S  2009-06-11 17:12:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/kernel/syscall_table.S       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/parisc/kernel/syscall_table.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/kernel/syscall_table.S
+--- linux-2.6.31/arch/parisc/kernel/syscall_table.S    2009-09-10 15:25:40.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/kernel/syscall_table.S 2009-09-10 16:11:43.000000000 +0200
 @@ -361,7 +361,7 @@
        ENTRY_COMP(mbind)               /* 260 */
        ENTRY_COMP(get_mempolicy)
@@ -536,9 +536,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/kernel/syscall_table.S linux-2.
        ENTRY_SAME(add_key)
        ENTRY_SAME(request_key)         /* 265 */
        ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-2.6.30.5/arch/parisc/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/kernel/traps.c
---- linux-2.6.30.5/arch/parisc/kernel/traps.c  2009-06-11 17:12:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/kernel/traps.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/parisc/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/kernel/traps.c
+--- linux-2.6.31/arch/parisc/kernel/traps.c    2009-09-10 15:25:40.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/kernel/traps.c 2009-09-10 16:11:43.000000000 +0200
 @@ -236,8 +236,9 @@ void die_if_kernel(char *str, struct pt_
                if (err == 0)
                        return; /* STFU */
@@ -551,7 +551,7 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/kernel/traps.c linux-2.6.30.5-v
  #ifdef PRINT_USER_FAULTS
                /* XXX for debugging only */
                show_regs(regs);
-@@ -271,8 +272,8 @@ KERN_CRIT "                     ||     |
+@@ -270,8 +271,8 @@ void die_if_kernel(char *str, struct pt_
                pdc_console_restart();
        
        if (err)
@@ -562,10 +562,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/kernel/traps.c linux-2.6.30.5-v
  
        /* Wot's wrong wif bein' racy? */
        if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-2.6.30.5/arch/parisc/mm/fault.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/mm/fault.c
---- linux-2.6.30.5/arch/parisc/mm/fault.c      2009-03-24 14:18:33.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/parisc/mm/fault.c   2009-07-04 01:11:38.000000000 +0200
-@@ -238,8 +238,9 @@ bad_area:
+diff -NurpP --minimal linux-2.6.31/arch/parisc/mm/fault.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/mm/fault.c
+--- linux-2.6.31/arch/parisc/mm/fault.c        2009-09-10 15:25:40.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/parisc/mm/fault.c     2009-09-10 16:11:43.000000000 +0200
+@@ -237,8 +237,9 @@ bad_area:
  
  #ifdef PRINT_USER_FAULTS
                printk(KERN_DEBUG "\n");
@@ -577,7 +577,7 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/mm/fault.c linux-2.6.30.5-vs2.3
                if (vma) {
                        printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n",
                                        vma->vm_start, vma->vm_end);
-@@ -265,7 +266,8 @@ no_context:
+@@ -264,7 +265,8 @@ no_context:
  
    out_of_memory:
        up_read(&mm->mmap_sem);
@@ -587,10 +587,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/parisc/mm/fault.c linux-2.6.30.5-vs2.3
        if (user_mode(regs))
                do_group_exit(SIGKILL);
        goto no_context;
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/Kconfig
---- linux-2.6.30.5/arch/powerpc/Kconfig        2009-06-11 17:12:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/Kconfig     2009-07-04 01:11:38.000000000 +0200
-@@ -922,6 +922,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/Kconfig
+--- linux-2.6.31/arch/powerpc/Kconfig  2009-09-10 15:25:40.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/Kconfig       2009-09-10 16:11:43.000000000 +0200
+@@ -933,6 +933,8 @@ source "lib/Kconfig"
  
  source "arch/powerpc/Kconfig.debug"
  
@@ -599,20 +599,20 @@ diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/Kconfig linux-2.6.30.5-vs2.3.0
  source "security/Kconfig"
  
  config KEYS_COMPAT
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/irq.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/irq.c
---- linux-2.6.30.5/arch/powerpc/kernel/irq.c   2009-06-11 17:12:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/irq.c        2009-07-04 01:11:38.000000000 +0200
-@@ -53,6 +53,7 @@
- #include <linux/bootmem.h>
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/kernel/irq.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/irq.c
+--- linux-2.6.31/arch/powerpc/kernel/irq.c     2009-09-10 15:25:41.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/irq.c  2009-09-10 16:15:56.000000000 +0200
+@@ -54,6 +54,7 @@
  #include <linux/pci.h>
  #include <linux/debugfs.h>
+ #include <linux/perf_counter.h>
 +#include <linux/vs_context.h>
  
  #include <asm/uaccess.h>
  #include <asm/system.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/process.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/process.c
---- linux-2.6.30.5/arch/powerpc/kernel/process.c       2009-06-11 17:12:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/process.c    2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/kernel/process.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/process.c
+--- linux-2.6.31/arch/powerpc/kernel/process.c 2009-09-10 15:25:41.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/process.c      2009-09-10 16:11:43.000000000 +0200
 @@ -519,8 +519,9 @@ void show_regs(struct pt_regs * regs)
  #else
                printk("DAR: "REG", DSISR: "REG"\n", regs->dar, regs->dsisr);
@@ -625,10 +625,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/process.c linux-2.6.30.
  
  #ifdef CONFIG_SMP
        printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/traps.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/traps.c
---- linux-2.6.30.5/arch/powerpc/kernel/traps.c 2009-06-11 17:12:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/traps.c      2009-07-04 01:11:38.000000000 +0200
-@@ -921,8 +921,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/kernel/traps.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/traps.c
+--- linux-2.6.31/arch/powerpc/kernel/traps.c   2009-09-10 15:25:41.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/traps.c        2009-09-10 16:11:43.000000000 +0200
+@@ -931,8 +931,9 @@ void nonrecoverable_exception(struct pt_
  
  void trace_syscall(struct pt_regs *regs)
  {
@@ -640,9 +640,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/traps.c linux-2.6.30.5-
               regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
  }
  
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/vdso.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/vdso.c
---- linux-2.6.30.5/arch/powerpc/kernel/vdso.c  2009-03-24 14:18:35.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/kernel/vdso.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/kernel/vdso.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/vdso.c
+--- linux-2.6.31/arch/powerpc/kernel/vdso.c    2009-03-24 14:18:35.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/kernel/vdso.c 2009-09-10 16:11:43.000000000 +0200
 @@ -22,6 +22,7 @@
  #include <linux/security.h>
  #include <linux/bootmem.h>
@@ -651,10 +651,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/kernel/vdso.c linux-2.6.30.5-v
  
  #include <asm/pgtable.h>
  #include <asm/system.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/mm/fault.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/mm/fault.c
---- linux-2.6.30.5/arch/powerpc/mm/fault.c     2009-06-11 17:12:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/powerpc/mm/fault.c  2009-07-04 01:11:38.000000000 +0200
-@@ -350,7 +350,8 @@ out_of_memory:
+diff -NurpP --minimal linux-2.6.31/arch/powerpc/mm/fault.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/mm/fault.c
+--- linux-2.6.31/arch/powerpc/mm/fault.c       2009-09-10 15:25:41.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/powerpc/mm/fault.c    2009-09-10 16:11:43.000000000 +0200
+@@ -358,7 +358,8 @@ out_of_memory:
                down_read(&mm->mmap_sem);
                goto survive;
        }
@@ -664,10 +664,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/powerpc/mm/fault.c linux-2.6.30.5-vs2.
        if (user_mode(regs))
                do_group_exit(SIGKILL);
        return SIGKILL;
-diff -NurpP --minimal linux-2.6.30.5/arch/s390/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/Kconfig
---- linux-2.6.30.5/arch/s390/Kconfig   2009-06-11 17:12:16.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/Kconfig        2009-07-04 01:11:38.000000000 +0200
-@@ -583,6 +583,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/s390/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/Kconfig
+--- linux-2.6.31/arch/s390/Kconfig     2009-09-10 15:25:42.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/Kconfig  2009-09-10 16:11:43.000000000 +0200
+@@ -624,6 +624,8 @@ source "fs/Kconfig"
  
  source "arch/s390/Kconfig.debug"
  
@@ -676,20 +676,20 @@ diff -NurpP --minimal linux-2.6.30.5/arch/s390/Kconfig linux-2.6.30.5-vs2.3.0.36
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/s390/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/kernel/ptrace.c
---- linux-2.6.30.5/arch/s390/kernel/ptrace.c   2009-03-24 14:18:40.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/kernel/ptrace.c        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/s390/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/kernel/ptrace.c
+--- linux-2.6.31/arch/s390/kernel/ptrace.c     2009-09-10 15:25:43.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/kernel/ptrace.c  2009-09-10 16:17:22.000000000 +0200
 @@ -36,6 +36,7 @@
- #include <linux/elf.h>
  #include <linux/regset.h>
  #include <linux/tracehook.h>
+ #include <linux/seccomp.h>
 +#include <linux/vs_base.h>
+ #include <trace/syscall.h>
+ #include <asm/compat.h>
  #include <asm/segment.h>
- #include <asm/page.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/s390/kernel/syscalls.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/kernel/syscalls.S
---- linux-2.6.30.5/arch/s390/kernel/syscalls.S 2009-06-11 17:12:16.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/s390/kernel/syscalls.S      2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/s390/kernel/syscalls.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/kernel/syscalls.S
+--- linux-2.6.31/arch/s390/kernel/syscalls.S   2009-09-10 15:25:43.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/s390/kernel/syscalls.S        2009-09-10 16:11:43.000000000 +0200
 @@ -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)
@@ -699,10 +699,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/s390/kernel/syscalls.S linux-2.6.30.5-
  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-2.6.30.5/arch/sh/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/Kconfig
---- linux-2.6.30.5/arch/sh/Kconfig     2009-06-11 17:12:16.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/Kconfig  2009-07-04 01:11:38.000000000 +0200
-@@ -757,6 +757,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/sh/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/Kconfig
+--- linux-2.6.31/arch/sh/Kconfig       2009-09-10 15:25:43.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/Kconfig    2009-09-10 16:11:43.000000000 +0200
+@@ -813,6 +813,8 @@ source "fs/Kconfig"
  
  source "arch/sh/Kconfig.debug"
  
@@ -711,9 +711,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sh/Kconfig linux-2.6.30.5-vs2.3.0.36.1
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/sh/kernel/irq.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/kernel/irq.c
---- linux-2.6.30.5/arch/sh/kernel/irq.c        2009-06-11 17:12:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/kernel/irq.c     2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sh/kernel/irq.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/kernel/irq.c
+--- linux-2.6.31/arch/sh/kernel/irq.c  2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/kernel/irq.c       2009-09-10 16:11:43.000000000 +0200
 @@ -11,6 +11,7 @@
  #include <linux/module.h>
  #include <linux/kernel_stat.h>
@@ -722,9 +722,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sh/kernel/irq.c linux-2.6.30.5-vs2.3.0
  #include <asm/processor.h>
  #include <asm/machvec.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/sh/kernel/vsyscall/vsyscall.c linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/kernel/vsyscall/vsyscall.c
---- linux-2.6.30.5/arch/sh/kernel/vsyscall/vsyscall.c  2009-03-24 14:18:42.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sh/kernel/vsyscall/vsyscall.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sh/kernel/vsyscall/vsyscall.c linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/kernel/vsyscall/vsyscall.c
+--- linux-2.6.31/arch/sh/kernel/vsyscall/vsyscall.c    2009-03-24 14:18:42.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sh/kernel/vsyscall/vsyscall.c 2009-09-10 16:11:43.000000000 +0200
 @@ -19,6 +19,7 @@
  #include <linux/elf.h>
  #include <linux/sched.h>
@@ -733,9 +733,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sh/kernel/vsyscall/vsyscall.c linux-2.
  
  /*
   * Should the kernel map a VDSO page into processes and pass its
-diff -NurpP --minimal linux-2.6.30.5/arch/sparc/include/asm/tlb_64.h linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/include/asm/tlb_64.h
---- linux-2.6.30.5/arch/sparc/include/asm/tlb_64.h     2009-06-11 17:12:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/include/asm/tlb_64.h  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sparc/include/asm/tlb_64.h linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/include/asm/tlb_64.h
+--- linux-2.6.31/arch/sparc/include/asm/tlb_64.h       2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/include/asm/tlb_64.h    2009-09-10 16:11:43.000000000 +0200
 @@ -3,6 +3,7 @@
  
  #include <linux/swap.h>
@@ -744,9 +744,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/include/asm/tlb_64.h linux-2.6.3
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
  #include <asm/mmu_context.h>
-diff -NurpP --minimal linux-2.6.30.5/arch/sparc/include/asm/unistd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/include/asm/unistd.h
---- linux-2.6.30.5/arch/sparc/include/asm/unistd.h     2009-06-11 17:12:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/include/asm/unistd.h  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sparc/include/asm/unistd.h linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/include/asm/unistd.h
+--- linux-2.6.31/arch/sparc/include/asm/unistd.h       2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/include/asm/unistd.h    2009-09-10 16:11:43.000000000 +0200
 @@ -335,7 +335,7 @@
  #define __NR_timer_getoverrun 264
  #define __NR_timer_delete     265
@@ -756,10 +756,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/include/asm/unistd.h linux-2.6.3
  #define __NR_io_setup         268
  #define __NR_io_destroy               269
  #define __NR_io_submit                270
-diff -NurpP --minimal linux-2.6.30.5/arch/sparc/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/Kconfig
---- linux-2.6.30.5/arch/sparc/Kconfig  2009-06-11 17:12:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/Kconfig       2009-07-04 01:11:38.000000000 +0200
-@@ -525,6 +525,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/sparc/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/Kconfig
+--- linux-2.6.31/arch/sparc/Kconfig    2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/Kconfig 2009-09-10 16:11:43.000000000 +0200
+@@ -530,6 +530,8 @@ source "fs/Kconfig"
  
  source "arch/sparc/Kconfig.debug"
  
@@ -768,9 +768,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/Kconfig linux-2.6.30.5-vs2.3.0.3
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/sparc/kernel/systbls_32.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/kernel/systbls_32.S
---- linux-2.6.30.5/arch/sparc/kernel/systbls_32.S      2009-06-11 17:12:19.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/kernel/systbls_32.S   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sparc/kernel/systbls_32.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/kernel/systbls_32.S
+--- linux-2.6.31/arch/sparc/kernel/systbls_32.S        2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/kernel/systbls_32.S     2009-09-10 16:11:43.000000000 +0200
 @@ -70,7 +70,7 @@ sys_call_table:
  /*250*/       .long sparc_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
  /*255*/       .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
@@ -780,9 +780,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/kernel/systbls_32.S linux-2.6.30
  /*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-2.6.30.5/arch/sparc/kernel/systbls_64.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/kernel/systbls_64.S
---- linux-2.6.30.5/arch/sparc/kernel/systbls_64.S      2009-06-11 17:12:19.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/sparc/kernel/systbls_64.S   2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/sparc/kernel/systbls_64.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/kernel/systbls_64.S
+--- linux-2.6.31/arch/sparc/kernel/systbls_64.S        2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/sparc/kernel/systbls_64.S     2009-09-10 16:11:43.000000000 +0200
 @@ -71,7 +71,7 @@ sys_call_table32:
  /*250*/       .word sys32_mremap, sys32_sysctl, sys32_getsid, sys_fdatasync, sys32_nfsservctl
        .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
@@ -792,7 +792,7 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/kernel/systbls_64.S linux-2.6.30
  /*270*/       .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
        .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
  /*280*/       .word sys32_tee, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat
-@@ -145,7 +145,7 @@ sys_call_table:
+@@ -146,7 +146,7 @@ sys_call_table:
  /*250*/       .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
        .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
  /*260*/       .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
@@ -801,9 +801,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/sparc/kernel/systbls_64.S linux-2.6.30
  /*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-2.6.30.5/arch/x86/ia32/ia32entry.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/ia32/ia32entry.S
---- linux-2.6.30.5/arch/x86/ia32/ia32entry.S   2009-06-11 17:12:20.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/ia32/ia32entry.S        2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/x86/ia32/ia32entry.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/ia32/ia32entry.S
+--- linux-2.6.31/arch/x86/ia32/ia32entry.S     2009-09-10 15:25:46.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/ia32/ia32entry.S  2009-09-10 16:11:43.000000000 +0200
 @@ -768,7 +768,7 @@ ia32_sys_call_table:
        .quad sys_tgkill                /* 270 */
        .quad compat_sys_utimes
@@ -813,9 +813,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/x86/ia32/ia32entry.S linux-2.6.30.5-vs
        .quad sys_mbind
        .quad compat_sys_get_mempolicy  /* 275 */
        .quad sys_set_mempolicy
-diff -NurpP --minimal linux-2.6.30.5/arch/x86/include/asm/unistd_64.h linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/include/asm/unistd_64.h
---- linux-2.6.30.5/arch/x86/include/asm/unistd_64.h    2009-06-11 17:12:21.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/include/asm/unistd_64.h 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/x86/include/asm/unistd_64.h linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/include/asm/unistd_64.h
+--- linux-2.6.31/arch/x86/include/asm/unistd_64.h      2009-09-10 15:25:47.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/include/asm/unistd_64.h   2009-09-10 16:11:43.000000000 +0200
 @@ -535,7 +535,7 @@ __SYSCALL(__NR_tgkill, sys_tgkill)
  #define __NR_utimes                           235
  __SYSCALL(__NR_utimes, sys_utimes)
@@ -825,10 +825,10 @@ diff -NurpP --minimal linux-2.6.30.5/arch/x86/include/asm/unistd_64.h linux-2.6.
  #define __NR_mbind                            237
  __SYSCALL(__NR_mbind, sys_mbind)
  #define __NR_set_mempolicy                    238
-diff -NurpP --minimal linux-2.6.30.5/arch/x86/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/Kconfig
---- linux-2.6.30.5/arch/x86/Kconfig    2009-06-11 17:12:19.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/Kconfig 2009-07-04 01:11:38.000000000 +0200
-@@ -2045,6 +2045,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.31/arch/x86/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/Kconfig
+--- linux-2.6.31/arch/x86/Kconfig      2009-09-10 15:25:46.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/Kconfig   2009-09-10 16:11:43.000000000 +0200
+@@ -2088,6 +2088,8 @@ source "fs/Kconfig"
  
  source "arch/x86/Kconfig.debug"
  
@@ -837,9 +837,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/x86/Kconfig linux-2.6.30.5-vs2.3.0.36.
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.30.5/arch/x86/kernel/syscall_table_32.S linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/kernel/syscall_table_32.S
---- linux-2.6.30.5/arch/x86/kernel/syscall_table_32.S  2009-06-11 17:12:23.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/arch/x86/kernel/syscall_table_32.S       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/arch/x86/kernel/syscall_table_32.S linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/kernel/syscall_table_32.S
+--- linux-2.6.31/arch/x86/kernel/syscall_table_32.S    2009-09-10 15:25:47.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/arch/x86/kernel/syscall_table_32.S 2009-09-10 16:11:43.000000000 +0200
 @@ -272,7 +272,7 @@ ENTRY(sys_call_table)
        .long sys_tgkill        /* 270 */
        .long sys_utimes
@@ -849,9 +849,9 @@ diff -NurpP --minimal linux-2.6.30.5/arch/x86/kernel/syscall_table_32.S linux-2.
        .long sys_mbind
        .long sys_get_mempolicy
        .long sys_set_mempolicy
-diff -NurpP --minimal linux-2.6.30.5/Documentation/vserver/debug.txt linux-2.6.30.5-vs2.3.0.36.14-pre7/Documentation/vserver/debug.txt
---- linux-2.6.30.5/Documentation/vserver/debug.txt     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/Documentation/vserver/debug.txt  2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/Documentation/vserver/debug.txt linux-2.6.31-vs2.3.0.36.14-pre8/Documentation/vserver/debug.txt
+--- linux-2.6.31/Documentation/vserver/debug.txt       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/Documentation/vserver/debug.txt    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,154 @@
 +
 +debug_cvirt:
@@ -1007,9 +1007,9 @@ diff -NurpP --minimal linux-2.6.30.5/Documentation/vserver/debug.txt linux-2.6.3
 + 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-2.6.30.5/drivers/block/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/Kconfig
---- linux-2.6.30.5/drivers/block/Kconfig       2009-06-11 17:12:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/Kconfig    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/block/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/Kconfig
+--- linux-2.6.31/drivers/block/Kconfig 2009-09-10 15:25:49.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/Kconfig      2009-09-10 16:11:43.000000000 +0200
 @@ -271,6 +271,13 @@ config BLK_DEV_CRYPTOLOOP
          instead, which can be configured to be on-disk compatible with the
          cryptoloop device.
@@ -1024,10 +1024,10 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/Kconfig linux-2.6.30.5-vs2.3.
  config BLK_DEV_NBD
        tristate "Network block device support"
        depends on NET
-diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/loop.c
---- linux-2.6.30.5/drivers/block/loop.c        2009-06-11 17:12:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/loop.c     2009-07-04 01:11:39.000000000 +0200
-@@ -75,6 +75,7 @@
+diff -NurpP --minimal linux-2.6.31/drivers/block/loop.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/loop.c
+--- linux-2.6.31/drivers/block/loop.c  2009-09-10 15:25:49.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/loop.c       2009-09-10 16:11:43.000000000 +0200
+@@ -74,6 +74,7 @@
  #include <linux/gfp.h>
  #include <linux/kthread.h>
  #include <linux/splice.h>
@@ -1035,7 +1035,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
  
  #include <asm/uaccess.h>
  
-@@ -834,6 +835,7 @@ static int loop_set_fd(struct loop_devic
+@@ -812,6 +813,7 @@ static int loop_set_fd(struct loop_devic
        lo->lo_blocksize = lo_blocksize;
        lo->lo_device = bdev;
        lo->lo_flags = lo_flags;
@@ -1043,7 +1043,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
        lo->lo_backing_file = file;
        lo->transfer = transfer_none;
        lo->ioctl = NULL;
-@@ -959,6 +961,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -937,6 +939,7 @@ static int loop_clr_fd(struct loop_devic
        lo->lo_encrypt_key_size = 0;
        lo->lo_flags = 0;
        lo->lo_thread = NULL;
@@ -1051,7 +1051,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
        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);
-@@ -993,7 +996,7 @@ loop_set_status(struct loop_device *lo, 
+@@ -971,7 +974,7 @@ loop_set_status(struct loop_device *lo, 
  
        if (lo->lo_encrypt_key_size &&
            lo->lo_key_owner != uid &&
@@ -1060,7 +1060,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
                return -EPERM;
        if (lo->lo_state != Lo_bound)
                return -ENXIO;
-@@ -1077,7 +1080,8 @@ loop_get_status(struct loop_device *lo, 
+@@ -1055,7 +1058,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;
@@ -1070,7 +1070,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
                info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
                memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
                       lo->lo_encrypt_key_size);
-@@ -1421,6 +1425,9 @@ static int lo_open(struct block_device *
+@@ -1399,6 +1403,9 @@ static int lo_open(struct block_device *
  {
        struct loop_device *lo = bdev->bd_disk->private_data;
  
@@ -1080,10 +1080,10 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/loop.c linux-2.6.30.5-vs2.3.0
        mutex_lock(&lo->lo_ctl_mutex);
        lo->lo_refcnt++;
        mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-2.6.30.5/drivers/block/Makefile linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/Makefile
---- linux-2.6.30.5/drivers/block/Makefile      2009-06-11 17:12:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/Makefile   2009-07-04 01:11:39.000000000 +0200
-@@ -33,6 +33,7 @@ obj-$(CONFIG_VIODASD)                += viodasd.o
+diff -NurpP --minimal linux-2.6.31/drivers/block/Makefile linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/Makefile
+--- linux-2.6.31/drivers/block/Makefile        2009-09-10 15:25:49.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/Makefile     2009-09-10 16:11:43.000000000 +0200
+@@ -34,6 +34,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
@@ -1091,9 +1091,9 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/Makefile linux-2.6.30.5-vs2.3
  
  obj-$(CONFIG_XEN_BLKDEV_FRONTEND)     += xen-blkfront.o
  
-diff -NurpP --minimal linux-2.6.30.5/drivers/block/vroot.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/vroot.c
---- linux-2.6.30.5/drivers/block/vroot.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/block/vroot.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/block/vroot.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/vroot.c
+--- linux-2.6.31/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/block/vroot.c      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,281 @@
 +/*
 + *  linux/drivers/block/vroot.c
@@ -1376,18 +1376,18 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/block/vroot.c linux-2.6.30.5-vs2.3.
 +
 +#endif
 +
-diff -NurpP --minimal linux-2.6.30.5/drivers/char/sysrq.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/char/sysrq.c
---- linux-2.6.30.5/drivers/char/sysrq.c        2009-06-11 17:12:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/char/sysrq.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/char/sysrq.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/char/sysrq.c
+--- linux-2.6.31/drivers/char/sysrq.c  2009-09-10 15:25:50.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/char/sysrq.c       2009-09-10 16:11:43.000000000 +0200
 @@ -37,6 +37,7 @@
- #include <linux/kexec.h>
+ #include <linux/workqueue.h>
  #include <linux/hrtimer.h>
  #include <linux/oom.h>
 +#include <linux/vserver/debug.h>
  
  #include <asm/ptrace.h>
  #include <asm/irq_regs.h>
-@@ -381,6 +382,21 @@ static struct sysrq_key_op sysrq_unrt_op
+@@ -382,6 +383,21 @@ static struct sysrq_key_op sysrq_unrt_op
        .enable_mask    = SYSRQ_ENABLE_RTNICE,
  };
  
@@ -1409,7 +1409,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/char/sysrq.c linux-2.6.30.5-vs2.3.0
  /* Key Operations table and lock */
  static DEFINE_SPINLOCK(sysrq_key_table_lock);
  
-@@ -435,7 +451,11 @@ static struct sysrq_key_op *sysrq_key_ta
+@@ -436,7 +452,11 @@ static struct sysrq_key_op *sysrq_key_ta
        NULL,                           /* v */
        &sysrq_showstate_blocked_op,    /* w */
        /* x: May be registered on ppc/powerpc for xmon */
@@ -1421,7 +1421,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/char/sysrq.c linux-2.6.30.5-vs2.3.0
        /* y: May be registered on sparc64 for global register dump */
        NULL,                           /* y */
        &sysrq_ftrace_dump_op,          /* z */
-@@ -450,6 +470,8 @@ static int sysrq_key_table_key2index(int
+@@ -451,6 +471,8 @@ static int sysrq_key_table_key2index(int
                retval = key - '0';
        else if ((key >= 'a') && (key <= 'z'))
                retval = key + 10 - 'a';
@@ -1430,9 +1430,9 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/char/sysrq.c linux-2.6.30.5-vs2.3.0
        else
                retval = -1;
        return retval;
-diff -NurpP --minimal linux-2.6.30.5/drivers/char/tty_io.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/char/tty_io.c
---- linux-2.6.30.5/drivers/char/tty_io.c       2009-06-11 17:12:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/char/tty_io.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/char/tty_io.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/char/tty_io.c
+--- linux-2.6.31/drivers/char/tty_io.c 2009-09-10 15:25:50.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/char/tty_io.c      2009-09-10 16:11:43.000000000 +0200
 @@ -106,6 +106,7 @@
  
  #include <linux/kmod.h>
@@ -1441,7 +1441,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/char/tty_io.c linux-2.6.30.5-vs2.3.
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -2302,6 +2303,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2235,6 +2236,7 @@ static int tiocspgrp(struct tty_struct *
                return -ENOTTY;
        if (get_user(pgrp_nr, p))
                return -EFAULT;
@@ -1449,9 +1449,9 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/char/tty_io.c linux-2.6.30.5-vs2.3.
        if (pgrp_nr < 0)
                return -EINVAL;
        rcu_read_lock();
-diff -NurpP --minimal linux-2.6.30.5/drivers/infiniband/hw/ipath/ipath_user_pages.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/infiniband/hw/ipath/ipath_user_pages.c
---- linux-2.6.30.5/drivers/infiniband/hw/ipath/ipath_user_pages.c      2009-06-11 17:12:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/infiniband/hw/ipath/ipath_user_pages.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/infiniband/hw/ipath/ipath_user_pages.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/infiniband/hw/ipath/ipath_user_pages.c
+--- linux-2.6.31/drivers/infiniband/hw/ipath/ipath_user_pages.c        2009-06-11 17:12:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/infiniband/hw/ipath/ipath_user_pages.c     2009-09-10 16:11:43.000000000 +0200
 @@ -33,6 +33,7 @@
  
  #include <linux/mm.h>
@@ -1497,18 +1497,18 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/infiniband/hw/ipath/ipath_user_page
        up_write(&work->mm->mmap_sem);
        mmput(work->mm);
        kfree(work);
-diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm.c
---- linux-2.6.30.5/drivers/md/dm.c     2009-08-17 16:37:35.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm.c  2009-07-04 01:11:39.000000000 +0200
-@@ -21,6 +21,7 @@
+diff -NurpP --minimal linux-2.6.31/drivers/md/dm.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm.c
+--- linux-2.6.31/drivers/md/dm.c       2009-09-10 15:25:55.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm.c    2009-09-10 16:15:37.000000000 +0200
+@@ -19,6 +19,7 @@
+ #include <linux/slab.h>
+ #include <linux/idr.h>
  #include <linux/hdreg.h>
- #include <linux/blktrace_api.h>
- #include <trace/block.h>
 +#include <linux/vs_base.h>
  
- #define DM_MSG_PREFIX "core"
+ #include <trace/events/block.h>
  
-@@ -105,6 +106,7 @@ struct mapped_device {
+@@ -118,6 +119,7 @@ struct mapped_device {
        rwlock_t map_lock;
        atomic_t holders;
        atomic_t open_count;
@@ -1516,7 +1516,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.c linux-2.6.30.5-vs2.3.0.36.1
  
        unsigned long flags;
  
-@@ -291,6 +293,7 @@ static void __exit dm_exit(void)
+@@ -322,6 +324,7 @@ static void __exit dm_exit(void)
  static int dm_blk_open(struct block_device *bdev, fmode_t mode)
  {
        struct mapped_device *md;
@@ -1524,7 +1524,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.c linux-2.6.30.5-vs2.3.0.36.1
  
        spin_lock(&_minor_lock);
  
-@@ -299,18 +302,19 @@ static int dm_blk_open(struct block_devi
+@@ -330,18 +333,19 @@ static int dm_blk_open(struct block_devi
                goto out;
  
        if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1550,7 +1550,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.c linux-2.6.30.5-vs2.3.0.36.1
  }
  
  static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -503,6 +507,14 @@ int dm_set_geometry(struct mapped_device
+@@ -550,6 +554,14 @@ int dm_set_geometry(struct mapped_device
        return 0;
  }
  
@@ -1565,29 +1565,29 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.c linux-2.6.30.5-vs2.3.0.36.1
  /*-----------------------------------------------------------------
   * CRUD START:
   *   A more elegant soln is in the works that uses the queue
-@@ -1126,6 +1138,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1754,6 +1766,7 @@ static struct mapped_device *alloc_dev(i
        INIT_LIST_HEAD(&md->uevent_list);
        spin_lock_init(&md->uevent_lock);
  
 +      md->xid = vx_current_xid();
-       md->queue = blk_alloc_queue(GFP_KERNEL);
+       md->queue = blk_init_queue(dm_request_fn, NULL);
        if (!md->queue)
                goto bad_queue;
-diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm.h linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm.h
---- linux-2.6.30.5/drivers/md/dm.h     2009-06-11 17:12:31.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm.h  2009-07-04 01:11:39.000000000 +0200
-@@ -53,6 +53,8 @@ int dm_table_any_congested(struct dm_tab
-  */
- #define dm_target_is_valid(t) ((t)->table)
+diff -NurpP --minimal linux-2.6.31/drivers/md/dm.h linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm.h
+--- linux-2.6.31/drivers/md/dm.h       2009-09-10 15:25:55.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm.h    2009-09-10 16:11:43.000000000 +0200
+@@ -41,6 +41,8 @@ struct dm_dev_internal {
+ struct dm_table;
+ struct dm_md_mempools;
  
 +xid_t dm_get_xid(struct mapped_device *md);
 +
  /*-----------------------------------------------------------------
-  * A registry of target types.
+  * Internal table functions.
   *---------------------------------------------------------------*/
-diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm-ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm-ioctl.c
---- linux-2.6.30.5/drivers/md/dm-ioctl.c       2009-06-11 17:12:31.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/md/dm-ioctl.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/md/dm-ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm-ioctl.c
+--- linux-2.6.31/drivers/md/dm-ioctl.c 2009-09-10 15:25:55.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/md/dm-ioctl.c      2009-09-10 16:11:43.000000000 +0200
 @@ -16,6 +16,7 @@
  #include <linux/dm-ioctl.h>
  #include <linux/hdreg.h>
@@ -1658,7 +1658,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm-ioctl.c linux-2.6.30.5-vs2.3.
  out:
        return mdptr;
  }
-@@ -1426,8 +1437,8 @@ static int ctl_ioctl(uint command, struc
+@@ -1445,8 +1456,8 @@ static int ctl_ioctl(uint command, struc
        ioctl_fn fn = NULL;
        size_t param_size;
  
@@ -1669,9 +1669,9 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/md/dm-ioctl.c linux-2.6.30.5-vs2.3.
                return -EACCES;
  
        if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/net/tun.c
---- linux-2.6.30.5/drivers/net/tun.c   2009-08-17 16:37:37.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/drivers/net/tun.c        2009-07-23 13:50:49.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/drivers/net/tun.c linux-2.6.31-vs2.3.0.36.14-pre8/drivers/net/tun.c
+--- linux-2.6.31/drivers/net/tun.c     2009-09-10 15:26:03.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/drivers/net/tun.c  2009-09-10 16:11:43.000000000 +0200
 @@ -61,6 +61,7 @@
  #include <linux/crc32.h>
  #include <linux/nsproxy.h>
@@ -1697,7 +1697,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36
                return -EPERM;
  
        netif_tx_lock_bh(tun->dev);
-@@ -815,6 +817,7 @@ static void tun_setup(struct net_device 
+@@ -823,6 +825,7 @@ static void tun_setup(struct net_device 
  
        tun->owner = -1;
        tun->group = -1;
@@ -1705,7 +1705,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36
  
        dev->ethtool_ops = &tun_ethtool_ops;
        dev->destructor = tun_free_netdev;
-@@ -879,6 +882,9 @@ static int tun_set_iff(struct net *net, 
+@@ -935,6 +938,9 @@ static int tun_set_iff(struct net *net, 
                else
                        return -EINVAL;
  
@@ -1715,7 +1715,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36
                err = tun_attach(tun, file);
                if (err < 0)
                        return err;
-@@ -889,7 +895,7 @@ static int tun_set_iff(struct net *net, 
+@@ -945,7 +951,7 @@ static int tun_set_iff(struct net *net, 
  
                err = -EINVAL;
  
@@ -1724,7 +1724,7 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36
                        return -EPERM;
  
                /* Set dev type */
-@@ -1152,6 +1158,16 @@ static int tun_chr_ioctl(struct inode *i
+@@ -1192,6 +1198,16 @@ static long tun_chr_ioctl(struct file *f
                DBG(KERN_INFO "%s: group set to %d\n", tun->dev->name, tun->group);
                break;
  
@@ -1740,10 +1740,10 @@ diff -NurpP --minimal linux-2.6.30.5/drivers/net/tun.c linux-2.6.30.5-vs2.3.0.36
 +
        case TUNSETLINK:
                /* Only allow setting the type when the interface is down */
-               rtnl_lock();
-diff -NurpP --minimal linux-2.6.30.5/fs/attr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/attr.c
---- linux-2.6.30.5/fs/attr.c   2009-06-11 17:13:01.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/attr.c        2009-07-04 02:19:40.000000000 +0200
+               if (tun->dev->flags & IFF_UP) {
+diff -NurpP --minimal linux-2.6.31/fs/attr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/attr.c
+--- linux-2.6.31/fs/attr.c     2009-06-11 17:13:01.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/attr.c  2009-09-10 16:11:43.000000000 +0200
 @@ -14,6 +14,9 @@
  #include <linux/fcntl.h>
  #include <linux/quotaops.h>
@@ -1784,9 +1784,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/attr.c linux-2.6.30.5-vs2.3.0.36.14-pre7
                                error = vfs_dq_transfer(inode, attr) ?
                                        -EDQUOT : 0;
                        if (!error)
-diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_aout.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_aout.c
---- linux-2.6.30.5/fs/binfmt_aout.c    2009-03-24 14:22:24.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_aout.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/binfmt_aout.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_aout.c
+--- linux-2.6.31/fs/binfmt_aout.c      2009-03-24 14:22:24.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_aout.c   2009-09-10 16:11:43.000000000 +0200
 @@ -24,6 +24,7 @@
  #include <linux/binfmts.h>
  #include <linux/personality.h>
@@ -1795,9 +1795,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_aout.c linux-2.6.30.5-vs2.3.0.36.
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_elf.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_elf.c
---- linux-2.6.30.5/fs/binfmt_elf.c     2009-08-17 16:37:39.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_elf.c  2009-08-06 02:11:37.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/binfmt_elf.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_elf.c
+--- linux-2.6.31/fs/binfmt_elf.c       2009-09-10 15:26:20.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_elf.c    2009-09-10 16:11:43.000000000 +0200
 @@ -31,6 +31,7 @@
  #include <linux/random.h>
  #include <linux/elf.h>
@@ -1806,9 +1806,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_elf.c linux-2.6.30.5-vs2.3.0.36.1
  #include <asm/uaccess.h>
  #include <asm/param.h>
  #include <asm/page.h>
-diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_flat.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_flat.c
---- linux-2.6.30.5/fs/binfmt_flat.c    2009-08-17 16:37:39.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_flat.c 2009-08-17 16:56:56.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/binfmt_flat.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_flat.c
+--- linux-2.6.31/fs/binfmt_flat.c      2009-09-10 15:26:20.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_flat.c   2009-09-10 16:11:43.000000000 +0200
 @@ -35,6 +35,7 @@
  #include <linux/init.h>
  #include <linux/flat.h>
@@ -1817,9 +1817,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_flat.c linux-2.6.30.5-vs2.3.0.36.
  
  #include <asm/byteorder.h>
  #include <asm/system.h>
-diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_som.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_som.c
---- linux-2.6.30.5/fs/binfmt_som.c     2009-06-11 17:13:02.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/binfmt_som.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/binfmt_som.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_som.c
+--- linux-2.6.31/fs/binfmt_som.c       2009-06-11 17:13:02.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/binfmt_som.c    2009-09-10 16:11:43.000000000 +0200
 @@ -28,6 +28,7 @@
  #include <linux/shm.h>
  #include <linux/personality.h>
@@ -1828,18 +1828,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/binfmt_som.c linux-2.6.30.5-vs2.3.0.36.1
  
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
-diff -NurpP --minimal linux-2.6.30.5/fs/block_dev.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/block_dev.c
---- linux-2.6.30.5/fs/block_dev.c      2009-06-11 17:13:02.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/block_dev.c   2009-07-04 01:11:39.000000000 +0200
-@@ -25,6 +25,7 @@
- #include <linux/uio.h>
+diff -NurpP --minimal linux-2.6.31/fs/block_dev.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/block_dev.c
+--- linux-2.6.31/fs/block_dev.c        2009-09-10 15:26:20.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/block_dev.c     2009-09-10 17:01:13.000000000 +0200
+@@ -26,6 +26,7 @@
  #include <linux/namei.h>
  #include <linux/log2.h>
+ #include <linux/kmemleak.h>
 +#include <linux/vs_device.h>
  #include <asm/uaccess.h>
  #include "internal.h"
  
-@@ -539,6 +540,7 @@ struct block_device *bdget(dev_t dev)
+@@ -550,6 +551,7 @@ struct block_device *bdget(dev_t dev)
                bdev->bd_invalidated = 0;
                inode->i_mode = S_IFBLK;
                inode->i_rdev = dev;
@@ -1847,7 +1847,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/block_dev.c linux-2.6.30.5-vs2.3.0.36.14
                inode->i_bdev = bdev;
                inode->i_data.a_ops = &def_blk_aops;
                mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -575,6 +577,11 @@ EXPORT_SYMBOL(bdput);
+@@ -596,6 +598,11 @@ EXPORT_SYMBOL(bdput);
  static struct block_device *bd_acquire(struct inode *inode)
  {
        struct block_device *bdev;
@@ -1859,7 +1859,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/block_dev.c linux-2.6.30.5-vs2.3.0.36.14
  
        spin_lock(&bdev_lock);
        bdev = inode->i_bdev;
-@@ -585,7 +592,7 @@ static struct block_device *bd_acquire(s
+@@ -606,7 +613,7 @@ static struct block_device *bd_acquire(s
        }
        spin_unlock(&bdev_lock);
  
@@ -1868,10 +1868,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/block_dev.c linux-2.6.30.5-vs2.3.0.36.14
        if (bdev) {
                spin_lock(&bdev_lock);
                if (!inode->i_bdev) {
-diff -NurpP --minimal linux-2.6.30.5/fs/char_dev.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/char_dev.c
---- linux-2.6.30.5/fs/char_dev.c       2009-03-24 14:22:25.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/char_dev.c    2009-07-04 01:11:39.000000000 +0200
-@@ -21,6 +21,8 @@
+diff -NurpP --minimal linux-2.6.31/fs/char_dev.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/char_dev.c
+--- linux-2.6.31/fs/char_dev.c 2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/char_dev.c      2009-09-10 16:11:43.000000000 +0200
+@@ -20,6 +20,8 @@
  #include <linux/cdev.h>
  #include <linux/mutex.h>
  #include <linux/backing-dev.h>
@@ -1880,7 +1880,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/char_dev.c linux-2.6.30.5-vs2.3.0.36.14-
  
  #include "internal.h"
  
-@@ -358,14 +360,21 @@ static int chrdev_open(struct inode *ino
+@@ -357,14 +359,21 @@ static int chrdev_open(struct inode *ino
        struct cdev *p;
        struct cdev *new = NULL;
        int ret = 0;
@@ -1903,9 +1903,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/char_dev.c linux-2.6.30.5-vs2.3.0.36.14-
                if (!kobj)
                        return -ENXIO;
                new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-2.6.30.5/fs/dcache.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/dcache.c
---- linux-2.6.30.5/fs/dcache.c 2009-06-11 17:13:02.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/dcache.c      2009-07-04 02:18:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/dcache.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/dcache.c
+--- linux-2.6.31/fs/dcache.c   2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/dcache.c        2009-09-10 16:11:43.000000000 +0200
 @@ -32,6 +32,7 @@
  #include <linux/swap.h>
  #include <linux/bootmem.h>
@@ -1957,9 +1957,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/dcache.c linux-2.6.30.5-vs2.3.0.36.14-pr
                found = dentry;
                spin_unlock(&dentry->d_lock);
                break;
-diff -NurpP --minimal linux-2.6.30.5/fs/devpts/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/devpts/inode.c
---- linux-2.6.30.5/fs/devpts/inode.c   2009-06-11 17:13:02.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/devpts/inode.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/devpts/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/devpts/inode.c
+--- linux-2.6.31/fs/devpts/inode.c     2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/devpts/inode.c  2009-09-10 16:11:43.000000000 +0200
 @@ -19,12 +19,12 @@
  #include <linux/tty.h>
  #include <linux/mutex.h>
@@ -2039,7 +2039,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/devpts/inode.c linux-2.6.30.5-vs2.3.0.36
  
        s->s_root = d_alloc_root(inode);
        if (s->s_root)
-@@ -499,6 +535,9 @@ int devpts_pty_new(struct inode *ptmx_in
+@@ -498,6 +534,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);
@@ -2049,10 +2049,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/devpts/inode.c linux-2.6.30.5-vs2.3.0.36
        inode->i_private = tty;
        tty->driver_data = inode;
  
-diff -NurpP --minimal linux-2.6.30.5/fs/exec.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/exec.c
---- linux-2.6.30.5/fs/exec.c   2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/exec.c        2009-07-04 01:11:39.000000000 +0200
-@@ -248,7 +248,9 @@ static int __bprm_mm_init(struct linux_b
+diff -NurpP --minimal linux-2.6.31/fs/exec.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/exec.c
+--- linux-2.6.31/fs/exec.c     2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/exec.c  2009-09-10 16:11:43.000000000 +0200
+@@ -249,7 +249,9 @@ static int __bprm_mm_init(struct linux_b
        if (err)
                goto err;
  
@@ -2063,7 +2063,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/exec.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        up_write(&mm->mmap_sem);
        bprm->p = vma->vm_end - sizeof(void *);
        return 0;
-@@ -1449,7 +1451,7 @@ static int format_corename(char *corenam
+@@ -1471,7 +1473,7 @@ static int format_corename(char *corenam
                        /* UNIX time of coredump */
                        case 't': {
                                struct timeval tv;
@@ -2072,9 +2072,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/exec.c linux-2.6.30.5-vs2.3.0.36.14-pre7
                                rc = snprintf(out_ptr, out_end - out_ptr,
                                              "%lu", tv.tv_sec);
                                if (rc > out_end - out_ptr)
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/balloc.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/balloc.c
---- linux-2.6.30.5/fs/ext2/balloc.c    2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/balloc.c 2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext2/balloc.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/balloc.c
+--- linux-2.6.31/fs/ext2/balloc.c      2009-06-11 17:13:03.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/balloc.c   2009-09-10 16:11:43.000000000 +0200
 @@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block 
                        start = 0;
                end = EXT2_BLOCKS_PER_GROUP(sb);
@@ -2083,10 +2083,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/balloc.c linux-2.6.30.5-vs2.3.0.36.
        BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
  
  repeat:
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/ext2.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/ext2.h
---- linux-2.6.30.5/fs/ext2/ext2.h      2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/ext2.h   2009-07-04 01:11:39.000000000 +0200
-@@ -170,6 +170,7 @@ extern const struct file_operations ext2
+diff -NurpP --minimal linux-2.6.31/fs/ext2/ext2.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/ext2.h
+--- linux-2.6.31/fs/ext2/ext2.h        2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/ext2.h     2009-09-10 16:11:43.000000000 +0200
+@@ -163,6 +163,7 @@ extern const struct file_operations ext2
  extern const struct address_space_operations ext2_aops;
  extern const struct address_space_operations ext2_aops_xip;
  extern const struct address_space_operations ext2_nobh_aops;
@@ -2094,18 +2094,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/ext2.h linux-2.6.30.5-vs2.3.0.36.14
  
  /* namei.c */
  extern const struct inode_operations ext2_dir_inode_operations;
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/file.c
---- linux-2.6.30.5/fs/ext2/file.c      2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/file.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext2/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/file.c
+--- linux-2.6.31/fs/ext2/file.c        2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/file.c     2009-09-10 16:11:43.000000000 +0200
 @@ -87,4 +87,5 @@ const struct inode_operations ext2_file_
        .setattr        = ext2_setattr,
        .permission     = ext2_permission,
        .fiemap         = ext2_fiemap,
 +      .sync_flags     = ext2_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/inode.c
---- linux-2.6.30.5/fs/ext2/inode.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/inode.c  2009-07-04 02:26:09.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext2/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/inode.c
+--- linux-2.6.31/fs/ext2/inode.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/inode.c    2009-09-10 16:11:43.000000000 +0200
 @@ -33,6 +33,7 @@
  #include <linux/mpage.h>
  #include <linux/fiemap.h>
@@ -2114,7 +2114,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
  #include "ext2.h"
  #include "acl.h"
  #include "xip.h"
-@@ -1040,7 +1041,7 @@ void ext2_truncate(struct inode *inode)
+@@ -1038,7 +1039,7 @@ void ext2_truncate(struct inode *inode)
                return;
        if (ext2_inode_is_fast_symlink(inode))
                return;
@@ -2123,7 +2123,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
                return;
  
        blocksize = inode->i_sb->s_blocksize;
-@@ -1178,38 +1179,72 @@ void ext2_set_inode_flags(struct inode *
+@@ -1176,38 +1177,72 @@ void ext2_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT2_I(inode)->i_flags;
  
@@ -2203,7 +2203,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
  struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
  {
        struct ext2_inode_info *ei;
-@@ -1217,6 +1252,8 @@ struct inode *ext2_iget (struct super_bl
+@@ -1215,6 +1250,8 @@ struct inode *ext2_iget (struct super_bl
        struct ext2_inode *raw_inode;
        struct inode *inode;
        long ret = -EIO;
@@ -2212,7 +2212,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
        int n;
  
        inode = iget_locked(sb, ino);
-@@ -1239,12 +1276,17 @@ struct inode *ext2_iget (struct super_bl
+@@ -1233,12 +1270,17 @@ struct inode *ext2_iget (struct super_bl
        }
  
        inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2234,7 +2234,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
        inode->i_nlink = 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);
-@@ -1342,8 +1384,8 @@ static int ext2_update_inode(struct inod
+@@ -1336,8 +1378,8 @@ int ext2_write_inode(struct inode *inode
        struct ext2_inode_info *ei = EXT2_I(inode);
        struct super_block *sb = inode->i_sb;
        ino_t ino = inode->i_ino;
@@ -2245,7 +2245,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
        struct buffer_head * bh;
        struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
        int n;
-@@ -1379,6 +1421,9 @@ static int ext2_update_inode(struct inod
+@@ -1373,6 +1415,9 @@ int ext2_write_inode(struct inode *inode
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
@@ -2255,7 +2255,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
        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);
-@@ -1465,7 +1510,8 @@ int ext2_setattr(struct dentry *dentry, 
+@@ -1454,7 +1499,8 @@ int ext2_setattr(struct dentry *dentry, 
        if (error)
                return error;
        if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
@@ -2265,18 +2265,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/inode.c linux-2.6.30.5-vs2.3.0.36.1
                error = vfs_dq_transfer(inode, iattr) ? -EDQUOT : 0;
                if (error)
                        return error;
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/ioctl.c
---- linux-2.6.30.5/fs/ext2/ioctl.c     2009-03-24 14:22:25.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/ioctl.c  2009-07-04 01:11:39.000000000 +0200
-@@ -14,6 +14,7 @@
- #include <linux/compat.h>
- #include <linux/mount.h>
- #include <linux/smp_lock.h>
-+#include <linux/mount.h>
- #include <asm/current.h>
- #include <asm/uaccess.h>
-@@ -52,6 +53,11 @@ long ext2_ioctl(struct file *filp, unsig
+diff -NurpP --minimal linux-2.6.31/fs/ext2/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/ioctl.c
+--- linux-2.6.31/fs/ext2/ioctl.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/ioctl.c    2009-09-10 16:11:43.000000000 +0200
+@@ -51,6 +51,11 @@ long ext2_ioctl(struct file *filp, unsig
  
                flags = ext2_mask_flags(inode->i_mode, flags);
  
@@ -2288,7 +2280,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/ioctl.c linux-2.6.30.5-vs2.3.0.36.1
                mutex_lock(&inode->i_mutex);
                /* Is it quota file? Do not allow user to mess with it */
                if (IS_NOQUOTA(inode)) {
-@@ -67,7 +73,9 @@ long ext2_ioctl(struct file *filp, unsig
+@@ -66,7 +71,9 @@ long ext2_ioctl(struct file *filp, unsig
                 *
                 * This test looks nicer. Thanks to Pauline Middelink
                 */
@@ -2299,9 +2291,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/ioctl.c linux-2.6.30.5-vs2.3.0.36.1
                        if (!capable(CAP_LINUX_IMMUTABLE)) {
                                mutex_unlock(&inode->i_mutex);
                                ret = -EPERM;
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/namei.c
---- linux-2.6.30.5/fs/ext2/namei.c     2009-03-24 14:22:25.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/namei.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext2/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/namei.c
+--- linux-2.6.31/fs/ext2/namei.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/namei.c    2009-09-10 16:11:43.000000000 +0200
 @@ -31,6 +31,7 @@
   */
  
@@ -2310,15 +2302,15 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/namei.c linux-2.6.30.5-vs2.3.0.36.1
  #include "ext2.h"
  #include "xattr.h"
  #include "acl.h"
-@@ -68,6 +69,7 @@ static struct dentry *ext2_lookup(struct
-               inode = ext2_iget(dir->i_sb, ino);
-               if (IS_ERR(inode))
-                       return ERR_CAST(inode);
+@@ -74,6 +75,7 @@ static struct dentry *ext2_lookup(struct
+                               return ERR_PTR(-EIO);
+                       } else {
+                               return ERR_CAST(inode);
 +              dx_propagate_tag(nd, inode);
+                       }
+               }
        }
-       return d_splice_alias(inode, dentry);
- }
-@@ -388,6 +390,7 @@ const struct inode_operations ext2_dir_i
+@@ -401,6 +403,7 @@ const struct inode_operations ext2_dir_i
  #endif
        .setattr        = ext2_setattr,
        .permission     = ext2_permission,
@@ -2326,16 +2318,16 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/namei.c linux-2.6.30.5-vs2.3.0.36.1
  };
  
  const struct inode_operations ext2_special_inode_operations = {
-@@ -399,4 +402,5 @@ const struct inode_operations ext2_speci
+@@ -412,4 +415,5 @@ const struct inode_operations ext2_speci
  #endif
        .setattr        = ext2_setattr,
        .permission     = ext2_permission,
 +      .sync_flags     = ext2_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/super.c
---- linux-2.6.30.5/fs/ext2/super.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/super.c  2009-07-04 01:11:39.000000000 +0200
-@@ -391,7 +391,8 @@ enum {
+diff -NurpP --minimal linux-2.6.31/fs/ext2/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/super.c
+--- linux-2.6.31/fs/ext2/super.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/super.c    2009-09-10 16:11:43.000000000 +0200
+@@ -382,7 +382,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,
@@ -2345,7 +2337,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.1
  };
  
  static const match_table_t tokens = {
-@@ -419,6 +420,9 @@ static const match_table_t tokens = {
+@@ -410,6 +411,9 @@ static const match_table_t tokens = {
        {Opt_acl, "acl"},
        {Opt_noacl, "noacl"},
        {Opt_xip, "xip"},
@@ -2355,7 +2347,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.1
        {Opt_grpquota, "grpquota"},
        {Opt_ignore, "noquota"},
        {Opt_quota, "quota"},
-@@ -489,6 +493,20 @@ static int parse_options (char * options
+@@ -480,6 +484,20 @@ static int parse_options (char * options
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2376,7 +2368,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.1
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -838,6 +856,8 @@ static int ext2_fill_super(struct super_
+@@ -829,6 +847,8 @@ static int ext2_fill_super(struct super_
        if (!parse_options ((char *) data, sbi))
                goto failed_mount;
  
@@ -2385,7 +2377,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
                 MS_POSIXACL : 0);
-@@ -1170,6 +1190,13 @@ static int ext2_remount (struct super_bl
+@@ -1175,6 +1195,13 @@ static int ext2_remount (struct super_bl
                goto restore_opts;
        }
  
@@ -2399,9 +2391,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ext2/symlink.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/symlink.c
---- linux-2.6.30.5/fs/ext2/symlink.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext2/symlink.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext2/symlink.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/symlink.c
+--- linux-2.6.31/fs/ext2/symlink.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext2/symlink.c  2009-09-10 16:11:43.000000000 +0200
 @@ -38,6 +38,7 @@ const struct inode_operations ext2_symli
        .listxattr      = ext2_listxattr,
        .removexattr    = generic_removexattr,
@@ -2416,9 +2408,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext2/symlink.c linux-2.6.30.5-vs2.3.0.36
  #endif
 +      .sync_flags     = ext2_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/file.c
---- linux-2.6.30.5/fs/ext3/file.c      2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/file.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext3/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/file.c
+--- linux-2.6.31/fs/ext3/file.c        2009-06-11 17:13:03.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/file.c     2009-09-10 16:11:43.000000000 +0200
 @@ -139,5 +139,6 @@ const struct inode_operations ext3_file_
  #endif
        .permission     = ext3_permission,
@@ -2426,9 +2418,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/file.c linux-2.6.30.5-vs2.3.0.36.14
 +      .sync_flags     = ext3_sync_flags,
  };
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/inode.c
---- linux-2.6.30.5/fs/ext3/inode.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/inode.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext3/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/inode.c
+--- linux-2.6.31/fs/ext3/inode.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/inode.c    2009-09-10 16:11:43.000000000 +0200
 @@ -38,6 +38,7 @@
  #include <linux/bio.h>
  #include <linux/fiemap.h>
@@ -2437,7 +2429,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
  #include "xattr.h"
  #include "acl.h"
  
-@@ -2318,7 +2319,7 @@ static void ext3_free_branches(handle_t 
+@@ -2312,7 +2313,7 @@ static void ext3_free_branches(handle_t 
  
  int ext3_can_truncate(struct inode *inode)
  {
@@ -2446,7 +2438,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
                return 0;
        if (S_ISREG(inode->i_mode))
                return 1;
-@@ -2695,36 +2696,84 @@ void ext3_set_inode_flags(struct inode *
+@@ -2697,36 +2698,84 @@ void ext3_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT3_I(inode)->i_flags;
  
@@ -2538,7 +2530,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
  }
  
  struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2736,6 +2785,8 @@ struct inode *ext3_iget(struct super_blo
+@@ -2738,6 +2787,8 @@ struct inode *ext3_iget(struct super_blo
        struct inode *inode;
        long ret;
        int block;
@@ -2547,7 +2539,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
  
        inode = iget_locked(sb, ino);
        if (!inode)
-@@ -2756,12 +2807,17 @@ struct inode *ext3_iget(struct super_blo
+@@ -2754,12 +2805,17 @@ 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);
@@ -2569,7 +2561,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
        inode->i_nlink = 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);
-@@ -2892,6 +2948,8 @@ static int ext3_do_update_inode(handle_t
+@@ -2890,6 +2946,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;
@@ -2578,7 +2570,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
        int err = 0, rc, block;
  
        /* For fields not not tracking in the in-memory inode,
-@@ -2902,29 +2960,32 @@ static int ext3_do_update_inode(handle_t
+@@ -2900,29 +2958,32 @@ static int ext3_do_update_inode(handle_t
        ext3_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
        if(!(test_opt(inode->i_sb, NO_UID32))) {
@@ -2617,7 +2609,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
        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);
-@@ -3077,7 +3138,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3074,7 +3135,8 @@ int ext3_setattr(struct dentry *dentry, 
                return error;
  
        if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -2627,7 +2619,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -3099,6 +3161,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3096,6 +3158,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;
@@ -2636,9 +2628,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/inode.c linux-2.6.30.5-vs2.3.0.36.1
                error = ext3_mark_inode_dirty(handle, inode);
                ext3_journal_stop(handle);
        }
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/ioctl.c
---- linux-2.6.30.5/fs/ext3/ioctl.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/ioctl.c  2009-07-04 02:23:27.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext3/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/ioctl.c
+--- linux-2.6.31/fs/ext3/ioctl.c       2009-06-11 17:13:03.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/ioctl.c    2009-09-10 16:11:43.000000000 +0200
 @@ -8,6 +8,7 @@
   */
  
@@ -2678,9 +2670,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/ioctl.c linux-2.6.30.5-vs2.3.0.36.1
                        if (!capable(CAP_LINUX_IMMUTABLE))
                                goto flags_out;
                }
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/namei.c
---- linux-2.6.30.5/fs/ext3/namei.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/namei.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext3/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/namei.c
+--- linux-2.6.31/fs/ext3/namei.c       2009-06-11 17:13:03.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/namei.c    2009-09-10 16:11:43.000000000 +0200
 @@ -36,6 +36,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -2711,10 +2703,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/namei.c linux-2.6.30.5-vs2.3.0.36.1
        .permission     = ext3_permission,
 +      .sync_flags     = ext3_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/super.c
---- linux-2.6.30.5/fs/ext3/super.c     2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/super.c  2009-07-04 01:11:39.000000000 +0200
-@@ -794,7 +794,7 @@ enum {
+diff -NurpP --minimal linux-2.6.31/fs/ext3/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/super.c
+--- linux-2.6.31/fs/ext3/super.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/super.c    2009-09-10 16:11:43.000000000 +0200
+@@ -787,7 +787,7 @@ enum {
        Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
        Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota,
        Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota,
@@ -2723,7 +2715,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.1
  };
  
  static const match_table_t tokens = {
-@@ -847,6 +847,9 @@ static const match_table_t tokens = {
+@@ -840,6 +840,9 @@ static const match_table_t tokens = {
        {Opt_usrquota, "usrquota"},
        {Opt_barrier, "barrier=%u"},
        {Opt_resize, "resize"},
@@ -2733,7 +2725,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.1
        {Opt_err, NULL},
  };
  
-@@ -939,6 +942,20 @@ static int parse_options (char *options,
+@@ -932,6 +935,20 @@ static int parse_options (char *options,
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2754,7 +2746,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.1
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -1657,6 +1674,9 @@ static int ext3_fill_super (struct super
+@@ -1656,6 +1673,9 @@ static int ext3_fill_super (struct super
                            NULL, 0))
                goto failed_mount;
  
@@ -2764,7 +2756,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT3_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -2531,6 +2551,13 @@ static int ext3_remount (struct super_bl
+@@ -2514,6 +2534,13 @@ static int ext3_remount (struct super_bl
        if (sbi->s_mount_opt & EXT3_MOUNT_ABORT)
                ext3_abort(sb, __func__, "Abort forced by user");
  
@@ -2778,9 +2770,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT3_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ext3/symlink.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/symlink.c
---- linux-2.6.30.5/fs/ext3/symlink.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext3/symlink.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext3/symlink.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/symlink.c
+--- linux-2.6.31/fs/ext3/symlink.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext3/symlink.c  2009-09-10 16:11:43.000000000 +0200
 @@ -40,6 +40,7 @@ const struct inode_operations ext3_symli
        .listxattr      = ext3_listxattr,
        .removexattr    = generic_removexattr,
@@ -2795,10 +2787,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext3/symlink.c linux-2.6.30.5-vs2.3.0.36
  #endif
 +      .sync_flags     = ext3_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ext4.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/ext4.h
---- linux-2.6.30.5/fs/ext4/ext4.h      2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/ext4.h   2009-07-04 15:54:50.000000000 +0200
-@@ -235,8 +235,12 @@ struct flex_groups {
+diff -NurpP --minimal linux-2.6.31/fs/ext4/ext4.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/ext4.h
+--- linux-2.6.31/fs/ext4/ext4.h        2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/ext4.h     2009-09-10 17:05:31.000000000 +0200
+@@ -252,8 +252,12 @@ struct flex_groups {
  #define EXT4_HUGE_FILE_FL               0x00040000 /* Set to each huge file */
  #define EXT4_EXTENTS_FL                       0x00080000 /* Inode uses extents */
  #define EXT4_EXT_MIGRATE              0x00100000 /* Inode is migrating */
@@ -2811,15 +2803,33 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ext4.h linux-2.6.30.5-vs2.3.0.36.14
  #define EXT4_FL_USER_VISIBLE          0x000BDFFF /* User visible flags */
  #define EXT4_FL_USER_MODIFIABLE               0x000B80FF /* User modifiable flags */
  
-@@ -560,6 +564,7 @@ do {                                                                              \
- #define EXT4_MOUNT_I_VERSION            0x2000000 /* i_version support */
- #define EXT4_MOUNT_DELALLOC           0x8000000 /* Delalloc support */
- #define EXT4_MOUNT_DATA_ERR_ABORT     0x10000000 /* Abort on file data write */
-+#define EXT4_MOUNT_TAGGED             (1<<30) /* Enable Context Tags */
+@@ -423,7 +427,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] */
+-                      __u32   l_i_reserved2;
++                      __le16  l_i_tag;        /* Context Tag */
++                      __u16   l_i_reserved2;
+               } linux2;
+               struct {
+                       __le16  h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
+@@ -538,6 +543,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
++#define i_raw_tag     osd2.linux2.l_i_tag
+ #define i_reserved2   osd2.linux2.l_i_reserved2
  
- /* Compatibility, for having both ext2_fs.h and ext4_fs.h included at once */
- #ifndef _LINUX_EXT2_FS_H
-@@ -1068,6 +1073,7 @@ struct buffer_head *ext4_bread(handle_t 
+ #elif defined(__GNU__)
+@@ -694,6 +700,7 @@ struct ext4_inode_info {
+ #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 */
++#define EXT4_MOUNT_TAGGED             0x400000 /* Enable Context Tags */
+ #define EXT4_MOUNT_JOURNAL_CHECKSUM   0x800000 /* Journal checksums */
+ #define EXT4_MOUNT_JOURNAL_ASYNC_COMMIT       0x1000000 /* Journal Async Commit */
+ #define EXT4_MOUNT_I_VERSION            0x2000000 /* i_version support */
+@@ -1354,6 +1361,7 @@ struct buffer_head *ext4_bread(handle_t 
                                                ext4_lblk_t, int, int *);
  int ext4_get_block(struct inode *inode, sector_t iblock,
                                struct buffer_head *bh_result, int create);
@@ -2827,28 +2837,28 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ext4.h linux-2.6.30.5-vs2.3.0.36.14
  
  extern struct inode *ext4_iget(struct super_block *, unsigned long);
  extern int  ext4_write_inode(struct inode *, int);
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/file.c
---- linux-2.6.30.5/fs/ext4/file.c      2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/file.c   2009-07-04 01:11:39.000000000 +0200
-@@ -176,5 +176,6 @@ const struct inode_operations ext4_file_
+diff -NurpP --minimal linux-2.6.31/fs/ext4/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/file.c
+--- linux-2.6.31/fs/ext4/file.c        2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/file.c     2009-09-10 16:11:43.000000000 +0200
+@@ -210,5 +210,6 @@ const struct inode_operations ext4_file_
        .permission     = ext4_permission,
        .fallocate      = ext4_fallocate,
        .fiemap         = ext4_fiemap,
 +      .sync_flags     = ext4_sync_flags,
  };
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/inode.c
---- linux-2.6.30.5/fs/ext4/inode.c     2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/inode.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext4/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/inode.c
+--- linux-2.6.31/fs/ext4/inode.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/inode.c    2009-09-10 17:09:15.000000000 +0200
 @@ -37,6 +37,7 @@
  #include <linux/namei.h>
  #include <linux/uio.h>
  #include <linux/bio.h>
 +#include <linux/vs_tag.h>
  #include "ext4_jbd2.h"
  #include "xattr.h"
- #include "acl.h"
-@@ -3916,7 +3917,7 @@ static void ext4_free_branches(handle_t 
+@@ -3901,7 +3902,7 @@ static void ext4_free_branches(handle_t 
  
  int ext4_can_truncate(struct inode *inode)
  {
@@ -2857,7 +2867,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
                return 0;
        if (S_ISREG(inode->i_mode))
                return 1;
-@@ -4267,37 +4268,86 @@ void ext4_set_inode_flags(struct inode *
+@@ -4253,36 +4254,84 @@ void ext4_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT4_I(inode)->i_flags;
  
@@ -2947,11 +2957,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
 +      ext4_journal_stop(handle);
 +      return err;
  }
-+
  static blkcnt_t ext4_inode_blocks(struct ext4_inode *raw_inode,
-                                       struct ext4_inode_info *ei)
- {
-@@ -4330,6 +4380,8 @@ struct inode *ext4_iget(struct super_blo
+@@ -4317,6 +4366,8 @@ struct inode *ext4_iget(struct super_blo
        struct inode *inode;
        long ret;
        int block;
@@ -2960,7 +2968,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
  
        inode = iget_locked(sb, ino);
        if (!inode)
-@@ -4349,12 +4401,16 @@ struct inode *ext4_iget(struct super_blo
+@@ -4332,12 +4383,16 @@ struct inode *ext4_iget(struct super_blo
        bh = iloc.bh;
        raw_inode = ext4_raw_inode(&iloc);
        inode->i_mode = le16_to_cpu(raw_inode->i_mode);
@@ -2981,7 +2989,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
        inode->i_nlink = le16_to_cpu(raw_inode->i_links_count);
  
        ei->i_state = 0;
-@@ -4555,6 +4611,8 @@ static int ext4_do_update_inode(handle_t
+@@ -4538,6 +4593,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;
@@ -2990,7 +2998,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
        int err = 0, rc, block;
  
        /* For fields not not tracking in the in-memory inode,
-@@ -4565,29 +4623,32 @@ static int ext4_do_update_inode(handle_t
+@@ -4548,29 +4605,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))) {
@@ -3029,7 +3037,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  
        EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4769,7 +4830,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4734,7 +4794,8 @@ int ext4_setattr(struct dentry *dentry, 
                return error;
  
        if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
@@ -3039,7 +3047,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -4791,6 +4853,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4756,6 +4817,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;
@@ -3048,25 +3056,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/inode.c linux-2.6.30.5-vs2.3.0.36.1
                error = ext4_mark_inode_dirty(handle, inode);
                ext4_journal_stop(handle);
        }
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/ioctl.c
---- linux-2.6.30.5/fs/ext4/ioctl.c     2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/ioctl.c  2009-07-04 01:11:39.000000000 +0200
-@@ -8,12 +8,14 @@
-  */
- #include <linux/fs.h>
-+#include <linux/mount.h>
- #include <linux/jbd2.h>
- #include <linux/capability.h>
- #include <linux/time.h>
+diff -NurpP --minimal linux-2.6.31/fs/ext4/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/ioctl.c
+--- linux-2.6.31/fs/ext4/ioctl.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/ioctl.c    2009-09-10 17:10:01.000000000 +0200
+@@ -14,6 +14,7 @@
  #include <linux/compat.h>
- #include <linux/smp_lock.h>
  #include <linux/mount.h>
+ #include <linux/file.h>
 +#include <linux/vs_tag.h>
  #include <asm/uaccess.h>
  #include "ext4_jbd2.h"
  #include "ext4.h"
-@@ -50,6 +52,11 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -50,6 +51,11 @@ long ext4_ioctl(struct file *filp, unsig
  
                flags = ext4_mask_flags(inode->i_mode, flags);
  
@@ -3078,7 +3079,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ioctl.c linux-2.6.30.5-vs2.3.0.36.1
                err = -EPERM;
                mutex_lock(&inode->i_mutex);
                /* Is it quota file? Do not allow user to mess with it */
-@@ -67,7 +74,9 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -67,7 +73,9 @@ long ext4_ioctl(struct file *filp, unsig
                 *
                 * This test looks nicer. Thanks to Pauline Middelink
                 */
@@ -3089,9 +3090,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/ioctl.c linux-2.6.30.5-vs2.3.0.36.1
                        if (!capable(CAP_LINUX_IMMUTABLE))
                                goto flags_out;
                }
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/namei.c
---- linux-2.6.30.5/fs/ext4/namei.c     2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/namei.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext4/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/namei.c
+--- linux-2.6.31/fs/ext4/namei.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/namei.c    2009-09-10 16:11:43.000000000 +0200
 @@ -34,6 +34,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -3100,7 +3101,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/namei.c linux-2.6.30.5-vs2.3.0.36.1
  #include "ext4.h"
  #include "ext4_jbd2.h"
  
-@@ -942,6 +943,7 @@ restart:
+@@ -941,6 +942,7 @@ restart:
                                if (bh)
                                        ll_rw_block(READ_META, 1, &bh);
                        }
@@ -3108,34 +3109,27 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/namei.c linux-2.6.30.5-vs2.3.0.36.1
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
                        goto next;
-@@ -2533,6 +2535,7 @@ const struct inode_operations ext4_dir_i
+@@ -2549,4 +2551,6 @@ const struct inode_operations ext4_speci
        .removexattr    = generic_removexattr,
  #endif
        .permission     = ext4_permission,
 +      .sync_flags     = ext4_sync_flags,
- };
- const struct inode_operations ext4_special_inode_operations = {
-@@ -2544,4 +2547,5 @@ const struct inode_operations ext4_speci
-       .removexattr    = generic_removexattr,
- #endif
-       .permission     = ext4_permission,
 +      .sync_flags     = ext4_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/super.c
---- linux-2.6.30.5/fs/ext4/super.c     2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/super.c  2009-07-04 02:21:38.000000000 +0200
-@@ -1029,7 +1029,8 @@ enum {
-       Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, Opt_resize,
+diff -NurpP --minimal linux-2.6.31/fs/ext4/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/super.c
+--- linux-2.6.31/fs/ext4/super.c       2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/super.c    2009-09-10 17:06:37.000000000 +0200
+@@ -1057,7 +1057,8 @@ enum {
        Opt_usrquota, Opt_grpquota, Opt_i_version,
        Opt_stripe, Opt_delalloc, Opt_nodelalloc,
+       Opt_block_validity, Opt_noblock_validity,
 -      Opt_inode_readahead_blks, Opt_journal_ioprio
 +      Opt_inode_readahead_blks, Opt_journal_ioprio,
 +      Opt_tag, Opt_notag, Opt_tagid
  };
  
  static const match_table_t tokens = {
-@@ -1092,6 +1093,9 @@ static const match_table_t tokens = {
+@@ -1123,6 +1124,9 @@ static const match_table_t tokens = {
        {Opt_auto_da_alloc, "auto_da_alloc=%u"},
        {Opt_auto_da_alloc, "auto_da_alloc"},
        {Opt_noauto_da_alloc, "noauto_da_alloc"},
@@ -3145,7 +3139,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/super.c linux-2.6.30.5-vs2.3.0.36.1
        {Opt_err, NULL},
  };
  
-@@ -1187,6 +1191,20 @@ static int parse_options(char *options, 
+@@ -1220,6 +1224,20 @@ static int parse_options(char *options, 
                case Opt_nouid32:
                        set_opt(sbi->s_mount_opt, NO_UID32);
                        break;
@@ -3166,7 +3160,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/super.c linux-2.6.30.5-vs2.3.0.36.1
                case Opt_debug:
                        set_opt(sbi->s_mount_opt, DEBUG);
                        break;
-@@ -2335,6 +2353,9 @@ static int ext4_fill_super(struct super_
+@@ -2385,6 +2403,9 @@ static int ext4_fill_super(struct super_
                           &journal_ioprio, NULL, 0))
                goto failed_mount;
  
@@ -3176,8 +3170,8 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT4_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -3399,6 +3420,13 @@ static int ext4_remount(struct super_blo
-       if (sbi->s_mount_opt & EXT4_MOUNT_ABORT)
+@@ -3441,6 +3462,13 @@ static int ext4_remount(struct super_blo
+       if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
                ext4_abort(sb, __func__, "Abort forced by user");
  
 +      if ((sbi->s_mount_opt & EXT4_MOUNT_TAGGED) &&
@@ -3190,9 +3184,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/super.c linux-2.6.30.5-vs2.3.0.36.1
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT4_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ext4/symlink.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/symlink.c
---- linux-2.6.30.5/fs/ext4/symlink.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ext4/symlink.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ext4/symlink.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/symlink.c
+--- linux-2.6.31/fs/ext4/symlink.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ext4/symlink.c  2009-09-10 16:11:43.000000000 +0200
 @@ -40,6 +40,7 @@ const struct inode_operations ext4_symli
        .listxattr      = ext4_listxattr,
        .removexattr    = generic_removexattr,
@@ -3207,18 +3201,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ext4/symlink.c linux-2.6.30.5-vs2.3.0.36
  #endif
 +      .sync_flags     = ext4_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/fcntl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/fcntl.c
---- linux-2.6.30.5/fs/fcntl.c  2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/fcntl.c       2009-07-04 01:11:39.000000000 +0200
-@@ -20,6 +20,7 @@
+diff -NurpP --minimal linux-2.6.31/fs/fcntl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/fcntl.c
+--- linux-2.6.31/fs/fcntl.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/fcntl.c 2009-09-10 17:00:41.000000000 +0200
+@@ -19,6 +19,7 @@
+ #include <linux/signal.h>
  #include <linux/rcupdate.h>
  #include <linux/pid_namespace.h>
- #include <linux/smp_lock.h>
 +#include <linux/vs_limit.h>
  
  #include <asm/poll.h>
  #include <asm/siginfo.h>
-@@ -103,6 +104,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldf
+@@ -102,6 +103,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldf
  
        if (tofree)
                filp_close(tofree, files);
@@ -3227,7 +3221,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/fcntl.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        return newfd;
  
-@@ -345,6 +348,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd,
+@@ -347,6 +350,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd,
        filp = fget(fd);
        if (!filp)
                goto out;
@@ -3236,9 +3230,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/fcntl.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        err = security_file_fcntl(filp, cmd, arg);
        if (err) {
-diff -NurpP --minimal linux-2.6.30.5/fs/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/file.c
---- linux-2.6.30.5/fs/file.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/file.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/file.c
+--- linux-2.6.31/fs/file.c     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/file.c  2009-09-10 16:11:43.000000000 +0200
 @@ -19,6 +19,7 @@
  #include <linux/spinlock.h>
  #include <linux/rcupdate.h>
@@ -3264,9 +3258,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7
  #if 1
        /* Sanity check */
        if (rcu_dereference(fdt->fd[fd]) != NULL) {
-diff -NurpP --minimal linux-2.6.30.5/fs/file_table.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/file_table.c
---- linux-2.6.30.5/fs/file_table.c     2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/file_table.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/file_table.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/file_table.c
+--- linux-2.6.31/fs/file_table.c       2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/file_table.c    2009-09-10 16:11:43.000000000 +0200
 @@ -22,6 +22,8 @@
  #include <linux/fsnotify.h>
  #include <linux/sysctl.h>
@@ -3303,9 +3297,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/file_table.c linux-2.6.30.5-vs2.3.0.36.1
                file_kill(file);
                file_free(file);
        }
-diff -NurpP --minimal linux-2.6.30.5/fs/fs_struct.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/fs_struct.c
---- linux-2.6.30.5/fs/fs_struct.c      2009-06-11 17:13:04.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/fs_struct.c   2009-07-04 02:03:16.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/fs_struct.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/fs_struct.c
+--- linux-2.6.31/fs/fs_struct.c        2009-06-11 17:13:04.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/fs_struct.c     2009-09-10 16:11:43.000000000 +0200
 @@ -4,6 +4,7 @@
  #include <linux/path.h>
  #include <linux/slab.h>
@@ -3330,9 +3324,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/fs_struct.c linux-2.6.30.5-vs2.3.0.36.14
        }
        return fs;
  }
-diff -NurpP --minimal linux-2.6.30.5/fs/hfsplus/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/hfsplus/ioctl.c
---- linux-2.6.30.5/fs/hfsplus/ioctl.c  2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/hfsplus/ioctl.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/hfsplus/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/hfsplus/ioctl.c
+--- linux-2.6.31/fs/hfsplus/ioctl.c    2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/hfsplus/ioctl.c 2009-09-10 16:11:43.000000000 +0200
 @@ -17,6 +17,7 @@
  #include <linux/mount.h>
  #include <linux/sched.h>
@@ -3341,10 +3335,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/hfsplus/ioctl.c linux-2.6.30.5-vs2.3.0.3
  #include <asm/uaccess.h>
  #include "hfsplus_fs.h"
  
-diff -NurpP --minimal linux-2.6.30.5/fs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/inode.c
---- linux-2.6.30.5/fs/inode.c  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/inode.c       2009-07-04 01:11:39.000000000 +0200
-@@ -127,6 +127,9 @@ struct inode *inode_init_always(struct s
+diff -NurpP --minimal linux-2.6.31/fs/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/inode.c
+--- linux-2.6.31/fs/inode.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/inode.c 2009-09-10 16:11:43.000000000 +0200
+@@ -128,6 +128,9 @@ int inode_init_always(struct super_block
        struct address_space *const mapping = &inode->i_data;
  
        inode->i_sb = sb;
@@ -3354,7 +3348,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre
        inode->i_blkbits = sb->s_blocksize_bits;
        inode->i_flags = 0;
        atomic_set(&inode->i_count, 1);
-@@ -147,6 +150,7 @@ struct inode *inode_init_always(struct s
+@@ -148,6 +151,7 @@ int inode_init_always(struct super_block
        inode->i_bdev = NULL;
        inode->i_cdev = NULL;
        inode->i_rdev = 0;
@@ -3362,7 +3356,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre
        inode->dirtied_when = 0;
  
        if (security_inode_alloc(inode))
-@@ -277,6 +281,8 @@ void __iget(struct inode *inode)
+@@ -304,6 +308,8 @@ void __iget(struct inode *inode)
        inodes_stat.nr_unused--;
  }
  
@@ -3371,7 +3365,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre
  /**
   * clear_inode - clear an inode
   * @inode: inode to clear
-@@ -1553,9 +1559,11 @@ void init_special_inode(struct inode *in
+@@ -1586,9 +1592,11 @@ void init_special_inode(struct inode *in
        if (S_ISCHR(mode)) {
                inode->i_fop = &def_chr_fops;
                inode->i_rdev = rdev;
@@ -3383,22 +3377,22 @@ diff -NurpP --minimal linux-2.6.30.5/fs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre
        } else if (S_ISFIFO(mode))
                inode->i_fop = &def_fifo_fops;
        else if (S_ISSOCK(mode))
-diff -NurpP --minimal linux-2.6.30.5/fs/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ioctl.c
---- linux-2.6.30.5/fs/ioctl.c  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ioctl.c       2009-07-04 01:11:39.000000000 +0200
-@@ -15,6 +15,9 @@
- #include <linux/uaccess.h>
+diff -NurpP --minimal linux-2.6.31/fs/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ioctl.c
+--- linux-2.6.31/fs/ioctl.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ioctl.c 2009-09-10 17:13:08.000000000 +0200
+@@ -16,6 +16,9 @@
  #include <linux/writeback.h>
  #include <linux/buffer_head.h>
+ #include <linux/falloc.h>
 +#include <linux/proc_fs.h>
 +#include <linux/vserver/inode.h>
 +#include <linux/vs_tag.h>
  
  #include <asm/ioctls.h>
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ioprio.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ioprio.c
---- linux-2.6.30.5/fs/ioprio.c 2009-03-24 14:22:26.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ioprio.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ioprio.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ioprio.c
+--- linux-2.6.31/fs/ioprio.c   2009-03-24 14:22:26.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ioprio.c        2009-09-10 16:11:43.000000000 +0200
 @@ -26,6 +26,7 @@
  #include <linux/syscalls.h>
  #include <linux/security.h>
@@ -3425,10 +3419,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ioprio.c linux-2.6.30.5-vs2.3.0.36.14-pr
                                tmpio = get_task_ioprio(p);
                                if (tmpio < 0)
                                        continue;
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/acl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/acl.c
---- linux-2.6.30.5/fs/jfs/acl.c        2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/acl.c     2009-07-04 02:22:31.000000000 +0200
-@@ -232,7 +232,8 @@ int jfs_setattr(struct dentry *dentry, s
+diff -NurpP --minimal linux-2.6.31/fs/jfs/acl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/acl.c
+--- linux-2.6.31/fs/jfs/acl.c  2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/acl.c       2009-09-10 16:11:43.000000000 +0200
+@@ -221,7 +221,8 @@ int jfs_setattr(struct dentry *dentry, s
                return rc;
  
        if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
@@ -3438,9 +3432,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/acl.c linux-2.6.30.5-vs2.3.0.36.14-p
                if (vfs_dq_transfer(inode, iattr))
                        return -EDQUOT;
        }
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/file.c
---- linux-2.6.30.5/fs/jfs/file.c       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/file.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/file.c
+--- linux-2.6.31/fs/jfs/file.c 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/file.c      2009-09-10 16:11:43.000000000 +0200
 @@ -98,6 +98,7 @@ const struct inode_operations jfs_file_i
        .setattr        = jfs_setattr,
        .permission     = jfs_permission,
@@ -3449,9 +3443,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/file.c linux-2.6.30.5-vs2.3.0.36.14-
  };
  
  const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/ioctl.c
---- linux-2.6.30.5/fs/jfs/ioctl.c      2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/ioctl.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/ioctl.c
+--- linux-2.6.31/fs/jfs/ioctl.c        2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/ioctl.c     2009-09-10 16:11:43.000000000 +0200
 @@ -11,6 +11,7 @@
  #include <linux/mount.h>
  #include <linux/time.h>
@@ -3483,9 +3477,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/ioctl.c linux-2.6.30.5-vs2.3.0.36.14
                        if (!capable(CAP_LINUX_IMMUTABLE)) {
                                mutex_unlock(&inode->i_mutex);
                                err = -EPERM;
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_dinode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_dinode.h
---- linux-2.6.30.5/fs/jfs/jfs_dinode.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_dinode.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/jfs_dinode.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_dinode.h
+--- linux-2.6.31/fs/jfs/jfs_dinode.h   2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_dinode.h        2009-09-10 16:11:43.000000000 +0200
 @@ -161,9 +161,13 @@ struct dinode {
  
  #define JFS_APPEND_FL         0x01000000 /* writes to file may only append */
@@ -3502,9 +3496,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_dinode.h linux-2.6.30.5-vs2.3.0.
  #define JFS_FL_INHERIT                0x03C80000
  
  /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_filsys.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_filsys.h
---- linux-2.6.30.5/fs/jfs/jfs_filsys.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_filsys.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/jfs_filsys.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_filsys.h
+--- linux-2.6.31/fs/jfs/jfs_filsys.h   2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_filsys.h        2009-09-10 16:11:43.000000000 +0200
 @@ -263,6 +263,7 @@
  #define JFS_NAME_MAX  255
  #define JFS_PATH_MAX  BPSIZE
@@ -3513,9 +3507,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_filsys.h linux-2.6.30.5-vs2.3.0.
  
  /*
   *    file system state (superblock state)
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_imap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_imap.c
---- linux-2.6.30.5/fs/jfs/jfs_imap.c   2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_imap.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/jfs_imap.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_imap.c
+--- linux-2.6.31/fs/jfs/jfs_imap.c     2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_imap.c  2009-09-10 16:11:43.000000000 +0200
 @@ -45,6 +45,7 @@
  #include <linux/buffer_head.h>
  #include <linux/pagemap.h>
@@ -3524,7 +3518,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_imap.c linux-2.6.30.5-vs2.3.0.36
  
  #include "jfs_incore.h"
  #include "jfs_inode.h"
-@@ -3058,6 +3059,8 @@ static int copy_from_dinode(struct dinod
+@@ -3059,6 +3060,8 @@ static int copy_from_dinode(struct dinod
  {
        struct jfs_inode_info *jfs_ip = JFS_IP(ip);
        struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
@@ -3533,7 +3527,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_imap.c linux-2.6.30.5-vs2.3.0.36
  
        jfs_ip->fileset = le32_to_cpu(dip->di_fileset);
        jfs_ip->mode2 = le32_to_cpu(dip->di_mode);
-@@ -3078,14 +3081,18 @@ static int copy_from_dinode(struct dinod
+@@ -3079,14 +3082,18 @@ static int copy_from_dinode(struct dinod
        }
        ip->i_nlink = le32_to_cpu(dip->di_nlink);
  
@@ -3554,7 +3548,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_imap.c linux-2.6.30.5-vs2.3.0.36
        if (sbi->gid == -1)
                ip->i_gid = jfs_ip->saved_gid;
        else {
-@@ -3150,14 +3157,12 @@ static void copy_to_dinode(struct dinode
+@@ -3151,14 +3158,12 @@ static void copy_to_dinode(struct dinode
        dip->di_size = cpu_to_le64(ip->i_size);
        dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks));
        dip->di_nlink = cpu_to_le32(ip->i_nlink);
@@ -3575,9 +3569,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_imap.c linux-2.6.30.5-vs2.3.0.36
        jfs_get_inode_flags(jfs_ip);
        /*
         * mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_inode.c
---- linux-2.6.30.5/fs/jfs/jfs_inode.c  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_inode.c       2009-07-04 01:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/jfs_inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_inode.c
+--- linux-2.6.31/fs/jfs/jfs_inode.c    2009-06-11 17:13:05.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_inode.c 2009-09-10 16:11:43.000000000 +0200
 @@ -30,29 +30,46 @@ void jfs_set_inode_flags(struct inode *i
  {
        unsigned int flags = JFS_IP(inode)->mode2;
@@ -3651,9 +3645,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_inode.c linux-2.6.30.5-vs2.3.0.3
  }
  
  /*
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_inode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_inode.h
---- linux-2.6.30.5/fs/jfs/jfs_inode.h  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/jfs_inode.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/jfs_inode.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_inode.h
+--- linux-2.6.31/fs/jfs/jfs_inode.h    2009-06-11 17:13:05.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/jfs_inode.h 2009-09-10 16:11:43.000000000 +0200
 @@ -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);
@@ -3662,9 +3656,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/jfs_inode.h linux-2.6.30.5-vs2.3.0.3
  extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
  
  extern const struct address_space_operations jfs_aops;
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/namei.c
---- linux-2.6.30.5/fs/jfs/namei.c      2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/namei.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/jfs/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/namei.c
+--- linux-2.6.31/fs/jfs/namei.c        2009-06-11 17:13:05.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/namei.c     2009-09-10 16:11:43.000000000 +0200
 @@ -21,6 +21,7 @@
  #include <linux/ctype.h>
  #include <linux/quotaops.h>
@@ -3689,10 +3683,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/namei.c linux-2.6.30.5-vs2.3.0.36.14
  };
  
  const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-2.6.30.5/fs/jfs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/super.c
---- linux-2.6.30.5/fs/jfs/super.c      2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/jfs/super.c   2009-07-04 01:11:39.000000000 +0200
-@@ -200,7 +200,8 @@ static void jfs_put_super(struct super_b
+diff -NurpP --minimal linux-2.6.31/fs/jfs/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/super.c
+--- linux-2.6.31/fs/jfs/super.c        2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/jfs/super.c     2009-09-10 17:10:55.000000000 +0200
+@@ -194,7 +194,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,
@@ -3702,7 +3696,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/super.c linux-2.6.30.5-vs2.3.0.36.14
  };
  
  static const match_table_t tokens = {
-@@ -210,6 +211,10 @@ static const match_table_t tokens = {
+@@ -204,6 +205,10 @@ static const match_table_t tokens = {
        {Opt_resize, "resize=%u"},
        {Opt_resize_nosize, "resize"},
        {Opt_errors, "errors=%s"},
@@ -3713,7 +3707,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/super.c linux-2.6.30.5-vs2.3.0.36.14
        {Opt_ignore, "noquota"},
        {Opt_ignore, "quota"},
        {Opt_usrquota, "usrquota"},
-@@ -344,6 +349,20 @@ static int parse_options(char *options, 
+@@ -338,6 +343,20 @@ static int parse_options(char *options, 
                        }
                        break;
                }
@@ -3734,21 +3728,20 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/super.c linux-2.6.30.5-vs2.3.0.36.14
                default:
                        printk("jfs: Unrecognized mount option \"%s\" "
                                        " or missing value\n", p);
-@@ -374,6 +393,13 @@ static int jfs_remount(struct super_bloc
+@@ -369,6 +388,12 @@ static int jfs_remount(struct super_bloc
        if (!parse_options(data, sb, &newLVSize, &flag)) {
                return -EINVAL;
        }
-+
 +      if ((flag & JFS_TAGGED) && !(sb->s_flags & MS_TAGGED)) {
 +              printk(KERN_ERR "JFS: %s: tagging not permitted on remount.\n",
 +                      sb->s_id);
 +              return -EINVAL;
 +      }
 +
+       lock_kernel();
        if (newLVSize) {
                if (sb->s_flags & MS_RDONLY) {
-                       printk(KERN_ERR
-@@ -445,6 +471,9 @@ static int jfs_fill_super(struct super_b
+@@ -452,6 +477,9 @@ static int jfs_fill_super(struct super_b
  #ifdef CONFIG_JFS_POSIX_ACL
        sb->s_flags |= MS_POSIXACL;
  #endif
@@ -3758,10 +3751,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/jfs/super.c linux-2.6.30.5-vs2.3.0.36.14
  
        if (newLVSize) {
                printk(KERN_ERR "resize option for remount only\n");
-diff -NurpP --minimal linux-2.6.30.5/fs/libfs.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/libfs.c
---- linux-2.6.30.5/fs/libfs.c  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/libfs.c       2009-07-04 01:11:39.000000000 +0200
-@@ -125,7 +125,8 @@ static inline unsigned char dt_type(stru
+diff -NurpP --minimal linux-2.6.31/fs/libfs.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/libfs.c
+--- linux-2.6.31/fs/libfs.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/libfs.c 2009-09-10 16:11:43.000000000 +0200
+@@ -127,7 +127,8 @@ static inline unsigned char dt_type(stru
   * both impossible due to the lock on directory.
   */
  
@@ -3771,7 +3764,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/libfs.c linux-2.6.30.5-vs2.3.0.36.14-pre
  {
        struct dentry *dentry = filp->f_path.dentry;
        struct dentry *cursor = filp->private_data;
-@@ -158,6 +159,8 @@ int dcache_readdir(struct file * filp, v
+@@ -160,6 +161,8 @@ int dcache_readdir(struct file * filp, v
                                next = list_entry(p, struct dentry, d_u.d_child);
                                if (d_unhashed(next) || !next->d_inode)
                                        continue;
@@ -3780,7 +3773,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/libfs.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
                                spin_unlock(&dcache_lock);
                                if (filldir(dirent, next->d_name.name, 
-@@ -176,6 +179,18 @@ int dcache_readdir(struct file * filp, v
+@@ -178,6 +181,18 @@ int dcache_readdir(struct file * filp, v
        return 0;
  }
  
@@ -3799,7 +3792,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/libfs.c linux-2.6.30.5-vs2.3.0.36.14-pre
  ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
  {
        return -EISDIR;
-@@ -811,6 +826,7 @@ EXPORT_SYMBOL(dcache_dir_close);
+@@ -836,6 +851,7 @@ EXPORT_SYMBOL(dcache_dir_close);
  EXPORT_SYMBOL(dcache_dir_lseek);
  EXPORT_SYMBOL(dcache_dir_open);
  EXPORT_SYMBOL(dcache_readdir);
@@ -3807,9 +3800,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/libfs.c linux-2.6.30.5-vs2.3.0.36.14-pre
  EXPORT_SYMBOL(generic_read_dir);
  EXPORT_SYMBOL(get_sb_pseudo);
  EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/locks.c
---- linux-2.6.30.5/fs/locks.c  2009-03-24 14:22:26.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/locks.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/locks.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/locks.c
+--- linux-2.6.31/fs/locks.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/locks.c 2009-09-10 16:11:43.000000000 +0200
 @@ -127,6 +127,8 @@
  #include <linux/time.h>
  #include <linux/rcupdate.h>
@@ -3828,7 +3821,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        return kmem_cache_alloc(filelock_cache, GFP_KERNEL);
  }
  
-@@ -173,6 +177,7 @@ static void locks_free_lock(struct file_
+@@ -174,6 +178,7 @@ static void locks_free_lock(struct file_
        BUG_ON(!list_empty(&fl->fl_block));
        BUG_ON(!list_empty(&fl->fl_link));
  
@@ -3836,7 +3829,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        locks_release_private(fl);
        kmem_cache_free(filelock_cache, fl);
  }
-@@ -193,6 +198,7 @@ void locks_init_lock(struct file_lock *f
+@@ -194,6 +199,7 @@ void locks_init_lock(struct file_lock *f
        fl->fl_start = fl->fl_end = 0;
        fl->fl_ops = NULL;
        fl->fl_lmops = NULL;
@@ -3844,7 +3837,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  }
  
  EXPORT_SYMBOL(locks_init_lock);
-@@ -247,6 +253,7 @@ void locks_copy_lock(struct file_lock *n
+@@ -248,6 +254,7 @@ void locks_copy_lock(struct file_lock *n
        new->fl_file = fl->fl_file;
        new->fl_ops = fl->fl_ops;
        new->fl_lmops = fl->fl_lmops;
@@ -3852,7 +3845,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        locks_copy_private(new, fl);
  }
-@@ -285,6 +292,11 @@ static int flock_make_lock(struct file *
+@@ -286,6 +293,11 @@ static int flock_make_lock(struct file *
        fl->fl_flags = FL_FLOCK;
        fl->fl_type = type;
        fl->fl_end = OFFSET_MAX;
@@ -3864,7 +3857,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        
        *lock = fl;
        return 0;
-@@ -450,6 +462,7 @@ static int lease_init(struct file *filp,
+@@ -451,6 +463,7 @@ static int lease_init(struct file *filp,
  
        fl->fl_owner = current->files;
        fl->fl_pid = current->tgid;
@@ -3872,7 +3865,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        fl->fl_file = filp;
        fl->fl_flags = FL_LEASE;
-@@ -469,6 +482,11 @@ static struct file_lock *lease_alloc(str
+@@ -470,6 +483,11 @@ static struct file_lock *lease_alloc(str
        if (fl == NULL)
                return ERR_PTR(error);
  
@@ -3884,7 +3877,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        error = lease_init(filp, type, fl);
        if (error) {
                locks_free_lock(fl);
-@@ -769,6 +787,7 @@ static int flock_lock_file(struct file *
+@@ -770,6 +788,7 @@ static int flock_lock_file(struct file *
        if (found)
                cond_resched_bkl();
  
@@ -3892,7 +3885,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  find_conflict:
        for_each_lock(inode, before) {
                struct file_lock *fl = *before;
-@@ -789,6 +808,7 @@ find_conflict:
+@@ -790,6 +809,7 @@ find_conflict:
                goto out;
        locks_copy_lock(new_fl, request);
        locks_insert_lock(before, new_fl);
@@ -3900,7 +3893,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        new_fl = NULL;
        error = 0;
  
-@@ -799,7 +819,8 @@ out:
+@@ -800,7 +820,8 @@ out:
        return error;
  }
  
@@ -3910,7 +3903,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  {
        struct file_lock *fl;
        struct file_lock *new_fl = NULL;
-@@ -809,6 +830,8 @@ static int __posix_lock_file(struct inod
+@@ -810,6 +831,8 @@ static int __posix_lock_file(struct inod
        struct file_lock **before;
        int error, added = 0;
  
@@ -3919,7 +3912,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        /*
         * We may need two file_lock structures for this operation,
         * so we get them in advance to avoid races.
-@@ -819,7 +842,11 @@ static int __posix_lock_file(struct inod
+@@ -820,7 +843,11 @@ static int __posix_lock_file(struct inod
            (request->fl_type != F_UNLCK ||
             request->fl_start != 0 || request->fl_end != OFFSET_MAX)) {
                new_fl = locks_alloc_lock();
@@ -3931,7 +3924,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        }
  
        lock_kernel();
-@@ -1018,7 +1045,8 @@ static int __posix_lock_file(struct inod
+@@ -1019,7 +1046,8 @@ static int __posix_lock_file(struct inod
  int posix_lock_file(struct file *filp, struct file_lock *fl,
                        struct file_lock *conflock)
  {
@@ -3941,7 +3934,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  }
  EXPORT_SYMBOL(posix_lock_file);
  
-@@ -1108,7 +1136,7 @@ int locks_mandatory_area(int read_write,
+@@ -1109,7 +1137,7 @@ int locks_mandatory_area(int read_write,
        fl.fl_end = offset + count - 1;
  
        for (;;) {
@@ -3950,7 +3943,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
                if (error != FILE_LOCK_DEFERRED)
                        break;
                error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
-@@ -1423,6 +1451,7 @@ int generic_setlease(struct file *filp, 
+@@ -1424,6 +1452,7 @@ int generic_setlease(struct file *filp, 
  
        locks_copy_lock(new_fl, lease);
        locks_insert_lock(before, new_fl);
@@ -3958,7 +3951,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        *flp = new_fl;
        return 0;
-@@ -1778,6 +1807,11 @@ int fcntl_setlk(unsigned int fd, struct 
+@@ -1779,6 +1808,11 @@ int fcntl_setlk(unsigned int fd, struct 
        if (file_lock == NULL)
                return -ENOLCK;
  
@@ -3970,7 +3963,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        /*
         * This might block, so we do it before checking the inode.
         */
-@@ -1896,6 +1930,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -1897,6 +1931,11 @@ int fcntl_setlk64(unsigned int fd, struc
        if (file_lock == NULL)
                return -ENOLCK;
  
@@ -3982,7 +3975,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
        /*
         * This might block, so we do it before checking the inode.
         */
-@@ -2161,8 +2200,11 @@ static int locks_show(struct seq_file *f
+@@ -2162,8 +2201,11 @@ static int locks_show(struct seq_file *f
  
        lock_get_status(f, fl, (long)f->private, "");
  
@@ -3995,9 +3988,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/locks.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        f->private++;
        return 0;
-diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/namei.c
---- linux-2.6.30.5/fs/namei.c  2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/namei.c       2009-07-04 02:25:19.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/namei.c
+--- linux-2.6.31/fs/namei.c    2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/namei.c 2009-09-10 17:12:38.000000000 +0200
 @@ -33,6 +33,14 @@
  #include <linux/fcntl.h>
  #include <linux/device_cgroup.h>
@@ -4116,17 +4109,17 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (inode->i_op->permission)
                return -EAGAIN;
  
-@@ -751,7 +836,8 @@ static __always_inline void follow_dotdo
-               if (nd->path.dentry == fs->root.dentry &&
-                   nd->path.mnt == fs->root.mnt) {
-                         read_unlock(&fs->lock);
+@@ -756,7 +841,8 @@ static __always_inline void follow_dotdo
+               if (nd->path.dentry == nd->root.dentry &&
+                   nd->path.mnt == nd->root.mnt) {
 -                      break;
 +                      /* for sane '/' avoid follow_mount() */
 +                      return;
                }
-                 read_unlock(&fs->lock);
                spin_lock(&dcache_lock);
-@@ -788,16 +874,30 @@ static int do_lookup(struct nameidata *n
+               if (nd->path.dentry != nd->path.mnt->mnt_root) {
+@@ -792,16 +878,30 @@ static int do_lookup(struct nameidata *n
  {
        struct vfsmount *mnt = nd->path.mnt;
        struct dentry *dentry = __d_lookup(nd->path.dentry, name);
@@ -4157,7 +4150,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
  need_lookup:
        dentry = real_lookup(nd->path.dentry, name, nd);
-@@ -1370,7 +1470,7 @@ static int may_delete(struct inode *dir,
+@@ -1389,7 +1489,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)||
@@ -4166,7 +4159,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
                return -EPERM;
        if (isdir) {
                if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -1510,6 +1610,14 @@ int may_open(struct path *path, int acc_
+@@ -1529,6 +1629,14 @@ int may_open(struct path *path, int acc_
                break;
        }
  
@@ -4181,7 +4174,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
        error = inode_permission(inode, acc_mode);
        if (error)
                return error;
-@@ -1647,7 +1755,11 @@ struct file *do_filp_open(int dfd, const
+@@ -1675,7 +1783,11 @@ struct file *do_filp_open(int dfd, const
        int count = 0;
        int will_write;
        int flag = open_to_namei_flags(open_flag);
@@ -4194,7 +4187,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (!acc_mode)
                acc_mode = MAY_OPEN | ACC_MODE(flag);
  
-@@ -1781,6 +1893,25 @@ ok:
+@@ -1823,6 +1935,25 @@ ok:
                        goto exit;
        }
        error = may_open(&nd.path, acc_mode, flag);
@@ -4220,7 +4213,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (error) {
                if (will_write)
                        mnt_drop_write(nd.path.mnt);
-@@ -1934,9 +2065,17 @@ int vfs_mknod(struct inode *dir, struct 
+@@ -1985,9 +2116,17 @@ int vfs_mknod(struct inode *dir, struct 
        if (error)
                return error;
  
@@ -4239,7 +4232,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (!dir->i_op->mknod)
                return -EPERM;
  
-@@ -2403,7 +2542,7 @@ int vfs_link(struct dentry *old_dentry, 
+@@ -2454,7 +2593,7 @@ int vfs_link(struct dentry *old_dentry, 
        /*
         * A link to an append-only or immutable file cannot be created.
         */
@@ -4248,7 +4241,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
                return -EPERM;
        if (!dir->i_op->link)
                return -EPERM;
-@@ -2776,6 +2915,219 @@ int vfs_follow_link(struct nameidata *nd
+@@ -2827,6 +2966,219 @@ int vfs_follow_link(struct nameidata *nd
        return __vfs_follow_link(nd, link);
  }
  
@@ -4468,10 +4461,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre
  /* get the link contents into pagecache */
  static char *page_getlink(struct dentry * dentry, struct page **ppage)
  {
-diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/namespace.c
---- linux-2.6.30.5/fs/namespace.c      2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/namespace.c   2009-07-04 02:20:45.000000000 +0200
-@@ -28,6 +28,11 @@
+diff -NurpP --minimal linux-2.6.31/fs/namespace.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/namespace.c
+--- linux-2.6.31/fs/namespace.c        2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/namespace.c     2009-09-10 16:11:43.000000000 +0200
+@@ -29,6 +29,11 @@
  #include <linux/log2.h>
  #include <linux/idr.h>
  #include <linux/fs_struct.h>
@@ -4483,7 +4476,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
  #include "pnode.h"
-@@ -573,6 +578,7 @@ static struct vfsmount *clone_mnt(struct
+@@ -567,6 +572,7 @@ static struct vfsmount *clone_mnt(struct
                mnt->mnt_root = dget(root);
                mnt->mnt_mountpoint = mnt->mnt_root;
                mnt->mnt_parent = mnt;
@@ -4491,7 +4484,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  
                if (flag & CL_SLAVE) {
                        list_add(&mnt->mnt_slave, &old->mnt_slave_list);
-@@ -687,6 +693,31 @@ static inline void mangle(struct seq_fil
+@@ -661,6 +667,31 @@ static inline void mangle(struct seq_fil
        seq_escape(m, s, " \t\n\\");
  }
  
@@ -4523,7 +4516,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  /*
   * Simple .show_options callback for filesystems which don't want to
   * implement more complex mount option showing.
-@@ -774,6 +805,8 @@ static int show_sb_opts(struct seq_file 
+@@ -748,6 +779,8 @@ static int show_sb_opts(struct seq_file 
                { MS_SYNCHRONOUS, ",sync" },
                { MS_DIRSYNC, ",dirsync" },
                { MS_MANDLOCK, ",mand" },
@@ -4532,7 +4525,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                { 0, NULL }
        };
        const struct proc_fs_info *fs_infop;
-@@ -821,10 +854,20 @@ static int show_vfsmnt(struct seq_file *
+@@ -795,10 +828,20 @@ static int show_vfsmnt(struct seq_file *
        int err = 0;
        struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
  
@@ -4557,7 +4550,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        show_type(m, mnt->mnt_sb);
        seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
        err = show_sb_opts(m, mnt->mnt_sb);
-@@ -854,6 +897,11 @@ static int show_mountinfo(struct seq_fil
+@@ -828,6 +871,11 @@ static int show_mountinfo(struct seq_fil
        struct path root = p->root;
        int err = 0;
  
@@ -4569,7 +4562,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        seq_printf(m, "%i %i %u:%u ", mnt->mnt_id, mnt->mnt_parent->mnt_id,
                   MAJOR(sb->s_dev), MINOR(sb->s_dev));
        seq_dentry(m, mnt->mnt_root, " \t\n\\");
-@@ -912,17 +960,27 @@ static int show_vfsstat(struct seq_file 
+@@ -886,17 +934,27 @@ static int show_vfsstat(struct seq_file 
        struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
        int err = 0;
  
@@ -4607,7 +4600,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  
        /* file system type */
        seq_puts(m, "with fstype ");
-@@ -1159,7 +1217,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
+@@ -1130,7 +1188,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
                goto dput_and_out;
  
        retval = -EPERM;
@@ -4616,7 +4609,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                goto dput_and_out;
  
        retval = do_umount(path.mnt, flags);
-@@ -1185,7 +1243,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
+@@ -1156,7 +1214,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
  
  static int mount_is_safe(struct path *path)
  {
@@ -4625,7 +4618,16 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                return 0;
        return -EPERM;
  #ifdef notyet
-@@ -1476,11 +1534,13 @@ static int do_change_type(struct path *p
+@@ -1420,7 +1478,7 @@ static int do_change_type(struct path *p
+       int type = flag & ~MS_REC;
+       int err = 0;
+-      if (!capable(CAP_SYS_ADMIN))
++      if (!vx_capable(CAP_SYS_ADMIN, VXC_NAMESPACE))
+               return -EPERM;
+       if (path->dentry != path->mnt->mnt_root)
+@@ -1447,11 +1505,13 @@ static int do_change_type(struct path *p
   * do loopback mount.
   */
  static int do_loopback(struct path *path, char *old_name,
@@ -4640,7 +4642,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        if (err)
                return err;
        if (!old_name || !*old_name)
-@@ -1514,6 +1574,7 @@ static int do_loopback(struct path *path
+@@ -1485,6 +1545,7 @@ static int do_loopback(struct path *path
                spin_unlock(&vfsmount_lock);
                release_mounts(&umount_list);
        }
@@ -4648,7 +4650,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  
  out:
        up_write(&namespace_sem);
-@@ -1544,12 +1605,12 @@ static int change_mount_flags(struct vfs
+@@ -1515,12 +1576,12 @@ static int change_mount_flags(struct vfs
   * on it - tough luck.
   */
  static int do_remount(struct path *path, int flags, int mnt_flags,
@@ -4663,7 +4665,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                return -EPERM;
  
        if (!check_mnt(path->mnt))
-@@ -1591,7 +1652,7 @@ static int do_move_mount(struct path *pa
+@@ -1562,7 +1623,7 @@ static int do_move_mount(struct path *pa
        struct path old_path, parent_path;
        struct vfsmount *p;
        int err = 0;
@@ -4672,7 +4674,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                return -EPERM;
        if (!old_name || !*old_name)
                return -EINVAL;
-@@ -1673,7 +1734,7 @@ static int do_new_mount(struct path *pat
+@@ -1644,7 +1705,7 @@ static int do_new_mount(struct path *pat
                return -EINVAL;
  
        /* we need capabilities... */
@@ -4680,8 +4682,8 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
 +      if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
                return -EPERM;
  
-       mnt = do_kern_mount(type, flags, name, data);
-@@ -1918,6 +1979,7 @@ long do_mount(char *dev_name, char *dir_
+       lock_kernel();
+@@ -1891,6 +1952,7 @@ long do_mount(char *dev_name, char *dir_
        struct path path;
        int retval = 0;
        int mnt_flags = 0;
@@ -4689,7 +4691,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  
        /* Discard magic */
        if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -1937,6 +1999,12 @@ long do_mount(char *dev_name, char *dir_
+@@ -1910,6 +1972,12 @@ long do_mount(char *dev_name, char *dir_
        if (!(flags & MS_NOATIME))
                mnt_flags |= MNT_RELATIME;
  
@@ -4702,7 +4704,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
-@@ -1953,6 +2021,8 @@ long do_mount(char *dev_name, char *dir_
+@@ -1926,6 +1994,8 @@ long do_mount(char *dev_name, char *dir_
        if (flags & MS_RDONLY)
                mnt_flags |= MNT_READONLY;
  
@@ -4711,7 +4713,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE |
                   MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
                   MS_STRICTATIME);
-@@ -1969,9 +2039,9 @@ long do_mount(char *dev_name, char *dir_
+@@ -1942,9 +2012,9 @@ long do_mount(char *dev_name, char *dir_
  
        if (flags & MS_REMOUNT)
                retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
@@ -4723,7 +4725,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
        else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
                retval = do_change_type(&path, flags);
        else if (flags & MS_MOVE)
-@@ -2040,6 +2110,7 @@ static struct mnt_namespace *dup_mnt_ns(
+@@ -2023,6 +2093,7 @@ static struct mnt_namespace *dup_mnt_ns(
                q = next_mnt(q, new_ns->root);
        }
        up_write(&namespace_sem);
@@ -4731,7 +4733,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
  
        if (rootmnt)
                mntput(rootmnt);
-@@ -2166,9 +2237,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2165,9 +2236,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
        down_write(&namespace_sem);
        mutex_lock(&old.dentry->d_inode->i_mutex);
        error = -EINVAL;
@@ -4744,17 +4746,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/namespace.c linux-2.6.30.5-vs2.3.0.36.14
                goto out2;
        if (!check_mnt(root.mnt))
                goto out2;
-@@ -2307,5 +2379,6 @@ void __put_mnt_ns(struct mnt_namespace *
+@@ -2303,6 +2375,7 @@ void put_mnt_ns(struct mnt_namespace *ns
        spin_unlock(&vfsmount_lock);
        up_write(&namespace_sem);
        release_mounts(&umount_list);
 +      atomic_dec(&vs_global_mnt_ns);
        kfree(ns);
  }
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/client.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/client.c
---- linux-2.6.30.5/fs/nfs/client.c     2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/client.c  2009-07-04 01:11:39.000000000 +0200
-@@ -689,6 +689,9 @@ static int nfs_init_server_rpcclient(str
+ EXPORT_SYMBOL(put_mnt_ns);
+diff -NurpP --minimal linux-2.6.31/fs/nfs/client.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/client.c
+--- linux-2.6.31/fs/nfs/client.c       2009-09-10 15:26:22.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/client.c    2009-09-10 16:11:43.000000000 +0200
+@@ -732,6 +732,9 @@ static int nfs_init_server_rpcclient(str
        if (server->flags & NFS_MOUNT_SOFT)
                server->client->cl_softrtry = 1;
  
@@ -4764,7 +4767,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/client.c linux-2.6.30.5-vs2.3.0.36.1
        return 0;
  }
  
-@@ -856,6 +859,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -899,6 +902,10 @@ static void nfs_server_set_fsinfo(struct
                server->acdirmin = server->acdirmax = 0;
        }
  
@@ -4775,10 +4778,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/client.c linux-2.6.30.5-vs2.3.0.36.1
        server->maxfilesize = fsinfo->maxfilesize;
  
        /* We're airborne Set socket buffersize */
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/dir.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/dir.c
---- linux-2.6.30.5/fs/nfs/dir.c        2009-06-11 17:13:05.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/dir.c     2009-07-04 01:11:39.000000000 +0200
-@@ -34,6 +34,7 @@
+diff -NurpP --minimal linux-2.6.31/fs/nfs/dir.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/dir.c
+--- linux-2.6.31/fs/nfs/dir.c  2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/dir.c       2009-09-10 16:11:43.000000000 +0200
+@@ -33,6 +33,7 @@
  #include <linux/namei.h>
  #include <linux/mount.h>
  #include <linux/sched.h>
@@ -4786,7 +4789,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/dir.c linux-2.6.30.5-vs2.3.0.36.14-p
  
  #include "nfs4_fs.h"
  #include "delegation.h"
-@@ -950,6 +951,7 @@ static struct dentry *nfs_lookup(struct 
+@@ -949,6 +950,7 @@ static struct dentry *nfs_lookup(struct 
        if (IS_ERR(res))
                goto out_unblock_sillyrename;
  
@@ -4794,10 +4797,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/dir.c linux-2.6.30.5-vs2.3.0.36.14-p
  no_entry:
        res = d_materialise_unique(dentry, inode);
        if (res != NULL) {
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/inode.c
---- linux-2.6.30.5/fs/nfs/inode.c      2009-06-11 17:13:06.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/inode.c   2009-07-04 02:07:17.000000000 +0200
-@@ -37,6 +37,7 @@
+diff -NurpP --minimal linux-2.6.31/fs/nfs/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/inode.c
+--- linux-2.6.31/fs/nfs/inode.c        2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/inode.c     2009-09-10 16:11:43.000000000 +0200
+@@ -36,6 +36,7 @@
  #include <linux/vfs.h>
  #include <linux/inet.h>
  #include <linux/nfs_xdr.h>
@@ -4805,7 +4808,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -279,6 +280,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -278,6 +279,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;
@@ -4814,7 +4817,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
                /* We set i_ino for the few things that still rely on it,
                 * such as stat(2) */
-@@ -322,8 +325,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -321,8 +324,8 @@ nfs_fhget(struct super_block *sb, struct
                nfsi->change_attr = 0;
                inode->i_size = 0;
                inode->i_nlink = 0;
@@ -4825,7 +4828,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
                inode->i_blocks = 0;
                memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
  
-@@ -342,9 +345,9 @@ nfs_fhget(struct super_block *sb, struct
+@@ -341,9 +344,9 @@ nfs_fhget(struct super_block *sb, struct
                if (fattr->valid & NFS_ATTR_FATTR_NLINK)
                        inode->i_nlink = fattr->nlink;
                if (fattr->valid & NFS_ATTR_FATTR_OWNER)
@@ -4837,7 +4840,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
                if (fattr->valid & NFS_ATTR_FATTR_BLOCKS_USED)
                        inode->i_blocks = fattr->du.nfs2.blocks;
                if (fattr->valid & NFS_ATTR_FATTR_SPACE_USED) {
-@@ -353,6 +356,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -352,6 +355,11 @@ nfs_fhget(struct super_block *sb, struct
                         */
                        inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
                }
@@ -4849,7 +4852,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
                nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
                nfsi->attrtimeo_timestamp = now;
                nfsi->access_cache = RB_ROOT;
-@@ -493,6 +501,8 @@ void nfs_setattr_update_inode(struct ino
+@@ -492,6 +500,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;
@@ -4858,7 +4861,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
                NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
                spin_unlock(&inode->i_lock);
        }
-@@ -903,6 +913,9 @@ static int nfs_check_inode_attributes(st
+@@ -902,6 +912,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;
@@ -4868,7 +4871,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
  
        /* Has the inode gone and changed behind our back? */
-@@ -926,13 +939,18 @@ static int nfs_check_inode_attributes(st
+@@ -925,13 +938,18 @@ static int nfs_check_inode_attributes(st
                        invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
        }
  
@@ -4889,7 +4892,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
        /* Has the link count changed? */
        if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1146,6 +1164,9 @@ static int nfs_update_inode(struct inode
+@@ -1145,6 +1163,9 @@ static int nfs_update_inode(struct inode
        loff_t cur_isize, new_isize;
        unsigned long invalid = 0;
        unsigned long now = jiffies;
@@ -4899,7 +4902,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
        dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n",
                        __func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1234,6 +1255,9 @@ static int nfs_update_inode(struct inode
+@@ -1233,6 +1254,9 @@ static int nfs_update_inode(struct inode
                }
        }
  
@@ -4909,7 +4912,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
  
        if (fattr->valid & NFS_ATTR_FATTR_ATIME)
                memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1245,18 +1269,22 @@ static int nfs_update_inode(struct inode
+@@ -1244,18 +1268,22 @@ static int nfs_update_inode(struct inode
                }
        }
        if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
@@ -4936,9 +4939,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/inode.c linux-2.6.30.5-vs2.3.0.36.14
        if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
                if (inode->i_nlink != fattr->nlink) {
                        invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfs3xdr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/nfs3xdr.c
---- linux-2.6.30.5/fs/nfs/nfs3xdr.c    2009-06-11 17:13:06.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/nfs3xdr.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/nfs/nfs3xdr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/nfs3xdr.c
+--- linux-2.6.31/fs/nfs/nfs3xdr.c      2009-06-11 17:13:06.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/nfs3xdr.c   2009-09-10 16:11:43.000000000 +0200
 @@ -22,6 +22,7 @@
  #include <linux/nfs3.h>
  #include <linux/nfs_fs.h>
@@ -5028,10 +5031,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfs3xdr.c linux-2.6.30.5-vs2.3.0.36.
        if (args->type == NF3CHR || args->type == NF3BLK) {
                *p++ = htonl(MAJOR(args->rdev));
                *p++ = htonl(MINOR(args->rdev));
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfsroot.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/nfsroot.c
---- linux-2.6.30.5/fs/nfs/nfsroot.c    2009-06-11 17:13:06.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/nfsroot.c 2009-07-04 01:11:39.000000000 +0200
-@@ -119,12 +119,12 @@ static int mount_port __initdata = 0;            /
+diff -NurpP --minimal linux-2.6.31/fs/nfs/nfsroot.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/nfsroot.c
+--- linux-2.6.31/fs/nfs/nfsroot.c      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/nfsroot.c   2009-09-10 16:11:43.000000000 +0200
+@@ -122,12 +122,12 @@ static int mount_port __initdata = 0;            /
  enum {
        /* Options that take integer arguments */
        Opt_port, Opt_rsize, Opt_wsize, Opt_timeo, Opt_retrans, Opt_acregmin,
@@ -5046,7 +5049,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfsroot.c linux-2.6.30.5-vs2.3.0.36.
        /* Error token */
        Opt_err
  };
-@@ -161,6 +161,9 @@ static const match_table_t tokens __init
+@@ -164,6 +164,9 @@ static const match_table_t tokens __init
        {Opt_tcp, "tcp"},
        {Opt_acl, "acl"},
        {Opt_noacl, "noacl"},
@@ -5056,7 +5059,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfsroot.c linux-2.6.30.5-vs2.3.0.36.
        {Opt_err, NULL}
        
  };
-@@ -272,6 +275,20 @@ static int __init root_nfs_parse(char *n
+@@ -275,6 +278,20 @@ static int __init root_nfs_parse(char *n
                        case Opt_noacl:
                                nfs_data.flags |= NFS_MOUNT_NOACL;
                                break;
@@ -5077,10 +5080,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/nfsroot.c linux-2.6.30.5-vs2.3.0.36.
                        default:
                                printk(KERN_WARNING "Root-NFS: unknown "
                                        "option: %s\n", p);
-diff -NurpP --minimal linux-2.6.30.5/fs/nfs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/super.c
---- linux-2.6.30.5/fs/nfs/super.c      2009-06-11 17:13:06.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfs/super.c   2009-07-04 01:11:39.000000000 +0200
-@@ -51,6 +51,7 @@
+diff -NurpP --minimal linux-2.6.31/fs/nfs/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/super.c
+--- linux-2.6.31/fs/nfs/super.c        2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfs/super.c     2009-09-10 16:11:43.000000000 +0200
+@@ -53,6 +53,7 @@
  #include <linux/nfs_xdr.h>
  #include <linux/magic.h>
  #include <linux/parser.h>
@@ -5088,7 +5091,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/super.c linux-2.6.30.5-vs2.3.0.36.14
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -523,6 +524,7 @@ static void nfs_show_mount_options(struc
+@@ -546,6 +547,7 @@ static void nfs_show_mount_options(struc
                { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
                { NFS_MOUNT_UNSHARED, ",nosharecache", "" },
                { NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5096,9 +5099,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfs/super.c linux-2.6.30.5-vs2.3.0.36.14
                { 0, NULL, NULL }
        };
        const struct proc_nfs_info *nfs_infop;
-diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/auth.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/auth.c
---- linux-2.6.30.5/fs/nfsd/auth.c      2009-03-24 14:22:26.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/auth.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/nfsd/auth.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/auth.c
+--- linux-2.6.31/fs/nfsd/auth.c        2009-03-24 14:22:26.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/auth.c     2009-09-10 16:11:43.000000000 +0200
 @@ -10,6 +10,7 @@
  #include <linux/sunrpc/svcauth.h>
  #include <linux/nfsd/nfsd.h>
@@ -5117,9 +5120,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/auth.c linux-2.6.30.5-vs2.3.0.36.14
  
        rqgi = rqstp->rq_cred.cr_group_info;
  
-diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfs3xdr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfs3xdr.c
---- linux-2.6.30.5/fs/nfsd/nfs3xdr.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfs3xdr.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/nfsd/nfs3xdr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfs3xdr.c
+--- linux-2.6.31/fs/nfsd/nfs3xdr.c     2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfs3xdr.c  2009-09-10 16:11:43.000000000 +0200
 @@ -21,6 +21,7 @@
  #include <linux/sunrpc/svc.h>
  #include <linux/nfsd/nfsd.h>
@@ -5170,9 +5173,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfs3xdr.c linux-2.6.30.5-vs2.3.0.36
        if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
                p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
        } else {
-diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfs4xdr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfs4xdr.c
---- linux-2.6.30.5/fs/nfsd/nfs4xdr.c   2009-06-11 17:13:06.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfs4xdr.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/nfsd/nfs4xdr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfs4xdr.c
+--- linux-2.6.31/fs/nfsd/nfs4xdr.c     2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfs4xdr.c  2009-09-10 16:11:43.000000000 +0200
 @@ -57,6 +57,7 @@
  #include <linux/nfs4_acl.h>
  #include <linux/sunrpc/gss_api.h>
@@ -5181,7 +5184,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfs4xdr.c linux-2.6.30.5-vs2.3.0.36
  
  #define NFSDDBG_FACILITY              NFSDDBG_XDR
  
-@@ -2078,14 +2079,18 @@ out_acl:
+@@ -2052,14 +2053,18 @@ out_acl:
                WRITE32(stat.nlink);
        }
        if (bmval1 & FATTR4_WORD1_OWNER) {
@@ -5202,9 +5205,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfs4xdr.c linux-2.6.30.5-vs2.3.0.36
                if (status == nfserr_resource)
                        goto out_resource;
                if (status)
-diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfsxdr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfsxdr.c
---- linux-2.6.30.5/fs/nfsd/nfsxdr.c    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/nfsd/nfsxdr.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/nfsd/nfsxdr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfsxdr.c
+--- linux-2.6.31/fs/nfsd/nfsxdr.c      2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/nfsd/nfsxdr.c   2009-09-10 16:11:43.000000000 +0200
 @@ -15,6 +15,7 @@
  #include <linux/nfsd/nfsd.h>
  #include <linux/nfsd/xdr.h>
@@ -5253,9 +5256,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/nfsd/nfsxdr.c linux-2.6.30.5-vs2.3.0.36.
  
        if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
                *p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlm/dlmfs.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlm/dlmfs.c
---- linux-2.6.30.5/fs/ocfs2/dlm/dlmfs.c        2009-03-24 14:22:27.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlm/dlmfs.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/dlm/dlmfs.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlm/dlmfs.c
+--- linux-2.6.31/fs/ocfs2/dlm/dlmfs.c  2009-03-24 14:22:27.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlm/dlmfs.c       2009-09-10 16:11:43.000000000 +0200
 @@ -43,6 +43,7 @@
  #include <linux/init.h>
  #include <linux/string.h>
@@ -5280,10 +5283,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlm/dlmfs.c linux-2.6.30.5-vs2.3.0
        inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
        inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlmglue.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlmglue.c
---- linux-2.6.30.5/fs/ocfs2/dlmglue.c  2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlmglue.c       2009-07-04 01:11:39.000000000 +0200
-@@ -1900,6 +1900,7 @@ static void __ocfs2_stuff_meta_lvb(struc
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/dlmglue.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlmglue.c
+--- linux-2.6.31/fs/ocfs2/dlmglue.c    2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlmglue.c 2009-09-10 16:11:43.000000000 +0200
+@@ -1960,6 +1960,7 @@ static void __ocfs2_stuff_meta_lvb(struc
        lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters);
        lvb->lvb_iuid      = cpu_to_be32(inode->i_uid);
        lvb->lvb_igid      = cpu_to_be32(inode->i_gid);
@@ -5291,7 +5294,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlmglue.c linux-2.6.30.5-vs2.3.0.3
        lvb->lvb_imode     = cpu_to_be16(inode->i_mode);
        lvb->lvb_inlink    = cpu_to_be16(inode->i_nlink);
        lvb->lvb_iatime_packed  =
-@@ -1954,6 +1955,7 @@ static void ocfs2_refresh_inode_from_lvb
+@@ -2014,6 +2015,7 @@ static void ocfs2_refresh_inode_from_lvb
  
        inode->i_uid     = be32_to_cpu(lvb->lvb_iuid);
        inode->i_gid     = be32_to_cpu(lvb->lvb_igid);
@@ -5299,9 +5302,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlmglue.c linux-2.6.30.5-vs2.3.0.3
        inode->i_mode    = be16_to_cpu(lvb->lvb_imode);
        inode->i_nlink   = be16_to_cpu(lvb->lvb_inlink);
        ocfs2_unpack_timespec(&inode->i_atime,
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlmglue.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlmglue.h
---- linux-2.6.30.5/fs/ocfs2/dlmglue.h  2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/dlmglue.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/dlmglue.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlmglue.h
+--- linux-2.6.31/fs/ocfs2/dlmglue.h    2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/dlmglue.h 2009-09-10 16:11:43.000000000 +0200
 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
        __be16       lvb_inlink;
        __be32       lvb_iattr;
@@ -5312,10 +5315,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/dlmglue.h linux-2.6.30.5-vs2.3.0.3
  };
  
  #define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/file.c
---- linux-2.6.30.5/fs/ocfs2/file.c     2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/file.c  2009-07-04 01:11:39.000000000 +0200
-@@ -911,13 +911,15 @@ int ocfs2_setattr(struct dentry *dentry,
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/file.c
+--- linux-2.6.31/fs/ocfs2/file.c       2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/file.c    2009-09-10 16:11:43.000000000 +0200
+@@ -914,13 +914,15 @@ int ocfs2_setattr(struct dentry *dentry,
                mlog(0, "uid change: %d\n", attr->ia_uid);
        if (attr->ia_valid & ATTR_GID)
                mlog(0, "gid change: %d\n", attr->ia_gid);
@@ -5332,7 +5335,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/file.c linux-2.6.30.5-vs2.3.0.36.1
        if (!(attr->ia_valid & OCFS2_VALID_ATTRS)) {
                mlog(0, "can't handle attrs: 0x%x\n", attr->ia_valid);
                return 0;
-@@ -2128,6 +2130,7 @@ const struct inode_operations ocfs2_file
+@@ -2141,6 +2143,7 @@ const struct inode_operations ocfs2_file
        .removexattr    = generic_removexattr,
        .fallocate      = ocfs2_fallocate,
        .fiemap         = ocfs2_fiemap,
@@ -5340,9 +5343,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/file.c linux-2.6.30.5-vs2.3.0.36.1
  };
  
  const struct inode_operations ocfs2_special_file_iops = {
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/inode.c
---- linux-2.6.30.5/fs/ocfs2/inode.c    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/inode.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/inode.c
+--- linux-2.6.31/fs/ocfs2/inode.c      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/inode.c   2009-09-10 16:11:43.000000000 +0200
 @@ -29,6 +29,7 @@
  #include <linux/highmem.h>
  #include <linux/pagemap.h>
@@ -5464,7 +5467,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.c linux-2.6.30.5-vs2.3.0.36.
  }
  
  struct inode *ocfs2_ilookup(struct super_block *sb, u64 blkno)
-@@ -234,6 +298,8 @@ void ocfs2_populate_inode(struct inode *
+@@ -245,6 +309,8 @@ void ocfs2_populate_inode(struct inode *
        struct super_block *sb;
        struct ocfs2_super *osb;
        int use_plocks = 1;
@@ -5473,7 +5476,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.c linux-2.6.30.5-vs2.3.0.36.
  
        mlog_entry("(0x%p, size:%llu)\n", inode,
                   (unsigned long long)le64_to_cpu(fe->i_size));
-@@ -265,8 +331,12 @@ void ocfs2_populate_inode(struct inode *
+@@ -276,8 +342,12 @@ void ocfs2_populate_inode(struct inode *
        inode->i_generation = le32_to_cpu(fe->i_generation);
        inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
        inode->i_mode = le16_to_cpu(fe->i_mode);
@@ -5488,9 +5491,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.c linux-2.6.30.5-vs2.3.0.36.
  
        /* Fast symlinks will have i_size but no allocated clusters. */
        if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/inode.h
---- linux-2.6.30.5/fs/ocfs2/inode.h    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/inode.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/inode.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/inode.h
+--- linux-2.6.31/fs/ocfs2/inode.h      2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/inode.h   2009-09-10 16:11:43.000000000 +0200
 @@ -152,6 +152,7 @@ struct buffer_head *ocfs2_bread(struct i
  
  void ocfs2_set_inode_flags(struct inode *inode);
@@ -5499,10 +5502,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/inode.h linux-2.6.30.5-vs2.3.0.36.
  
  static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
  {
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ioctl.c
---- linux-2.6.30.5/fs/ocfs2/ioctl.c    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ioctl.c 2009-07-04 01:11:39.000000000 +0200
-@@ -42,7 +42,7 @@ static int ocfs2_get_inode_attr(struct i
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ioctl.c
+--- linux-2.6.31/fs/ocfs2/ioctl.c      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ioctl.c   2009-09-10 16:11:43.000000000 +0200
+@@ -41,7 +41,7 @@ static int ocfs2_get_inode_attr(struct i
        return status;
  }
  
@@ -5511,7 +5514,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ioctl.c linux-2.6.30.5-vs2.3.0.36.
                                unsigned mask)
  {
        struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode);
-@@ -67,6 +67,11 @@ static int ocfs2_set_inode_attr(struct i
+@@ -66,6 +66,11 @@ static int ocfs2_set_inode_attr(struct i
        if (!S_ISDIR(inode->i_mode))
                flags &= ~OCFS2_DIRSYNC_FL;
  
@@ -5523,9 +5526,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ioctl.c linux-2.6.30.5-vs2.3.0.36.
        handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
        if (IS_ERR(handle)) {
                status = PTR_ERR(handle);
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ioctl.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ioctl.h
---- linux-2.6.30.5/fs/ocfs2/ioctl.h    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ioctl.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/ioctl.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ioctl.h
+--- linux-2.6.31/fs/ocfs2/ioctl.h      2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ioctl.h   2009-09-10 16:11:43.000000000 +0200
 @@ -10,6 +10,9 @@
  #ifndef OCFS2_IOCTL_H
  #define OCFS2_IOCTL_H
@@ -5536,9 +5539,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ioctl.h linux-2.6.30.5-vs2.3.0.36.
  long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
  long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg);
  
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/namei.c
---- linux-2.6.30.5/fs/ocfs2/namei.c    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/namei.c 2009-07-06 17:33:52.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/namei.c
+--- linux-2.6.31/fs/ocfs2/namei.c      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/namei.c   2009-09-10 16:11:43.000000000 +0200
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/highmem.h>
@@ -5569,7 +5572,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/namei.c linux-2.6.30.5-vs2.3.0.36.
        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));
-@@ -2037,6 +2042,7 @@ const struct inode_operations ocfs2_dir_
+@@ -2040,6 +2045,7 @@ const struct inode_operations ocfs2_dir_
        .rename         = ocfs2_rename,
        .setattr        = ocfs2_setattr,
        .getattr        = ocfs2_getattr,
@@ -5577,9 +5580,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/namei.c linux-2.6.30.5-vs2.3.0.36.
        .permission     = ocfs2_permission,
        .setxattr       = generic_setxattr,
        .getxattr       = generic_getxattr,
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ocfs2_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ocfs2_fs.h
---- linux-2.6.30.5/fs/ocfs2/ocfs2_fs.h 2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ocfs2_fs.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/ocfs2_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ocfs2_fs.h
+--- linux-2.6.31/fs/ocfs2/ocfs2_fs.h   2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ocfs2_fs.h        2009-09-10 16:11:43.000000000 +0200
 @@ -225,18 +225,23 @@
  #define OCFS2_INDEXED_DIR_FL  (0x0008)
  
@@ -5615,21 +5618,21 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ocfs2_fs.h linux-2.6.30.5-vs2.3.0.
  
  /*
   * Extent record flags (e_node.leaf.flags)
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/ocfs2.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ocfs2.h
---- linux-2.6.30.5/fs/ocfs2/ocfs2.h    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/ocfs2.h 2009-07-04 01:11:39.000000000 +0200
-@@ -199,6 +199,7 @@ enum ocfs2_mount_options
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/ocfs2.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ocfs2.h
+--- linux-2.6.31/fs/ocfs2/ocfs2.h      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/ocfs2.h   2009-09-10 16:11:43.000000000 +0200
+@@ -222,6 +222,7 @@ enum ocfs2_mount_options
        OCFS2_MOUNT_POSIX_ACL = 1 << 8, /* POSIX access control lists */
        OCFS2_MOUNT_USRQUOTA = 1 << 9, /* We support user quotas */
        OCFS2_MOUNT_GRPQUOTA = 1 << 10, /* We support group quotas */
 +      OCFS2_MOUNT_TAGGED = 1 << 11, /* use tagging */
  };
  
- #define OCFS2_OSB_SOFT_RO     0x0001
-diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/super.c
---- linux-2.6.30.5/fs/ocfs2/super.c    2009-08-17 16:37:40.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/ocfs2/super.c 2009-07-04 01:11:39.000000000 +0200
-@@ -172,6 +172,7 @@ enum {
+ #define OCFS2_OSB_SOFT_RO                     0x0001
+diff -NurpP --minimal linux-2.6.31/fs/ocfs2/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/super.c
+--- linux-2.6.31/fs/ocfs2/super.c      2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/ocfs2/super.c   2009-09-10 16:11:43.000000000 +0200
+@@ -173,6 +173,7 @@ enum {
        Opt_noacl,
        Opt_usrquota,
        Opt_grpquota,
@@ -5637,7 +5640,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.
        Opt_err,
  };
  
-@@ -198,6 +199,9 @@ static const match_table_t tokens = {
+@@ -199,6 +200,9 @@ static const match_table_t tokens = {
        {Opt_noacl, "noacl"},
        {Opt_usrquota, "usrquota"},
        {Opt_grpquota, "grpquota"},
@@ -5647,7 +5650,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.
        {Opt_err, NULL}
  };
  
-@@ -604,6 +608,13 @@ static int ocfs2_remount(struct super_bl
+@@ -605,6 +609,13 @@ static int ocfs2_remount(struct super_bl
                goto out;
        }
  
@@ -5661,7 +5664,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.
        if ((osb->s_mount_opt & OCFS2_MOUNT_HB_LOCAL) !=
            (parsed_options.mount_opt & OCFS2_MOUNT_HB_LOCAL)) {
                ret = -EINVAL;
-@@ -1128,6 +1139,9 @@ static int ocfs2_fill_super(struct super
+@@ -1146,6 +1157,9 @@ static int ocfs2_fill_super(struct super
  
        ocfs2_complete_mount_recovery(osb);
  
@@ -5671,7 +5674,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.
        if (ocfs2_mount_local(osb))
                snprintf(nodestr, sizeof(nodestr), "local");
        else
-@@ -1386,6 +1400,20 @@ static int ocfs2_parse_options(struct su
+@@ -1424,6 +1438,20 @@ static int ocfs2_parse_options(struct su
                        printk(KERN_INFO "ocfs2 (no)acl options not supported\n");
                        break;
  #endif
@@ -5692,9 +5695,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/ocfs2/super.c linux-2.6.30.5-vs2.3.0.36.
                default:
                        mlog(ML_ERROR,
                             "Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-2.6.30.5/fs/open.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/open.c
---- linux-2.6.30.5/fs/open.c   2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/open.c        2009-07-04 02:02:28.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/open.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/open.c
+--- linux-2.6.31/fs/open.c     2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/open.c  2009-09-10 16:11:43.000000000 +0200
 @@ -30,22 +30,31 @@
  #include <linux/audit.h>
  #include <linux/falloc.h>
@@ -5801,9 +5804,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/open.c linux-2.6.30.5-vs2.3.0.36.14-pre7
  }
  
  void put_unused_fd(unsigned int fd)
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/array.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/array.c
---- linux-2.6.30.5/fs/proc/array.c     2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/array.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/array.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/array.c
+--- linux-2.6.31/fs/proc/array.c       2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/array.c    2009-09-10 16:11:43.000000000 +0200
 @@ -82,6 +82,8 @@
  #include <linux/pid_namespace.h>
  #include <linux/ptrace.h>
@@ -5929,9 +5932,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/array.c linux-2.6.30.5-vs2.3.0.36.1
        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-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/base.c
---- linux-2.6.30.5/fs/proc/base.c      2009-08-17 16:37:40.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/base.c   2009-08-17 16:56:56.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/base.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/base.c
+--- linux-2.6.31/fs/proc/base.c        2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/base.c     2009-09-10 16:11:43.000000000 +0200
 @@ -81,6 +81,8 @@
  #include <linux/elf.h>
  #include <linux/pid_namespace.h>
@@ -5964,7 +5967,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2376,7 +2387,7 @@ out_iput:
+@@ -2382,7 +2393,7 @@ out_iput:
  static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
  {
        struct dentry *error;
@@ -5973,7 +5976,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
        const struct pid_entry *p, *last;
  
        error = ERR_PTR(-ENOENT);
-@@ -2466,6 +2477,9 @@ static int proc_pid_personality(struct s
+@@ -2472,6 +2483,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;
  
@@ -5983,7 +5986,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
  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),
-@@ -2524,6 +2538,8 @@ static const struct pid_entry tgid_base_
+@@ -2530,6 +2544,8 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_CGROUPS
        REG("cgroup",  S_IRUGO, proc_cgroup_operations),
  #endif
@@ -5992,7 +5995,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
        INF("oom_score",  S_IRUGO, proc_oom_score),
        REG("oom_adj",    S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
  #ifdef CONFIG_AUDITSYSCALL
-@@ -2539,6 +2555,7 @@ static const struct pid_entry tgid_base_
+@@ -2545,6 +2561,7 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_TASK_IO_ACCOUNTING
        INF("io",       S_IRUGO, proc_tgid_io_accounting),
  #endif
@@ -6000,7 +6003,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
  };
  
  static int proc_tgid_base_readdir(struct file * filp,
-@@ -2735,7 +2752,7 @@ retry:
+@@ -2741,7 +2758,7 @@ retry:
        iter.task = NULL;
        pid = find_ge_pid(iter.tgid, ns);
        if (pid) {
@@ -6009,7 +6012,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
                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
-@@ -2765,7 +2782,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -2771,7 +2788,7 @@ static int proc_pid_fill_cache(struct fi
        struct tgid_iter iter)
  {
        char name[PROC_NUMBUF];
@@ -6018,7 +6021,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
        return proc_fill_cache(filp, dirent, filldir, name, len,
                                proc_pid_instantiate, iter.task, NULL);
  }
-@@ -2774,7 +2791,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -2780,7 +2797,7 @@ static int proc_pid_fill_cache(struct fi
  int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
  {
        unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
@@ -6027,7 +6030,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
        struct tgid_iter iter;
        struct pid_namespace *ns;
  
-@@ -2794,6 +2811,8 @@ int proc_pid_readdir(struct file * filp,
+@@ -2800,6 +2817,8 @@ int proc_pid_readdir(struct file * filp,
             iter.task;
             iter.tgid += 1, iter = next_tgid(ns, iter)) {
                filp->f_pos = iter.tgid + TGID_OFFSET;
@@ -6036,7 +6039,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
                if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
                        put_task_struct(iter.task);
                        goto out;
-@@ -2940,6 +2959,8 @@ static struct dentry *proc_task_lookup(s
+@@ -2946,6 +2965,8 @@ static struct dentry *proc_task_lookup(s
        tid = name_to_int(dentry);
        if (tid == ~0U)
                goto out;
@@ -6045,9 +6048,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/base.c linux-2.6.30.5-vs2.3.0.36.14
  
        ns = dentry->d_sb->s_fs_info;
        rcu_read_lock();
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/generic.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/generic.c
---- linux-2.6.30.5/fs/proc/generic.c   2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/generic.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/generic.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/generic.c
+--- linux-2.6.31/fs/proc/generic.c     2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/generic.c  2009-09-10 16:11:43.000000000 +0200
 @@ -20,6 +20,7 @@
  #include <linux/bitops.h>
  #include <linux/spinlock.h>
@@ -6109,9 +6112,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/generic.c linux-2.6.30.5-vs2.3.0.36
                } else {
                        kfree(ent);
                        ent = NULL;
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/inode.c
---- linux-2.6.30.5/fs/proc/inode.c     2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/inode.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/inode.c
+--- linux-2.6.31/fs/proc/inode.c       2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/inode.c    2009-09-10 16:11:43.000000000 +0200
 @@ -459,6 +459,8 @@ struct inode *proc_get_inode(struct supe
                        inode->i_uid = de->uid;
                        inode->i_gid = de->gid;
@@ -6121,9 +6124,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/inode.c linux-2.6.30.5-vs2.3.0.36.1
                if (de->size)
                        inode->i_size = de->size;
                if (de->nlink)
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/internal.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/internal.h
---- linux-2.6.30.5/fs/proc/internal.h  2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/internal.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/internal.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/internal.h
+--- linux-2.6.31/fs/proc/internal.h    2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/internal.h 2009-09-10 16:11:43.000000000 +0200
 @@ -10,6 +10,7 @@
   */
  
@@ -6160,54 +6163,41 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/internal.h linux-2.6.30.5-vs2.3.0.3
  static inline int proc_fd(struct inode *inode)
  {
        return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/loadavg.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/loadavg.c
---- linux-2.6.30.5/fs/proc/loadavg.c   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/loadavg.c        2009-07-04 01:11:39.000000000 +0200
-@@ -12,21 +12,37 @@
+diff -NurpP --minimal linux-2.6.31/fs/proc/loadavg.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/loadavg.c
+--- linux-2.6.31/fs/proc/loadavg.c     2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/loadavg.c  2009-09-10 16:58:00.000000000 +0200
+@@ -12,15 +12,27 @@
  
  static int loadavg_proc_show(struct seq_file *m, void *v)
  {
 +      unsigned long running;
 +      unsigned int threads;
-       int a, b, c;
-       unsigned long seq;
+       unsigned long avnrun[3];
  
-       do {
-               seq = read_seqbegin(&xtime_lock);
--              a = avenrun[0] + (FIXED_1/200);
--              b = avenrun[1] + (FIXED_1/200);
--              c = avenrun[2] + (FIXED_1/200);
-+              if (vx_flags(VXF_VIRT_LOAD, 0)) {
-+                      struct vx_info *vxi = current->vx_info;
-+
-+                      a = vxi->cvirt.load[0] + (FIXED_1/200);
-+                      b = vxi->cvirt.load[1] + (FIXED_1/200);
-+                      c = vxi->cvirt.load[2] + (FIXED_1/200);
-+
-+                      running = atomic_read(&vxi->cvirt.nr_running);
-+                      threads = atomic_read(&vxi->cvirt.nr_threads);
-+              } else {
-+                      a = avenrun[0] + (FIXED_1/200);
-+                      b = avenrun[1] + (FIXED_1/200);
-+                      c = avenrun[2] + (FIXED_1/200);
-+
-+                      running = nr_running();
-+                      threads = nr_threads;
-+              }
-       } while (read_seqretry(&xtime_lock, seq));
+       get_avenrun(avnrun, FIXED_1/200, 0);
  
-       seq_printf(m, "%d.%02d %d.%02d %d.%02d %ld/%d %d\n",
-               LOAD_INT(a), LOAD_FRAC(a),
-               LOAD_INT(b), LOAD_FRAC(b),
-               LOAD_INT(c), LOAD_FRAC(c),
++      if (vx_flags(VXF_VIRT_LOAD, 0)) {
++              struct vx_info *vxi = current->vx_info;
++
++              running = atomic_read(&vxi->cvirt.nr_running);
++              threads = atomic_read(&vxi->cvirt.nr_threads);
++      } else {
++              running = nr_running();
++              threads = nr_threads;
++      }
++
+       seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n",
+               LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]),
+               LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]),
+               LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]),
 -              nr_running(), nr_threads,
 +              running, threads,
                task_active_pid_ns(current)->last_pid);
        return 0;
  }
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/meminfo.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/meminfo.c
---- linux-2.6.30.5/fs/proc/meminfo.c   2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/meminfo.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/meminfo.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/meminfo.c
+--- linux-2.6.31/fs/proc/meminfo.c     2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/meminfo.c  2009-09-10 16:11:43.000000000 +0200
 @@ -41,7 +41,7 @@ static int meminfo_proc_show(struct seq_
  
        cached = global_page_state(NR_FILE_PAGES) -
@@ -6217,9 +6207,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/meminfo.c linux-2.6.30.5-vs2.3.0.36
                cached = 0;
  
        get_vmalloc_info(&vmi);
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/root.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/root.c
---- linux-2.6.30.5/fs/proc/root.c      2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/root.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/root.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/root.c
+--- linux-2.6.31/fs/proc/root.c        2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/root.c     2009-09-10 16:11:43.000000000 +0200
 @@ -18,9 +18,14 @@
  #include <linux/bitops.h>
  #include <linux/mount.h>
@@ -6251,9 +6241,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/root.c linux-2.6.30.5-vs2.3.0.36.14
  };
  
  int pid_ns_prepare_proc(struct pid_namespace *ns)
-diff -NurpP --minimal linux-2.6.30.5/fs/proc/uptime.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/uptime.c
---- linux-2.6.30.5/fs/proc/uptime.c    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/proc/uptime.c 2009-07-04 02:10:28.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/proc/uptime.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/uptime.c
+--- linux-2.6.31/fs/proc/uptime.c      2009-06-11 17:13:07.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/proc/uptime.c   2009-09-10 16:11:43.000000000 +0200
 @@ -4,6 +4,7 @@
  #include <linux/sched.h>
  #include <linux/seq_file.h>
@@ -6273,9 +6263,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/proc/uptime.c linux-2.6.30.5-vs2.3.0.36.
        seq_printf(m, "%lu.%02lu %lu.%02lu\n",
                        (unsigned long) uptime.tv_sec,
                        (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-diff -NurpP --minimal linux-2.6.30.5/fs/quota/quota.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/quota/quota.c
---- linux-2.6.30.5/fs/quota/quota.c    2009-06-11 17:13:07.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/quota/quota.c 2009-07-14 15:05:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/quota/quota.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/quota/quota.c
+--- linux-2.6.31/fs/quota/quota.c      2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/quota/quota.c   2009-09-10 16:11:43.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <linux/capability.h>
  #include <linux/quotaops.h>
@@ -6311,7 +6301,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/quota/quota.c linux-2.6.30.5-vs2.3.0.36.
                        return -EPERM;
        }
  
-@@ -348,6 +349,46 @@ static int do_quotactl(struct super_bloc
+@@ -351,6 +352,46 @@ static int do_quotactl(struct super_bloc
        return 0;
  }
  
@@ -6358,7 +6348,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/quota/quota.c linux-2.6.30.5-vs2.3.0.36.
  /*
   * look up a superblock on which quota ops will be performed
   * - use the name of a block device to find the superblock thereon
-@@ -365,6 +406,22 @@ static struct super_block *quotactl_bloc
+@@ -368,6 +409,22 @@ static struct super_block *quotactl_bloc
        putname(tmp);
        if (IS_ERR(bdev))
                return ERR_CAST(bdev);
@@ -6381,18 +6371,18 @@ diff -NurpP --minimal linux-2.6.30.5/fs/quota/quota.c linux-2.6.30.5-vs2.3.0.36.
        sb = get_super(bdev);
        bdput(bdev);
        if (!sb)
-diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/file.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/file.c
---- linux-2.6.30.5/fs/reiserfs/file.c  2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/file.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/file.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/file.c
+--- linux-2.6.31/fs/reiserfs/file.c    2009-06-11 17:13:08.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/file.c 2009-09-10 16:11:43.000000000 +0200
 @@ -307,4 +307,5 @@ const struct inode_operations reiserfs_f
        .listxattr = reiserfs_listxattr,
        .removexattr = reiserfs_removexattr,
        .permission = reiserfs_permission,
 +      .sync_flags = reiserfs_sync_flags,
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/inode.c
---- linux-2.6.30.5/fs/reiserfs/inode.c 2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/inode.c      2009-07-04 02:52:58.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/inode.c
+--- linux-2.6.31/fs/reiserfs/inode.c   2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/inode.c        2009-09-10 16:11:43.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <linux/writeback.h>
  #include <linux/quotaops.h>
@@ -6410,7 +6400,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
        //int version = ITEM_VERSION_1;
  
        bh = PATH_PLAST_BUFFER(path);
-@@ -1140,12 +1143,13 @@ static void init_inode(struct inode *ino
+@@ -1138,12 +1141,13 @@ static void init_inode(struct inode *ino
                    (struct stat_data_v1 *)B_I_PITEM(bh, ih);
                unsigned long blocks;
  
@@ -6426,7 +6416,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                inode->i_size = sd_v1_size(sd);
                inode->i_atime.tv_sec = sd_v1_atime(sd);
                inode->i_mtime.tv_sec = sd_v1_mtime(sd);
-@@ -1187,11 +1191,12 @@ static void init_inode(struct inode *ino
+@@ -1185,11 +1189,12 @@ static void init_inode(struct inode *ino
                // (directories and symlinks)
                struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih);
  
@@ -6441,7 +6431,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                inode->i_mtime.tv_sec = sd_v2_mtime(sd);
                inode->i_atime.tv_sec = sd_v2_atime(sd);
                inode->i_ctime.tv_sec = sd_v2_ctime(sd);
-@@ -1221,6 +1226,10 @@ static void init_inode(struct inode *ino
+@@ -1219,6 +1224,10 @@ static void init_inode(struct inode *ino
                sd_attrs_to_i_attrs(sd_v2_attrs(sd), inode);
        }
  
@@ -6452,7 +6442,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
        pathrelse(path);
        if (S_ISREG(inode->i_mode)) {
                inode->i_op = &reiserfs_file_inode_operations;
-@@ -1243,13 +1252,15 @@ static void init_inode(struct inode *ino
+@@ -1241,13 +1250,15 @@ static void init_inode(struct inode *ino
  static void inode2sd(void *sd, struct inode *inode, loff_t size)
  {
        struct stat_data *sd_v2 = (struct stat_data *)sd;
@@ -6470,7 +6460,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
        set_sd_v2_mtime(sd_v2, inode->i_mtime.tv_sec);
        set_sd_v2_atime(sd_v2, inode->i_atime.tv_sec);
        set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec);
-@@ -2832,14 +2843,19 @@ int reiserfs_commit_write(struct file *f
+@@ -2828,14 +2839,19 @@ int reiserfs_commit_write(struct file *f
  void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
  {
        if (reiserfs_attrs(inode->i_sb)) {
@@ -6494,7 +6484,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                if (sd_attrs & REISERFS_APPEND_FL)
                        inode->i_flags |= S_APPEND;
                else
-@@ -2852,6 +2868,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
+@@ -2848,6 +2864,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
                        REISERFS_I(inode)->i_flags |= i_nopack_mask;
                else
                        REISERFS_I(inode)->i_flags &= ~i_nopack_mask;
@@ -6510,7 +6500,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
        }
  }
  
-@@ -2862,6 +2887,11 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2858,6 +2883,11 @@ void i_attrs_to_sd_attrs(struct inode *i
                        *sd_attrs |= REISERFS_IMMUTABLE_FL;
                else
                        *sd_attrs &= ~REISERFS_IMMUTABLE_FL;
@@ -6522,7 +6512,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                if (inode->i_flags & S_SYNC)
                        *sd_attrs |= REISERFS_SYNC_FL;
                else
-@@ -2874,6 +2904,15 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2870,6 +2900,15 @@ void i_attrs_to_sd_attrs(struct inode *i
                        *sd_attrs |= REISERFS_NOTAIL_FL;
                else
                        *sd_attrs &= ~REISERFS_NOTAIL_FL;
@@ -6538,7 +6528,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
        }
  }
  
-@@ -3041,6 +3080,22 @@ static ssize_t reiserfs_direct_IO(int rw
+@@ -3037,6 +3076,22 @@ static ssize_t reiserfs_direct_IO(int rw
                                  reiserfs_get_blocks_direct_io, NULL);
  }
  
@@ -6561,7 +6551,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
  int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
  {
        struct inode *inode = dentry->d_inode;
-@@ -3094,9 +3149,11 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3090,9 +3145,11 @@ int reiserfs_setattr(struct dentry *dent
        }
  
        error = inode_change_ok(inode, attr);
@@ -6574,7 +6564,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                        error = reiserfs_chown_xattrs(inode, attr);
  
                        if (!error) {
-@@ -3126,6 +3183,9 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3122,6 +3179,9 @@ int reiserfs_setattr(struct dentry *dent
                                        inode->i_uid = attr->ia_uid;
                                if (attr->ia_valid & ATTR_GID)
                                        inode->i_gid = attr->ia_gid;
@@ -6584,9 +6574,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/inode.c linux-2.6.30.5-vs2.3.0.
                                mark_inode_dirty(inode);
                                error =
                                    journal_end(&th, inode->i_sb, jbegin_count);
-diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/ioctl.c
---- linux-2.6.30.5/fs/reiserfs/ioctl.c 2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/ioctl.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/ioctl.c
+--- linux-2.6.31/fs/reiserfs/ioctl.c   2009-06-11 17:13:08.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/ioctl.c        2009-09-10 16:11:43.000000000 +0200
 @@ -7,6 +7,7 @@
  #include <linux/mount.h>
  #include <linux/reiserfs_fs.h>
@@ -6634,9 +6624,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/ioctl.c linux-2.6.30.5-vs2.3.0.
                        sd_attrs_to_i_attrs(flags, inode);
                        REISERFS_I(inode)->i_attrs = flags;
                        inode->i_ctime = CURRENT_TIME_SEC;
-diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/namei.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/namei.c
---- linux-2.6.30.5/fs/reiserfs/namei.c 2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/namei.c      2009-07-04 02:11:56.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/namei.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/namei.c
+--- linux-2.6.31/fs/reiserfs/namei.c   2009-06-11 17:13:08.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/namei.c        2009-09-10 16:11:43.000000000 +0200
 @@ -17,6 +17,7 @@
  #include <linux/reiserfs_acl.h>
  #include <linux/reiserfs_xattr.h>
@@ -6684,10 +6674,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/namei.c linux-2.6.30.5-vs2.3.0.
 +      .sync_flags = reiserfs_sync_flags,
  
  };
-diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/super.c
---- linux-2.6.30.5/fs/reiserfs/super.c 2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/super.c      2009-07-06 17:43:06.000000000 +0200
-@@ -905,6 +905,14 @@ static int reiserfs_parse_options(struct
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/super.c
+--- linux-2.6.31/fs/reiserfs/super.c   2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/super.c        2009-09-10 16:11:43.000000000 +0200
+@@ -884,6 +884,14 @@ static int reiserfs_parse_options(struct
                {"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
                {"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
  #endif
@@ -6702,7 +6692,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/super.c linux-2.6.30.5-vs2.3.0.
  #ifdef CONFIG_REISERFS_FS_POSIX_ACL
                {"acl",.setmask = 1 << REISERFS_POSIXACL},
                {"noacl",.clrmask = 1 << REISERFS_POSIXACL},
-@@ -1210,6 +1218,13 @@ static int reiserfs_remount(struct super
+@@ -1190,6 +1198,13 @@ static int reiserfs_remount(struct super
        handle_quota_files(s, qf_names, &qfmt);
  #endif
  
@@ -6716,7 +6706,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/super.c linux-2.6.30.5-vs2.3.0.
        handle_attrs(s);
  
        /* Add options that are safe here */
-@@ -1670,6 +1685,10 @@ static int reiserfs_fill_super(struct su
+@@ -1652,6 +1667,10 @@ static int reiserfs_fill_super(struct su
                goto error;
        }
  
@@ -6727,9 +6717,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/super.c linux-2.6.30.5-vs2.3.0.
        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-2.6.30.5/fs/reiserfs/xattr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/xattr.c
---- linux-2.6.30.5/fs/reiserfs/xattr.c 2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/reiserfs/xattr.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/reiserfs/xattr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/xattr.c
+--- linux-2.6.31/fs/reiserfs/xattr.c   2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/reiserfs/xattr.c        2009-09-10 16:11:43.000000000 +0200
 @@ -39,6 +39,7 @@
  #include <linux/namei.h>
  #include <linux/errno.h>
@@ -6738,9 +6728,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/reiserfs/xattr.c linux-2.6.30.5-vs2.3.0.
  #include <linux/file.h>
  #include <linux/pagemap.h>
  #include <linux/xattr.h>
-diff -NurpP --minimal linux-2.6.30.5/fs/stat.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/stat.c
---- linux-2.6.30.5/fs/stat.c   2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/stat.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/stat.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/stat.c
+--- linux-2.6.31/fs/stat.c     2009-06-11 17:13:08.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/stat.c  2009-09-10 16:11:43.000000000 +0200
 @@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
        stat->nlink = inode->i_nlink;
        stat->uid = inode->i_uid;
@@ -6749,20 +6739,20 @@ diff -NurpP --minimal linux-2.6.30.5/fs/stat.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        stat->rdev = inode->i_rdev;
        stat->atime = inode->i_atime;
        stat->mtime = inode->i_mtime;
-diff -NurpP --minimal linux-2.6.30.5/fs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/super.c
---- linux-2.6.30.5/fs/super.c  2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/super.c       2009-07-04 01:11:39.000000000 +0200
-@@ -39,6 +39,9 @@
+diff -NurpP --minimal linux-2.6.31/fs/super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/super.c
+--- linux-2.6.31/fs/super.c    2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/super.c 2009-09-10 17:00:57.000000000 +0200
+@@ -37,6 +37,9 @@
+ #include <linux/kobject.h>
  #include <linux/mutex.h>
  #include <linux/file.h>
- #include <linux/async.h>
 +#include <linux/devpts_fs.h>
 +#include <linux/proc_fs.h>
 +#include <linux/vs_context.h>
  #include <asm/uaccess.h>
  #include "internal.h"
  
-@@ -992,12 +995,18 @@ struct vfsmount *
+@@ -859,12 +862,18 @@ struct vfsmount *
  vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void *data)
  {
        struct vfsmount *mnt;
@@ -6781,7 +6771,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre
        error = -ENOMEM;
        mnt = alloc_vfsmnt(name);
        if (!mnt)
-@@ -1016,9 +1025,17 @@ vfs_kern_mount(struct file_system_type *
+@@ -883,9 +892,17 @@ vfs_kern_mount(struct file_system_type *
        error = type->get_sb(type, flags, name, data, mnt);
        if (error < 0)
                goto out_free_secdata;
@@ -6801,9 +6791,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/super.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (error)
                goto out_sb;
  
-diff -NurpP --minimal linux-2.6.30.5/fs/sysfs/mount.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/sysfs/mount.c
---- linux-2.6.30.5/fs/sysfs/mount.c    2009-06-11 17:13:08.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/sysfs/mount.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/sysfs/mount.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/sysfs/mount.c
+--- linux-2.6.31/fs/sysfs/mount.c      2009-06-11 17:13:08.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/sysfs/mount.c   2009-09-10 16:11:43.000000000 +0200
 @@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
  
        sb->s_blocksize = PAGE_CACHE_SIZE;
@@ -6813,9 +6803,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/sysfs/mount.c linux-2.6.30.5-vs2.3.0.36.
        sb->s_op = &sysfs_ops;
        sb->s_time_gran = 1;
        sysfs_sb = sb;
-diff -NurpP --minimal linux-2.6.30.5/fs/utimes.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/utimes.c
---- linux-2.6.30.5/fs/utimes.c 2009-03-24 14:22:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/utimes.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/utimes.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/utimes.c
+--- linux-2.6.31/fs/utimes.c   2009-03-24 14:22:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/utimes.c        2009-09-10 16:11:43.000000000 +0200
 @@ -8,6 +8,8 @@
  #include <linux/stat.h>
  #include <linux/utime.h>
@@ -6825,9 +6815,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/utimes.c linux-2.6.30.5-vs2.3.0.36.14-pr
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
  
-diff -NurpP --minimal linux-2.6.30.5/fs/xattr.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xattr.c
---- linux-2.6.30.5/fs/xattr.c  2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xattr.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xattr.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xattr.c
+--- linux-2.6.31/fs/xattr.c    2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xattr.c 2009-09-10 16:11:43.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <linux/module.h>
  #include <linux/fsnotify.h>
@@ -6836,10 +6826,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xattr.c linux-2.6.30.5-vs2.3.0.36.14-pre
  #include <asm/uaccess.h>
  
  
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_ioctl.c
---- linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c        2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_ioctl.c     2009-07-04 01:11:39.000000000 +0200
-@@ -743,6 +743,10 @@ xfs_merge_ioc_xflags(
+diff -NurpP --minimal linux-2.6.31/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_ioctl.c
+--- linux-2.6.31/fs/xfs/linux-2.6/xfs_ioctl.c  2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_ioctl.c       2009-09-10 16:11:43.000000000 +0200
+@@ -742,6 +742,10 @@ xfs_merge_ioc_xflags(
                xflags |= XFS_XFLAG_IMMUTABLE;
        else
                xflags &= ~XFS_XFLAG_IMMUTABLE;
@@ -6850,7 +6840,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5
        if (flags & FS_APPEND_FL)
                xflags |= XFS_XFLAG_APPEND;
        else
-@@ -771,6 +775,8 @@ xfs_di2lxflags(
+@@ -770,6 +774,8 @@ xfs_di2lxflags(
  
        if (di_flags & XFS_DIFLAG_IMMUTABLE)
                flags |= FS_IMMUTABLE_FL;
@@ -6859,7 +6849,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5
        if (di_flags & XFS_DIFLAG_APPEND)
                flags |= FS_APPEND_FL;
        if (di_flags & XFS_DIFLAG_SYNC)
-@@ -829,6 +835,8 @@ xfs_set_diflags(
+@@ -828,6 +834,8 @@ xfs_set_diflags(
        di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC);
        if (xflags & XFS_XFLAG_IMMUTABLE)
                di_flags |= XFS_DIFLAG_IMMUTABLE;
@@ -6868,7 +6858,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5
        if (xflags & XFS_XFLAG_APPEND)
                di_flags |= XFS_DIFLAG_APPEND;
        if (xflags & XFS_XFLAG_SYNC)
-@@ -871,6 +879,10 @@ xfs_diflags_to_linux(
+@@ -870,6 +878,10 @@ xfs_diflags_to_linux(
                inode->i_flags |= S_IMMUTABLE;
        else
                inode->i_flags &= ~S_IMMUTABLE;
@@ -6879,7 +6869,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5
        if (xflags & XFS_XFLAG_APPEND)
                inode->i_flags |= S_APPEND;
        else
-@@ -1345,10 +1357,18 @@ xfs_file_ioctl(
+@@ -1346,10 +1358,18 @@ xfs_file_ioctl(
        case XFS_IOC_FSGETXATTRA:
                return xfs_ioc_fsgetxattr(ip, 1, arg);
        case XFS_IOC_FSSETXATTR:
@@ -6898,10 +6888,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.30.5
                return xfs_ioc_setxflags(ip, filp, arg);
  
        case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_iops.c
---- linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c 2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_iops.c      2009-07-04 01:11:39.000000000 +0200
-@@ -54,6 +54,7 @@
+diff -NurpP --minimal linux-2.6.31/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_iops.c
+--- linux-2.6.31/fs/xfs/linux-2.6/xfs_iops.c   2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_iops.c        2009-09-10 16:11:43.000000000 +0200
+@@ -56,6 +56,7 @@
  #include <linux/security.h>
  #include <linux/falloc.h>
  #include <linux/fiemap.h>
@@ -6909,7 +6899,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  
  /*
   * Bring the atime in the XFS inode uptodate.
-@@ -540,6 +541,7 @@ xfs_vn_getattr(
+@@ -513,6 +514,7 @@ xfs_vn_getattr(
        stat->nlink = ip->i_d.di_nlink;
        stat->uid = ip->i_d.di_uid;
        stat->gid = ip->i_d.di_gid;
@@ -6917,7 +6907,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
        stat->ino = ip->i_ino;
        stat->atime = inode->i_atime;
        stat->mtime.tv_sec = ip->i_d.di_mtime.t_sec;
-@@ -576,6 +578,12 @@ xfs_vn_getattr(
+@@ -549,6 +551,12 @@ xfs_vn_getattr(
  }
  
  STATIC int
@@ -6930,7 +6920,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  xfs_vn_setattr(
        struct dentry   *dentry,
        struct iattr    *iattr)
-@@ -733,6 +741,7 @@ static const struct inode_operations xfs
+@@ -706,6 +714,7 @@ static const struct inode_operations xfs
        .listxattr              = xfs_vn_listxattr,
        .fallocate              = xfs_vn_fallocate,
        .fiemap                 = xfs_vn_fiemap,
@@ -6938,7 +6928,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  };
  
  static const struct inode_operations xfs_dir_inode_operations = {
-@@ -758,6 +767,7 @@ static const struct inode_operations xfs
+@@ -731,6 +740,7 @@ static const struct inode_operations xfs
        .getxattr               = generic_getxattr,
        .removexattr            = generic_removexattr,
        .listxattr              = xfs_vn_listxattr,
@@ -6946,7 +6936,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  };
  
  static const struct inode_operations xfs_dir_ci_inode_operations = {
-@@ -807,6 +817,10 @@ xfs_diflags_to_iflags(
+@@ -780,6 +790,10 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_IMMUTABLE;
        else
                inode->i_flags &= ~S_IMMUTABLE;
@@ -6957,7 +6947,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
        if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
                inode->i_flags |= S_APPEND;
        else
-@@ -819,6 +833,15 @@ xfs_diflags_to_iflags(
+@@ -792,6 +806,15 @@ xfs_diflags_to_iflags(
                inode->i_flags |= S_NOATIME;
        else
                inode->i_flags &= ~S_NOATIME;
@@ -6973,7 +6963,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  }
  
  /*
-@@ -847,6 +870,7 @@ xfs_setup_inode(
+@@ -820,6 +843,7 @@ xfs_setup_inode(
        inode->i_nlink  = ip->i_d.di_nlink;
        inode->i_uid    = ip->i_d.di_uid;
        inode->i_gid    = ip->i_d.di_gid;
@@ -6981,9 +6971,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.5-
  
        switch (inode->i_mode & S_IFMT) {
        case S_IFBLK:
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_linux.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_linux.h
---- linux-2.6.30.5/fs/xfs/linux-2.6/xfs_linux.h        2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_linux.h     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xfs/linux-2.6/xfs_linux.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_linux.h
+--- linux-2.6.31/fs/xfs/linux-2.6/xfs_linux.h  2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_linux.h       2009-09-10 16:11:43.000000000 +0200
 @@ -119,6 +119,7 @@
  
  #define current_cpu()         (raw_smp_processor_id())
@@ -6992,10 +6982,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_linux.h linux-2.6.30.5
  #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-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_super.c
---- linux-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c        2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/linux-2.6/xfs_super.c     2009-07-04 01:11:39.000000000 +0200
-@@ -118,6 +118,9 @@ mempool_t *xfs_ioend_pool;
+diff -NurpP --minimal linux-2.6.31/fs/xfs/linux-2.6/xfs_super.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_super.c
+--- linux-2.6.31/fs/xfs/linux-2.6/xfs_super.c  2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/linux-2.6/xfs_super.c       2009-09-10 17:01:53.000000000 +0200
+@@ -117,6 +117,9 @@ mempool_t *xfs_ioend_pool;
  #define MNTOPT_DMAPI  "dmapi"         /* DMI enabled (DMAPI / XDSM) */
  #define MNTOPT_XDSM   "xdsm"          /* DMI enabled (DMAPI / XDSM) */
  #define MNTOPT_DMI    "dmi"           /* DMI enabled (DMAPI / XDSM) */
@@ -7005,7 +6995,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.5
  
  /*
   * Table driven mount option parser.
-@@ -126,10 +129,14 @@ mempool_t *xfs_ioend_pool;
+@@ -125,10 +128,14 @@ mempool_t *xfs_ioend_pool;
   * in the future, too.
   */
  enum {
@@ -7020,7 +7010,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.5
        {Opt_barrier, "barrier"},
        {Opt_nobarrier, "nobarrier"},
        {Opt_err, NULL}
-@@ -383,6 +390,19 @@ xfs_parseargs(
+@@ -382,6 +389,19 @@ xfs_parseargs(
                } else if (!strcmp(this_char, "irixsgid")) {
                        cmn_err(CE_WARN,
        "XFS: irixsgid is now a sysctl(2) variable, option is deprecated.");
@@ -7040,7 +7030,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.5
                } else {
                        cmn_err(CE_WARN,
                                "XFS: unknown mount option [%s].", this_char);
-@@ -1233,6 +1253,16 @@ xfs_fs_remount(
+@@ -1244,6 +1264,16 @@ xfs_fs_remount(
                case Opt_nobarrier:
                        mp->m_flags &= ~XFS_MOUNT_BARRIER;
                        break;
@@ -7057,19 +7047,19 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.5
                default:
                        /*
                         * Logically we would return an error here to prevent
-@@ -1443,6 +1473,9 @@ xfs_fs_fill_super(
+@@ -1451,6 +1481,9 @@ xfs_fs_fill_super(
  
        XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, mtpt, mp->m_fsname);
  
 +      if (mp->m_flags & XFS_MOUNT_TAGGED)
 +              sb->s_flags |= MS_TAGGED;
 +
-       sb->s_dirt = 1;
        sb->s_magic = XFS_SB_MAGIC;
        sb->s_blocksize = mp->m_sb.sb_blocksize;
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_dinode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_dinode.h
---- linux-2.6.30.5/fs/xfs/xfs_dinode.h 2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_dinode.h      2009-07-04 01:11:39.000000000 +0200
+       sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1;
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_dinode.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_dinode.h
+--- linux-2.6.31/fs/xfs/xfs_dinode.h   2009-06-11 17:13:09.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_dinode.h        2009-09-10 16:11:43.000000000 +0200
 @@ -50,7 +50,9 @@ typedef struct xfs_dinode {
        __be32          di_gid;         /* owner's group id */
        __be32          di_nlink;       /* number of links to file */
@@ -7110,9 +7100,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_dinode.h linux-2.6.30.5-vs2.3.0.
 +#define XFS_DIVFLAG_COW               0x02
  
  #endif        /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_fs.h
---- linux-2.6.30.5/fs/xfs/xfs_fs.h     2009-03-24 14:22:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_fs.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_fs.h
+--- linux-2.6.31/fs/xfs/xfs_fs.h       2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_fs.h    2009-09-10 16:11:43.000000000 +0200
 @@ -67,6 +67,9 @@ struct fsxattr {
  #define XFS_XFLAG_EXTSZINHERIT        0x00001000      /* inherit inode extent size */
  #define XFS_XFLAG_NODEFRAG    0x00002000      /* do not defragment */
@@ -7123,7 +7113,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_fs.h linux-2.6.30.5-vs2.3.0.36.1
  #define XFS_XFLAG_HASATTR     0x80000000      /* no DIFLAG for this   */
  
  /*
-@@ -289,7 +292,8 @@ typedef struct xfs_bstat {
+@@ -292,7 +295,8 @@ typedef struct xfs_bstat {
        __s32           bs_extents;     /* number of extents            */
        __u32           bs_gen;         /* generation count             */
        __u16           bs_projid;      /* project id                   */
@@ -7133,9 +7123,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_fs.h linux-2.6.30.5-vs2.3.0.36.1
        __u32           bs_dmevmask;    /* DMIG event mask              */
        __u16           bs_dmstate;     /* DMIG state info              */
        __u16           bs_aextents;    /* attribute number of extents  */
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_ialloc.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_ialloc.c
---- linux-2.6.30.5/fs/xfs/xfs_ialloc.c 2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_ialloc.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_ialloc.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_ialloc.c
+--- linux-2.6.31/fs/xfs/xfs_ialloc.c   2009-06-11 17:13:09.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_ialloc.c        2009-09-10 16:11:43.000000000 +0200
 @@ -41,7 +41,6 @@
  #include "xfs_error.h"
  #include "xfs_bmap.h"
@@ -7144,10 +7134,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_ialloc.c linux-2.6.30.5-vs2.3.0.
  /*
   * Allocation group level functions.
   */
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_inode.c
---- linux-2.6.30.5/fs/xfs/xfs_inode.c  2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_inode.c       2009-07-04 01:11:39.000000000 +0200
-@@ -250,6 +250,7 @@ xfs_inotobp(
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_inode.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_inode.c
+--- linux-2.6.31/fs/xfs/xfs_inode.c    2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_inode.c 2009-09-10 16:11:43.000000000 +0200
+@@ -249,6 +249,7 @@ xfs_inotobp(
        return 0;
  }
  
@@ -7155,7 +7145,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
  
  /*
   * This routine is called to map an inode to the buffer containing
-@@ -645,15 +646,25 @@ xfs_iformat_btree(
+@@ -654,15 +655,25 @@ xfs_iformat_btree(
  void
  xfs_dinode_from_disk(
        xfs_icdinode_t          *to,
@@ -7184,7 +7174,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        to->di_nlink = be32_to_cpu(from->di_nlink);
        to->di_projid = be16_to_cpu(from->di_projid);
        memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad));
-@@ -674,21 +685,26 @@ xfs_dinode_from_disk(
+@@ -683,21 +694,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);
@@ -7214,7 +7204,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        to->di_nlink = cpu_to_be32(from->di_nlink);
        to->di_projid = cpu_to_be16(from->di_projid);
        memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad));
-@@ -709,12 +725,14 @@ xfs_dinode_to_disk(
+@@ -718,12 +734,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);
@@ -7230,7 +7220,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
  {
        uint                    flags = 0;
  
-@@ -725,6 +743,8 @@ _xfs_dic2xflags(
+@@ -734,6 +752,8 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_PREALLOC;
                if (di_flags & XFS_DIFLAG_IMMUTABLE)
                        flags |= XFS_XFLAG_IMMUTABLE;
@@ -7239,7 +7229,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
                if (di_flags & XFS_DIFLAG_APPEND)
                        flags |= XFS_XFLAG_APPEND;
                if (di_flags & XFS_DIFLAG_SYNC)
-@@ -749,6 +769,10 @@ _xfs_dic2xflags(
+@@ -758,6 +778,10 @@ _xfs_dic2xflags(
                        flags |= XFS_XFLAG_FILESTREAM;
        }
  
@@ -7250,7 +7240,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        return flags;
  }
  
-@@ -758,7 +782,7 @@ xfs_ip2xflags(
+@@ -767,7 +791,7 @@ xfs_ip2xflags(
  {
        xfs_icdinode_t          *dic = &ip->i_d;
  
@@ -7259,7 +7249,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
                                (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -766,7 +790,8 @@ uint
+@@ -775,7 +799,8 @@ uint
  xfs_dic2xflags(
        xfs_dinode_t            *dip)
  {
@@ -7269,7 +7259,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
                                (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0);
  }
  
-@@ -802,7 +827,6 @@ xfs_iread(
+@@ -811,7 +836,6 @@ xfs_iread(
        if (error)
                return error;
        dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset);
@@ -7277,7 +7267,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        /*
         * If we got something that isn't an inode it means someone
         * (nfs or dmi) has a stale handle.
-@@ -827,7 +851,8 @@ xfs_iread(
+@@ -836,7 +860,8 @@ xfs_iread(
         * Otherwise, just get the truly permanent information.
         */
        if (dip->di_mode) {
@@ -7287,7 +7277,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
                error = xfs_iformat(ip, dip);
                if (error)  {
  #ifdef DEBUG
-@@ -1027,6 +1052,7 @@ xfs_ialloc(
+@@ -1036,6 +1061,7 @@ xfs_ialloc(
        ASSERT(ip->i_d.di_nlink == nlink);
        ip->i_d.di_uid = current_fsuid();
        ip->i_d.di_gid = current_fsgid();
@@ -7295,7 +7285,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        ip->i_d.di_projid = prid;
        memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
  
-@@ -1087,6 +1113,7 @@ xfs_ialloc(
+@@ -1096,6 +1122,7 @@ xfs_ialloc(
        ip->i_d.di_dmevmask = 0;
        ip->i_d.di_dmstate = 0;
        ip->i_d.di_flags = 0;
@@ -7303,7 +7293,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        flags = XFS_ILOG_CORE;
        switch (mode & S_IFMT) {
        case S_IFIFO:
-@@ -2163,6 +2190,7 @@ xfs_ifree(
+@@ -2172,6 +2199,7 @@ xfs_ifree(
        }
        ip->i_d.di_mode = 0;            /* mark incore inode as free */
        ip->i_d.di_flags = 0;
@@ -7311,7 +7301,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
        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 =
-@@ -3130,7 +3158,8 @@ xfs_iflush_int(
+@@ -3139,7 +3167,8 @@ xfs_iflush_int(
         * because if the inode is dirty at all the core must
         * be.
         */
@@ -7321,10 +7311,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.c linux-2.6.30.5-vs2.3.0.3
  
        /* Wrap, we never let the log put out DI_MAX_FLUSH */
        if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_inode.h
---- linux-2.6.30.5/fs/xfs/xfs_inode.h  2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_inode.h       2009-07-04 01:11:39.000000000 +0200
-@@ -134,7 +134,9 @@ typedef struct xfs_icdinode {
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_inode.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_inode.h
+--- linux-2.6.31/fs/xfs/xfs_inode.h    2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_inode.h 2009-09-10 16:11:43.000000000 +0200
+@@ -135,7 +135,9 @@ typedef struct xfs_icdinode {
        __uint32_t      di_gid;         /* owner's group id */
        __uint32_t      di_nlink;       /* number of links to file */
        __uint16_t      di_projid;      /* owner's project id */
@@ -7335,7 +7325,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.h linux-2.6.30.5-vs2.3.0.3
        __uint16_t      di_flushiter;   /* incremented on flush */
        xfs_ictimestamp_t di_atime;     /* time last accessed */
        xfs_ictimestamp_t di_mtime;     /* time last modified */
-@@ -589,9 +591,9 @@ int                xfs_itobp(struct xfs_mount *, struc
+@@ -573,9 +575,9 @@ int                xfs_itobp(struct xfs_mount *, struc
  int           xfs_iread(struct xfs_mount *, struct xfs_trans *,
                          struct xfs_inode *, xfs_daddr_t, uint);
  void          xfs_dinode_from_disk(struct xfs_icdinode *,
@@ -7347,9 +7337,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_inode.h linux-2.6.30.5-vs2.3.0.3
  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-2.6.30.5/fs/xfs/xfs_itable.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_itable.c
---- linux-2.6.30.5/fs/xfs/xfs_itable.c 2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_itable.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_itable.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_itable.c
+--- linux-2.6.31/fs/xfs/xfs_itable.c   2009-06-11 17:13:09.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_itable.c        2009-09-10 16:11:43.000000000 +0200
 @@ -82,6 +82,7 @@ xfs_bulkstat_one_iget(
        buf->bs_mode = dic->di_mode;
        buf->bs_uid = dic->di_uid;
@@ -7358,10 +7348,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_itable.c linux-2.6.30.5-vs2.3.0.
        buf->bs_size = dic->di_size;
        /*
         * We are reading the atime from the Linux inode because the
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_log_recover.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_log_recover.c
---- linux-2.6.30.5/fs/xfs/xfs_log_recover.c    2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_log_recover.c 2009-07-04 01:11:39.000000000 +0200
-@@ -2453,7 +2453,8 @@ xlog_recover_do_inode_trans(
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_log_recover.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_log_recover.c
+--- linux-2.6.31/fs/xfs/xfs_log_recover.c      2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_log_recover.c   2009-09-10 16:11:43.000000000 +0200
+@@ -2467,7 +2467,8 @@ xlog_recover_do_inode_trans(
        }
  
        /* The core is in in-core format */
@@ -7371,10 +7361,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_log_recover.c linux-2.6.30.5-vs2
  
        /* the rest is in on-disk format */
        if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_mount.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_mount.h
---- linux-2.6.30.5/fs/xfs/xfs_mount.h  2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_mount.h       2009-07-04 01:11:39.000000000 +0200
-@@ -361,6 +361,7 @@ typedef struct xfs_mount {
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_mount.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_mount.h
+--- linux-2.6.31/fs/xfs/xfs_mount.h    2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_mount.h 2009-09-10 16:11:43.000000000 +0200
+@@ -283,6 +283,7 @@ typedef struct xfs_mount {
                                                   allocator */
  #define XFS_MOUNT_NOATTR2     (1ULL << 25)    /* disable use of attr2 format */
  
@@ -7382,10 +7372,10 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_mount.h linux-2.6.30.5-vs2.3.0.3
  
  /*
   * Default minimum read and write sizes.
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_vnodeops.c
---- linux-2.6.30.5/fs/xfs/xfs_vnodeops.c       2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_vnodeops.c    2009-07-04 01:11:39.000000000 +0200
-@@ -53,6 +53,90 @@
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_vnodeops.c linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_vnodeops.c
+--- linux-2.6.31/fs/xfs/xfs_vnodeops.c 2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_vnodeops.c      2009-09-10 17:04:03.000000000 +0200
+@@ -54,6 +54,90 @@
  #include "xfs_filestream.h"
  #include "xfs_vnodeops.h"
  
@@ -7476,7 +7466,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
  int
  xfs_setattr(
        struct xfs_inode        *ip,
-@@ -68,6 +152,7 @@ xfs_setattr(
+@@ -69,6 +153,7 @@ xfs_setattr(
        uint                    commit_flags=0;
        uid_t                   uid=0, iuid=0;
        gid_t                   gid=0, igid=0;
@@ -7484,7 +7474,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
        int                     timeflags = 0;
        struct xfs_dquot        *udqp, *gdqp, *olddquot1, *olddquot2;
        int                     need_iolock = 1;
-@@ -164,7 +249,7 @@ xfs_setattr(
+@@ -165,7 +250,7 @@ xfs_setattr(
        /*
         * Change file ownership.  Must be the owner or privileged.
         */
@@ -7493,7 +7483,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
                /*
                 * These IDs could have changed since we last looked at them.
                 * But, we're assured that if the ownership did change
-@@ -173,15 +258,19 @@ xfs_setattr(
+@@ -174,8 +259,10 @@ xfs_setattr(
                 */
                iuid = ip->i_d.di_uid;
                igid = ip->i_d.di_gid;
@@ -7504,17 +7494,17 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
  
                /*
                 * Do a quota reservation only if uid/gid is actually
-                * going to change.
+@@ -183,7 +270,8 @@ xfs_setattr(
                 */
-               if ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) ||
--                  (XFS_IS_GQUOTA_ON(mp) && igid != gid)) {
-+                  (XFS_IS_GQUOTA_ON(mp) && igid != gid) ||
-+                  (XFS_IS_GQUOTA_ON(mp) && itag != tag)) {
-+                      /* TODO: handle tagging? */
+               if (XFS_IS_QUOTA_RUNNING(mp) &&
+                   ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) ||
+-                   (XFS_IS_GQUOTA_ON(mp) && igid != gid))) {
++                   (XFS_IS_GQUOTA_ON(mp) && igid != gid) ||
++                   (XFS_IS_GQUOTA_ON(mp) && itag != tag))) {
                        ASSERT(tp);
-                       code = XFS_QM_DQVOPCHOWNRESV(mp, tp, ip, udqp, gdqp,
+                       code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp,
                                                capable(CAP_FOWNER) ?
-@@ -334,7 +423,7 @@ xfs_setattr(
+@@ -336,7 +424,7 @@ xfs_setattr(
        /*
         * Change file ownership.  Must be the owner or privileged.
         */
@@ -7523,7 +7513,7 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
                /*
                 * CAP_FSETID overrides the following restrictions:
                 *
-@@ -350,6 +439,10 @@ xfs_setattr(
+@@ -352,6 +440,10 @@ xfs_setattr(
                 * Change the ownerships and register quota modifications
                 * in the transaction.
                 */
@@ -7532,11 +7522,11 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.c linux-2.6.30.5-vs2.3.
 +                      inode->i_tag = tag;
 +              }
                if (iuid != uid) {
-                       if (XFS_IS_UQUOTA_ON(mp)) {
+                       if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) {
                                ASSERT(mask & ATTR_UID);
-diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.h linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_vnodeops.h
---- linux-2.6.30.5/fs/xfs/xfs_vnodeops.h       2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/fs/xfs/xfs_vnodeops.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/fs/xfs/xfs_vnodeops.h linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_vnodeops.h
+--- linux-2.6.31/fs/xfs/xfs_vnodeops.h 2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/fs/xfs/xfs_vnodeops.h      2009-09-10 16:11:43.000000000 +0200
 @@ -14,6 +14,7 @@ struct xfs_inode;
  struct xfs_iomap;
  
@@ -7545,9 +7535,9 @@ diff -NurpP --minimal linux-2.6.30.5/fs/xfs/xfs_vnodeops.h linux-2.6.30.5-vs2.3.
  int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags);
  #define       XFS_ATTR_DMI            0x01    /* invocation from a DMI function */
  #define       XFS_ATTR_NONBLOCK       0x02    /* return EAGAIN if operation would block */
-diff -NurpP --minimal linux-2.6.30.5/include/asm-generic/tlb.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/asm-generic/tlb.h
---- linux-2.6.30.5/include/asm-generic/tlb.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/asm-generic/tlb.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/asm-generic/tlb.h linux-2.6.31-vs2.3.0.36.14-pre8/include/asm-generic/tlb.h
+--- linux-2.6.31/include/asm-generic/tlb.h     2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/asm-generic/tlb.h  2009-09-10 16:11:43.000000000 +0200
 @@ -14,6 +14,7 @@
  #define _ASM_GENERIC__TLB_H
  
@@ -7556,9 +7546,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/asm-generic/tlb.h linux-2.6.30.5-vs
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/capability.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/capability.h
---- linux-2.6.30.5/include/linux/capability.h  2009-06-11 17:13:13.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/capability.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/capability.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/capability.h
+--- linux-2.6.31/include/linux/capability.h    2009-06-11 17:13:13.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/capability.h 2009-09-10 16:11:43.000000000 +0200
 @@ -285,6 +285,7 @@ struct cpu_vfs_cap_data {
     arbitrary SCSI commands */
  /* Allow setting encryption key on loopback filesystem */
@@ -7582,18 +7572,18 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/capability.h linux-2.6.30.5-v
  
  #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/devpts_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/devpts_fs.h
---- linux-2.6.30.5/include/linux/devpts_fs.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/devpts_fs.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/devpts_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/devpts_fs.h
+--- linux-2.6.31/include/linux/devpts_fs.h     2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/devpts_fs.h  2009-09-10 16:11:43.000000000 +0200
 @@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
  
  #endif
  
 -
  #endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/ext2_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ext2_fs.h
---- linux-2.6.30.5/include/linux/ext2_fs.h     2009-03-24 14:22:41.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ext2_fs.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/ext2_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ext2_fs.h
+--- linux-2.6.31/include/linux/ext2_fs.h       2009-03-24 14:22:41.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ext2_fs.h    2009-09-10 16:11:43.000000000 +0200
 @@ -189,8 +189,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) */
@@ -7632,9 +7622,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/ext2_fs.h linux-2.6.30.5-vs2.
  
  
  #define clear_opt(o, opt)             o &= ~EXT2_MOUNT_##opt
-diff -NurpP --minimal linux-2.6.30.5/include/linux/ext3_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ext3_fs.h
---- linux-2.6.30.5/include/linux/ext3_fs.h     2009-06-11 17:13:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ext3_fs.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/ext3_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ext3_fs.h
+--- linux-2.6.31/include/linux/ext3_fs.h       2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ext3_fs.h    2009-09-10 17:14:14.000000000 +0200
 @@ -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) */
@@ -7680,14 +7670,14 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/ext3_fs.h linux-2.6.30.5-vs2.
 @@ -875,6 +881,7 @@ struct buffer_head * ext3_bread (handle_
  int ext3_get_blocks_handle(handle_t *handle, struct inode *inode,
        sector_t iblock, unsigned long maxblocks, struct buffer_head *bh_result,
-       int create, int extend_disksize);
+       int create);
 +extern int ext3_sync_flags(struct inode *inode);
  
  extern struct inode *ext3_iget(struct super_block *, unsigned long);
  extern int  ext3_write_inode (struct inode *, int);
-diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/fs.h
---- linux-2.6.30.5/include/linux/fs.h  2009-06-11 17:13:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/fs.h       2009-07-04 02:28:05.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/fs.h
+--- linux-2.6.31/include/linux/fs.h    2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/fs.h 2009-09-10 16:11:43.000000000 +0200
 @@ -205,6 +205,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 */
@@ -7791,7 +7781,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  /*
   * Includes for diskquotas.
   */
-@@ -720,7 +752,9 @@ struct inode {
+@@ -723,7 +755,9 @@ struct inode {
        unsigned int            i_nlink;
        uid_t                   i_uid;
        gid_t                   i_gid;
@@ -7801,7 +7791,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
        u64                     i_version;
        loff_t                  i_size;
  #ifdef __NEED_I_SIZE_ORDERED
-@@ -768,7 +802,8 @@ struct inode {
+@@ -770,7 +804,8 @@ struct inode {
        unsigned long           i_state;
        unsigned long           dirtied_when;   /* jiffies of first dirtying */
  
@@ -7811,7 +7801,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  
        atomic_t                i_writecount;
  #ifdef CONFIG_SECURITY
-@@ -852,12 +887,12 @@ static inline void i_size_write(struct i
+@@ -858,12 +893,12 @@ static inline void i_size_write(struct i
  
  static inline unsigned iminor(const struct inode *inode)
  {
@@ -7826,7 +7816,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  }
  
  extern struct block_device *I_BDEV(struct inode *inode);
-@@ -916,6 +951,7 @@ struct file {
+@@ -922,6 +957,7 @@ struct file {
        loff_t                  f_pos;
        struct fown_struct      f_owner;
        const struct cred       *f_cred;
@@ -7834,7 +7824,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
        struct file_ra_state    f_ra;
  
        u64                     f_version;
-@@ -1057,6 +1093,7 @@ struct file_lock {
+@@ -1063,6 +1099,7 @@ struct file_lock {
        struct file *fl_file;
        loff_t fl_start;
        loff_t fl_end;
@@ -7842,7 +7832,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  
        struct fasync_struct *  fl_fasync; /* for lease break notifications */
        unsigned long fl_break_time;    /* for nonblocking lease breaks */
-@@ -1537,6 +1574,7 @@ struct inode_operations {
+@@ -1539,6 +1576,7 @@ struct inode_operations {
                          loff_t len);
        int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
                      u64 len);
@@ -7850,7 +7840,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  };
  
  struct seq_file;
-@@ -1552,6 +1590,7 @@ extern ssize_t vfs_readv(struct file *, 
+@@ -1554,6 +1592,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 *);
@@ -7858,7 +7848,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  
  struct super_operations {
        struct inode *(*alloc_inode)(struct super_block *sb);
-@@ -2323,6 +2362,7 @@ extern int dcache_dir_open(struct inode 
+@@ -2328,6 +2367,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);
@@ -7866,9 +7856,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/fs.h linux-2.6.30.5-vs2.3.0.3
  extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
  extern int simple_statfs(struct dentry *, struct kstatfs *);
  extern int simple_link(struct dentry *, struct inode *, struct dentry *);
-diff -NurpP --minimal linux-2.6.30.5/include/linux/if_tun.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/if_tun.h
---- linux-2.6.30.5/include/linux/if_tun.h      2009-06-11 17:13:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/if_tun.h   2009-07-04 02:28:56.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/if_tun.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/if_tun.h
+--- linux-2.6.31/include/linux/if_tun.h        2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/if_tun.h     2009-09-10 16:11:43.000000000 +0200
 @@ -48,6 +48,7 @@
  #define TUNGETIFF      _IOR('T', 210, unsigned int)
  #define TUNGETSNDBUF   _IOR('T', 211, int)
@@ -7877,13 +7867,13 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/if_tun.h linux-2.6.30.5-vs2.3
  
  /* TUNSETIFF ifr flags */
  #define IFF_TUN               0x0001
-diff -NurpP --minimal linux-2.6.30.5/include/linux/init_task.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/init_task.h
---- linux-2.6.30.5/include/linux/init_task.h   2009-06-11 17:13:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/init_task.h        2009-07-04 02:26:54.000000000 +0200
-@@ -174,6 +174,10 @@ extern struct cred init_cred;
-       INIT_TRACE_IRQFLAGS                                             \
+diff -NurpP --minimal linux-2.6.31/include/linux/init_task.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/init_task.h
+--- linux-2.6.31/include/linux/init_task.h     2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/init_task.h  2009-09-10 17:13:45.000000000 +0200
+@@ -173,6 +173,10 @@ extern struct cred init_cred;
        INIT_LOCKDEP                                                    \
        INIT_FTRACE_GRAPH                                               \
+       INIT_TRACE_RECURSION                                            \
 +      .xid            = 0,                                            \
 +      .vx_info        = NULL,                                         \
 +      .nid            = 0,                                            \
@@ -7891,9 +7881,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/init_task.h linux-2.6.30.5-vs
  }
  
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/interrupt.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/interrupt.h
---- linux-2.6.30.5/include/linux/interrupt.h   2009-06-11 17:13:14.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/interrupt.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/interrupt.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/interrupt.h
+--- linux-2.6.31/include/linux/interrupt.h     2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/interrupt.h  2009-09-10 16:11:43.000000000 +0200
 @@ -9,8 +9,8 @@
  #include <linux/cpumask.h>
  #include <linux/irqreturn.h>
@@ -7904,9 +7894,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/interrupt.h linux-2.6.30.5-vs
  #include <linux/irqflags.h>
  #include <linux/smp.h>
  #include <linux/percpu.h>
-diff -NurpP --minimal linux-2.6.30.5/include/linux/ipc.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ipc.h
---- linux-2.6.30.5/include/linux/ipc.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/ipc.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/ipc.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ipc.h
+--- linux-2.6.31/include/linux/ipc.h   2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/ipc.h        2009-09-10 16:11:43.000000000 +0200
 @@ -93,6 +93,7 @@ struct kern_ipc_perm
        key_t           key;
        uid_t           uid;
@@ -7915,10 +7905,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/ipc.h linux-2.6.30.5-vs2.3.0.
        uid_t           cuid;
        gid_t           cgid;
        mode_t          mode; 
-diff -NurpP --minimal linux-2.6.30.5/include/linux/Kbuild linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/Kbuild
---- linux-2.6.30.5/include/linux/Kbuild        2009-06-11 17:13:13.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/Kbuild     2009-07-04 01:11:39.000000000 +0200
-@@ -373,5 +373,8 @@ unifdef-y += xattr.h
+diff -NurpP --minimal linux-2.6.31/include/linux/Kbuild linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/Kbuild
+--- linux-2.6.31/include/linux/Kbuild  2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/Kbuild       2009-09-10 16:11:43.000000000 +0200
+@@ -376,5 +376,8 @@ unifdef-y += xattr.h
  unifdef-y += xfrm.h
  
  objhdr-y += version.h
@@ -7927,9 +7917,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/Kbuild linux-2.6.30.5-vs2.3.0
  header-y += wimax.h
  header-y += wimax/
 +
-diff -NurpP --minimal linux-2.6.30.5/include/linux/loop.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/loop.h
---- linux-2.6.30.5/include/linux/loop.h        2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/loop.h     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/loop.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/loop.h
+--- linux-2.6.31/include/linux/loop.h  2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/loop.h       2009-09-10 16:11:43.000000000 +0200
 @@ -45,6 +45,7 @@ struct loop_device {
        struct loop_func_table *lo_encryption;
        __u32           lo_init[2];
@@ -7938,9 +7928,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/loop.h linux-2.6.30.5-vs2.3.0
        int             (*ioctl)(struct loop_device *, int cmd, 
                                 unsigned long arg); 
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/magic.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/magic.h
---- linux-2.6.30.5/include/linux/magic.h       2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/magic.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/magic.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/magic.h
+--- linux-2.6.31/include/linux/magic.h 2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/magic.h      2009-09-10 16:11:43.000000000 +0200
 @@ -3,7 +3,7 @@
  
  #define ADFS_SUPER_MAGIC      0xadf5
@@ -7949,8 +7939,8 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/magic.h linux-2.6.30.5-vs2.3.
 +#define AFS_SUPER_MAGIC               0x5346414F
  #define AUTOFS_SUPER_MAGIC    0x0187
  #define CODA_SUPER_MAGIC      0x73757245
- #define DEBUGFS_MAGIC          0x64626720
-@@ -33,6 +33,7 @@
+ #define CRAMFS_MAGIC          0x28cd3d45      /* some random number */
+@@ -36,6 +36,7 @@
  #define NFS_SUPER_MAGIC               0x6969
  #define OPENPROM_SUPER_MAGIC  0x9fa1
  #define PROC_SUPER_MAGIC      0x9fa0
@@ -7958,9 +7948,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/magic.h linux-2.6.30.5-vs2.3.
  #define QNX4_SUPER_MAGIC      0x002f          /* qnx4 fs detection */
  
  #define REISERFS_SUPER_MAGIC  0x52654973      /* used by gcc */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/major.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/major.h
---- linux-2.6.30.5/include/linux/major.h       2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/major.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/major.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/major.h
+--- linux-2.6.31/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/major.h      2009-09-10 16:11:43.000000000 +0200
 @@ -15,6 +15,7 @@
  #define HD_MAJOR              IDE0_MAJOR
  #define PTY_SLAVE_MAJOR               3
@@ -7969,10 +7959,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/major.h linux-2.6.30.5-vs2.3.
  #define TTYAUX_MAJOR          5
  #define LP_MAJOR              6
  #define VCS_MAJOR             7
-diff -NurpP --minimal linux-2.6.30.5/include/linux/mm_types.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/mm_types.h
---- linux-2.6.30.5/include/linux/mm_types.h    2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/mm_types.h 2009-07-04 01:11:39.000000000 +0200
-@@ -236,6 +236,7 @@ struct mm_struct {
+diff -NurpP --minimal linux-2.6.31/include/linux/mm_types.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/mm_types.h
+--- linux-2.6.31/include/linux/mm_types.h      2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/mm_types.h   2009-09-10 16:11:43.000000000 +0200
+@@ -244,6 +244,7 @@ struct mm_struct {
  
        /* Architecture-specific MM context */
        mm_context_t context;
@@ -7980,9 +7970,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/mm_types.h linux-2.6.30.5-vs2
  
        /* Swap token stuff */
        /*
-diff -NurpP --minimal linux-2.6.30.5/include/linux/mount.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/mount.h
---- linux-2.6.30.5/include/linux/mount.h       2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/mount.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/mount.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/mount.h
+--- linux-2.6.31/include/linux/mount.h 2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/mount.h      2009-09-10 17:14:39.000000000 +0200
 @@ -36,6 +36,9 @@ struct mnt_namespace;
  #define MNT_UNBINDABLE        0x2000  /* if the vfsmount is a unbindable mount */
  #define MNT_PNODE_MASK        0x3000  /* propagation flag mask */
@@ -7994,16 +7984,16 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/mount.h linux-2.6.30.5-vs2.3.
        struct list_head mnt_hash;
        struct vfsmount *mnt_parent;    /* fs we are mounted on */
 @@ -70,6 +73,7 @@ struct vfsmount {
-        * are held, and all mnt_writer[]s on this mount have 0 as their ->count
-        */
-       atomic_t __mnt_writers;
+ #else
+       int mnt_writers;
+ #endif
 +      tag_t mnt_tag;                  /* tagging used for vfsmount */
  };
  
- static inline struct vfsmount *mntget(struct vfsmount *mnt)
-diff -NurpP --minimal linux-2.6.30.5/include/linux/net.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/net.h
---- linux-2.6.30.5/include/linux/net.h 2009-06-11 17:13:15.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/net.h      2009-07-04 01:11:39.000000000 +0200
+ static inline int *get_mnt_writers_ptr(struct vfsmount *mnt)
+diff -NurpP --minimal linux-2.6.31/include/linux/net.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/net.h
+--- linux-2.6.31/include/linux/net.h   2009-06-11 17:13:15.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/net.h        2009-09-10 16:11:43.000000000 +0200
 @@ -68,6 +68,7 @@ struct net;
  #define SOCK_NOSPACE          2
  #define SOCK_PASSCRED         3
@@ -8012,9 +8002,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/net.h linux-2.6.30.5-vs2.3.0.
  
  #ifndef ARCH_HAS_SOCKET_TYPES
  /**
-diff -NurpP --minimal linux-2.6.30.5/include/linux/nfs_mount.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/nfs_mount.h
---- linux-2.6.30.5/include/linux/nfs_mount.h   2009-03-24 14:22:43.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/nfs_mount.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/nfs_mount.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/nfs_mount.h
+--- linux-2.6.31/include/linux/nfs_mount.h     2009-03-24 14:22:43.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/nfs_mount.h  2009-09-10 16:11:43.000000000 +0200
 @@ -63,7 +63,8 @@ struct nfs_mount_data {
  #define NFS_MOUNT_SECFLAVOUR  0x2000  /* 5 */
  #define NFS_MOUNT_NORDIRPLUS  0x4000  /* 5 */
@@ -8025,9 +8015,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/nfs_mount.h linux-2.6.30.5-vs
  
  /* The following are for internal use only */
  #define NFS_MOUNT_LOOKUP_CACHE_NONEG  0x10000
-diff -NurpP --minimal linux-2.6.30.5/include/linux/nsproxy.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/nsproxy.h
---- linux-2.6.30.5/include/linux/nsproxy.h     2009-06-11 17:13:17.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/nsproxy.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/nsproxy.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/nsproxy.h
+--- linux-2.6.31/include/linux/nsproxy.h       2009-06-11 17:13:17.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/nsproxy.h    2009-09-10 16:11:43.000000000 +0200
 @@ -3,6 +3,7 @@
  
  #include <linux/spinlock.h>
@@ -8076,9 +8066,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/nsproxy.h linux-2.6.30.5-vs2.
  }
  
  #ifdef CONFIG_CGROUP_NS
-diff -NurpP --minimal linux-2.6.30.5/include/linux/pid.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/pid.h
---- linux-2.6.30.5/include/linux/pid.h 2009-03-24 14:22:43.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/pid.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/pid.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/pid.h
+--- linux-2.6.31/include/linux/pid.h   2009-03-24 14:22:43.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/pid.h        2009-09-10 16:11:43.000000000 +0200
 @@ -8,7 +8,8 @@ enum pid_type
        PIDTYPE_PID,
        PIDTYPE_PGID,
@@ -8097,9 +8087,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/pid.h linux-2.6.30.5-vs2.3.0.
  pid_t pid_vnr(struct pid *pid);
  
  #define do_each_pid_task(pid, type, task)                             \
-diff -NurpP --minimal linux-2.6.30.5/include/linux/proc_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/proc_fs.h
---- linux-2.6.30.5/include/linux/proc_fs.h     2009-06-11 17:13:17.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/proc_fs.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/proc_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/proc_fs.h
+--- linux-2.6.31/include/linux/proc_fs.h       2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/proc_fs.h    2009-09-10 16:11:43.000000000 +0200
 @@ -56,6 +56,7 @@ struct proc_dir_entry {
        nlink_t nlink;
        uid_t uid;
@@ -8108,7 +8098,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/proc_fs.h linux-2.6.30.5-vs2.
        loff_t size;
        const struct inode_operations *proc_iops;
        /*
-@@ -264,12 +265,18 @@ static inline void kclist_add(struct kco
+@@ -240,12 +241,18 @@ static inline void kclist_add(struct kco
  extern void kclist_add(struct kcore_list *, void *, size_t);
  #endif
  
@@ -8127,7 +8117,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/proc_fs.h linux-2.6.30.5-vs2.
  };
  
  struct ctl_table_header;
-@@ -277,6 +284,7 @@ struct ctl_table;
+@@ -253,6 +260,7 @@ struct ctl_table;
  
  struct proc_inode {
        struct pid *pid;
@@ -8135,10 +8125,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/proc_fs.h linux-2.6.30.5-vs2.
        int fd;
        union proc_op op;
        struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-2.6.30.5/include/linux/reiserfs_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/reiserfs_fs.h
---- linux-2.6.30.5/include/linux/reiserfs_fs.h 2009-06-11 17:13:17.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/reiserfs_fs.h      2009-07-04 01:11:39.000000000 +0200
-@@ -868,6 +868,11 @@ struct stat_data_v1 {
+diff -NurpP --minimal linux-2.6.31/include/linux/reiserfs_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/reiserfs_fs.h
+--- linux-2.6.31/include/linux/reiserfs_fs.h   2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/reiserfs_fs.h        2009-09-10 16:11:43.000000000 +0200
+@@ -899,6 +899,11 @@ struct stat_data_v1 {
  #define REISERFS_COMPR_FL     FS_COMPR_FL
  #define REISERFS_NOTAIL_FL    FS_NOTAIL_FL
  
@@ -8150,7 +8140,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/reiserfs_fs.h linux-2.6.30.5-
  /* persistent flags that file inherits from the parent directory */
  #define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL |       \
                                REISERFS_SYNC_FL |      \
-@@ -877,6 +882,9 @@ struct stat_data_v1 {
+@@ -908,6 +913,9 @@ struct stat_data_v1 {
                                REISERFS_COMPR_FL |     \
                                REISERFS_NOTAIL_FL )
  
@@ -8160,7 +8150,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/reiserfs_fs.h linux-2.6.30.5-
  /* Stat Data on disk (reiserfs version of UFS disk inode minus the
     address blocks) */
  struct stat_data {
-@@ -1958,6 +1966,7 @@ static inline void reiserfs_update_sd(st
+@@ -1989,6 +1997,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);
@@ -8168,20 +8158,20 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/reiserfs_fs.h linux-2.6.30.5-
  
  /* namei.c */
  void set_de_name_and_namelen(struct reiserfs_dir_entry *de);
-diff -NurpP --minimal linux-2.6.30.5/include/linux/reiserfs_fs_sb.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/reiserfs_fs_sb.h
---- linux-2.6.30.5/include/linux/reiserfs_fs_sb.h      2009-06-11 17:13:17.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/reiserfs_fs_sb.h   2009-07-04 01:11:39.000000000 +0200
-@@ -455,6 +455,7 @@ enum reiserfs_mount_options {
-       REISERFS_POSIXACL,
+diff -NurpP --minimal linux-2.6.31/include/linux/reiserfs_fs_sb.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/reiserfs_fs_sb.h
+--- linux-2.6.31/include/linux/reiserfs_fs_sb.h        2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/reiserfs_fs_sb.h     2009-09-10 16:11:43.000000000 +0200
+@@ -456,6 +456,7 @@ enum reiserfs_mount_options {
+       REISERFS_EXPOSE_PRIVROOT,
        REISERFS_BARRIER_NONE,
        REISERFS_BARRIER_FLUSH,
 +      REISERFS_TAGGED,
  
        /* Actions on error */
        REISERFS_ERROR_PANIC,
-diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sched.h
---- linux-2.6.30.5/include/linux/sched.h       2009-08-17 16:37:40.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sched.h    2009-08-06 02:11:37.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/sched.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sched.h
+--- linux-2.6.31/include/linux/sched.h 2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sched.h      2009-09-10 16:11:43.000000000 +0200
 @@ -71,7 +71,6 @@ struct sched_param {
  #include <linux/path.h>
  #include <linux/compiler.h>
@@ -8190,7 +8180,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  #include <linux/percpu.h>
  #include <linux/topology.h>
  #include <linux/proportions.h>
-@@ -88,6 +87,7 @@ struct sched_param {
+@@ -89,6 +88,7 @@ struct sched_param {
  #include <linux/kobject.h>
  #include <linux/latencytop.h>
  #include <linux/cred.h>
@@ -8198,7 +8188,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  
  #include <asm/processor.h>
  
-@@ -179,12 +179,13 @@ extern unsigned long long time_sync_thre
+@@ -182,12 +182,13 @@ extern unsigned long long time_sync_thre
  #define TASK_UNINTERRUPTIBLE  2
  #define __TASK_STOPPED                4
  #define __TASK_TRACED         8
@@ -8216,7 +8206,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  
  /* Convenience macros for the sake of set_task_state */
  #define TASK_KILLABLE         (TASK_WAKEKILL | TASK_UNINTERRUPTIBLE)
-@@ -367,25 +368,28 @@ extern void arch_unmap_area_topdown(stru
+@@ -383,25 +384,28 @@ extern void arch_unmap_area_topdown(stru
   * The mm counters are not protected by its page_table_lock,
   * so must be incremented atomically.
   */
@@ -8254,7 +8244,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  #define get_mm_rss(mm)                                        \
        (get_mm_counter(mm, file_rss) + get_mm_counter(mm, anon_rss))
  #define update_hiwater_rss(mm)        do {                    \
-@@ -1134,7 +1138,9 @@ struct task_struct {
+@@ -1183,7 +1187,9 @@ struct task_struct {
        const struct sched_class *sched_class;
        struct sched_entity se;
        struct sched_rt_entity rt;
@@ -8265,7 +8255,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  #ifdef CONFIG_PREEMPT_NOTIFIERS
        /* list of struct preempt_notifier: */
        struct hlist_head preempt_notifiers;
-@@ -1291,6 +1297,14 @@ struct task_struct {
+@@ -1335,6 +1341,14 @@ struct task_struct {
  #endif
        seccomp_t seccomp;
  
@@ -8280,7 +8270,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  /* Thread group tracking */
        u32 parent_exec_id;
        u32 self_exec_id;
-@@ -1508,6 +1522,11 @@ struct pid_namespace;
+@@ -1559,6 +1573,11 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
                        struct pid_namespace *ns);
  
@@ -8292,7 +8282,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  static inline pid_t task_pid_nr(struct task_struct *tsk)
  {
        return tsk->pid;
-@@ -1521,7 +1540,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1572,7 +1591,8 @@ static inline pid_t task_pid_nr_ns(struc
  
  static inline pid_t task_pid_vnr(struct task_struct *tsk)
  {
@@ -8302,7 +8292,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  }
  
  
-@@ -1534,7 +1554,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1585,7 +1605,7 @@ pid_t task_tgid_nr_ns(struct task_struct
  
  static inline pid_t task_tgid_vnr(struct task_struct *tsk)
  {
@@ -8311,9 +8301,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sched.h linux-2.6.30.5-vs2.3.
  }
  
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/shmem_fs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/shmem_fs.h
---- linux-2.6.30.5/include/linux/shmem_fs.h    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/shmem_fs.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/shmem_fs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/shmem_fs.h
+--- linux-2.6.31/include/linux/shmem_fs.h      2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/shmem_fs.h   2009-09-10 16:11:43.000000000 +0200
 @@ -8,6 +8,9 @@
  
  #define SHMEM_NR_DIRECT 16
@@ -8324,9 +8314,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/shmem_fs.h linux-2.6.30.5-vs2
  struct shmem_inode_info {
        spinlock_t              lock;
        unsigned long           flags;
-diff -NurpP --minimal linux-2.6.30.5/include/linux/stat.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/stat.h
---- linux-2.6.30.5/include/linux/stat.h        2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/stat.h     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/stat.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/stat.h
+--- linux-2.6.31/include/linux/stat.h  2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/stat.h       2009-09-10 16:11:43.000000000 +0200
 @@ -66,6 +66,7 @@ struct kstat {
        unsigned int    nlink;
        uid_t           uid;
@@ -8335,9 +8325,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/stat.h linux-2.6.30.5-vs2.3.0
        dev_t           rdev;
        loff_t          size;
        struct timespec  atime;
-diff -NurpP --minimal linux-2.6.30.5/include/linux/sunrpc/auth.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sunrpc/auth.h
---- linux-2.6.30.5/include/linux/sunrpc/auth.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sunrpc/auth.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/sunrpc/auth.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sunrpc/auth.h
+--- linux-2.6.31/include/linux/sunrpc/auth.h   2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sunrpc/auth.h        2009-09-10 16:11:43.000000000 +0200
 @@ -25,6 +25,7 @@
  struct auth_cred {
        uid_t   uid;
@@ -8346,9 +8336,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sunrpc/auth.h linux-2.6.30.5-
        struct group_info *group_info;
        unsigned char machine_cred : 1;
  };
-diff -NurpP --minimal linux-2.6.30.5/include/linux/sunrpc/clnt.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sunrpc/clnt.h
---- linux-2.6.30.5/include/linux/sunrpc/clnt.h 2009-03-24 14:22:43.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sunrpc/clnt.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/sunrpc/clnt.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sunrpc/clnt.h
+--- linux-2.6.31/include/linux/sunrpc/clnt.h   2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sunrpc/clnt.h        2009-09-10 16:11:43.000000000 +0200
 @@ -43,7 +43,8 @@ struct rpc_clnt {
        unsigned int            cl_softrtry : 1,/* soft timeouts */
                                cl_discrtry : 1,/* disconnect before retry */
@@ -8359,10 +8349,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sunrpc/clnt.h linux-2.6.30.5-
  
        struct rpc_rtt *        cl_rtt;         /* RTO estimator data */
        const struct rpc_timeout *cl_timeout;   /* Timeout strategy */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/syscalls.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/syscalls.h
---- linux-2.6.30.5/include/linux/syscalls.h    2009-06-11 17:13:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/syscalls.h 2009-07-04 01:11:39.000000000 +0200
-@@ -425,6 +425,8 @@ asmlinkage long sys_symlink(const char _
+diff -NurpP --minimal linux-2.6.31/include/linux/syscalls.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/syscalls.h
+--- linux-2.6.31/include/linux/syscalls.h      2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/syscalls.h   2009-09-10 16:11:43.000000000 +0200
+@@ -428,6 +428,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);
@@ -8371,9 +8361,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/syscalls.h linux-2.6.30.5-vs2
  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-2.6.30.5/include/linux/sysctl.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sysctl.h
---- linux-2.6.30.5/include/linux/sysctl.h      2009-06-11 17:13:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sysctl.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/sysctl.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sysctl.h
+--- linux-2.6.31/include/linux/sysctl.h        2009-06-11 17:13:18.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sysctl.h     2009-09-10 16:11:43.000000000 +0200
 @@ -70,6 +70,7 @@ enum
        CTL_ABI=9,              /* Binary emulation */
        CTL_CPU=10,             /* CPU stuff (speed scaling, etc) */
@@ -8390,9 +8380,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sysctl.h linux-2.6.30.5-vs2.3
  
        KERN_SPARC_REBOOT=21,   /* reboot command on Sparc */
        KERN_CTLALTDEL=22,      /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/sysfs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sysfs.h
---- linux-2.6.30.5/include/linux/sysfs.h       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/sysfs.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/sysfs.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sysfs.h
+--- linux-2.6.31/include/linux/sysfs.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/sysfs.h      2009-09-10 16:11:43.000000000 +0200
 @@ -17,6 +17,8 @@
  #include <linux/list.h>
  #include <asm/atomic.h>
@@ -8402,10 +8392,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/sysfs.h linux-2.6.30.5-vs2.3.
  struct kobject;
  struct module;
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/time.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/time.h
---- linux-2.6.30.5/include/linux/time.h        2009-06-11 17:13:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/time.h     2009-07-04 01:11:39.000000000 +0200
-@@ -190,6 +190,9 @@ static __always_inline void timespec_add
+diff -NurpP --minimal linux-2.6.31/include/linux/time.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/time.h
+--- linux-2.6.31/include/linux/time.h  2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/time.h       2009-09-10 16:11:43.000000000 +0200
+@@ -205,6 +205,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;
  }
@@ -8415,9 +8405,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/time.h linux-2.6.30.5-vs2.3.0
  #endif /* __KERNEL__ */
  
  #define NFDBITS                       __NFDBITS
-diff -NurpP --minimal linux-2.6.30.5/include/linux/types.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/types.h
---- linux-2.6.30.5/include/linux/types.h       2009-06-11 17:13:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/types.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/types.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/types.h
+--- linux-2.6.31/include/linux/types.h 2009-09-10 15:26:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/types.h      2009-09-10 16:11:43.000000000 +0200
 @@ -37,6 +37,9 @@ typedef __kernel_uid32_t     uid_t;
  typedef __kernel_gid32_t      gid_t;
  typedef __kernel_uid16_t        uid16_t;
@@ -8428,9 +8418,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/types.h linux-2.6.30.5-vs2.3.
  
  typedef unsigned long         uintptr_t;
  
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vroot.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vroot.h
---- linux-2.6.30.5/include/linux/vroot.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vroot.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vroot.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vroot.h
+--- linux-2.6.31/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vroot.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,51 @@
 +
 +/*
@@ -8483,9 +8473,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vroot.h linux-2.6.30.5-vs2.3.
 +#define VROOT_CLR_DEV         0x5601
 +
 +#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_base.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_base.h
---- linux-2.6.30.5/include/linux/vs_base.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_base.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_base.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_base.h
+--- linux-2.6.31/include/linux/vs_base.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_base.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,10 @@
 +#ifndef _VS_BASE_H
 +#define _VS_BASE_H
@@ -8497,9 +8487,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_base.h linux-2.6.30.5-vs2.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_context.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_context.h
---- linux-2.6.30.5/include/linux/vs_context.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_context.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_context.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_context.h
+--- linux-2.6.31/include/linux/vs_context.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_context.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,227 @@
 +#ifndef _VS_CONTEXT_H
 +#define _VS_CONTEXT_H
@@ -8728,9 +8718,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_context.h linux-2.6.30.5-v
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_cowbl.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_cowbl.h
---- linux-2.6.30.5/include/linux/vs_cowbl.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_cowbl.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_cowbl.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_cowbl.h
+--- linux-2.6.31/include/linux/vs_cowbl.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_cowbl.h   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,47 @@
 +#ifndef _VS_COWBL_H
 +#define _VS_COWBL_H
@@ -8779,9 +8769,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_cowbl.h linux-2.6.30.5-vs2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_cvirt.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_cvirt.h
---- linux-2.6.30.5/include/linux/vs_cvirt.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_cvirt.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_cvirt.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_cvirt.h
+--- linux-2.6.31/include/linux/vs_cvirt.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_cvirt.h   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,50 @@
 +#ifndef _VS_CVIRT_H
 +#define _VS_CVIRT_H
@@ -8833,9 +8823,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_cvirt.h linux-2.6.30.5-vs2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_device.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_device.h
---- linux-2.6.30.5/include/linux/vs_device.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_device.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_device.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_device.h
+--- linux-2.6.31/include/linux/vs_device.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_device.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,45 @@
 +#ifndef _VS_DEVICE_H
 +#define _VS_DEVICE_H
@@ -8882,9 +8872,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_device.h linux-2.6.30.5-vs
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_dlimit.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_dlimit.h
---- linux-2.6.30.5/include/linux/vs_dlimit.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_dlimit.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_dlimit.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_dlimit.h
+--- linux-2.6.31/include/linux/vs_dlimit.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_dlimit.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,211 @@
 +#ifndef _VS_DLIMIT_H
 +#define _VS_DLIMIT_H
@@ -9097,9 +9087,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_dlimit.h linux-2.6.30.5-vs
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/base.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/base.h
---- linux-2.6.30.5/include/linux/vserver/base.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/base.h     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/base.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/base.h
+--- linux-2.6.31/include/linux/vserver/base.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/base.h       2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,157 @@
 +#ifndef _VX_BASE_H
 +#define _VX_BASE_H
@@ -9258,9 +9248,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/base.h linux-2.6.30.5
 +#define nx_info_state(n, m)   (__nx_state(n) & (m))
 +
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_cmd.h
---- linux-2.6.30.5/include/linux/vserver/cacct_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cacct_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_cmd.h
+--- linux-2.6.31/include/linux/vserver/cacct_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,23 @@
 +#ifndef _VX_CACCT_CMD_H
 +#define _VX_CACCT_CMD_H
@@ -9285,9 +9275,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_def.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_def.h
---- linux-2.6.30.5/include/linux/vserver/cacct_def.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_def.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cacct_def.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_def.h
+--- linux-2.6.31/include/linux/vserver/cacct_def.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_def.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,43 @@
 +#ifndef _VX_CACCT_DEF_H
 +#define _VX_CACCT_DEF_H
@@ -9332,9 +9322,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_def.h linux-2.6
 +#endif
 +
 +#endif        /* _VX_CACCT_DEF_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct.h
---- linux-2.6.30.5/include/linux/vserver/cacct.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cacct.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct.h
+--- linux-2.6.31/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,15 @@
 +#ifndef _VX_CACCT_H
 +#define _VX_CACCT_H
@@ -9351,9 +9341,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct.h linux-2.6.30.
 +};
 +
 +#endif        /* _VX_CACCT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_int.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_int.h
---- linux-2.6.30.5/include/linux/vserver/cacct_int.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cacct_int.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cacct_int.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_int.h
+--- linux-2.6.31/include/linux/vserver/cacct_int.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cacct_int.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,21 @@
 +#ifndef _VX_CACCT_INT_H
 +#define _VX_CACCT_INT_H
@@ -9376,9 +9366,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cacct_int.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_INT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/check.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/check.h
---- linux-2.6.30.5/include/linux/vserver/check.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/check.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/check.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/check.h
+--- linux-2.6.31/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/check.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,89 @@
 +#ifndef _VS_CHECK_H
 +#define _VS_CHECK_H
@@ -9469,9 +9459,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/check.h linux-2.6.30.
 +#define nx_weak_check(c, m)   ((m) ? nx_check(c, m) : 1)
 +
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/context_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/context_cmd.h
---- linux-2.6.30.5/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/context_cmd.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/context_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/context_cmd.h
+--- linux-2.6.31/include/linux/vserver/context_cmd.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/context_cmd.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,128 @@
 +#ifndef _VX_CONTEXT_CMD_H
 +#define _VX_CONTEXT_CMD_H
@@ -9601,10 +9591,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/context_cmd.h linux-2
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/context.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/context.h
---- linux-2.6.30.5/include/linux/vserver/context.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/context.h  2009-07-04 01:11:39.000000000 +0200
-@@ -0,0 +1,179 @@
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/context.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/context.h
+--- linux-2.6.31/include/linux/vserver/context.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/context.h    2009-09-10 16:11:43.000000000 +0200
+@@ -0,0 +1,180 @@
 +#ifndef _VX_CONTEXT_H
 +#define _VX_CONTEXT_H
 +
@@ -9680,6 +9670,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/context.h linux-2.6.3
 +#define VXC_ADMIN_CLOOP               0x00400000
 +
 +#define VXC_KTHREAD           0x01000000
++#define VXC_NAMESPACE         0x02000000
 +
 +
 +#ifdef        __KERNEL__
@@ -9784,9 +9775,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/context.h linux-2.6.3
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt_cmd.h
---- linux-2.6.30.5/include/linux/vserver/cvirt_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cvirt_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt_cmd.h
+--- linux-2.6.31/include/linux/vserver/cvirt_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CVIRT_CMD_H
 +#define _VX_CVIRT_CMD_H
@@ -9841,9 +9832,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt_def.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt_def.h
---- linux-2.6.30.5/include/linux/vserver/cvirt_def.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt_def.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cvirt_def.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt_def.h
+--- linux-2.6.31/include/linux/vserver/cvirt_def.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt_def.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,80 @@
 +#ifndef _VX_CVIRT_DEF_H
 +#define _VX_CVIRT_DEF_H
@@ -9925,9 +9916,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt_def.h linux-2.6
 +#endif
 +
 +#endif        /* _VX_CVIRT_DEF_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt.h
---- linux-2.6.30.5/include/linux/vserver/cvirt.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/cvirt.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/cvirt.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt.h
+--- linux-2.6.31/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/cvirt.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,20 @@
 +#ifndef _VX_CVIRT_H
 +#define _VX_CVIRT_H
@@ -9949,9 +9940,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/cvirt.h linux-2.6.30.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/debug_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/debug_cmd.h
---- linux-2.6.30.5/include/linux/vserver/debug_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/debug_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/debug_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/debug_cmd.h
+--- linux-2.6.31/include/linux/vserver/debug_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/debug_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,58 @@
 +#ifndef _VX_DEBUG_CMD_H
 +#define _VX_DEBUG_CMD_H
@@ -10011,9 +10002,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/debug_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEBUG_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/debug.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/debug.h
---- linux-2.6.30.5/include/linux/vserver/debug.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/debug.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/debug.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/debug.h
+--- linux-2.6.31/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/debug.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,127 @@
 +#ifndef _VX_DEBUG_H
 +#define _VX_DEBUG_H
@@ -10142,9 +10133,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/debug.h linux-2.6.30.
 +
 +
 +#endif /* _VX_DEBUG_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device_cmd.h
---- linux-2.6.30.5/include/linux/vserver/device_cmd.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device_cmd.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/device_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device_cmd.h
+--- linux-2.6.31/include/linux/vserver/device_cmd.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device_cmd.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,44 @@
 +#ifndef _VX_DEVICE_CMD_H
 +#define _VX_DEVICE_CMD_H
@@ -10190,9 +10181,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device_cmd.h linux-2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEVICE_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device_def.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device_def.h
---- linux-2.6.30.5/include/linux/vserver/device_def.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device_def.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/device_def.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device_def.h
+--- linux-2.6.31/include/linux/vserver/device_def.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device_def.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,17 @@
 +#ifndef _VX_DEVICE_DEF_H
 +#define _VX_DEVICE_DEF_H
@@ -10211,9 +10202,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device_def.h linux-2.
 +};
 +
 +#endif        /* _VX_DEVICE_DEF_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device.h
---- linux-2.6.30.5/include/linux/vserver/device.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/device.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/device.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device.h
+--- linux-2.6.31/include/linux/vserver/device.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/device.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,15 @@
 +#ifndef _VX_DEVICE_H
 +#define _VX_DEVICE_H
@@ -10230,9 +10221,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/device.h linux-2.6.30
 +#else /* _VX_DEVICE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DEVICE_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/dlimit_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/dlimit_cmd.h
---- linux-2.6.30.5/include/linux/vserver/dlimit_cmd.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/dlimit_cmd.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/dlimit_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/dlimit_cmd.h
+--- linux-2.6.31/include/linux/vserver/dlimit_cmd.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/dlimit_cmd.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,74 @@
 +#ifndef _VX_DLIMIT_CMD_H
 +#define _VX_DLIMIT_CMD_H
@@ -10308,9 +10299,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/dlimit_cmd.h linux-2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/dlimit.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/dlimit.h
---- linux-2.6.30.5/include/linux/vserver/dlimit.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/dlimit.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/dlimit.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/dlimit.h
+--- linux-2.6.31/include/linux/vserver/dlimit.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/dlimit.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,54 @@
 +#ifndef _VX_DLIMIT_H
 +#define _VX_DLIMIT_H
@@ -10366,9 +10357,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/dlimit.h linux-2.6.30
 +#else /* _VX_DLIMIT_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DLIMIT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/global.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/global.h
---- linux-2.6.30.5/include/linux/vserver/global.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/global.h   2009-07-04 04:51:55.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/global.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/global.h
+--- linux-2.6.31/include/linux/vserver/global.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/global.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,19 @@
 +#ifndef _VX_GLOBAL_H
 +#define _VX_GLOBAL_H
@@ -10389,9 +10380,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/global.h linux-2.6.30
 +
 +
 +#endif /* _VX_GLOBAL_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/history.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/history.h
---- linux-2.6.30.5/include/linux/vserver/history.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/history.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/history.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/history.h
+--- linux-2.6.31/include/linux/vserver/history.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/history.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,197 @@
 +#ifndef _VX_HISTORY_H
 +#define _VX_HISTORY_H
@@ -10590,9 +10581,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/history.h linux-2.6.3
 +#endif /* CONFIG_VSERVER_HISTORY */
 +
 +#endif /* _VX_HISTORY_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/inode_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/inode_cmd.h
---- linux-2.6.30.5/include/linux/vserver/inode_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/inode_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/inode_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/inode_cmd.h
+--- linux-2.6.31/include/linux/vserver/inode_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/inode_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,59 @@
 +#ifndef _VX_INODE_CMD_H
 +#define _VX_INODE_CMD_H
@@ -10653,9 +10644,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/inode_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_INODE_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/inode.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/inode.h
---- linux-2.6.30.5/include/linux/vserver/inode.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/inode.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/inode.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/inode.h
+--- linux-2.6.31/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/inode.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,38 @@
 +#ifndef _VX_INODE_H
 +#define _VX_INODE_H
@@ -10695,9 +10686,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/inode.h linux-2.6.30.
 +#else /* _VX_INODE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_INODE_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/Kbuild linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/Kbuild
---- linux-2.6.30.5/include/linux/vserver/Kbuild        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/Kbuild     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/Kbuild linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/Kbuild
+--- linux-2.6.31/include/linux/vserver/Kbuild  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/Kbuild       2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,8 @@
 +
 +unifdef-y += context_cmd.h network_cmd.h space_cmd.h \
@@ -10707,9 +10698,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/Kbuild linux-2.6.30.5
 +
 +unifdef-y += switch.h network.h monitor.h inode.h device.h
 +
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_cmd.h
---- linux-2.6.30.5/include/linux/vserver/limit_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_cmd.h        2009-08-07 22:51:49.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/limit_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_cmd.h
+--- linux-2.6.31/include/linux/vserver/limit_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,71 @@
 +#ifndef _VX_LIMIT_CMD_H
 +#define _VX_LIMIT_CMD_H
@@ -10782,9 +10773,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_def.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_def.h
---- linux-2.6.30.5/include/linux/vserver/limit_def.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_def.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/limit_def.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_def.h
+--- linux-2.6.31/include/linux/vserver/limit_def.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_def.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,47 @@
 +#ifndef _VX_LIMIT_DEF_H
 +#define _VX_LIMIT_DEF_H
@@ -10833,9 +10824,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_def.h linux-2.6
 +#endif
 +
 +#endif        /* _VX_LIMIT_DEF_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit.h
---- linux-2.6.30.5/include/linux/vserver/limit.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/limit.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit.h
+--- linux-2.6.31/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,70 @@
 +#ifndef _VX_LIMIT_H
 +#define _VX_LIMIT_H
@@ -10907,9 +10898,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit.h linux-2.6.30.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_int.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_int.h
---- linux-2.6.30.5/include/linux/vserver/limit_int.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/limit_int.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/limit_int.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_int.h
+--- linux-2.6.31/include/linux/vserver/limit_int.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/limit_int.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,198 @@
 +#ifndef _VX_LIMIT_INT_H
 +#define _VX_LIMIT_INT_H
@@ -11109,9 +11100,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/limit_int.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_INT_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/monitor.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/monitor.h
---- linux-2.6.30.5/include/linux/vserver/monitor.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/monitor.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/monitor.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/monitor.h
+--- linux-2.6.31/include/linux/vserver/monitor.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/monitor.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,96 @@
 +#ifndef _VX_MONITOR_H
 +#define _VX_MONITOR_H
@@ -11209,9 +11200,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/monitor.h linux-2.6.3
 +
 +
 +#endif /* _VX_MONITOR_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/network_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/network_cmd.h
---- linux-2.6.30.5/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/network_cmd.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/network_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/network_cmd.h
+--- linux-2.6.31/include/linux/vserver/network_cmd.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/network_cmd.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,150 @@
 +#ifndef _VX_NETWORK_CMD_H
 +#define _VX_NETWORK_CMD_H
@@ -11363,9 +11354,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/network_cmd.h linux-2
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/network.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/network.h
---- linux-2.6.30.5/include/linux/vserver/network.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/network.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/network.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/network.h
+--- linux-2.6.31/include/linux/vserver/network.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/network.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,146 @@
 +#ifndef _VX_NETWORK_H
 +#define _VX_NETWORK_H
@@ -11513,9 +11504,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/network.h linux-2.6.3
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_NETWORK_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/percpu.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/percpu.h
---- linux-2.6.30.5/include/linux/vserver/percpu.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/percpu.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/percpu.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/percpu.h
+--- linux-2.6.31/include/linux/vserver/percpu.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/percpu.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,14 @@
 +#ifndef _VX_PERCPU_H
 +#define _VX_PERCPU_H
@@ -11531,9 +11522,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/percpu.h linux-2.6.30
 +#define       PERCPU_PERCTX   (sizeof(struct _vx_percpu))
 +
 +#endif        /* _VX_PERCPU_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/pid.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/pid.h
---- linux-2.6.30.5/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/pid.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/pid.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/pid.h
+--- linux-2.6.31/include/linux/vserver/pid.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/pid.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,51 @@
 +#ifndef _VSERVER_PID_H
 +#define _VSERVER_PID_H
@@ -11586,9 +11577,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/pid.h linux-2.6.30.5-
 +}
 +
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched_cmd.h
---- linux-2.6.30.5/include/linux/vserver/sched_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/sched_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched_cmd.h
+--- linux-2.6.31/include/linux/vserver/sched_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,108 @@
 +#ifndef _VX_SCHED_CMD_H
 +#define _VX_SCHED_CMD_H
@@ -11698,9 +11689,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SCHED_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched_def.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched_def.h
---- linux-2.6.30.5/include/linux/vserver/sched_def.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched_def.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/sched_def.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched_def.h
+--- linux-2.6.31/include/linux/vserver/sched_def.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched_def.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,68 @@
 +#ifndef _VX_SCHED_DEF_H
 +#define _VX_SCHED_DEF_H
@@ -11770,9 +11761,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched_def.h linux-2.6
 +#endif
 +
 +#endif        /* _VX_SCHED_DEF_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched.h
---- linux-2.6.30.5/include/linux/vserver/sched.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/sched.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/sched.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched.h
+--- linux-2.6.31/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/sched.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,26 @@
 +#ifndef _VX_SCHED_H
 +#define _VX_SCHED_H
@@ -11800,9 +11791,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/sched.h linux-2.6.30.
 +#else /* _VX_SCHED_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SCHED_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/signal_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/signal_cmd.h
---- linux-2.6.30.5/include/linux/vserver/signal_cmd.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/signal_cmd.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/signal_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/signal_cmd.h
+--- linux-2.6.31/include/linux/vserver/signal_cmd.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/signal_cmd.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,43 @@
 +#ifndef _VX_SIGNAL_CMD_H
 +#define _VX_SIGNAL_CMD_H
@@ -11847,9 +11838,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/signal_cmd.h linux-2.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/signal.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/signal.h
---- linux-2.6.30.5/include/linux/vserver/signal.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/signal.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/signal.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/signal.h
+--- linux-2.6.31/include/linux/vserver/signal.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/signal.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,14 @@
 +#ifndef _VX_SIGNAL_H
 +#define _VX_SIGNAL_H
@@ -11865,9 +11856,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/signal.h linux-2.6.30
 +#else /* _VX_SIGNAL_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SIGNAL_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/space_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/space_cmd.h
---- linux-2.6.30.5/include/linux/vserver/space_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/space_cmd.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/space_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/space_cmd.h
+--- linux-2.6.31/include/linux/vserver/space_cmd.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/space_cmd.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,38 @@
 +#ifndef _VX_SPACE_CMD_H
 +#define _VX_SPACE_CMD_H
@@ -11907,9 +11898,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/space_cmd.h linux-2.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SPACE_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/space.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/space.h
---- linux-2.6.30.5/include/linux/vserver/space.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/space.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/space.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/space.h
+--- linux-2.6.31/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/space.h      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,12 @@
 +#ifndef _VX_SPACE_H
 +#define _VX_SPACE_H
@@ -11923,9 +11914,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/space.h linux-2.6.30.
 +#else /* _VX_SPACE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SPACE_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/switch.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/switch.h
---- linux-2.6.30.5/include/linux/vserver/switch.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/switch.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/switch.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/switch.h
+--- linux-2.6.31/include/linux/vserver/switch.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/switch.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,98 @@
 +#ifndef _VX_SWITCH_H
 +#define _VX_SWITCH_H
@@ -12025,9 +12016,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/switch.h linux-2.6.30
 +
 +#endif        /* _VX_SWITCH_H */
 +
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/tag_cmd.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/tag_cmd.h
---- linux-2.6.30.5/include/linux/vserver/tag_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/tag_cmd.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/tag_cmd.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/tag_cmd.h
+--- linux-2.6.31/include/linux/vserver/tag_cmd.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/tag_cmd.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,22 @@
 +#ifndef _VX_TAG_CMD_H
 +#define _VX_TAG_CMD_H
@@ -12051,9 +12042,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/tag_cmd.h linux-2.6.3
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_TAG_CMD_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/tag.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/tag.h
---- linux-2.6.30.5/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vserver/tag.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vserver/tag.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/tag.h
+--- linux-2.6.31/include/linux/vserver/tag.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vserver/tag.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,143 @@
 +#ifndef _DX_TAG_H
 +#define _DX_TAG_H
@@ -12198,9 +12189,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vserver/tag.h linux-2.6.30.5-
 +#endif
 +
 +#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_inet6.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_inet6.h
---- linux-2.6.30.5/include/linux/vs_inet6.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_inet6.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_inet6.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_inet6.h
+--- linux-2.6.31/include/linux/vs_inet6.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_inet6.h   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,246 @@
 +#ifndef _VS_INET6_H
 +#define _VS_INET6_H
@@ -12448,9 +12439,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_inet6.h linux-2.6.30.5-vs2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_inet.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_inet.h
---- linux-2.6.30.5/include/linux/vs_inet.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_inet.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_inet.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_inet.h
+--- linux-2.6.31/include/linux/vs_inet.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_inet.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,342 @@
 +#ifndef _VS_INET_H
 +#define _VS_INET_H
@@ -12794,9 +12785,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_inet.h linux-2.6.30.5-vs2.
 +#else
 +// #warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_limit.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_limit.h
---- linux-2.6.30.5/include/linux/vs_limit.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_limit.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_limit.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_limit.h
+--- linux-2.6.31/include/linux/vs_limit.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_limit.h   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,140 @@
 +#ifndef _VS_LIMIT_H
 +#define _VS_LIMIT_H
@@ -12938,9 +12929,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_limit.h linux-2.6.30.5-vs2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_memory.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_memory.h
---- linux-2.6.30.5/include/linux/vs_memory.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_memory.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_memory.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_memory.h
+--- linux-2.6.31/include/linux/vs_memory.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_memory.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,159 @@
 +#ifndef _VS_MEMORY_H
 +#define _VS_MEMORY_H
@@ -13101,9 +13092,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_memory.h linux-2.6.30.5-vs
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_network.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_network.h
---- linux-2.6.30.5/include/linux/vs_network.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_network.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_network.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_network.h
+--- linux-2.6.31/include/linux/vs_network.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_network.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,169 @@
 +#ifndef _NX_VS_NETWORK_H
 +#define _NX_VS_NETWORK_H
@@ -13274,9 +13265,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_network.h linux-2.6.30.5-v
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_pid.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_pid.h
---- linux-2.6.30.5/include/linux/vs_pid.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_pid.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_pid.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_pid.h
+--- linux-2.6.31/include/linux/vs_pid.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_pid.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,95 @@
 +#ifndef _VS_PID_H
 +#define _VS_PID_H
@@ -13373,9 +13364,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_pid.h linux-2.6.30.5-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_sched.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_sched.h
---- linux-2.6.30.5/include/linux/vs_sched.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_sched.h 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_sched.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_sched.h
+--- linux-2.6.31/include/linux/vs_sched.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_sched.h   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,110 @@
 +#ifndef _VS_SCHED_H
 +#define _VS_SCHED_H
@@ -13487,9 +13478,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_sched.h linux-2.6.30.5-vs2
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_socket.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_socket.h
---- linux-2.6.30.5/include/linux/vs_socket.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_socket.h        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_socket.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_socket.h
+--- linux-2.6.31/include/linux/vs_socket.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_socket.h  2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,67 @@
 +#ifndef _VS_SOCKET_H
 +#define _VS_SOCKET_H
@@ -13558,9 +13549,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_socket.h linux-2.6.30.5-vs
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_tag.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_tag.h
---- linux-2.6.30.5/include/linux/vs_tag.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_tag.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_tag.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_tag.h
+--- linux-2.6.31/include/linux/vs_tag.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_tag.h     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,47 @@
 +#ifndef _VS_TAG_H
 +#define _VS_TAG_H
@@ -13609,9 +13600,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_tag.h linux-2.6.30.5-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_time.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_time.h
---- linux-2.6.30.5/include/linux/vs_time.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/linux/vs_time.h  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/linux/vs_time.h linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_time.h
+--- linux-2.6.31/include/linux/vs_time.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/linux/vs_time.h    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,19 @@
 +#ifndef _VS_TIME_H
 +#define _VS_TIME_H
@@ -13632,9 +13623,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/linux/vs_time.h linux-2.6.30.5-vs2.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-2.6.30.5/include/net/addrconf.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/addrconf.h
---- linux-2.6.30.5/include/net/addrconf.h      2009-06-11 17:13:18.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/addrconf.h   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/net/addrconf.h linux-2.6.31-vs2.3.0.36.14-pre8/include/net/addrconf.h
+--- linux-2.6.31/include/net/addrconf.h        2009-06-11 17:13:18.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/net/addrconf.h     2009-09-10 16:11:43.000000000 +0200
 @@ -84,7 +84,8 @@ extern int                   ipv6_dev_get_saddr(struct n
                                               struct net_device *dev,
                                               const struct in6_addr *daddr,
@@ -13645,9 +13636,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/addrconf.h linux-2.6.30.5-vs2.3
  extern int                    ipv6_get_lladdr(struct net_device *dev,
                                                struct in6_addr *addr,
                                                unsigned char banned_flags);
-diff -NurpP --minimal linux-2.6.30.5/include/net/af_unix.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/af_unix.h
---- linux-2.6.30.5/include/net/af_unix.h       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/af_unix.h    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/net/af_unix.h linux-2.6.31-vs2.3.0.36.14-pre8/include/net/af_unix.h
+--- linux-2.6.31/include/net/af_unix.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/net/af_unix.h      2009-09-10 16:11:43.000000000 +0200
 @@ -4,6 +4,7 @@
  #include <linux/socket.h>
  #include <linux/un.h>
@@ -13656,28 +13647,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/af_unix.h linux-2.6.30.5-vs2.3.
  #include <net/sock.h>
  
  extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-2.6.30.5/include/net/inet_timewait_sock.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/inet_timewait_sock.h
---- linux-2.6.30.5/include/net/inet_timewait_sock.h    2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/inet_timewait_sock.h 2009-07-04 01:11:39.000000000 +0200
-@@ -15,15 +15,14 @@
- #ifndef _INET_TIMEWAIT_SOCK_
- #define _INET_TIMEWAIT_SOCK_
-+// #include <net/inet_sock.h>
-+#include <net/sock.h>
- #include <linux/list.h>
- #include <linux/module.h>
- #include <linux/timer.h>
- #include <linux/types.h>
- #include <linux/workqueue.h>
--
--#include <net/inet_sock.h>
--#include <net/sock.h>
- #include <net/tcp_states.h>
- #include <net/timewait_sock.h>
-@@ -116,6 +115,10 @@ struct inet_timewait_sock {
+diff -NurpP --minimal linux-2.6.31/include/net/inet_timewait_sock.h linux-2.6.31-vs2.3.0.36.14-pre8/include/net/inet_timewait_sock.h
+--- linux-2.6.31/include/net/inet_timewait_sock.h      2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/net/inet_timewait_sock.h   2009-09-10 16:11:43.000000000 +0200
+@@ -117,6 +117,10 @@ struct inet_timewait_sock {
  #define tw_hash                       __tw_common.skc_hash
  #define tw_prot                       __tw_common.skc_prot
  #define tw_net                        __tw_common.skc_net
@@ -13688,9 +13661,9 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/inet_timewait_sock.h linux-2.6.
        int                     tw_timeout;
        volatile unsigned char  tw_substate;
        /* 3 bits hole, try to pack */
-diff -NurpP --minimal linux-2.6.30.5/include/net/route.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/route.h
---- linux-2.6.30.5/include/net/route.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/route.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/include/net/route.h linux-2.6.31-vs2.3.0.36.14-pre8/include/net/route.h
+--- linux-2.6.31/include/net/route.h   2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/net/route.h        2009-09-10 16:11:43.000000000 +0200
 @@ -135,6 +135,9 @@ static inline void ip_rt_put(struct rtab
                dst_release(&rt->u.dst);
  }
@@ -13737,10 +13710,10 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/route.h linux-2.6.30.5-vs2.3.0.
                err = __ip_route_output_key(net, rp, &fl);
                if (err)
                        return err;
-diff -NurpP --minimal linux-2.6.30.5/include/net/sock.h linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/sock.h
---- linux-2.6.30.5/include/net/sock.h  2009-08-17 16:37:42.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/include/net/sock.h       2009-08-17 16:56:57.000000000 +0200
-@@ -138,6 +138,10 @@ struct sock_common {
+diff -NurpP --minimal linux-2.6.31/include/net/sock.h linux-2.6.31-vs2.3.0.36.14-pre8/include/net/sock.h
+--- linux-2.6.31/include/net/sock.h    2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/include/net/sock.h 2009-09-10 17:15:39.000000000 +0200
+@@ -139,6 +139,10 @@ struct sock_common {
  #ifdef CONFIG_NET_NS
        struct net              *skc_net;
  #endif
@@ -13751,7 +13724,7 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/sock.h linux-2.6.30.5-vs2.3.0.3
  };
  
  /**
-@@ -224,6 +228,10 @@ struct sock {
+@@ -225,6 +229,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
@@ -13759,21 +13732,21 @@ diff -NurpP --minimal linux-2.6.30.5/include/net/sock.h linux-2.6.30.5-vs2.3.0.3
 +#define sk_vx_info            __sk_common.skc_vx_info
 +#define sk_nid                        __sk_common.skc_nid
 +#define sk_nx_info            __sk_common.skc_nx_info
+       kmemcheck_bitfield_begin(flags);
        unsigned char           sk_shutdown : 2,
                                sk_no_check : 2,
-                               sk_userlocks : 4;
-diff -NurpP --minimal linux-2.6.30.5/init/main.c linux-2.6.30.5-vs2.3.0.36.14-pre7/init/main.c
---- linux-2.6.30.5/init/main.c 2009-06-11 17:13:25.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/init/main.c      2009-07-04 01:11:39.000000000 +0200
-@@ -65,6 +65,7 @@
- #include <linux/ftrace.h>
- #include <linux/async.h>
+diff -NurpP --minimal linux-2.6.31/init/main.c linux-2.6.31-vs2.3.0.36.14-pre8/init/main.c
+--- linux-2.6.31/init/main.c   2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/init/main.c        2009-09-10 16:11:43.000000000 +0200
+@@ -69,6 +69,7 @@
+ #include <linux/kmemcheck.h>
+ #include <linux/kmemtrace.h>
  #include <trace/boot.h>
 +#include <linux/vserver/percpu.h>
  
  #include <asm/io.h>
  #include <asm/bugs.h>
-@@ -383,12 +384,14 @@ EXPORT_SYMBOL(__per_cpu_offset);
+@@ -381,12 +382,14 @@ EXPORT_SYMBOL(__per_cpu_offset);
  
  static void __init setup_per_cpu_areas(void)
  {
@@ -13790,19 +13763,19 @@ diff -NurpP --minimal linux-2.6.30.5/init/main.c linux-2.6.30.5-vs2.3.0.36.14-pr
        ptr = alloc_bootmem_pages(size * nr_possible_cpus);
  
        for_each_possible_cpu(i) {
-diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/mqueue.c
---- linux-2.6.30.5/ipc/mqueue.c        2009-06-11 17:13:25.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/mqueue.c     2009-07-04 01:40:51.000000000 +0200
-@@ -32,6 +32,8 @@
- #include <linux/nsproxy.h>
+diff -NurpP --minimal linux-2.6.31/ipc/mqueue.c linux-2.6.31-vs2.3.0.36.14-pre8/ipc/mqueue.c
+--- linux-2.6.31/ipc/mqueue.c  2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/ipc/mqueue.c       2009-09-10 16:31:20.000000000 +0200
+@@ -33,6 +33,8 @@
  #include <linux/pid.h>
  #include <linux/ipc_namespace.h>
+ #include <linux/ima.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_limit.h>
  
  #include <net/sock.h>
  #include "util.h"
-@@ -65,6 +67,7 @@ struct mqueue_inode_info {
+@@ -66,6 +68,7 @@ struct mqueue_inode_info {
        struct sigevent notify;
        struct pid* notify_owner;
        struct user_struct *user;       /* user who created, for accounting */
@@ -13810,7 +13783,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
        struct sock *notify_sock;
        struct sk_buff *notify_cookie;
  
-@@ -124,6 +127,7 @@ static struct inode *mqueue_get_inode(st
+@@ -125,6 +128,7 @@ static struct inode *mqueue_get_inode(st
                if (S_ISREG(mode)) {
                        struct mqueue_inode_info *info;
                        struct task_struct *p = current;
@@ -13818,7 +13791,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
                        unsigned long mq_bytes, mq_msg_tblsz;
  
                        inode->i_fop = &mqueue_file_operations;
-@@ -138,6 +142,7 @@ static struct inode *mqueue_get_inode(st
+@@ -139,6 +143,7 @@ static struct inode *mqueue_get_inode(st
                        info->notify_owner = NULL;
                        info->qsize = 0;
                        info->user = NULL;      /* set when all is ok */
@@ -13826,7 +13799,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
                        memset(&info->attr, 0, sizeof(info->attr));
                        info->attr.mq_maxmsg = ipc_ns->mq_msg_max;
                        info->attr.mq_msgsize = ipc_ns->mq_msgsize_max;
-@@ -152,22 +157,26 @@ static struct inode *mqueue_get_inode(st
+@@ -153,22 +158,26 @@ static struct inode *mqueue_get_inode(st
                        spin_lock(&mq_lock);
                        if (u->mq_bytes + mq_bytes < u->mq_bytes ||
                            u->mq_bytes + mq_bytes >
@@ -13854,7 +13827,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
                } else if (S_ISDIR(mode)) {
                        inc_nlink(inode);
                        /* Some things misbehave if size == 0 on a directory */
-@@ -268,8 +277,11 @@ static void mqueue_delete_inode(struct i
+@@ -269,8 +278,11 @@ static void mqueue_delete_inode(struct i
                   (info->attr.mq_maxmsg * info->attr.mq_msgsize));
        user = info->user;
        if (user) {
@@ -13866,7 +13839,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
                /*
                 * get_ns_from_inode() ensures that the
                 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -279,6 +291,7 @@ static void mqueue_delete_inode(struct i
+@@ -280,6 +292,7 @@ static void mqueue_delete_inode(struct i
                if (ipc_ns)
                        ipc_ns->mq_queues_count--;
                spin_unlock(&mq_lock);
@@ -13874,9 +13847,9 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/mqueue.c linux-2.6.30.5-vs2.3.0.36.14-p
                free_uid(user);
        }
        if (ipc_ns)
-diff -NurpP --minimal linux-2.6.30.5/ipc/msg.c linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/msg.c
---- linux-2.6.30.5/ipc/msg.c   2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/msg.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/ipc/msg.c linux-2.6.31-vs2.3.0.36.14-pre8/ipc/msg.c
+--- linux-2.6.31/ipc/msg.c     2009-03-24 14:22:44.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/ipc/msg.c  2009-09-10 16:11:43.000000000 +0200
 @@ -38,6 +38,7 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -13893,9 +13866,9 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/msg.c linux-2.6.30.5-vs2.3.0.36.14-pre7
  
        msq->q_perm.security = NULL;
        retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-2.6.30.5/ipc/namespace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/namespace.c
---- linux-2.6.30.5/ipc/namespace.c     2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/namespace.c  2009-07-04 04:52:12.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/ipc/namespace.c linux-2.6.31-vs2.3.0.36.14-pre8/ipc/namespace.c
+--- linux-2.6.31/ipc/namespace.c       2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/ipc/namespace.c    2009-09-10 16:11:43.000000000 +0200
 @@ -11,6 +11,8 @@
  #include <linux/slab.h>
  #include <linux/fs.h>
@@ -13905,9 +13878,9 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/namespace.c linux-2.6.30.5-vs2.3.0.36.1
  
  #include "util.h"
  
-diff -NurpP --minimal linux-2.6.30.5/ipc/sem.c linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/sem.c
---- linux-2.6.30.5/ipc/sem.c   2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/sem.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/ipc/sem.c linux-2.6.31-vs2.3.0.36.14-pre8/ipc/sem.c
+--- linux-2.6.31/ipc/sem.c     2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/ipc/sem.c  2009-09-10 16:11:43.000000000 +0200
 @@ -83,6 +83,8 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -13945,9 +13918,9 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/sem.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        security_sem_free(sma);
        ipc_rcu_putref(sma);
  }
-diff -NurpP --minimal linux-2.6.30.5/ipc/shm.c linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/shm.c
---- linux-2.6.30.5/ipc/shm.c   2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/ipc/shm.c        2009-07-04 01:48:00.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/ipc/shm.c linux-2.6.31-vs2.3.0.36.14-pre8/ipc/shm.c
+--- linux-2.6.31/ipc/shm.c     2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/ipc/shm.c  2009-09-10 16:11:43.000000000 +0200
 @@ -40,6 +40,8 @@
  #include <linux/mount.h>
  #include <linux/ipc_namespace.h>
@@ -13995,7 +13968,7 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/shm.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        shp->shm_perm.mode = (shmflg & S_IRWXUGO);
        shp->mlock_user = NULL;
  
-@@ -408,6 +420,7 @@ static int newseg(struct ipc_namespace *
+@@ -407,6 +419,7 @@ static int newseg(struct ipc_namespace *
        ns->shm_tot += numpages;
        error = shp->shm_perm.id;
        shm_unlock(shp);
@@ -14003,9 +13976,9 @@ diff -NurpP --minimal linux-2.6.30.5/ipc/shm.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        return error;
  
  no_id:
-diff -NurpP --minimal linux-2.6.30.5/kernel/capability.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/capability.c
---- linux-2.6.30.5/kernel/capability.c 2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/capability.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/capability.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/capability.c
+--- linux-2.6.31/kernel/capability.c   2009-03-24 14:22:44.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/capability.c        2009-09-10 16:11:43.000000000 +0200
 @@ -14,6 +14,7 @@
  #include <linux/security.h>
  #include <linux/syscalls.h>
@@ -14041,10 +14014,10 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/capability.c linux-2.6.30.5-vs2.3.0.
        if (unlikely(!cap_valid(cap))) {
                printk(KERN_CRIT "capable() called with invalid cap=%u\n", cap);
                BUG();
-diff -NurpP --minimal linux-2.6.30.5/kernel/compat.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/compat.c
---- linux-2.6.30.5/kernel/compat.c     2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/compat.c  2009-07-04 01:11:39.000000000 +0200
-@@ -891,7 +891,7 @@ asmlinkage long compat_sys_time(compat_t
+diff -NurpP --minimal linux-2.6.31/kernel/compat.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/compat.c
+--- linux-2.6.31/kernel/compat.c       2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/compat.c    2009-09-10 16:11:43.000000000 +0200
+@@ -902,7 +902,7 @@ asmlinkage long compat_sys_time(compat_t
        compat_time_t i;
        struct timeval tv;
  
@@ -14053,7 +14026,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/compat.c linux-2.6.30.5-vs2.3.0.36.1
        i = tv.tv_sec;
  
        if (tloc) {
-@@ -916,7 +916,7 @@ asmlinkage long compat_sys_stime(compat_
+@@ -927,7 +927,7 @@ asmlinkage long compat_sys_stime(compat_
        if (err)
                return err;
  
@@ -14062,21 +14035,21 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/compat.c linux-2.6.30.5-vs2.3.0.36.1
        return 0;
  }
  
-diff -NurpP --minimal linux-2.6.30.5/kernel/exit.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/exit.c
---- linux-2.6.30.5/kernel/exit.c       2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/exit.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/exit.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/exit.c
+--- linux-2.6.31/kernel/exit.c 2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/exit.c      2009-09-10 16:43:10.000000000 +0200
 @@ -48,6 +48,10 @@
- #include <linux/tracehook.h>
  #include <linux/fs_struct.h>
  #include <linux/init_task.h>
+ #include <linux/perf_counter.h>
 +#include <linux/vs_limit.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_network.h>
 +#include <linux/vs_pid.h>
- #include <trace/sched.h>
+ #include <trace/events/sched.h>
  
  #include <asm/uaccess.h>
-@@ -489,9 +493,11 @@ static void close_files(struct files_str
+@@ -488,9 +492,11 @@ static void close_files(struct files_str
                                        filp_close(file, files);
                                        cond_resched();
                                }
@@ -14088,7 +14061,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/exit.c linux-2.6.30.5-vs2.3.0.36.14-
                }
        }
  }
-@@ -1007,10 +1013,15 @@ NORET_TYPE void do_exit(long code)
+@@ -1009,10 +1015,15 @@ NORET_TYPE void do_exit(long code)
        if (tsk->splice_pipe)
                __free_pipe_info(tsk->splice_pipe);
  
@@ -14104,13 +14077,13 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/exit.c linux-2.6.30.5-vs2.3.0.36.14-
        BUG();
        /* Avoid "noreturn function does return".  */
        for (;;)
-diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/fork.c
---- linux-2.6.30.5/kernel/fork.c       2009-08-17 16:37:42.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/fork.c    2009-08-17 16:56:57.000000000 +0200
-@@ -63,6 +63,10 @@
+diff -NurpP --minimal linux-2.6.31/kernel/fork.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/fork.c
+--- linux-2.6.31/kernel/fork.c 2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/fork.c      2009-09-10 16:42:52.000000000 +0200
+@@ -62,6 +62,10 @@
  #include <linux/fs_struct.h>
- #include <trace/sched.h>
  #include <linux/magic.h>
+ #include <linux/perf_counter.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_network.h>
 +#include <linux/vs_limit.h>
@@ -14118,7 +14091,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
  
  #include <asm/pgtable.h>
  #include <asm/pgalloc.h>
-@@ -142,6 +146,8 @@ void free_task(struct task_struct *tsk)
+@@ -141,6 +145,8 @@ void free_task(struct task_struct *tsk)
        prop_local_destroy_single(&tsk->dirties);
        free_thread_info(tsk->stack);
        rt_mutex_debug_task_free(tsk);
@@ -14127,7 +14100,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        ftrace_graph_exit_task(tsk);
        free_task_struct(tsk);
  }
-@@ -285,6 +291,8 @@ static int dup_mmap(struct mm_struct *mm
+@@ -284,6 +290,8 @@ static int dup_mmap(struct mm_struct *mm
        mm->free_area_cache = oldmm->mmap_base;
        mm->cached_hole_size = ~0UL;
        mm->map_count = 0;
@@ -14136,7 +14109,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        cpumask_clear(mm_cpumask(mm));
        mm->mm_rb = RB_ROOT;
        rb_link = &mm->mm_rb.rb_node;
-@@ -296,7 +304,7 @@ static int dup_mmap(struct mm_struct *mm
+@@ -295,7 +303,7 @@ static int dup_mmap(struct mm_struct *mm
  
                if (mpnt->vm_flags & VM_DONTCOPY) {
                        long pages = vma_pages(mpnt);
@@ -14145,7 +14118,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
                        vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
                                                                -pages);
                        continue;
-@@ -429,8 +437,8 @@ static struct mm_struct * mm_init(struct
+@@ -428,8 +436,8 @@ static struct mm_struct * mm_init(struct
        mm->flags = (current->mm) ? current->mm->flags : default_dump_filter;
        mm->core_state = NULL;
        mm->nr_ptes = 0;
@@ -14156,7 +14129,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        spin_lock_init(&mm->page_table_lock);
        spin_lock_init(&mm->ioctx_lock);
        INIT_HLIST_HEAD(&mm->ioctx_list);
-@@ -441,6 +449,7 @@ static struct mm_struct * mm_init(struct
+@@ -440,6 +448,7 @@ static struct mm_struct * mm_init(struct
        if (likely(!mm_alloc_pgd(mm))) {
                mm->def_flags = 0;
                mmu_notifier_mm_init(mm);
@@ -14164,7 +14137,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
                return mm;
        }
  
-@@ -474,6 +483,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -473,6 +482,7 @@ void __mmdrop(struct mm_struct *mm)
        mm_free_pgd(mm);
        destroy_context(mm);
        mmu_notifier_mm_destroy(mm);
@@ -14172,7 +14145,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        free_mm(mm);
  }
  EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -600,6 +610,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -599,6 +609,7 @@ struct mm_struct *dup_mm(struct task_str
                goto fail_nomem;
  
        memcpy(mm, oldmm, sizeof(*mm));
@@ -14180,7 +14153,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
  
        /* Initializing for Swap token stuff */
        mm->token_priority = 0;
-@@ -633,6 +644,7 @@ fail_nocontext:
+@@ -632,6 +643,7 @@ fail_nocontext:
         * If init_new_context() failed, we cannot use mmput() to free the mm
         * because it calls destroy_context()
         */
@@ -14188,7 +14161,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        mm_free_pgd(mm);
        free_mm(mm);
        return NULL;
-@@ -954,6 +966,8 @@ static struct task_struct *copy_process(
+@@ -940,6 +952,8 @@ static struct task_struct *copy_process(
        int retval;
        struct task_struct *p;
        int cgroup_callbacks_done = 0;
@@ -14197,7 +14170,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
  
        if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
                return ERR_PTR(-EINVAL);
-@@ -988,12 +1002,28 @@ static struct task_struct *copy_process(
+@@ -976,12 +990,28 @@ static struct task_struct *copy_process(
        DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
@@ -14227,7 +14200,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        }
  
        retval = copy_creds(p, clone_flags);
-@@ -1263,6 +1293,18 @@ static struct task_struct *copy_process(
+@@ -1254,6 +1284,18 @@ static struct task_struct *copy_process(
  
        total_forks++;
        spin_unlock(&current->sighand->siglock);
@@ -14246,7 +14219,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
        write_unlock_irq(&tasklist_lock);
        proc_fork_connector(p);
        cgroup_post_fork(p);
-@@ -1307,6 +1349,9 @@ bad_fork_cleanup_count:
+@@ -1299,6 +1341,9 @@ bad_fork_cleanup_count:
        atomic_dec(&p->cred->user->processes);
        put_cred(p->real_cred);
        put_cred(p->cred);
@@ -14256,21 +14229,21 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/fork.c linux-2.6.30.5-vs2.3.0.36.14-
  bad_fork_free:
        free_task(p);
  fork_out:
-diff -NurpP --minimal linux-2.6.30.5/kernel/kthread.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/kthread.c
---- linux-2.6.30.5/kernel/kthread.c    2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/kthread.c 2009-07-04 01:11:39.000000000 +0200
-@@ -13,6 +13,7 @@
+diff -NurpP --minimal linux-2.6.31/kernel/kthread.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/kthread.c
+--- linux-2.6.31/kernel/kthread.c      2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/kthread.c   2009-09-10 16:43:27.000000000 +0200
+@@ -14,6 +14,7 @@
  #include <linux/file.h>
  #include <linux/module.h>
  #include <linux/mutex.h>
 +#include <linux/vs_pid.h>
- #include <trace/sched.h>
+ #include <trace/events/sched.h>
  
  #define KTHREAD_NICE_LEVEL (-5)
-diff -NurpP --minimal linux-2.6.30.5/kernel/Makefile linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/Makefile
---- linux-2.6.30.5/kernel/Makefile     2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/Makefile  2009-07-04 01:11:39.000000000 +0200
-@@ -22,6 +22,7 @@ CFLAGS_REMOVE_cgroup-debug.o = -pg
+diff -NurpP --minimal linux-2.6.31/kernel/Makefile linux-2.6.31-vs2.3.0.36.14-pre8/kernel/Makefile
+--- linux-2.6.31/kernel/Makefile       2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/Makefile    2009-09-10 16:11:43.000000000 +0200
+@@ -23,6 +23,7 @@ CFLAGS_REMOVE_cgroup-debug.o = -pg
  CFLAGS_REMOVE_sched_clock.o = -pg
  endif
  
@@ -14278,9 +14251,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/Makefile linux-2.6.30.5-vs2.3.0.36.1
  obj-$(CONFIG_FREEZER) += freezer.o
  obj-$(CONFIG_PROFILING) += profile.o
  obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o
-diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/nsproxy.c
---- linux-2.6.30.5/kernel/nsproxy.c    2009-03-24 14:22:44.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/nsproxy.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/nsproxy.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/nsproxy.c
+--- linux-2.6.31/kernel/nsproxy.c      2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/nsproxy.c   2009-09-10 17:37:49.000000000 +0200
 @@ -19,6 +19,8 @@
  #include <linux/mnt_namespace.h>
  #include <linux/utsname.h>
@@ -14290,17 +14263,20 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
  #include <net/net_namespace.h>
  #include <linux/ipc_namespace.h>
  
-@@ -37,6 +39,9 @@ static inline struct nsproxy *clone_nspr
-       if (ns) {
-               memcpy(ns, orig, sizeof(struct nsproxy));
-               atomic_set(&ns->count, 1);
-+              vxdprintk(VXD_CBIT(space, 2), "clone_nsproxy(%p[%u] = %p[1]",
-+                      orig, atomic_read(&orig->count), ns);
+@@ -31,8 +33,11 @@ static inline struct nsproxy *create_nsp
+       struct nsproxy *nsproxy;
+       nsproxy = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL);
+-      if (nsproxy)
++      if (nsproxy) {
+               atomic_set(&nsproxy->count, 1);
 +              atomic_inc(&vs_global_nsproxy);
-       }
-       return ns;
++      }
++      vxdprintk(VXD_CBIT(space, 2), "create_nsproxy = %p[1]", nsproxy);
+       return nsproxy;
  }
-@@ -46,41 +51,52 @@ static inline struct nsproxy *clone_nspr
+@@ -41,41 +46,52 @@ 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.
   */
@@ -14312,12 +14288,11 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        struct nsproxy *new_nsp;
        int err;
  
--      new_nsp = clone_nsproxy(tsk->nsproxy);
 +      vxdprintk(VXD_CBIT(space, 4),
 +              "unshare_namespaces(0x%08lx,%p,%p)",
 +              flags, orig, new_fs);
 +
-+      new_nsp = clone_nsproxy(orig);
+       new_nsp = create_nsproxy();
        if (!new_nsp)
                return ERR_PTR(-ENOMEM);
  
@@ -14361,7 +14336,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        if (IS_ERR(new_nsp->net_ns)) {
                err = PTR_ERR(new_nsp->net_ns);
                goto out_net;
-@@ -105,6 +121,35 @@ out_ns:
+@@ -100,6 +116,38 @@ out_ns:
        return ERR_PTR(err);
  }
  
@@ -14377,9 +14352,12 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
 + */
 +struct nsproxy *copy_nsproxy(struct nsproxy *orig)
 +{
-+      struct nsproxy *ns = clone_nsproxy(orig);
++      struct nsproxy *ns = create_nsproxy();
 +
 +      if (ns) {
++              memcpy(ns, orig, sizeof(struct nsproxy));
++              atomic_set(&ns->count, 1);
++
 +              if (ns->mnt_ns)
 +                      get_mnt_ns(ns->mnt_ns);
 +              if (ns->uts_ns)
@@ -14397,7 +14375,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
  /*
   * called from clone.  This now handles copy for nsproxy and all
   * namespaces therein.
-@@ -112,9 +157,12 @@ out_ns:
+@@ -107,9 +155,12 @@ out_ns:
  int copy_namespaces(unsigned long flags, struct task_struct *tsk)
  {
        struct nsproxy *old_ns = tsk->nsproxy;
@@ -14411,7 +14389,16 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        if (!old_ns)
                return 0;
  
-@@ -151,6 +199,9 @@ int copy_namespaces(unsigned long flags,
+@@ -119,7 +170,7 @@ int copy_namespaces(unsigned long flags,
+                               CLONE_NEWPID | CLONE_NEWNET)))
+               return 0;
+-      if (!capable(CAP_SYS_ADMIN)) {
++      if (!vx_capable(CAP_SYS_ADMIN, VXC_NAMESPACE)) {
+               err = -EPERM;
+               goto out;
+       }
+@@ -146,6 +197,9 @@ int copy_namespaces(unsigned long flags,
  
  out:
        put_nsproxy(old_ns);
@@ -14421,7 +14408,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        return err;
  }
  
-@@ -164,7 +215,9 @@ void free_nsproxy(struct nsproxy *ns)
+@@ -159,7 +213,9 @@ void free_nsproxy(struct nsproxy *ns)
                put_ipc_ns(ns->ipc_ns);
        if (ns->pid_ns)
                put_pid_ns(ns->pid_ns);
@@ -14432,7 +14419,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        kmem_cache_free(nsproxy_cachep, ns);
  }
  
-@@ -177,6 +230,10 @@ int unshare_nsproxy_namespaces(unsigned 
+@@ -172,11 +228,15 @@ int unshare_nsproxy_namespaces(unsigned 
  {
        int err = 0;
  
@@ -14443,9 +14430,15 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/nsproxy.c linux-2.6.30.5-vs2.3.0.36.
        if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
                               CLONE_NEWNET)))
                return 0;
-diff -NurpP --minimal linux-2.6.30.5/kernel/pid.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/pid.c
---- linux-2.6.30.5/kernel/pid.c        2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/pid.c     2009-07-04 01:11:39.000000000 +0200
+-      if (!capable(CAP_SYS_ADMIN))
++      if (!vx_capable(CAP_SYS_ADMIN, VXC_NAMESPACE))
+               return -EPERM;
+       *new_nsp = create_new_namespaces(unshare_flags, current,
+diff -NurpP --minimal linux-2.6.31/kernel/pid.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/pid.c
+--- linux-2.6.31/kernel/pid.c  2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/pid.c       2009-09-10 16:36:49.000000000 +0200
 @@ -36,6 +36,7 @@
  #include <linux/pid_namespace.h>
  #include <linux/init_task.h>
@@ -14473,24 +14466,16 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/pid.c linux-2.6.30.5-vs2.3.0.36.14-p
        if (pid) {
                struct hlist_node *first;
                first = rcu_dereference(pid->tasks[type].first);
-@@ -388,14 +392,14 @@ EXPORT_SYMBOL(find_task_by_pid_type_ns);
- struct task_struct *find_task_by_vpid(pid_t vnr)
- {
--      return find_task_by_pid_type_ns(PIDTYPE_PID, vnr,
-+      return find_task_by_pid_type_ns(PIDTYPE_PID, vx_rmap_pid(vnr),
-                       current->nsproxy->pid_ns);
- }
- EXPORT_SYMBOL(find_task_by_vpid);
+@@ -380,7 +384,7 @@ EXPORT_SYMBOL(pid_task);
+  */
  struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
  {
--      return find_task_by_pid_type_ns(PIDTYPE_PID, nr, ns);
-+      return find_task_by_pid_type_ns(PIDTYPE_PID, vx_rmap_pid(nr), ns);
+-      return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
++      return pid_task(find_pid_ns(vx_rmap_pid(nr), ns), PIDTYPE_PID);
  }
- EXPORT_SYMBOL(find_task_by_pid_ns);
  
-@@ -433,7 +437,7 @@ struct pid *find_get_pid(pid_t nr)
+ struct task_struct *find_task_by_vpid(pid_t vnr)
+@@ -422,7 +426,7 @@ struct pid *find_get_pid(pid_t nr)
  }
  EXPORT_SYMBOL_GPL(find_get_pid);
  
@@ -14499,7 +14484,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/pid.c linux-2.6.30.5-vs2.3.0.36.14-p
  {
        struct upid *upid;
        pid_t nr = 0;
-@@ -446,6 +450,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 
+@@ -435,6 +439,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 
        return nr;
  }
  
@@ -14511,9 +14496,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/pid.c linux-2.6.30.5-vs2.3.0.36.14-p
  pid_t pid_vnr(struct pid *pid)
  {
        return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-2.6.30.5/kernel/pid_namespace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/pid_namespace.c
---- linux-2.6.30.5/kernel/pid_namespace.c      2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/pid_namespace.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/pid_namespace.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/pid_namespace.c
+--- linux-2.6.31/kernel/pid_namespace.c        2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/pid_namespace.c     2009-09-10 16:11:43.000000000 +0200
 @@ -13,6 +13,7 @@
  #include <linux/syscalls.h>
  #include <linux/err.h>
@@ -14522,15 +14507,15 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/pid_namespace.c linux-2.6.30.5-vs2.3
  
  #define BITS_PER_PAGE         (PAGE_SIZE*8)
  
-@@ -85,6 +86,7 @@ static struct pid_namespace *create_pid_
+@@ -86,6 +87,7 @@ static struct pid_namespace *create_pid_
                goto out_free_map;
  
        kref_init(&ns->kref);
 +      atomic_inc(&vs_global_pid_ns);
        ns->level = level;
+       ns->parent = get_pid_ns(parent_pid_ns);
  
-       set_bit(0, ns->pidmap[0].page);
-@@ -109,6 +111,7 @@ static void destroy_pid_namespace(struct
+@@ -111,6 +113,7 @@ static void destroy_pid_namespace(struct
  
        for (i = 0; i < PIDMAP_ENTRIES; i++)
                kfree(ns->pidmap[i].page);
@@ -14538,9 +14523,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/pid_namespace.c linux-2.6.30.5-vs2.3
        kmem_cache_free(pid_ns_cachep, ns);
  }
  
-diff -NurpP --minimal linux-2.6.30.5/kernel/posix-timers.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/posix-timers.c
---- linux-2.6.30.5/kernel/posix-timers.c       2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/posix-timers.c    2009-08-17 16:56:57.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/posix-timers.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/posix-timers.c
+--- linux-2.6.31/kernel/posix-timers.c 2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/posix-timers.c      2009-09-10 16:11:43.000000000 +0200
 @@ -46,6 +46,7 @@
  #include <linux/wait.h>
  #include <linux/workqueue.h>
@@ -14576,9 +14561,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/posix-timers.c linux-2.6.30.5-vs2.3.
        /* If we failed to send the signal the timer stops. */
        return ret > 0;
  }
-diff -NurpP --minimal linux-2.6.30.5/kernel/printk.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/printk.c
---- linux-2.6.30.5/kernel/printk.c     2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/printk.c  2009-07-04 01:56:52.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/printk.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/printk.c
+--- linux-2.6.31/kernel/printk.c       2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/printk.c    2009-09-10 16:11:43.000000000 +0200
 @@ -33,6 +33,7 @@
  #include <linux/bootmem.h>
  #include <linux/syscalls.h>
@@ -14642,9 +14627,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/printk.c linux-2.6.30.5-vs2.3.0.36.1
                count = len;
                if (count > log_buf_len)
                        count = log_buf_len;
-diff -NurpP --minimal linux-2.6.30.5/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/ptrace.c
---- linux-2.6.30.5/kernel/ptrace.c     2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/ptrace.c  2009-07-04 02:00:10.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/ptrace.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/ptrace.c
+--- linux-2.6.31/kernel/ptrace.c       2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/ptrace.c    2009-09-10 16:11:43.000000000 +0200
 @@ -22,6 +22,7 @@
  #include <linux/pid_namespace.h>
  #include <linux/syscalls.h>
@@ -14653,7 +14638,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.1
  
  
  /*
-@@ -161,6 +162,11 @@ int __ptrace_may_access(struct task_stru
+@@ -151,6 +152,11 @@ int __ptrace_may_access(struct task_stru
                dumpable = get_dumpable(task->mm);
        if (!dumpable && !capable(CAP_SYS_PTRACE))
                return -EPERM;
@@ -14665,7 +14650,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.1
  
        return security_ptrace_may_access(task, mode);
  }
-@@ -672,6 +678,10 @@ SYSCALL_DEFINE4(ptrace, long, request, l
+@@ -618,6 +624,10 @@ SYSCALL_DEFINE4(ptrace, long, request, l
                goto out;
        }
  
@@ -14676,19 +14661,19 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/ptrace.c linux-2.6.30.5-vs2.3.0.36.1
        if (request == PTRACE_ATTACH) {
                ret = ptrace_attach(child);
                /*
-diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched.c
---- linux-2.6.30.5/kernel/sched.c      2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched.c   2009-08-06 02:11:37.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/sched.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched.c
+--- linux-2.6.31/kernel/sched.c        2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched.c     2009-09-10 16:57:32.000000000 +0200
 @@ -72,6 +72,8 @@
  #include <linux/debugfs.h>
  #include <linux/ctype.h>
  #include <linux/ftrace.h>
 +#include <linux/vs_sched.h>
 +#include <linux/vs_cvirt.h>
- #include <trace/sched.h>
  
  #include <asm/tlb.h>
-@@ -638,6 +640,16 @@ struct rq {
+ #include <asm/irq_regs.h>
+@@ -639,6 +641,16 @@ struct rq {
  #endif
        struct hrtimer hrtick_timer;
  #endif
@@ -14705,7 +14690,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
  
  #ifdef CONFIG_SCHEDSTATS
        /* latency stats */
-@@ -1911,6 +1923,8 @@ static inline void check_class_changed(s
+@@ -1914,6 +1926,8 @@ static inline void check_class_changed(s
                p->sched_class->prio_changed(rq, p, oldprio, running);
  }
  
@@ -14714,7 +14699,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
  #ifdef CONFIG_SMP
  
  /* Used instead of source_load when we know the type == 0 */
-@@ -1998,6 +2012,7 @@ migrate_task(struct task_struct *p, int 
+@@ -2006,6 +2020,7 @@ migrate_task(struct task_struct *p, int 
  {
        struct rq *rq = task_rq(p);
  
@@ -14722,16 +14707,16 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
        /*
         * If the task is not on a runqueue (and not running), then
         * it is sufficient to simply update the task's cpu field.
-@@ -2325,6 +2340,8 @@ static int sched_balance_self(int cpu, i
- #endif /* CONFIG_SMP */
+@@ -2398,6 +2413,8 @@ void task_oncpu_function_call(struct tas
+       preempt_enable();
+ }
  
 +#include "sched_hard.h"
 +
  /***
   * try_to_wake_up - wake up a thread
   * @p: the to-be-woken-up thread
-@@ -2369,6 +2386,13 @@ static int try_to_wake_up(struct task_st
+@@ -2442,6 +2459,13 @@ static int try_to_wake_up(struct task_st
        rq = task_rq_lock(p, &flags);
        update_rq_clock(rq);
        old_state = p->state;
@@ -14745,7 +14730,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
        if (!(old_state & state))
                goto out;
  
-@@ -2390,6 +2414,12 @@ static int try_to_wake_up(struct task_st
+@@ -2463,6 +2487,12 @@ static int try_to_wake_up(struct task_st
                /* might preempt at this point */
                rq = task_rq_lock(p, &flags);
                old_state = p->state;
@@ -14758,7 +14743,28 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
                if (!(old_state & state))
                        goto out;
                if (p->se.on_rq)
-@@ -4608,16 +4638,19 @@ void account_user_time(struct task_struc
+@@ -2981,9 +3011,17 @@ EXPORT_SYMBOL(avenrun);
+  */
+ void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
+ {
+-      loads[0] = (avenrun[0] + offset) << shift;
+-      loads[1] = (avenrun[1] + offset) << shift;
+-      loads[2] = (avenrun[2] + offset) << shift;
++      if (vx_flags(VXF_VIRT_LOAD, 0)) {
++              struct vx_info *vxi = current->vx_info;
++
++              loads[0] = (vxi->cvirt.load[0] + offset) << shift;
++              loads[0] = (vxi->cvirt.load[1] + offset) << shift;
++              loads[0] = (vxi->cvirt.load[2] + offset) << shift;
++      } else {
++              loads[0] = (avenrun[0] + offset) << shift;
++              loads[1] = (avenrun[1] + offset) << shift;
++              loads[2] = (avenrun[2] + offset) << shift;
++      }
+ }
+ static unsigned long
+@@ -4912,16 +4950,19 @@ void account_user_time(struct task_struc
                       cputime_t cputime_scaled)
  {
        struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
@@ -14779,7 +14785,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
                cpustat->nice = cputime64_add(cpustat->nice, tmp);
        else
                cpustat->user = cputime64_add(cpustat->user, tmp);
-@@ -4663,6 +4696,7 @@ void account_system_time(struct task_str
+@@ -4967,6 +5008,7 @@ void account_system_time(struct task_str
                         cputime_t cputime, cputime_t cputime_scaled)
  {
        struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
@@ -14787,7 +14793,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
        cputime64_t tmp;
  
        if ((p->flags & PF_VCPU) && (irq_count() - hardirq_offset == 0)) {
-@@ -4673,6 +4707,7 @@ void account_system_time(struct task_str
+@@ -4977,6 +5019,7 @@ void account_system_time(struct task_str
        /* Add system time to process. */
        p->stime = cputime_add(p->stime, cputime);
        p->stimescaled = cputime_add(p->stimescaled, cputime_scaled);
@@ -14795,7 +14801,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
        account_group_system_time(p, cputime);
  
        /* Add system time to cpustat. */
-@@ -5050,6 +5085,11 @@ need_resched_nonpreemptible:
+@@ -5358,6 +5401,11 @@ need_resched_nonpreemptible:
                idle_balance(cpu, rq);
  
        put_prev_task(rq, prev);
@@ -14807,7 +14813,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
        next = pick_next_task(rq);
  
        if (likely(prev != next)) {
-@@ -5697,7 +5737,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -6012,7 +6060,7 @@ SYSCALL_DEFINE1(nice, int, increment)
                nice = 19;
  
        if (increment < 0 && !can_nice(current, nice))
@@ -14816,7 +14822,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
  
        retval = security_task_setnice(current, nice);
        if (retval)
-@@ -8986,7 +9026,10 @@ void __init sched_init(void)
+@@ -9314,7 +9362,10 @@ void __init sched_init(void)
  
  #endif
  #endif /* CONFIG_FAIR_GROUP_SCHED */
@@ -14828,10 +14834,10 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched.c linux-2.6.30.5-vs2.3.0.36.14
                rq->rt.rt_runtime = def_rt_bandwidth.rt_runtime;
  #ifdef CONFIG_RT_GROUP_SCHED
                INIT_LIST_HEAD(&rq->leaf_rt_rq_list);
-diff -NurpP --minimal linux-2.6.30.5/kernel/sched_fair.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_fair.c
---- linux-2.6.30.5/kernel/sched_fair.c 2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_fair.c      2009-07-04 01:11:39.000000000 +0200
-@@ -717,6 +717,9 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
+diff -NurpP --minimal linux-2.6.31/kernel/sched_fair.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_fair.c
+--- linux-2.6.31/kernel/sched_fair.c   2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_fair.c        2009-09-10 16:11:43.000000000 +0200
+@@ -731,6 +731,9 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
        check_spread(cfs_rq, se);
        if (se != cfs_rq->curr)
                __enqueue_entity(cfs_rq, se);
@@ -14841,7 +14847,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched_fair.c linux-2.6.30.5-vs2.3.0.
  }
  
  static void __clear_buddies(struct cfs_rq *cfs_rq, struct sched_entity *se)
-@@ -760,6 +763,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
+@@ -774,6 +777,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
  
        if (se != cfs_rq->curr)
                __dequeue_entity(cfs_rq, se);
@@ -14850,9 +14856,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched_fair.c linux-2.6.30.5-vs2.3.0.
        account_entity_dequeue(cfs_rq, se);
        update_min_vruntime(cfs_rq);
  }
-diff -NurpP --minimal linux-2.6.30.5/kernel/sched_hard.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_hard.h
---- linux-2.6.30.5/kernel/sched_hard.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_hard.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/sched_hard.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_hard.h
+--- linux-2.6.31/kernel/sched_hard.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_hard.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,353 @@
 +
 +#ifdef CONFIG_VSERVER_IDLELIMIT
@@ -15207,9 +15213,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched_hard.h linux-2.6.30.5-vs2.3.0.
 +
 +#endif /* CONFIG_VSERVER_HARDCPU */
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/sched_mon.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_mon.h
---- linux-2.6.30.5/kernel/sched_mon.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sched_mon.h       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/sched_mon.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_mon.h
+--- linux-2.6.31/kernel/sched_mon.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sched_mon.h 2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,200 @@
 +
 +#include <linux/vserver/monitor.h>
@@ -15411,19 +15417,19 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sched_mon.h linux-2.6.30.5-vs2.3.0.3
 +
 +#endif /* CONFIG_VSERVER_MONITOR */
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/signal.c
---- linux-2.6.30.5/kernel/signal.c     2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/signal.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/signal.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/signal.c
+--- linux-2.6.31/kernel/signal.c       2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/signal.c    2009-09-10 16:43:45.000000000 +0200
 @@ -27,6 +27,8 @@
  #include <linux/freezer.h>
  #include <linux/pid_namespace.h>
  #include <linux/nsproxy.h>
 +#include <linux/vs_context.h>
 +#include <linux/vs_pid.h>
- #include <trace/sched.h>
+ #include <trace/events/sched.h>
  
  #include <asm/param.h>
-@@ -595,6 +597,14 @@ static int check_kill_permission(int sig
+@@ -598,6 +600,14 @@ static int check_kill_permission(int sig
        if (!valid_signal(sig))
                return -EINVAL;
  
@@ -15438,7 +15444,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
        if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info)))
                return 0;
  
-@@ -622,6 +632,20 @@ static int check_kill_permission(int sig
+@@ -625,6 +635,20 @@ static int check_kill_permission(int sig
                }
        }
  
@@ -15459,7 +15465,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
        return security_task_kill(t, info, sig, 0);
  }
  
-@@ -1104,7 +1128,7 @@ int kill_pid_info(int sig, struct siginf
+@@ -1112,7 +1136,7 @@ int kill_pid_info(int sig, struct siginf
        rcu_read_lock();
  retry:
        p = pid_task(pid, PIDTYPE_PID);
@@ -15468,7 +15474,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
                error = group_send_sig_info(sig, info, p);
                if (unlikely(error == -ESRCH))
                        /*
-@@ -1143,7 +1167,7 @@ int kill_pid_info_as_uid(int sig, struct
+@@ -1151,7 +1175,7 @@ int kill_pid_info_as_uid(int sig, struct
  
        read_lock(&tasklist_lock);
        p = pid_task(pid, PIDTYPE_PID);
@@ -15477,7 +15483,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
                ret = -ESRCH;
                goto out_unlock;
        }
-@@ -1197,8 +1221,10 @@ static int kill_something_info(int sig, 
+@@ -1205,8 +1229,10 @@ static int kill_something_info(int sig, 
                struct task_struct * p;
  
                for_each_process(p) {
@@ -15490,7 +15496,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
                                int err = group_send_sig_info(sig, info, p);
                                ++count;
                                if (err != -EPERM)
-@@ -1884,6 +1910,11 @@ relock:
+@@ -1892,6 +1918,11 @@ relock:
                                !sig_kernel_only(signr))
                        continue;
  
@@ -15502,21 +15508,30 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/signal.c linux-2.6.30.5-vs2.3.0.36.1
                if (sig_kernel_stop(signr)) {
                        /*
                         * The default action is to stop all threads in
-diff -NurpP --minimal linux-2.6.30.5/kernel/softirq.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/softirq.c
---- linux-2.6.30.5/kernel/softirq.c    2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/softirq.c 2009-07-04 01:48:28.000000000 +0200
-@@ -25,6 +25,7 @@
+diff -NurpP --minimal linux-2.6.31/kernel/softirq.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/softirq.c
+--- linux-2.6.31/kernel/softirq.c      2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/softirq.c   2009-09-10 16:33:13.000000000 +0200
+@@ -24,6 +24,7 @@
+ #include <linux/ftrace.h>
  #include <linux/smp.h>
  #include <linux/tick.h>
- #include <trace/irq.h>
 +#include <linux/vs_context.h>
  
- #include <asm/irq.h>
- /*
-diff -NurpP --minimal linux-2.6.30.5/kernel/sys.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sys.c
---- linux-2.6.30.5/kernel/sys.c        2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sys.c     2009-07-04 01:11:39.000000000 +0200
-@@ -40,6 +40,7 @@
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/irq.h>
+diff -NurpP --minimal linux-2.6.31/kernel/sys.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sys.c
+--- linux-2.6.31/kernel/sys.c  2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sys.c       2009-09-10 16:46:48.000000000 +0200
+@@ -2,7 +2,7 @@
+  *  linux/kernel/sys.c
+  *
+  *  Copyright (C) 1991, 1992  Linus Torvalds
+- */
++       */
+ #include <linux/module.h>
+ #include <linux/mm.h>
+@@ -41,6 +41,7 @@
  #include <linux/syscalls.h>
  #include <linux/kprobes.h>
  #include <linux/user_namespace.h>
@@ -15524,160 +15539,2317 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/sys.c linux-2.6.30.5-vs2.3.0.36.14-p
  
  #include <asm/uaccess.h>
  #include <asm/io.h>
-@@ -129,7 +130,10 @@ static int set_one_prio(struct task_stru
-               goto out;
-       }
-       if (niceval < task_nice(p) && !can_nice(p, niceval)) {
--              error = -EACCES;
-+              if (vx_flags(VXF_IGNEG_NICE, 0))
-+                      error = 0;
-+              else
-+                      error = -EACCES;
-               goto out;
-       }
-       no_nice = security_task_setnice(p, niceval);
-@@ -178,6 +182,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
-                       else
-                               pgrp = task_pgrp(current);
-                       do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
-+                              if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
-+                                      continue;
-                               error = set_one_prio(p, niceval, error);
-                       } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
-                       break;
-@@ -239,6 +245,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
-                       else
-                               pgrp = task_pgrp(current);
-                       do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
-+                              if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
-+                                      continue;
-                               niceval = 20 - task_nice(p);
-                               if (niceval > retval)
-                                       retval = niceval;
-@@ -348,6 +356,9 @@ void kernel_power_off(void)
-       machine_power_off();
- }
- EXPORT_SYMBOL_GPL(kernel_power_off);
-+
-+long vs_reboot(unsigned int, void __user *);
-+
- /*
-  * Reboot system call: for obvious reasons only root may call it,
-  * and even root needs to set up some magic numbers in the registers
-@@ -380,6 +391,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
-       if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
-               cmd = LINUX_REBOOT_CMD_HALT;
+@@ -77,1216 +78,1229 @@
+ # define SET_TSC_CTL(a)               (-EINVAL)
+ #endif
  
-+      if (!vx_check(0, VS_ADMIN|VS_WATCH))
-+              return vs_reboot(cmd, arg);
-+
-       lock_kernel();
-       switch (cmd) {
-       case LINUX_REBOOT_CMD_RESTART:
-@@ -1413,7 +1427,7 @@ SYSCALL_DEFINE2(sethostname, char __user
-       int errno;
-       char tmp[__NEW_UTS_LEN];
+-/*
+- * this is where the system-wide overflow UID and GID are defined, for
+- * architectures that now have 32-bit UID/GID but didn't in the past
+- */
++      /*
++       * this is where the system-wide overflow UID and GID are defined, for
++       * architectures that now have 32-bit UID/GID but didn't in the past
++       */
  
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SET_UTSNAME))
-               return -EPERM;
-       if (len < 0 || len > __NEW_UTS_LEN)
-               return -EINVAL;
-@@ -1462,7 +1476,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
-       int errno;
-       char tmp[__NEW_UTS_LEN];
+-int overflowuid = DEFAULT_OVERFLOWUID;
+-int overflowgid = DEFAULT_OVERFLOWGID;
++      int overflowuid = DEFAULT_OVERFLOWUID;
++      int overflowgid = DEFAULT_OVERFLOWGID;
  
--      if (!capable(CAP_SYS_ADMIN))
-+      if (!vx_capable(CAP_SYS_ADMIN, VXC_SET_UTSNAME))
-               return -EPERM;
-       if (len < 0 || len > __NEW_UTS_LEN)
-               return -EINVAL;
-@@ -1531,7 +1545,7 @@ SYSCALL_DEFINE2(setrlimit, unsigned int,
-               return -EINVAL;
-       old_rlim = current->signal->rlim + resource;
-       if ((new_rlim.rlim_max > old_rlim->rlim_max) &&
--          !capable(CAP_SYS_RESOURCE))
-+          !vx_capable(CAP_SYS_RESOURCE, VXC_SET_RLIMIT))
-               return -EPERM;
-       if (resource == RLIMIT_NOFILE && new_rlim.rlim_max > sysctl_nr_open)
-               return -EPERM;
-diff -NurpP --minimal linux-2.6.30.5/kernel/sysctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sysctl.c
---- linux-2.6.30.5/kernel/sysctl.c     2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sysctl.c  2009-07-23 13:50:49.000000000 +0200
-@@ -115,6 +115,7 @@ static int ngroups_max = NGROUPS_MAX;
- #ifdef CONFIG_MODULES
- extern char modprobe_path[];
- #endif
-+extern char vshelper_path[];
- #ifdef CONFIG_CHR_DEV_SG
- extern int sg_big_buff;
- #endif
-@@ -546,6 +547,15 @@ static struct ctl_table kern_table[] = {
-               .strategy       = &sysctl_string,
-       },
+ #ifdef CONFIG_UID16
+-EXPORT_SYMBOL(overflowuid);
+-EXPORT_SYMBOL(overflowgid);
++      EXPORT_SYMBOL(overflowuid);
++      EXPORT_SYMBOL(overflowgid);
  #endif
-+      {
-+              .ctl_name       = KERN_VSHELPER,
-+              .procname       = "vshelper",
-+              .data           = &vshelper_path,
-+              .maxlen         = 256,
-+              .mode           = 0644,
-+              .proc_handler   = &proc_dostring,
-+              .strategy       = &sysctl_string,
-+      },
- #ifdef CONFIG_CHR_DEV_SG
-       {
-               .ctl_name       = KERN_SG_BIG_BUFF,
-diff -NurpP --minimal linux-2.6.30.5/kernel/sysctl_check.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sysctl_check.c
---- linux-2.6.30.5/kernel/sysctl_check.c       2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/sysctl_check.c    2009-07-04 01:11:39.000000000 +0200
-@@ -39,6 +39,7 @@ static const struct trans_ctl_table tran
  
-       { KERN_PANIC,                   "panic" },
-       { KERN_REALROOTDEV,             "real-root-dev" },
-+      { KERN_VSHELPER,                "vshelper", },
+-/*
+- * the same as above, but for filesystems which can only store a 16-bit
+- * UID and GID. as such, this is needed on all architectures
+- */
++      /*
++       * the same as above, but for filesystems which can only store a 16-bit
++       * UID and GID. as such, this is needed on all architectures
++       */
  
-       { KERN_SPARC_REBOOT,            "reboot-cmd" },
-       { KERN_CTLALTDEL,               "ctrl-alt-del" },
-@@ -1217,6 +1218,22 @@ static const struct trans_ctl_table tran
-       {}
- };
+-int fs_overflowuid = DEFAULT_FS_OVERFLOWUID;
+-int fs_overflowgid = DEFAULT_FS_OVERFLOWUID;
++      int fs_overflowuid = DEFAULT_FS_OVERFLOWUID;
++      int fs_overflowgid = DEFAULT_FS_OVERFLOWUID;
  
-+static struct trans_ctl_table trans_vserver_table[] = {
-+      { 1,    "debug_switch" },
-+      { 2,    "debug_xid" },
-+      { 3,    "debug_nid" },
-+      { 4,    "debug_tag" },
-+      { 5,    "debug_net" },
-+      { 6,    "debug_limit" },
-+      { 7,    "debug_cres" },
-+      { 8,    "debug_dlim" },
-+      { 9,    "debug_quota" },
-+      { 10,   "debug_cvirt" },
-+      { 11,   "debug_space" },
-+      { 12,   "debug_misc" },
-+      {}
-+};
-+
- static const struct trans_ctl_table trans_root_table[] = {
-       { CTL_KERN,     "kernel",       trans_kern_table },
-       { CTL_VM,       "vm",           trans_vm_table },
-@@ -1233,6 +1250,7 @@ static const struct trans_ctl_table tran
-       { CTL_SUNRPC,   "sunrpc",       trans_sunrpc_table },
-       { CTL_PM,       "pm",           trans_pm_table },
-       { CTL_FRV,      "frv",          trans_frv_table },
-+      { CTL_VSERVER,  "vserver",      trans_vserver_table },
-       {}
- };
+-EXPORT_SYMBOL(fs_overflowuid);
+-EXPORT_SYMBOL(fs_overflowgid);
++      EXPORT_SYMBOL(fs_overflowuid);
++      EXPORT_SYMBOL(fs_overflowgid);
  
-diff -NurpP --minimal linux-2.6.30.5/kernel/time.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/time.c
---- linux-2.6.30.5/kernel/time.c       2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/time.c    2009-07-04 01:11:39.000000000 +0200
-@@ -63,6 +63,7 @@ EXPORT_SYMBOL(sys_tz);
- SYSCALL_DEFINE1(time, time_t __user *, tloc)
- {
-       time_t i = get_seconds();
-+/*    FIXME: do_gettimeofday(&tv) -> vx_gettimeofday(&tv) */
+-/*
+- * this indicates whether you can reboot with ctrl-alt-del: the default is yes
+- */
++      /*
++       * this indicates whether you can reboot with ctrl-alt-del: the default is yes
++       */
+-int C_A_D = 1;
+-struct pid *cad_pid;
+-EXPORT_SYMBOL(cad_pid);
++      int C_A_D = 1;
++      struct pid *cad_pid;
++      EXPORT_SYMBOL(cad_pid);
+-/*
+- * If set, this is used for preparing the system to power off.
+- */
++      /*
++       * If set, this is used for preparing the system to power off.
++       */
+-void (*pm_power_off_prepare)(void);
++      void (*pm_power_off_prepare)(void);
+-/*
+- * set the priority of a task
+- * - the caller must hold the RCU read lock
+- */
+-static int set_one_prio(struct task_struct *p, int niceval, int error)
+-{
+-      const struct cred *cred = current_cred(), *pcred = __task_cred(p);
+-      int no_nice;
++      /*
++       * set the priority of a task
++       * - the caller must hold the RCU read lock
++       */
++      static int set_one_prio(struct task_struct *p, int niceval, int error)
++      {
++              const struct cred *cred = current_cred(), *pcred = __task_cred(p);
++              int no_nice;
+-      if (pcred->uid  != cred->euid &&
+-          pcred->euid != cred->euid && !capable(CAP_SYS_NICE)) {
+-              error = -EPERM;
+-              goto out;
+-      }
+-      if (niceval < task_nice(p) && !can_nice(p, niceval)) {
+-              error = -EACCES;
+-              goto out;
+-      }
+-      no_nice = security_task_setnice(p, niceval);
+-      if (no_nice) {
+-              error = no_nice;
+-              goto out;
++              if (pcred->uid  != cred->euid &&
++                  pcred->euid != cred->euid && !capable(CAP_SYS_NICE)) {
++                      error = -EPERM;
++                      goto out;
++              }
++              if (niceval < task_nice(p) && !can_nice(p, niceval)) {
++                      if (vx_flags(VXF_IGNEG_NICE, 0))
++                              error = 0;
++                      else
++                              error = -EACCES;
++                      goto out;
++              }
++              no_nice = security_task_setnice(p, niceval);
++              if (no_nice) {
++                      error = no_nice;
++                      goto out;
++              }
++              if (error == -ESRCH)
++                      error = 0;
++              set_user_nice(p, niceval);
++      out:
++              return error;
+       }
+-      if (error == -ESRCH)
+-              error = 0;
+-      set_user_nice(p, niceval);
+-out:
+-      return error;
+-}
+-SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
+-{
+-      struct task_struct *g, *p;
+-      struct user_struct *user;
+-      const struct cred *cred = current_cred();
+-      int error = -EINVAL;
+-      struct pid *pgrp;
+-
+-      if (which > PRIO_USER || which < PRIO_PROCESS)
+-              goto out;
++      SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
++      {
++              struct task_struct *g, *p;
++              struct user_struct *user;
++              const struct cred *cred = current_cred();
++              int error = -EINVAL;
++              struct pid *pgrp;
+-      /* normalize: avoid signed division (rounding problems) */
+-      error = -ESRCH;
+-      if (niceval < -20)
+-              niceval = -20;
+-      if (niceval > 19)
+-              niceval = 19;
++              if (which > PRIO_USER || which < PRIO_PROCESS)
++                      goto out;
+-      read_lock(&tasklist_lock);
+-      switch (which) {
+-              case PRIO_PROCESS:
+-                      if (who)
+-                              p = find_task_by_vpid(who);
+-                      else
+-                              p = current;
+-                      if (p)
+-                              error = set_one_prio(p, niceval, error);
+-                      break;
+-              case PRIO_PGRP:
+-                      if (who)
+-                              pgrp = find_vpid(who);
+-                      else
+-                              pgrp = task_pgrp(current);
+-                      do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
+-                              error = set_one_prio(p, niceval, error);
+-                      } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
+-                      break;
+-              case PRIO_USER:
+-                      user = (struct user_struct *) cred->user;
+-                      if (!who)
+-                              who = cred->uid;
+-                      else if ((who != cred->uid) &&
+-                               !(user = find_user(who)))
+-                              goto out_unlock;        /* No processes for this user */
++              /* normalize: avoid signed division (rounding problems) */
++              error = -ESRCH;
++              if (niceval < -20)
++                      niceval = -20;
++              if (niceval > 19)
++                      niceval = 19;
+-                      do_each_thread(g, p)
+-                              if (__task_cred(p)->uid == who)
++              read_lock(&tasklist_lock);
++              switch (which) {
++                      case PRIO_PROCESS:
++                              if (who)
++                                      p = find_task_by_vpid(who);
++                              else
++                                      p = current;
++                              if (p)
+                                       error = set_one_prio(p, niceval, error);
+-                      while_each_thread(g, p);
+-                      if (who != cred->uid)
+-                              free_uid(user);         /* For find_user() */
+-                      break;
+-      }
+-out_unlock:
+-      read_unlock(&tasklist_lock);
+-out:
+-      return error;
+-}
++                              break;
++                      case PRIO_PGRP:
++                              if (who)
++                                      pgrp = find_vpid(who);
++                              else
++                                      pgrp = task_pgrp(current);
++                              do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
++                                      if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
++                                              continue;
++                                      error = set_one_prio(p, niceval, error);
++                              } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
++                              break;
++                      case PRIO_USER:
++                              user = (struct user_struct *) cred->user;
++                              if (!who)
++                                      who = cred->uid;
++                              else if ((who != cred->uid) &&
++                                       !(user = find_user(who)))
++                                      goto out_unlock;        /* No processes for this user */
+-/*
+- * Ugh. To avoid negative return values, "getpriority()" will
+- * not return the normal nice-value, but a negated value that
+- * has been offset by 20 (ie it returns 40..1 instead of -20..19)
+- * to stay compatible.
+- */
+-SYSCALL_DEFINE2(getpriority, int, which, int, who)
+-{
+-      struct task_struct *g, *p;
+-      struct user_struct *user;
+-      const struct cred *cred = current_cred();
+-      long niceval, retval = -ESRCH;
+-      struct pid *pgrp;
++                              do_each_thread(g, p)
++                                      if (__task_cred(p)->uid == who)
++                                              error = set_one_prio(p, niceval, error);
++                              while_each_thread(g, p);
++                              if (who != cred->uid)
++                                      free_uid(user);         /* For find_user() */
++                              break;
++              }
++      out_unlock:
++              read_unlock(&tasklist_lock);
++      out:
++              return error;
++      }
+-      if (which > PRIO_USER || which < PRIO_PROCESS)
+-              return -EINVAL;
++      /*
++       * Ugh. To avoid negative return values, "getpriority()" will
++       * not return the normal nice-value, but a negated value that
++       * has been offset by 20 (ie it returns 40..1 instead of -20..19)
++       * to stay compatible.
++       */
++      SYSCALL_DEFINE2(getpriority, int, which, int, who)
++      {
++              struct task_struct *g, *p;
++              struct user_struct *user;
++              const struct cred *cred = current_cred();
++              long niceval, retval = -ESRCH;
++              struct pid *pgrp;
+-      read_lock(&tasklist_lock);
+-      switch (which) {
+-              case PRIO_PROCESS:
+-                      if (who)
+-                              p = find_task_by_vpid(who);
+-                      else
+-                              p = current;
+-                      if (p) {
+-                              niceval = 20 - task_nice(p);
+-                              if (niceval > retval)
+-                                      retval = niceval;
+-                      }
+-                      break;
+-              case PRIO_PGRP:
+-                      if (who)
+-                              pgrp = find_vpid(who);
+-                      else
+-                              pgrp = task_pgrp(current);
+-                      do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
+-                              niceval = 20 - task_nice(p);
+-                              if (niceval > retval)
+-                                      retval = niceval;
+-                      } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
+-                      break;
+-              case PRIO_USER:
+-                      user = (struct user_struct *) cred->user;
+-                      if (!who)
+-                              who = cred->uid;
+-                      else if ((who != cred->uid) &&
+-                               !(user = find_user(who)))
+-                              goto out_unlock;        /* No processes for this user */
++              if (which > PRIO_USER || which < PRIO_PROCESS)
++                      return -EINVAL;
+-                      do_each_thread(g, p)
+-                              if (__task_cred(p)->uid == who) {
++              read_lock(&tasklist_lock);
++              switch (which) {
++                      case PRIO_PROCESS:
++                              if (who)
++                                      p = find_task_by_vpid(who);
++                              else
++                                      p = current;
++                              if (p) {
+                                       niceval = 20 - task_nice(p);
+                                       if (niceval > retval)
+                                               retval = niceval;
+                               }
+-                      while_each_thread(g, p);
+-                      if (who != cred->uid)
+-                              free_uid(user);         /* for find_user() */
+-                      break;
+-      }
+-out_unlock:
+-      read_unlock(&tasklist_lock);
++                              break;
++                      case PRIO_PGRP:
++                              if (who)
++                                      pgrp = find_vpid(who);
++                              else
++                                      pgrp = task_pgrp(current);
++                              do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
++                                      if (!vx_check(p->xid, VS_ADMIN_P | VS_IDENT))
++                                              continue;
++                                      niceval = 20 - task_nice(p);
++                                      if (niceval > retval)
++                                              retval = niceval;
++                              } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
++                              break;
++                      case PRIO_USER:
++                              user = (struct user_struct *) cred->user;
++                              if (!who)
++                                      who = cred->uid;
++                              else if ((who != cred->uid) &&
++                                       !(user = find_user(who)))
++                                      goto out_unlock;        /* No processes for this user */
+-      return retval;
+-}
++                              do_each_thread(g, p)
++                                      if (__task_cred(p)->uid == who) {
++                                              niceval = 20 - task_nice(p);
++                                              if (niceval > retval)
++                                                      retval = niceval;
++                                      }
++                              while_each_thread(g, p);
++                              if (who != cred->uid)
++                                      free_uid(user);         /* for find_user() */
++                              break;
++              }
++      out_unlock:
++              read_unlock(&tasklist_lock);
+-/**
+- *    emergency_restart - reboot the system
+- *
+- *    Without shutting down any hardware or taking any locks
+- *    reboot the system.  This is called when we know we are in
+- *    trouble so this is our best effort to reboot.  This is
+- *    safe to call in interrupt context.
+- */
+-void emergency_restart(void)
+-{
+-      machine_emergency_restart();
+-}
+-EXPORT_SYMBOL_GPL(emergency_restart);
++              return retval;
++      }
+-void kernel_restart_prepare(char *cmd)
+-{
+-      blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);
+-      system_state = SYSTEM_RESTART;
+-      device_shutdown();
+-      sysdev_shutdown();
+-}
++      /**
++       *      emergency_restart - reboot the system
++       *
++       *      Without shutting down any hardware or taking any locks
++       *      reboot the system.  This is called when we know we are in
++       *      trouble so this is our best effort to reboot.  This is
++       *      safe to call in interrupt context.
++       */
++      void emergency_restart(void)
++      {
++              machine_emergency_restart();
++      }
++      EXPORT_SYMBOL_GPL(emergency_restart);
+-/**
+- *    kernel_restart - reboot the system
+- *    @cmd: pointer to buffer containing command to execute for restart
+- *            or %NULL
+- *
+- *    Shutdown everything and perform a clean reboot.
+- *    This is not safe to call in interrupt context.
+- */
+-void kernel_restart(char *cmd)
+-{
+-      kernel_restart_prepare(cmd);
+-      if (!cmd)
+-              printk(KERN_EMERG "Restarting system.\n");
+-      else
+-              printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
+-      machine_restart(cmd);
+-}
+-EXPORT_SYMBOL_GPL(kernel_restart);
++      void kernel_restart_prepare(char *cmd)
++      {
++              blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);
++              system_state = SYSTEM_RESTART;
++              device_shutdown();
++              sysdev_shutdown();
++      }
+-static void kernel_shutdown_prepare(enum system_states state)
+-{
+-      blocking_notifier_call_chain(&reboot_notifier_list,
+-              (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL);
+-      system_state = state;
+-      device_shutdown();
+-}
+-/**
+- *    kernel_halt - halt the system
+- *
+- *    Shutdown everything and perform a clean system halt.
+- */
+-void kernel_halt(void)
+-{
+-      kernel_shutdown_prepare(SYSTEM_HALT);
+-      sysdev_shutdown();
+-      printk(KERN_EMERG "System halted.\n");
+-      machine_halt();
+-}
++      /**
++       *      kernel_restart - reboot the system
++       *      @cmd: pointer to buffer containing command to execute for restart
++       *              or %NULL
++       *
++       *      Shutdown everything and perform a clean reboot.
++       *      This is not safe to call in interrupt context.
++       */
++      void kernel_restart(char *cmd)
++      {
++              kernel_restart_prepare(cmd);
++              if (!cmd)
++                      printk(KERN_EMERG "Restarting system.\n");
++              else
++                      printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
++              machine_restart(cmd);
++      }
++      EXPORT_SYMBOL_GPL(kernel_restart);
+-EXPORT_SYMBOL_GPL(kernel_halt);
++      static void kernel_shutdown_prepare(enum system_states state)
++      {
++              blocking_notifier_call_chain(&reboot_notifier_list,
++                      (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL);
++              system_state = state;
++              device_shutdown();
++      }
++      /**
++       *      kernel_halt - halt the system
++       *
++       *      Shutdown everything and perform a clean system halt.
++       */
++      void kernel_halt(void)
++      {
++              kernel_shutdown_prepare(SYSTEM_HALT);
++              sysdev_shutdown();
++              printk(KERN_EMERG "System halted.\n");
++              machine_halt();
++      }
+-/**
+- *    kernel_power_off - power_off the system
+- *
+- *    Shutdown everything and perform a clean system power_off.
+- */
+-void kernel_power_off(void)
+-{
+-      kernel_shutdown_prepare(SYSTEM_POWER_OFF);
+-      if (pm_power_off_prepare)
+-              pm_power_off_prepare();
+-      disable_nonboot_cpus();
+-      sysdev_shutdown();
+-      printk(KERN_EMERG "Power down.\n");
+-      machine_power_off();
+-}
+-EXPORT_SYMBOL_GPL(kernel_power_off);
+-/*
+- * Reboot system call: for obvious reasons only root may call it,
+- * and even root needs to set up some magic numbers in the registers
+- * so that some mistake won't make this reboot the whole machine.
+- * You can also set the meaning of the ctrl-alt-del-key here.
+- *
+- * reboot doesn't sync: do that yourself before calling this.
+- */
+-SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
+-              void __user *, arg)
+-{
+-      char buffer[256];
+-      int ret = 0;
++      EXPORT_SYMBOL_GPL(kernel_halt);
+-      /* We only trust the superuser with rebooting the system. */
+-      if (!capable(CAP_SYS_BOOT))
+-              return -EPERM;
++      /**
++       *      kernel_power_off - power_off the system
++       *
++       *      Shutdown everything and perform a clean system power_off.
++       */
++      void kernel_power_off(void)
++      {
++              kernel_shutdown_prepare(SYSTEM_POWER_OFF);
++              if (pm_power_off_prepare)
++                      pm_power_off_prepare();
++              disable_nonboot_cpus();
++              sysdev_shutdown();
++              printk(KERN_EMERG "Power down.\n");
++              machine_power_off();
++      }
++      EXPORT_SYMBOL_GPL(kernel_power_off);
+-      /* For safety, we require "magic" arguments. */
+-      if (magic1 != LINUX_REBOOT_MAGIC1 ||
+-          (magic2 != LINUX_REBOOT_MAGIC2 &&
+-                      magic2 != LINUX_REBOOT_MAGIC2A &&
+-                      magic2 != LINUX_REBOOT_MAGIC2B &&
+-                      magic2 != LINUX_REBOOT_MAGIC2C))
+-              return -EINVAL;
++      long vs_reboot(unsigned int, void __user *);
+-      /* Instead of trying to make the power_off code look like
+-       * halt when pm_power_off is not set do it the easy way.
++      /*
++       * Reboot system call: for obvious reasons only root may call it,
++       * and even root needs to set up some magic numbers in the registers
++       * so that some mistake won't make this reboot the whole machine.
++       * You can also set the meaning of the ctrl-alt-del-key here.
++       *
++       * reboot doesn't sync: do that yourself before calling this.
+        */
+-      if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
+-              cmd = LINUX_REBOOT_CMD_HALT;
++      SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
++                      void __user *, arg)
++      {
++              char buffer[256];
++              int ret = 0;
+-      lock_kernel();
+-      switch (cmd) {
+-      case LINUX_REBOOT_CMD_RESTART:
+-              kernel_restart(NULL);
+-              break;
++              /* We only trust the superuser with rebooting the system. */
++              if (!capable(CAP_SYS_BOOT))
++                      return -EPERM;
+-      case LINUX_REBOOT_CMD_CAD_ON:
+-              C_A_D = 1;
+-              break;
++              /* For safety, we require "magic" arguments. */
++              if (magic1 != LINUX_REBOOT_MAGIC1 ||
++                  (magic2 != LINUX_REBOOT_MAGIC2 &&
++                              magic2 != LINUX_REBOOT_MAGIC2A &&
++                              magic2 != LINUX_REBOOT_MAGIC2B &&
++                              magic2 != LINUX_REBOOT_MAGIC2C))
++                      return -EINVAL;
+-      case LINUX_REBOOT_CMD_CAD_OFF:
+-              C_A_D = 0;
+-              break;
++              /* Instead of trying to make the power_off code look like
++               * halt when pm_power_off is not set do it the easy way.
++               */
++              if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
++                      cmd = LINUX_REBOOT_CMD_HALT;
+-      case LINUX_REBOOT_CMD_HALT:
+-              kernel_halt();
+-              unlock_kernel();
+-              do_exit(0);
+-              panic("cannot halt");
++              if (!vx_check(0, VS_ADMIN|VS_WATCH))
++                      return vs_reboot(cmd, arg);
+-      case LINUX_REBOOT_CMD_POWER_OFF:
+-              kernel_power_off();
+-              unlock_kernel();
+-              do_exit(0);
+-              break;
++              lock_kernel();
++              switch (cmd) {
++              case LINUX_REBOOT_CMD_RESTART:
++                      kernel_restart(NULL);
++                      break;
+-      case LINUX_REBOOT_CMD_RESTART2:
+-              if (strncpy_from_user(&buffer[0], arg, sizeof(buffer) - 1) < 0) {
++              case LINUX_REBOOT_CMD_CAD_ON:
++                      C_A_D = 1;
++                      break;
++
++              case LINUX_REBOOT_CMD_CAD_OFF:
++                      C_A_D = 0;
++                      break;
++
++              case LINUX_REBOOT_CMD_HALT:
++                      kernel_halt();
+                       unlock_kernel();
+-                      return -EFAULT;
+-              }
+-              buffer[sizeof(buffer) - 1] = '\0';
++                      do_exit(0);
++                      panic("cannot halt");
+-              kernel_restart(buffer);
+-              break;
++              case LINUX_REBOOT_CMD_POWER_OFF:
++                      kernel_power_off();
++                      unlock_kernel();
++                      do_exit(0);
++                      break;
++
++              case LINUX_REBOOT_CMD_RESTART2:
++                      if (strncpy_from_user(&buffer[0], arg, sizeof(buffer) - 1) < 0) {
++                              unlock_kernel();
++                              return -EFAULT;
++                      }
++                      buffer[sizeof(buffer) - 1] = '\0';
++
++                      kernel_restart(buffer);
++                      break;
+ #ifdef CONFIG_KEXEC
+-      case LINUX_REBOOT_CMD_KEXEC:
+-              ret = kernel_kexec();
+-              break;
++              case LINUX_REBOOT_CMD_KEXEC:
++                      ret = kernel_kexec();
++                      break;
+ #endif
+ #ifdef CONFIG_HIBERNATION
+-      case LINUX_REBOOT_CMD_SW_SUSPEND:
+-              ret = hibernate();
+-              break;
++              case LINUX_REBOOT_CMD_SW_SUSPEND:
++                      ret = hibernate();
++                      break;
+ #endif
+-      default:
+-              ret = -EINVAL;
+-              break;
++              default:
++                      ret = -EINVAL;
++                      break;
++              }
++              unlock_kernel();
++              return ret;
+       }
+-      unlock_kernel();
+-      return ret;
+-}
+-static void deferred_cad(struct work_struct *dummy)
+-{
+-      kernel_restart(NULL);
+-}
+-
+-/*
+- * This function gets called by ctrl-alt-del - ie the keyboard interrupt.
+- * As it's called within an interrupt, it may NOT sync: the only choice
+- * is whether to reboot at once, or just ignore the ctrl-alt-del.
+- */
+-void ctrl_alt_del(void)
+-{
+-      static DECLARE_WORK(cad_work, deferred_cad);
+-
+-      if (C_A_D)
+-              schedule_work(&cad_work);
+-      else
+-              kill_cad_pid(SIGINT, 1);
+-}
+-      
+-/*
+- * Unprivileged users may change the real gid to the effective gid
+- * or vice versa.  (BSD-style)
+- *
+- * If you set the real gid at all, or set the effective gid to a value not
+- * equal to the real gid, then the saved gid is set to the new effective gid.
+- *
+- * This makes it possible for a setgid program to completely drop its
+- * privileges, which is often a useful assertion to make when you are doing
+- * a security audit over a program.
+- *
+- * The general idea is that a program which uses just setregid() will be
+- * 100% compatible with BSD.  A program which uses just setgid() will be
+- * 100% compatible with POSIX with saved IDs. 
+- *
+- * SMP: There are not races, the GIDs are checked only by filesystem
+- *      operations (as far as semantic preservation is concerned).
+- */
+-SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
+-
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
+-      old = current_cred();
++      static void deferred_cad(struct work_struct *dummy)
++      {
++              kernel_restart(NULL);
++      }
+-      retval = security_task_setgid(rgid, egid, (gid_t)-1, LSM_SETID_RE);
+-      if (retval)
+-              goto error;
++      /*
++       * This function gets called by ctrl-alt-del - ie the keyboard interrupt.
++       * As it's called within an interrupt, it may NOT sync: the only choice
++       * is whether to reboot at once, or just ignore the ctrl-alt-del.
++       */
++      void ctrl_alt_del(void)
++      {
++              static DECLARE_WORK(cad_work, deferred_cad);
+-      retval = -EPERM;
+-      if (rgid != (gid_t) -1) {
+-              if (old->gid == rgid ||
+-                  old->egid == rgid ||
+-                  capable(CAP_SETGID))
+-                      new->gid = rgid;
+-              else
+-                      goto error;
+-      }
+-      if (egid != (gid_t) -1) {
+-              if (old->gid == egid ||
+-                  old->egid == egid ||
+-                  old->sgid == egid ||
+-                  capable(CAP_SETGID))
+-                      new->egid = egid;
++              if (C_A_D)
++                      schedule_work(&cad_work);
+               else
+-                      goto error;
++                      kill_cad_pid(SIGINT, 1);
+       }
++
++      /*
++       * Unprivileged users may change the real gid to the effective gid
++       * or vice versa.  (BSD-style)
++       *
++       * If you set the real gid at all, or set the effective gid to a value not
++       * equal to the real gid, then the saved gid is set to the new effective gid.
++       *
++       * This makes it possible for a setgid program to completely drop its
++       * privileges, which is often a useful assertion to make when you are doing
++       * a security audit over a program.
++       *
++       * The general idea is that a program which uses just setregid() will be
++       * 100% compatible with BSD.  A program which uses just setgid() will be
++       * 100% compatible with POSIX with saved IDs.
++       *
++       * SMP: There are not races, the GIDs are checked only by filesystem
++       *      operations (as far as semantic preservation is concerned).
++       */
++      SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
+-      if (rgid != (gid_t) -1 ||
+-          (egid != (gid_t) -1 && egid != old->gid))
+-              new->sgid = new->egid;
+-      new->fsgid = new->egid;
+-
+-      return commit_creds(new);
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++              old = current_cred();
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
++              retval = security_task_setgid(rgid, egid, (gid_t)-1, LSM_SETID_RE);
++              if (retval)
++                      goto error;
+-/*
+- * setgid() is implemented like SysV w/ SAVED_IDS 
+- *
+- * SMP: Same implicit races as above.
+- */
+-SYSCALL_DEFINE1(setgid, gid_t, gid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
++              retval = -EPERM;
++              if (rgid != (gid_t) -1) {
++                      if (old->gid == rgid ||
++                          old->egid == rgid ||
++                          capable(CAP_SETGID))
++                              new->gid = rgid;
++                      else
++                              goto error;
++              }
++              if (egid != (gid_t) -1) {
++                      if (old->gid == egid ||
++                          old->egid == egid ||
++                          old->sgid == egid ||
++                          capable(CAP_SETGID))
++                              new->egid = egid;
++                      else
++                              goto error;
++              }
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
+-      old = current_cred();
++              if (rgid != (gid_t) -1 ||
++                  (egid != (gid_t) -1 && egid != old->gid))
++                      new->sgid = new->egid;
++              new->fsgid = new->egid;
+-      retval = security_task_setgid(gid, (gid_t)-1, (gid_t)-1, LSM_SETID_ID);
+-      if (retval)
+-              goto error;
++              return commit_creds(new);
+-      retval = -EPERM;
+-      if (capable(CAP_SETGID))
+-              new->gid = new->egid = new->sgid = new->fsgid = gid;
+-      else if (gid == old->gid || gid == old->sgid)
+-              new->egid = new->fsgid = gid;
+-      else
+-              goto error;
++      error:
++              abort_creds(new);
++              return retval;
++      }
+-      return commit_creds(new);
++      /*
++       * setgid() is implemented like SysV w/ SAVED_IDS
++       *
++       * SMP: Same implicit races as above.
++       */
++      SYSCALL_DEFINE1(setgid, gid_t, gid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++              old = current_cred();
+-/*
+- * change the user struct in a credentials set to match the new UID
+- */
+-static int set_user(struct cred *new)
+-{
+-      struct user_struct *new_user;
++              retval = security_task_setgid(gid, (gid_t)-1, (gid_t)-1, LSM_SETID_ID);
++              if (retval)
++                      goto error;
+-      new_user = alloc_uid(current_user_ns(), new->uid);
+-      if (!new_user)
+-              return -EAGAIN;
++              retval = -EPERM;
++              if (capable(CAP_SETGID))
++                      new->gid = new->egid = new->sgid = new->fsgid = gid;
++              else if (gid == old->gid || gid == old->sgid)
++                      new->egid = new->fsgid = gid;
++              else
++                      goto error;
+-      if (!task_can_switch_user(new_user, current)) {
+-              free_uid(new_user);
+-              return -EINVAL;
+-      }
++              return commit_creds(new);
+-      if (atomic_read(&new_user->processes) >=
+-                              current->signal->rlim[RLIMIT_NPROC].rlim_cur &&
+-                      new_user != INIT_USER) {
+-              free_uid(new_user);
+-              return -EAGAIN;
++      error:
++              abort_creds(new);
++              return retval;
+       }
+-      free_uid(new->user);
+-      new->user = new_user;
+-      return 0;
+-}
+-
+-/*
+- * Unprivileged users may change the real uid to the effective uid
+- * or vice versa.  (BSD-style)
+- *
+- * If you set the real uid at all, or set the effective uid to a value not
+- * equal to the real uid, then the saved uid is set to the new effective uid.
+- *
+- * This makes it possible for a setuid program to completely drop its
+- * privileges, which is often a useful assertion to make when you are doing
+- * a security audit over a program.
+- *
+- * The general idea is that a program which uses just setreuid() will be
+- * 100% compatible with BSD.  A program which uses just setuid() will be
+- * 100% compatible with POSIX with saved IDs. 
+- */
+-SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
+-
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
+-      old = current_cred();
++      /*
++       * change the user struct in a credentials set to match the new UID
++       */
++      static int set_user(struct cred *new)
++      {
++              struct user_struct *new_user;
+-      retval = security_task_setuid(ruid, euid, (uid_t)-1, LSM_SETID_RE);
+-      if (retval)
+-              goto error;
++              new_user = alloc_uid(current_user_ns(), new->uid);
++              if (!new_user)
++                      return -EAGAIN;
+-      retval = -EPERM;
+-      if (ruid != (uid_t) -1) {
+-              new->uid = ruid;
+-              if (old->uid != ruid &&
+-                  old->euid != ruid &&
+-                  !capable(CAP_SETUID))
+-                      goto error;
+-      }
++              if (!task_can_switch_user(new_user, current)) {
++                      free_uid(new_user);
++                      return -EINVAL;
++              }
+-      if (euid != (uid_t) -1) {
+-              new->euid = euid;
+-              if (old->uid != euid &&
+-                  old->euid != euid &&
+-                  old->suid != euid &&
+-                  !capable(CAP_SETUID))
+-                      goto error;
+-      }
++              if (atomic_read(&new_user->processes) >=
++                                      current->signal->rlim[RLIMIT_NPROC].rlim_cur &&
++                              new_user != INIT_USER) {
++                      free_uid(new_user);
++                      return -EAGAIN;
++              }
+-      if (new->uid != old->uid) {
+-              retval = set_user(new);
+-              if (retval < 0)
+-                      goto error;
++              free_uid(new->user);
++              new->user = new_user;
++              return 0;
+       }
+-      if (ruid != (uid_t) -1 ||
+-          (euid != (uid_t) -1 && euid != old->uid))
+-              new->suid = new->euid;
+-      new->fsuid = new->euid;
+-      retval = security_task_fix_setuid(new, old, LSM_SETID_RE);
+-      if (retval < 0)
+-              goto error;
++      /*
++       * Unprivileged users may change the real uid to the effective uid
++       * or vice versa.  (BSD-style)
++       *
++       * If you set the real uid at all, or set the effective uid to a value not
++       * equal to the real uid, then the saved uid is set to the new effective uid.
++       *
++       * This makes it possible for a setuid program to completely drop its
++       * privileges, which is often a useful assertion to make when you are doing
++       * a security audit over a program.
++       *
++       * The general idea is that a program which uses just setreuid() will be
++       * 100% compatible with BSD.  A program which uses just setuid() will be
++       * 100% compatible with POSIX with saved IDs.
++       */
++      SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
+-      return commit_creds(new);
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++              old = current_cred();
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
+-              
+-/*
+- * setuid() is implemented like SysV with SAVED_IDS 
+- * 
+- * Note that SAVED_ID's is deficient in that a setuid root program
+- * like sendmail, for example, cannot set its uid to be a normal 
+- * user and then switch back, because if you're root, setuid() sets
+- * the saved uid too.  If you don't like this, blame the bright people
+- * in the POSIX committee and/or USG.  Note that the BSD-style setreuid()
+- * will allow a root program to temporarily drop privileges and be able to
+- * regain them by swapping the real and effective uid.  
+- */
+-SYSCALL_DEFINE1(setuid, uid_t, uid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
++              retval = security_task_setuid(ruid, euid, (uid_t)-1, LSM_SETID_RE);
++              if (retval)
++                      goto error;
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
+-      old = current_cred();
++              retval = -EPERM;
++              if (ruid != (uid_t) -1) {
++                      new->uid = ruid;
++                      if (old->uid != ruid &&
++                          old->euid != ruid &&
++                          !capable(CAP_SETUID))
++                              goto error;
++              }
+-      retval = security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_ID);
+-      if (retval)
+-              goto error;
++              if (euid != (uid_t) -1) {
++                      new->euid = euid;
++                      if (old->uid != euid &&
++                          old->euid != euid &&
++                          old->suid != euid &&
++                          !capable(CAP_SETUID))
++                              goto error;
++              }
+-      retval = -EPERM;
+-      if (capable(CAP_SETUID)) {
+-              new->suid = new->uid = uid;
+-              if (uid != old->uid) {
++              if (new->uid != old->uid) {
+                       retval = set_user(new);
+                       if (retval < 0)
+                               goto error;
+               }
+-      } else if (uid != old->uid && uid != new->suid) {
+-              goto error;
++              if (ruid != (uid_t) -1 ||
++                  (euid != (uid_t) -1 && euid != old->uid))
++                      new->suid = new->euid;
++              new->fsuid = new->euid;
++
++              retval = security_task_fix_setuid(new, old, LSM_SETID_RE);
++              if (retval < 0)
++                      goto error;
++
++              return commit_creds(new);
++
++      error:
++              abort_creds(new);
++              return retval;
+       }
++
++      /*
++       * setuid() is implemented like SysV with SAVED_IDS
++       *
++       * Note that SAVED_ID's is deficient in that a setuid root program
++       * like sendmail, for example, cannot set its uid to be a normal
++       * user and then switch back, because if you're root, setuid() sets
++       * the saved uid too.  If you don't like this, blame the bright people
++       * in the POSIX committee and/or USG.  Note that the BSD-style setreuid()
++       * will allow a root program to temporarily drop privileges and be able to
++       * regain them by swapping the real and effective uid.
++       */
++      SYSCALL_DEFINE1(setuid, uid_t, uid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
+-      new->fsuid = new->euid = uid;
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++              old = current_cred();
+-      retval = security_task_fix_setuid(new, old, LSM_SETID_ID);
+-      if (retval < 0)
+-              goto error;
++              retval = security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_ID);
++              if (retval)
++                      goto error;
+-      return commit_creds(new);
++              retval = -EPERM;
++              if (capable(CAP_SETUID)) {
++                      new->suid = new->uid = uid;
++                      if (uid != old->uid) {
++                              retval = set_user(new);
++                              if (retval < 0)
++                                      goto error;
++                      }
++              } else if (uid != old->uid && uid != new->suid) {
++                      goto error;
++              }
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
++              new->fsuid = new->euid = uid;
++              retval = security_task_fix_setuid(new, old, LSM_SETID_ID);
++              if (retval < 0)
++                      goto error;
+-/*
+- * This function implements a generic ability to update ruid, euid,
+- * and suid.  This allows you to implement the 4.4 compatible seteuid().
+- */
+-SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
++              return commit_creds(new);
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
++      error:
++              abort_creds(new);
++              return retval;
++      }
+-      retval = security_task_setuid(ruid, euid, suid, LSM_SETID_RES);
+-      if (retval)
+-              goto error;
+-      old = current_cred();
+-      retval = -EPERM;
+-      if (!capable(CAP_SETUID)) {
+-              if (ruid != (uid_t) -1 && ruid != old->uid &&
+-                  ruid != old->euid  && ruid != old->suid)
+-                      goto error;
+-              if (euid != (uid_t) -1 && euid != old->uid &&
+-                  euid != old->euid  && euid != old->suid)
+-                      goto error;
+-              if (suid != (uid_t) -1 && suid != old->uid &&
+-                  suid != old->euid  && suid != old->suid)
++      /*
++       * This function implements a generic ability to update ruid, euid,
++       * and suid.  This allows you to implement the 4.4 compatible seteuid().
++       */
++      SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
++
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++
++              retval = security_task_setuid(ruid, euid, suid, LSM_SETID_RES);
++              if (retval)
+                       goto error;
+-      }
++              old = current_cred();
+-      if (ruid != (uid_t) -1) {
+-              new->uid = ruid;
+-              if (ruid != old->uid) {
+-                      retval = set_user(new);
+-                      if (retval < 0)
++              retval = -EPERM;
++              if (!capable(CAP_SETUID)) {
++                      if (ruid != (uid_t) -1 && ruid != old->uid &&
++                          ruid != old->euid  && ruid != old->suid)
++                              goto error;
++                      if (euid != (uid_t) -1 && euid != old->uid &&
++                          euid != old->euid  && euid != old->suid)
++                              goto error;
++                      if (suid != (uid_t) -1 && suid != old->uid &&
++                          suid != old->euid  && suid != old->suid)
+                               goto error;
+               }
+-      }
+-      if (euid != (uid_t) -1)
+-              new->euid = euid;
+-      if (suid != (uid_t) -1)
+-              new->suid = suid;
+-      new->fsuid = new->euid;
+-      retval = security_task_fix_setuid(new, old, LSM_SETID_RES);
+-      if (retval < 0)
+-              goto error;
++              if (ruid != (uid_t) -1) {
++                      new->uid = ruid;
++                      if (ruid != old->uid) {
++                              retval = set_user(new);
++                              if (retval < 0)
++                                      goto error;
++                      }
++              }
++              if (euid != (uid_t) -1)
++                      new->euid = euid;
++              if (suid != (uid_t) -1)
++                      new->suid = suid;
++              new->fsuid = new->euid;
+-      return commit_creds(new);
++              retval = security_task_fix_setuid(new, old, LSM_SETID_RES);
++              if (retval < 0)
++                      goto error;
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
++              return commit_creds(new);
+-SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid)
+-{
+-      const struct cred *cred = current_cred();
+-      int retval;
++      error:
++              abort_creds(new);
++              return retval;
++      }
+-      if (!(retval   = put_user(cred->uid,  ruid)) &&
+-          !(retval   = put_user(cred->euid, euid)))
+-              retval = put_user(cred->suid, suid);
++      SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid)
++      {
++              const struct cred *cred = current_cred();
++              int retval;
+-      return retval;
+-}
++              if (!(retval   = put_user(cred->uid,  ruid)) &&
++                  !(retval   = put_user(cred->euid, euid)))
++                      retval = put_user(cred->suid, suid);
+-/*
+- * Same as above, but for rgid, egid, sgid.
+- */
+-SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      int retval;
++              return retval;
++      }
+-      new = prepare_creds();
+-      if (!new)
+-              return -ENOMEM;
+-      old = current_cred();
++      /*
++       * Same as above, but for rgid, egid, sgid.
++       */
++      SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              int retval;
+-      retval = security_task_setgid(rgid, egid, sgid, LSM_SETID_RES);
+-      if (retval)
+-              goto error;
++              new = prepare_creds();
++              if (!new)
++                      return -ENOMEM;
++              old = current_cred();
+-      retval = -EPERM;
+-      if (!capable(CAP_SETGID)) {
+-              if (rgid != (gid_t) -1 && rgid != old->gid &&
+-                  rgid != old->egid  && rgid != old->sgid)
+-                      goto error;
+-              if (egid != (gid_t) -1 && egid != old->gid &&
+-                  egid != old->egid  && egid != old->sgid)
+-                      goto error;
+-              if (sgid != (gid_t) -1 && sgid != old->gid &&
+-                  sgid != old->egid  && sgid != old->sgid)
++              retval = security_task_setgid(rgid, egid, sgid, LSM_SETID_RES);
++              if (retval)
+                       goto error;
+-      }
+-      if (rgid != (gid_t) -1)
+-              new->gid = rgid;
+-      if (egid != (gid_t) -1)
+-              new->egid = egid;
+-      if (sgid != (gid_t) -1)
+-              new->sgid = sgid;
+-      new->fsgid = new->egid;
++              retval = -EPERM;
++              if (!capable(CAP_SETGID)) {
++                      if (rgid != (gid_t) -1 && rgid != old->gid &&
++                          rgid != old->egid  && rgid != old->sgid)
++                              goto error;
++                      if (egid != (gid_t) -1 && egid != old->gid &&
++                          egid != old->egid  && egid != old->sgid)
++                              goto error;
++                      if (sgid != (gid_t) -1 && sgid != old->gid &&
++                          sgid != old->egid  && sgid != old->sgid)
++                              goto error;
++              }
+-      return commit_creds(new);
++              if (rgid != (gid_t) -1)
++                      new->gid = rgid;
++              if (egid != (gid_t) -1)
++                      new->egid = egid;
++              if (sgid != (gid_t) -1)
++                      new->sgid = sgid;
++              new->fsgid = new->egid;
+-error:
+-      abort_creds(new);
+-      return retval;
+-}
++              return commit_creds(new);
+-SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid)
+-{
+-      const struct cred *cred = current_cred();
+-      int retval;
++      error:
++              abort_creds(new);
++              return retval;
++      }
+-      if (!(retval   = put_user(cred->gid,  rgid)) &&
+-          !(retval   = put_user(cred->egid, egid)))
+-              retval = put_user(cred->sgid, sgid);
++      SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid)
++      {
++              const struct cred *cred = current_cred();
++              int retval;
+-      return retval;
+-}
++              if (!(retval   = put_user(cred->gid,  rgid)) &&
++                  !(retval   = put_user(cred->egid, egid)))
++                      retval = put_user(cred->sgid, sgid);
++              return retval;
++      }
+-/*
+- * "setfsuid()" sets the fsuid - the uid used for filesystem checks. This
+- * is used for "access()" and for the NFS daemon (letting nfsd stay at
+- * whatever uid it wants to). It normally shadows "euid", except when
+- * explicitly set by setfsuid() or for access..
+- */
+-SYSCALL_DEFINE1(setfsuid, uid_t, uid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      uid_t old_fsuid;
+-      new = prepare_creds();
+-      if (!new)
+-              return current_fsuid();
+-      old = current_cred();
+-      old_fsuid = old->fsuid;
++      /*
++       * "setfsuid()" sets the fsuid - the uid used for filesystem checks. This
++       * is used for "access()" and for the NFS daemon (letting nfsd stay at
++       * whatever uid it wants to). It normally shadows "euid", except when
++       * explicitly set by setfsuid() or for access..
++       */
++      SYSCALL_DEFINE1(setfsuid, uid_t, uid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              uid_t old_fsuid;
+-      if (security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_FS) < 0)
+-              goto error;
++              new = prepare_creds();
++              if (!new)
++                      return current_fsuid();
++              old = current_cred();
++              old_fsuid = old->fsuid;
+-      if (uid == old->uid  || uid == old->euid  ||
+-          uid == old->suid || uid == old->fsuid ||
+-          capable(CAP_SETUID)) {
+-              if (uid != old_fsuid) {
+-                      new->fsuid = uid;
+-                      if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
+-                              goto change_okay;
++              if (security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_FS) < 0)
++                      goto error;
++
++              if (uid == old->uid  || uid == old->euid  ||
++                  uid == old->suid || uid == old->fsuid ||
++                  capable(CAP_SETUID)) {
++                      if (uid != old_fsuid) {
++                              new->fsuid = uid;
++                              if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
++                                      goto change_okay;
++                      }
+               }
+-      }
+-error:
+-      abort_creds(new);
+-      return old_fsuid;
++      error:
++              abort_creds(new);
++              return old_fsuid;
+-change_okay:
+-      commit_creds(new);
+-      return old_fsuid;
+-}
++      change_okay:
++              commit_creds(new);
++              return old_fsuid;
++      }
+-/*
+- * Samma på svenska..
+- */
+-SYSCALL_DEFINE1(setfsgid, gid_t, gid)
+-{
+-      const struct cred *old;
+-      struct cred *new;
+-      gid_t old_fsgid;
++      /*
++       * Samma på svenska..
++       */
++      SYSCALL_DEFINE1(setfsgid, gid_t, gid)
++      {
++              const struct cred *old;
++              struct cred *new;
++              gid_t old_fsgid;
+-      new = prepare_creds();
+-      if (!new)
+-              return current_fsgid();
+-      old = current_cred();
+-      old_fsgid = old->fsgid;
++              new = prepare_creds();
++              if (!new)
++                      return current_fsgid();
++              old = current_cred();
++              old_fsgid = old->fsgid;
+-      if (security_task_setgid(gid, (gid_t)-1, (gid_t)-1, LSM_SETID_FS))
+-              goto error;
++              if (security_task_setgid(gid, (gid_t)-1, (gid_t)-1, LSM_SETID_FS))
++                      goto error;
+-      if (gid == old->gid  || gid == old->egid  ||
+-          gid == old->sgid || gid == old->fsgid ||
+-          capable(CAP_SETGID)) {
+-              if (gid != old_fsgid) {
+-                      new->fsgid = gid;
+-                      goto change_okay;
++              if (gid == old->gid  || gid == old->egid  ||
++                  gid == old->sgid || gid == old->fsgid ||
++                  capable(CAP_SETGID)) {
++                      if (gid != old_fsgid) {
++                              new->fsgid = gid;
++                              goto change_okay;
++                      }
+               }
+-      }
+-
+-error:
+-      abort_creds(new);
+-      return old_fsgid;
+-change_okay:
+-      commit_creds(new);
+-      return old_fsgid;
+-}
+-
+-void do_sys_times(struct tms *tms)
+-{
+-      struct task_cputime cputime;
+-      cputime_t cutime, cstime;
++      error:
++              abort_creds(new);
++              return old_fsgid;
+-      thread_group_cputime(current, &cputime);
+-      spin_lock_irq(&current->sighand->siglock);
+-      cutime = current->signal->cutime;
+-      cstime = current->signal->cstime;
+-      spin_unlock_irq(&current->sighand->siglock);
+-      tms->tms_utime = cputime_to_clock_t(cputime.utime);
+-      tms->tms_stime = cputime_to_clock_t(cputime.stime);
+-      tms->tms_cutime = cputime_to_clock_t(cutime);
+-      tms->tms_cstime = cputime_to_clock_t(cstime);
+-}
++      change_okay:
++              commit_creds(new);
++              return old_fsgid;
++      }
+-SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
+-{
+-      if (tbuf) {
+-              struct tms tmp;
++      void do_sys_times(struct tms *tms)
++      {
++              struct task_cputime cputime;
++              cputime_t cutime, cstime;
+-              do_sys_times(&tmp);
+-              if (copy_to_user(tbuf, &tmp, sizeof(struct tms)))
+-                      return -EFAULT;
++              thread_group_cputime(current, &cputime);
++              spin_lock_irq(&current->sighand->siglock);
++              cutime = current->signal->cutime;
++              cstime = current->signal->cstime;
++              spin_unlock_irq(&current->sighand->siglock);
++              tms->tms_utime = cputime_to_clock_t(cputime.utime);
++              tms->tms_stime = cputime_to_clock_t(cputime.stime);
++              tms->tms_cutime = cputime_to_clock_t(cutime);
++              tms->tms_cstime = cputime_to_clock_t(cstime);
+       }
+-      force_successful_syscall_return();
+-      return (long) jiffies_64_to_clock_t(get_jiffies_64());
+-}
+-/*
+- * This needs some heavy checking ...
+- * I just haven't the stomach for it. I also don't fully
+- * understand sessions/pgrp etc. Let somebody who does explain it.
+- *
+- * OK, I think I have the protection semantics right.... this is really
+- * only important on a multi-user system anyway, to make sure one user
+- * can't send a signal to a process owned by another.  -TYT, 12/12/91
+- *
+- * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
+- * LBT 04.03.94
+- */
+-SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid)
+-{
+-      struct task_struct *p;
+-      struct task_struct *group_leader = current->group_leader;
+-      struct pid *pgrp;
+-      int err;
++      SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
++      {
++              if (tbuf) {
++                      struct tms tmp;
+-      if (!pid)
+-              pid = task_pid_vnr(group_leader);
+-      if (!pgid)
+-              pgid = pid;
+-      if (pgid < 0)
+-              return -EINVAL;
++                      do_sys_times(&tmp);
++                      if (copy_to_user(tbuf, &tmp, sizeof(struct tms)))
++                              return -EFAULT;
++              }
++              force_successful_syscall_return();
++              return (long) jiffies_64_to_clock_t(get_jiffies_64());
++      }
+-      /* From this point forward we keep holding onto the tasklist lock
+-       * so that our parent does not change from under us. -DaveM
++      /*
++       * This needs some heavy checking ...
++       * I just haven't the stomach for it. I also don't fully
++       * understand sessions/pgrp etc. Let somebody who does explain it.
++       *
++       * OK, I think I have the protection semantics right.... this is really
++       * only important on a multi-user system anyway, to make sure one user
++       * can't send a signal to a process owned by another.  -TYT, 12/12/91
++       *
++       * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
++       * LBT 04.03.94
+        */
+-      write_lock_irq(&tasklist_lock);
++      SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid)
++      {
++              struct task_struct *p;
++              struct task_struct *group_leader = current->group_leader;
++              struct pid *pgrp;
++              int err;
+-      err = -ESRCH;
+-      p = find_task_by_vpid(pid);
+-      if (!p)
+-              goto out;
++              if (!pid)
++                      pid = task_pid_vnr(group_leader);
++              if (!pgid)
++                      pgid = pid;
++              if (pgid < 0)
++                      return -EINVAL;
+-      err = -EINVAL;
+-      if (!thread_group_leader(p))
+-              goto out;
++              /* From this point forward we keep holding onto the tasklist lock
++               * so that our parent does not change from under us. -DaveM
++               */
++              write_lock_irq(&tasklist_lock);
+-      if (same_thread_group(p->real_parent, group_leader)) {
+-              err = -EPERM;
+-              if (task_session(p) != task_session(group_leader))
+-                      goto out;
+-              err = -EACCES;
+-              if (p->did_exec)
+-                      goto out;
+-      } else {
+               err = -ESRCH;
+-              if (p != group_leader)
++              p = find_task_by_vpid(pid);
++              if (!p)
+                       goto out;
+-      }
+-      err = -EPERM;
+-      if (p->signal->leader)
+-              goto out;
++              err = -EINVAL;
++              if (!thread_group_leader(p))
++                      goto out;
+-      pgrp = task_pid(p);
+-      if (pgid != pid) {
+-              struct task_struct *g;
++              if (same_thread_group(p->real_parent, group_leader)) {
++                      err = -EPERM;
++                      if (task_session(p) != task_session(group_leader))
++                              goto out;
++                      err = -EACCES;
++                      if (p->did_exec)
++                              goto out;
++              } else {
++                      err = -ESRCH;
++                      if (p != group_leader)
++                              goto out;
++              }
+-              pgrp = find_vpid(pgid);
+-              g = pid_task(pgrp, PIDTYPE_PGID);
+-              if (!g || task_session(g) != task_session(group_leader))
++              err = -EPERM;
++              if (p->signal->leader)
+                       goto out;
+-      }
+-      err = security_task_setpgid(p, pgid);
+-      if (err)
+-              goto out;
++              pgrp = task_pid(p);
++              if (pgid != pid) {
++                      struct task_struct *g;
+-      if (task_pgrp(p) != pgrp)
+-              change_pid(p, PIDTYPE_PGID, pgrp);
++                      pgrp = find_vpid(pgid);
++                      g = pid_task(pgrp, PIDTYPE_PGID);
++                      if (!g || task_session(g) != task_session(group_leader))
++                              goto out;
++              }
+-      err = 0;
+-out:
+-      /* All paths lead to here, thus we are safe. -DaveM */
+-      write_unlock_irq(&tasklist_lock);
+-      return err;
+-}
++              err = security_task_setpgid(p, pgid);
++              if (err)
++                      goto out;
+-SYSCALL_DEFINE1(getpgid, pid_t, pid)
+-{
+-      struct task_struct *p;
+-      struct pid *grp;
+-      int retval;
++              if (task_pgrp(p) != pgrp)
++                      change_pid(p, PIDTYPE_PGID, pgrp);
+-      rcu_read_lock();
+-      if (!pid)
+-              grp = task_pgrp(current);
+-      else {
+-              retval = -ESRCH;
+-              p = find_task_by_vpid(pid);
+-              if (!p)
+-                      goto out;
+-              grp = task_pgrp(p);
+-              if (!grp)
+-                      goto out;
++              err = 0;
++      out:
++              /* All paths lead to here, thus we are safe. -DaveM */
++              write_unlock_irq(&tasklist_lock);
++              return err;
++      }
+-              retval = security_task_getpgid(p);
+-              if (retval)
+-                      goto out;
++      SYSCALL_DEFINE1(getpgid, pid_t, pid)
++      {
++              struct task_struct *p;
++              struct pid *grp;
++              int retval;
++
++              rcu_read_lock();
++              if (!pid)
++                      grp = task_pgrp(current);
++              else {
++                      retval = -ESRCH;
++                      p = find_task_by_vpid(pid);
++                      if (!p)
++                              goto out;
++                      grp = task_pgrp(p);
++                      if (!grp)
++                              goto out;
++
++                      retval = security_task_getpgid(p);
++                      if (retval)
++                              goto out;
++              }
++              retval = pid_vnr(grp);
++      out:
++              rcu_read_unlock();
++              return retval;
+       }
+-      retval = pid_vnr(grp);
+-out:
+-      rcu_read_unlock();
+-      return retval;
+-}
+ #ifdef __ARCH_WANT_SYS_GETPGRP
+-SYSCALL_DEFINE0(getpgrp)
+-{
+-      return sys_getpgid(0);
+-}
++      SYSCALL_DEFINE0(getpgrp)
++      {
++              return sys_getpgid(0);
++      }
+ #endif
+-SYSCALL_DEFINE1(getsid, pid_t, pid)
+-{
+-      struct task_struct *p;
+-      struct pid *sid;
+-      int retval;
++      SYSCALL_DEFINE1(getsid, pid_t, pid)
++      {
++              struct task_struct *p;
++              struct pid *sid;
++              int retval;
+-      rcu_read_lock();
+-      if (!pid)
+-              sid = task_session(current);
+-      else {
+-              retval = -ESRCH;
+-              p = find_task_by_vpid(pid);
+-              if (!p)
+-                      goto out;
+-              sid = task_session(p);
+-              if (!sid)
+-                      goto out;
++              rcu_read_lock();
++              if (!pid)
++                      sid = task_session(current);
++              else {
++                      retval = -ESRCH;
++                      p = find_task_by_vpid(pid);
++                      if (!p)
++                              goto out;
++                      sid = task_session(p);
++                      if (!sid)
++                              goto out;
+-              retval = security_task_getsid(p);
+-              if (retval)
+-                      goto out;
++                      retval = security_task_getsid(p);
++                      if (retval)
++                              goto out;
++              }
++              retval = pid_vnr(sid);
++      out:
++              rcu_read_unlock();
++              return retval;
+       }
+-      retval = pid_vnr(sid);
+-out:
+-      rcu_read_unlock();
+-      return retval;
+-}
+-SYSCALL_DEFINE0(setsid)
+-{
+-      struct task_struct *group_leader = current->group_leader;
+-      struct pid *sid = task_pid(group_leader);
+-      pid_t session = pid_vnr(sid);
+-      int err = -EPERM;
++      SYSCALL_DEFINE0(setsid)
++      {
++              struct task_struct *group_leader = current->group_leader;
++              struct pid *sid = task_pid(group_leader);
++              pid_t session = pid_vnr(sid);
++              int err = -EPERM;
+-      write_lock_irq(&tasklist_lock);
+-      /* Fail if I am already a session leader */
+-      if (group_leader->signal->leader)
+-              goto out;
++              write_lock_irq(&tasklist_lock);
++              /* Fail if I am already a session leader */
++              if (group_leader->signal->leader)
++                      goto out;
+-      /* Fail if a process group id already exists that equals the
+-       * proposed session id.
+-       */
+-      if (pid_task(sid, PIDTYPE_PGID))
+-              goto out;
++              /* Fail if a process group id already exists that equals the
++               * proposed session id.
++               */
++              if (pid_task(sid, PIDTYPE_PGID))
++                      goto out;
+-      group_leader->signal->leader = 1;
+-      __set_special_pids(sid);
++              group_leader->signal->leader = 1;
++              __set_special_pids(sid);
+-      proc_clear_tty(group_leader);
++              proc_clear_tty(group_leader);
+-      err = session;
+-out:
+-      write_unlock_irq(&tasklist_lock);
+-      return err;
+-}
++              err = session;
++      out:
++              write_unlock_irq(&tasklist_lock);
++              return err;
++      }
+-DECLARE_RWSEM(uts_sem);
++      DECLARE_RWSEM(uts_sem);
+-SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
+-{
+-      int errno = 0;
++      SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
++      {
++              int errno = 0;
+-      down_read(&uts_sem);
+-      if (copy_to_user(name, utsname(), sizeof *name))
+-              errno = -EFAULT;
+-      up_read(&uts_sem);
+-      return errno;
+-}
++              down_read(&uts_sem);
++              if (copy_to_user(name, utsname(), sizeof *name))
++                      errno = -EFAULT;
++              up_read(&uts_sem);
++              return errno;
++      }
+-SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
+-{
+-      int errno;
+-      char tmp[__NEW_UTS_LEN];
++      SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
++      {
++              int errno;
++              char tmp[__NEW_UTS_LEN];
+-      if (!capable(CAP_SYS_ADMIN))
+-              return -EPERM;
+-      if (len < 0 || len > __NEW_UTS_LEN)
+-              return -EINVAL;
+-      down_write(&uts_sem);
+-      errno = -EFAULT;
+-      if (!copy_from_user(tmp, name, len)) {
+-              struct new_utsname *u = utsname();
++              if (!vx_capable(CAP_SYS_ADMIN, VXC_SET_UTSNAME))
++                      return -EPERM;
++              if (len < 0 || len > __NEW_UTS_LEN)
++                      return -EINVAL;
++              down_write(&uts_sem);
++              errno = -EFAULT;
++              if (!copy_from_user(tmp, name, len)) {
++                      struct new_utsname *u = utsname();
+-              memcpy(u->nodename, tmp, len);
+-              memset(u->nodename + len, 0, sizeof(u->nodename) - len);
+-              errno = 0;
++                      memcpy(u->nodename, tmp, len);
++                      memset(u->nodename + len, 0, sizeof(u->nodename) - len);
++                      errno = 0;
++              }
++              up_write(&uts_sem);
++              return errno;
+       }
+-      up_write(&uts_sem);
+-      return errno;
+-}
+ #ifdef __ARCH_WANT_SYS_GETHOSTNAME
+-SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)
+-{
+-      int i, errno;
+-      struct new_utsname *u;
++      SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)
++      {
++              int i, errno;
++              struct new_utsname *u;
+-      if (len < 0)
+-              return -EINVAL;
+-      down_read(&uts_sem);
+-      u = utsname();
+-      i = 1 + strlen(u->nodename);
+-      if (i > len)
+-              i = len;
+-      errno = 0;
+-      if (copy_to_user(name, u->nodename, i))
+-              errno = -EFAULT;
+-      up_read(&uts_sem);
+-      return errno;
+-}
++              if (len < 0)
++                      return -EINVAL;
++              down_read(&uts_sem);
++              u = utsname();
++              i = 1 + strlen(u->nodename);
++              if (i > len)
++                      i = len;
++              errno = 0;
++              if (copy_to_user(name, u->nodename, i))
++                      errno = -EFAULT;
++              up_read(&uts_sem);
++              return errno;
++      }
+ #endif
+-/*
+- * Only setdomainname; getdomainname can be implemented by calling
+- * uname()
+- */
+-SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
+-{
+-      int errno;
+-      char tmp[__NEW_UTS_LEN];
++      /*
++       * Only setdomainname; getdomainname can be implemented by calling
++       * uname()
++       */
++      SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
++      {
++              int errno;
++              char tmp[__NEW_UTS_LEN];
+-      if (!capable(CAP_SYS_ADMIN))
+-              return -EPERM;
+-      if (len < 0 || len > __NEW_UTS_LEN)
+-              return -EINVAL;
++              if (!vx_capable(CAP_SYS_ADMIN, VXC_SET_UTSNAME))
++                      return -EPERM;
++              if (len < 0 || len > __NEW_UTS_LEN)
++                      return -EINVAL;
+-      down_write(&uts_sem);
+-      errno = -EFAULT;
+-      if (!copy_from_user(tmp, name, len)) {
+-              struct new_utsname *u = utsname();
++              down_write(&uts_sem);
++              errno = -EFAULT;
++              if (!copy_from_user(tmp, name, len)) {
++                      struct new_utsname *u = utsname();
+-              memcpy(u->domainname, tmp, len);
+-              memset(u->domainname + len, 0, sizeof(u->domainname) - len);
+-              errno = 0;
++                      memcpy(u->domainname, tmp, len);
++                      memset(u->domainname + len, 0, sizeof(u->domainname) - len);
++                      errno = 0;
++              }
++              up_write(&uts_sem);
++              return errno;
+       }
+-      up_write(&uts_sem);
+-      return errno;
+-}
+-SYSCALL_DEFINE2(getrlimit, unsigned int, resource, struct rlimit __user *, rlim)
+-{
+-      if (resource >= RLIM_NLIMITS)
+-              return -EINVAL;
+-      else {
+-              struct rlimit value;
+-              task_lock(current->group_leader);
+-              value = current->signal->rlim[resource];
+-              task_unlock(current->group_leader);
+-              return copy_to_user(rlim, &value, sizeof(*rlim)) ? -EFAULT : 0;
++      SYSCALL_DEFINE2(getrlimit, unsigned int, resource, struct rlimit __user *, rlim)
++      {
++              if (resource >= RLIM_NLIMITS)
++                      return -EINVAL;
++              else {
++                      struct rlimit value;
++                      task_lock(current->group_leader);
++                      value = current->signal->rlim[resource];
++                      task_unlock(current->group_leader);
++                      return copy_to_user(rlim, &value, sizeof(*rlim)) ? -EFAULT : 0;
++              }
+       }
+-}
+ #ifdef __ARCH_WANT_SYS_OLD_GETRLIMIT
+-/*
+- *    Back compatibility for getrlimit. Needed for some apps.
+- */
+- 
+-SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
+-              struct rlimit __user *, rlim)
+-{
+-      struct rlimit x;
+-      if (resource >= RLIM_NLIMITS)
+-              return -EINVAL;
++      /*
++       *      Back compatibility for getrlimit. Needed for some apps.
++       */
++
++      SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
++                      struct rlimit __user *, rlim)
++      {
++              struct rlimit x;
++              if (resource >= RLIM_NLIMITS)
++                      return -EINVAL;
+-      task_lock(current->group_leader);
+-      x = current->signal->rlim[resource];
+-      task_unlock(current->group_leader);
+-      if (x.rlim_cur > 0x7FFFFFFF)
+-              x.rlim_cur = 0x7FFFFFFF;
+-      if (x.rlim_max > 0x7FFFFFFF)
+-              x.rlim_max = 0x7FFFFFFF;
+-      return copy_to_user(rlim, &x, sizeof(x))?-EFAULT:0;
+-}
++              task_lock(current->group_leader);
++              x = current->signal->rlim[resource];
++              task_unlock(current->group_leader);
++              if (x.rlim_cur > 0x7FFFFFFF)
++                      x.rlim_cur = 0x7FFFFFFF;
++              if (x.rlim_max > 0x7FFFFFFF)
++                      x.rlim_max = 0x7FFFFFFF;
++              return copy_to_user(rlim, &x, sizeof(x))?-EFAULT:0;
++      }
+ #endif
+-SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim)
+-{
+-      struct rlimit new_rlim, *old_rlim;
+-      int retval;
++      SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim)
++      {
++              struct rlimit new_rlim, *old_rlim;
++              int retval;
+-      if (resource >= RLIM_NLIMITS)
+-              return -EINVAL;
+-      if (copy_from_user(&new_rlim, rlim, sizeof(*rlim)))
+-              return -EFAULT;
+-      if (new_rlim.rlim_cur > new_rlim.rlim_max)
+-              return -EINVAL;
+-      old_rlim = current->signal->rlim + resource;
+-      if ((new_rlim.rlim_max > old_rlim->rlim_max) &&
+-          !capable(CAP_SYS_RESOURCE))
+-              return -EPERM;
+-      if (resource == RLIMIT_NOFILE && new_rlim.rlim_max > sysctl_nr_open)
+-              return -EPERM;
++              if (resource >= RLIM_NLIMITS)
++                      return -EINVAL;
++              if (copy_from_user(&new_rlim, rlim, sizeof(*rlim)))
++                      return -EFAULT;
++              if (new_rlim.rlim_cur > new_rlim.rlim_max)
++                      return -EINVAL;
++              old_rlim = current->signal->rlim + resource;
++              if ((new_rlim.rlim_max > old_rlim->rlim_max) &&
++                  !vx_capable(CAP_SYS_RESOURCE, VXC_SET_RLIMIT))
++                      return -EPERM;
++              if (resource == RLIMIT_NOFILE && new_rlim.rlim_max > sysctl_nr_open)
++                      return -EPERM;
+-      retval = security_task_setrlimit(resource, &new_rlim);
+-      if (retval)
+-              return retval;
++              retval = security_task_setrlimit(resource, &new_rlim);
++              if (retval)
++                      return retval;
+-      if (resource == RLIMIT_CPU && new_rlim.rlim_cur == 0) {
+-              /*
+-               * The caller is asking for an immediate RLIMIT_CPU
+-               * expiry.  But we use the zero value to mean "it was
+-               * never set".  So let's cheat and make it one second
+-               * instead
+-               */
+-              new_rlim.rlim_cur = 1;
+-      }
++              if (resource == RLIMIT_CPU && new_rlim.rlim_cur == 0) {
++                      /*
++                       * The caller is asking for an immediate RLIMIT_CPU
++                       * expiry.  But we use the zero value to mean "it was
++                       * never set".  So let's cheat and make it one second
++                       * instead
++                       */
++                      new_rlim.rlim_cur = 1;
++              }
+-      task_lock(current->group_leader);
+-      *old_rlim = new_rlim;
+-      task_unlock(current->group_leader);
++              task_lock(current->group_leader);
++              *old_rlim = new_rlim;
++              task_unlock(current->group_leader);
+-      if (resource != RLIMIT_CPU)
+-              goto out;
++              if (resource != RLIMIT_CPU)
++                      goto out;
+-      /*
+-       * RLIMIT_CPU handling.   Note that the kernel fails to return an error
+-       * code if it rejected the user's attempt to set RLIMIT_CPU.  This is a
+-       * very long-standing error, and fixing it now risks breakage of
+-       * applications, so we live with it
+-       */
+-      if (new_rlim.rlim_cur == RLIM_INFINITY)
+-              goto out;
++              /*
++               * RLIMIT_CPU handling.   Note that the kernel fails to return an error
++               * code if it rejected the user's attempt to set RLIMIT_CPU.  This is a
++               * very long-standing error, and fixing it now risks breakage of
++               * applications, so we live with it
++               */
++              if (new_rlim.rlim_cur == RLIM_INFINITY)
++                      goto out;
+-      update_rlimit_cpu(new_rlim.rlim_cur);
+-out:
+-      return 0;
++              update_rlimit_cpu(new_rlim.rlim_cur);
++      out:
++              return 0;
+ }
+ /*
+diff -NurpP --minimal linux-2.6.31/kernel/sysctl.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sysctl.c
+--- linux-2.6.31/kernel/sysctl.c       2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sysctl.c    2009-09-10 16:11:43.000000000 +0200
+@@ -119,6 +119,7 @@ static int ngroups_max = NGROUPS_MAX;
+ extern char modprobe_path[];
+ extern int modules_disabled;
+ #endif
++extern char vshelper_path[];
+ #ifdef CONFIG_CHR_DEV_SG
+ extern int sg_big_buff;
+ #endif
+@@ -572,6 +573,15 @@ static struct ctl_table kern_table[] = {
+               .strategy       = &sysctl_string,
+       },
+ #endif
++      {
++              .ctl_name       = KERN_VSHELPER,
++              .procname       = "vshelper",
++              .data           = &vshelper_path,
++              .maxlen         = 256,
++              .mode           = 0644,
++              .proc_handler   = &proc_dostring,
++              .strategy       = &sysctl_string,
++      },
+ #ifdef CONFIG_CHR_DEV_SG
+       {
+               .ctl_name       = KERN_SG_BIG_BUFF,
+diff -NurpP --minimal linux-2.6.31/kernel/sysctl_check.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sysctl_check.c
+--- linux-2.6.31/kernel/sysctl_check.c 2009-06-11 17:13:26.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/sysctl_check.c      2009-09-10 16:11:43.000000000 +0200
+@@ -39,6 +39,7 @@ static const struct trans_ctl_table tran
+       { KERN_PANIC,                   "panic" },
+       { KERN_REALROOTDEV,             "real-root-dev" },
++      { KERN_VSHELPER,                "vshelper", },
+       { KERN_SPARC_REBOOT,            "reboot-cmd" },
+       { KERN_CTLALTDEL,               "ctrl-alt-del" },
+@@ -1217,6 +1218,22 @@ static const struct trans_ctl_table tran
+       {}
+ };
++static struct trans_ctl_table trans_vserver_table[] = {
++      { 1,    "debug_switch" },
++      { 2,    "debug_xid" },
++      { 3,    "debug_nid" },
++      { 4,    "debug_tag" },
++      { 5,    "debug_net" },
++      { 6,    "debug_limit" },
++      { 7,    "debug_cres" },
++      { 8,    "debug_dlim" },
++      { 9,    "debug_quota" },
++      { 10,   "debug_cvirt" },
++      { 11,   "debug_space" },
++      { 12,   "debug_misc" },
++      {}
++};
++
+ static const struct trans_ctl_table trans_root_table[] = {
+       { CTL_KERN,     "kernel",       trans_kern_table },
+       { CTL_VM,       "vm",           trans_vm_table },
+@@ -1233,6 +1250,7 @@ static const struct trans_ctl_table tran
+       { CTL_SUNRPC,   "sunrpc",       trans_sunrpc_table },
+       { CTL_PM,       "pm",           trans_pm_table },
+       { CTL_FRV,      "frv",          trans_frv_table },
++      { CTL_VSERVER,  "vserver",      trans_vserver_table },
+       {}
+ };
+diff -NurpP --minimal linux-2.6.31/kernel/time.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/time.c
+--- linux-2.6.31/kernel/time.c 2009-03-24 14:22:45.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/time.c      2009-09-10 16:11:43.000000000 +0200
+@@ -63,6 +63,7 @@ EXPORT_SYMBOL(sys_tz);
+ SYSCALL_DEFINE1(time, time_t __user *, tloc)
+ {
+       time_t i = get_seconds();
++/*    FIXME: do_gettimeofday(&tv) -> vx_gettimeofday(&tv) */
  
        if (tloc) {
                if (put_user(i,tloc))
@@ -15717,13 +17889,13 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/time.c linux-2.6.30.5-vs2.3.0.36.14-
        tv->tv_sec = x.tv_sec;
        tv->tv_nsec = x.tv_usec * NSEC_PER_USEC;
  }
-diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/timer.c
---- linux-2.6.30.5/kernel/timer.c      2009-06-11 17:13:26.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/timer.c   2009-07-04 01:11:39.000000000 +0200
-@@ -37,6 +37,10 @@
- #include <linux/delay.h>
- #include <linux/tick.h>
+diff -NurpP --minimal linux-2.6.31/kernel/timer.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/timer.c
+--- linux-2.6.31/kernel/timer.c        2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/timer.c     2009-09-10 16:38:09.000000000 +0200
+@@ -39,6 +39,10 @@
  #include <linux/kallsyms.h>
+ #include <linux/perf_counter.h>
+ #include <linux/sched.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_cvirt.h>
 +#include <linux/vs_pid.h>
@@ -15731,7 +17903,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-@@ -1103,6 +1107,25 @@ unsigned long get_next_timer_interrupt(u
+@@ -1144,6 +1148,25 @@ unsigned long get_next_timer_interrupt(u
  }
  #endif
  
@@ -15757,7 +17929,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14
  /*
   * Called from the timer interrupt handler to charge one tick to the current
   * process.  user_tick is 1 if the tick is user time, 0 for system.
-@@ -1119,6 +1142,7 @@ void update_process_times(int user_tick)
+@@ -1160,6 +1183,7 @@ void update_process_times(int user_tick)
                rcu_check_callbacks(cpu, user_tick);
        printk_tick();
        scheduler_tick();
@@ -15765,7 +17937,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14
        run_posix_cpu_timers(p);
  }
  
-@@ -1221,12 +1245,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
+@@ -1214,12 +1238,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
  
  #endif
  
@@ -15778,7 +17950,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14
  
  /**
   * sys_getpid - return the thread group id of the current process
-@@ -1255,10 +1273,23 @@ SYSCALL_DEFINE0(getppid)
+@@ -1248,10 +1266,23 @@ SYSCALL_DEFINE0(getppid)
        rcu_read_lock();
        pid = task_tgid_vnr(current->real_parent);
        rcu_read_unlock();
@@ -15803,19 +17975,21 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/timer.c linux-2.6.30.5-vs2.3.0.36.14
  SYSCALL_DEFINE0(getuid)
  {
        /* Only we change this so SMP safe */
-@@ -1429,6 +1460,8 @@ int do_sysinfo(struct sysinfo *info)
-                       tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC;
-                       tp.tv_sec++;
-               }
-+              if (vx_flags(VXF_VIRT_UPTIME, 0))
-+                      vx_vsi_uptime(&tp, NULL);
-               info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
-               info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
-diff -NurpP --minimal linux-2.6.30.5/kernel/user.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/user.c
---- linux-2.6.30.5/kernel/user.c       2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/user.c    2009-07-04 01:11:39.000000000 +0200
-@@ -249,10 +249,10 @@ static struct kobj_type uids_ktype = {
+@@ -1405,6 +1436,10 @@ int do_sysinfo(struct sysinfo *info)
+       ktime_get_ts(&tp);
+       monotonic_to_bootbased(&tp);
++
++      if (vx_flags(VXF_VIRT_UPTIME, 0))
++              vx_vsi_uptime(&tp, NULL);
++
+       info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
+       get_avenrun(info->loads, 0, SI_LOAD_SHIFT - FSHIFT);
+diff -NurpP --minimal linux-2.6.31/kernel/user.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/user.c
+--- linux-2.6.31/kernel/user.c 2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/user.c      2009-09-10 16:11:43.000000000 +0200
+@@ -251,10 +251,10 @@ static struct kobj_type uids_ktype = {
   *
   * See Documentation/scheduler/sched-design-CFS.txt for ramifications.
   */
@@ -15828,7 +18002,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/user.c linux-2.6.30.5-vs2.3.0.36.14-
  
        memset(kobj, 0, sizeof(struct kobject));
        if (up->user_ns != &init_user_ns)
-@@ -280,7 +280,7 @@ int __init uids_sysfs_init(void)
+@@ -282,7 +282,7 @@ int __init uids_sysfs_init(void)
        if (!uids_kset)
                return -ENOMEM;
  
@@ -15836,9 +18010,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/user.c linux-2.6.30.5-vs2.3.0.36.14-
 +      return uids_user_create(NULL, &root_user);
  }
  
- /* work function to remove sysfs directory for a user and free up
-@@ -342,7 +342,8 @@ static void free_user(struct user_struct
- #else /* CONFIG_USER_SCHED && CONFIG_SYSFS */
+ /* delayed work function to remove sysfs directory for a user and free up
+@@ -353,7 +353,8 @@ static struct user_struct *uid_hash_find
+ }
  
  int uids_sysfs_init(void) { return 0; }
 -static inline int uids_user_create(struct user_struct *up) { return 0; }
@@ -15847,7 +18021,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/user.c linux-2.6.30.5-vs2.3.0.36.14-
  static inline void uids_mutex_lock(void) { }
  static inline void uids_mutex_unlock(void) { }
  
-@@ -439,7 +440,7 @@ struct user_struct *alloc_uid(struct use
+@@ -450,7 +451,7 @@ struct user_struct *alloc_uid(struct use
  
                new->user_ns = get_user_ns(ns);
  
@@ -15856,9 +18030,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/user.c linux-2.6.30.5-vs2.3.0.36.14-
                        goto out_destoy_sched;
  
                /*
-diff -NurpP --minimal linux-2.6.30.5/kernel/user_namespace.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/user_namespace.c
---- linux-2.6.30.5/kernel/user_namespace.c     2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/user_namespace.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/user_namespace.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/user_namespace.c
+--- linux-2.6.31/kernel/user_namespace.c       2009-03-24 14:22:45.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/user_namespace.c    2009-09-10 16:11:43.000000000 +0200
 @@ -10,6 +10,7 @@
  #include <linux/slab.h>
  #include <linux/user_namespace.h>
@@ -15884,35 +18058,38 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/user_namespace.c linux-2.6.30.5-vs2.
        INIT_WORK(&ns->destroyer, free_user_ns_work);
        schedule_work(&ns->destroyer);
  }
-diff -NurpP --minimal linux-2.6.30.5/kernel/utsname.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/utsname.c
---- linux-2.6.30.5/kernel/utsname.c    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/utsname.c 2009-07-04 01:11:39.000000000 +0200
-@@ -14,6 +14,7 @@
+diff -NurpP --minimal linux-2.6.31/kernel/utsname.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/utsname.c
+--- linux-2.6.31/kernel/utsname.c      2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/utsname.c   2009-09-10 16:44:37.000000000 +0200
+@@ -14,14 +14,17 @@
  #include <linux/utsname.h>
  #include <linux/err.h>
  #include <linux/slab.h>
 +#include <linux/vserver/global.h>
  
- /*
-  * Clone a new ns copying an original utsname, setting refcount to 1
-@@ -32,6 +33,7 @@ static struct uts_namespace *clone_uts_n
-       memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
-       up_read(&uts_sem);
-       kref_init(&ns->kref);
-+      atomic_inc(&vs_global_uts_ns);
-       return ns;
+ static struct uts_namespace *create_uts_ns(void)
+ {
+       struct uts_namespace *uts_ns;
+       uts_ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
+-      if (uts_ns)
++      if (uts_ns) {
+               kref_init(&uts_ns->kref);
++              atomic_inc(&vs_global_uts_ns);
++      }
+       return uts_ns;
  }
  
-@@ -62,5 +64,6 @@ void free_uts_ns(struct kref *kref)
+@@ -71,5 +74,6 @@ void free_uts_ns(struct kref *kref)
        struct uts_namespace *ns;
  
        ns = container_of(kref, struct uts_namespace, kref);
 +      atomic_dec(&vs_global_uts_ns);
        kfree(ns);
  }
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct.c
---- linux-2.6.30.5/kernel/vserver/cacct.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cacct.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct.c
+--- linux-2.6.31/kernel/vserver/cacct.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,42 @@
 +/*
 + *  linux/kernel/vserver/cacct.c
@@ -15956,9 +18133,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct.c linux-2.6.30.5-vs2.3
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct_init.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct_init.h
---- linux-2.6.30.5/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct_init.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cacct_init.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct_init.h
+--- linux-2.6.31/kernel/vserver/cacct_init.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct_init.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,25 @@
 +
 +
@@ -15985,9 +18162,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct_init.h linux-2.6.30.5-
 +      return;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct_proc.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct_proc.h
---- linux-2.6.30.5/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cacct_proc.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cacct_proc.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct_proc.h
+--- linux-2.6.31/kernel/vserver/cacct_proc.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cacct_proc.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CACCT_PROC_H
 +#define _VX_CACCT_PROC_H
@@ -16042,9 +18219,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cacct_proc.h linux-2.6.30.5-
 +}
 +
 +#endif        /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/context.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/context.c
---- linux-2.6.30.5/kernel/vserver/context.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/context.c 2009-07-04 02:46:55.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/context.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/context.c
+--- linux-2.6.31/kernel/vserver/context.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/context.c   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,1031 @@
 +/*
 + *  linux/kernel/vserver/context.c
@@ -17077,9 +19254,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/context.c linux-2.6.30.5-vs2
 +
 +EXPORT_SYMBOL_GPL(free_vx_info);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt.c
---- linux-2.6.30.5/kernel/vserver/cvirt.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cvirt.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt.c
+--- linux-2.6.31/kernel/vserver/cvirt.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,300 @@
 +/*
 + *  linux/kernel/vserver/cvirt.c
@@ -17381,9 +19558,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt.c linux-2.6.30.5-vs2.3
 +
 +#endif
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt_init.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt_init.h
---- linux-2.6.30.5/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt_init.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cvirt_init.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt_init.h
+--- linux-2.6.31/kernel/vserver/cvirt_init.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt_init.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,69 @@
 +
 +
@@ -17454,9 +19631,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt_init.h linux-2.6.30.5-
 +      return;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt_proc.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt_proc.h
---- linux-2.6.30.5/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/cvirt_proc.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/cvirt_proc.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt_proc.h
+--- linux-2.6.31/kernel/vserver/cvirt_proc.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/cvirt_proc.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,135 @@
 +#ifndef _VX_CVIRT_PROC_H
 +#define _VX_CVIRT_PROC_H
@@ -17593,9 +19770,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/cvirt_proc.h linux-2.6.30.5-
 +}
 +
 +#endif        /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/debug.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/debug.c
---- linux-2.6.30.5/kernel/vserver/debug.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/debug.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/debug.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/debug.c
+--- linux-2.6.31/kernel/vserver/debug.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/debug.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,32 @@
 +/*
 + *  kernel/vserver/debug.c
@@ -17629,9 +19806,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/debug.c linux-2.6.30.5-vs2.3
 +
 +EXPORT_SYMBOL_GPL(dump_vx_info);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/device.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/device.c
---- linux-2.6.30.5/kernel/vserver/device.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/device.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/device.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/device.c
+--- linux-2.6.31/kernel/vserver/device.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/device.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,443 @@
 +/*
 + *  linux/kernel/vserver/device.c
@@ -18076,9 +20253,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/device.c linux-2.6.30.5-vs2.
 +#endif        /* CONFIG_COMPAT */
 +
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/dlimit.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/dlimit.c
---- linux-2.6.30.5/kernel/vserver/dlimit.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/dlimit.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/dlimit.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/dlimit.c
+--- linux-2.6.31/kernel/vserver/dlimit.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/dlimit.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,522 @@
 +/*
 + *  linux/kernel/vserver/dlimit.c
@@ -18602,9 +20779,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/dlimit.c linux-2.6.30.5-vs2.
 +EXPORT_SYMBOL_GPL(locate_dl_info);
 +EXPORT_SYMBOL_GPL(rcu_free_dl_info);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/helper.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/helper.c
---- linux-2.6.30.5/kernel/vserver/helper.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/helper.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/helper.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/helper.c
+--- linux-2.6.31/kernel/vserver/helper.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/helper.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,199 @@
 +/*
 + *  linux/kernel/vserver/helper.c
@@ -18805,9 +20982,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/helper.c linux-2.6.30.5-vs2.
 +      return do_vshelper(vshelper_path, argv, envp, 1);
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/history.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/history.c
---- linux-2.6.30.5/kernel/vserver/history.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/history.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/history.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/history.c
+--- linux-2.6.31/kernel/vserver/history.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/history.c   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,258 @@
 +/*
 + *  kernel/vserver/history.c
@@ -19067,9 +21244,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/history.c linux-2.6.30.5-vs2
 +
 +#endif        /* CONFIG_COMPAT */
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/inet.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/inet.c
---- linux-2.6.30.5/kernel/vserver/inet.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/inet.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/inet.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/inet.c
+--- linux-2.6.31/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/inet.c      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,225 @@
 +
 +#include <linux/in.h>
@@ -19296,9 +21473,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/inet.c linux-2.6.30.5-vs2.3.
 +
 +EXPORT_SYMBOL_GPL(ip_v4_find_src);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/init.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/init.c
---- linux-2.6.30.5/kernel/vserver/init.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/init.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/init.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/init.c
+--- linux-2.6.31/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/init.c      2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,45 @@
 +/*
 + *  linux/kernel/init.c
@@ -19345,9 +21522,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/init.c linux-2.6.30.5-vs2.3.
 +module_init(init_vserver);
 +module_exit(exit_vserver);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/inode.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/inode.c
---- linux-2.6.30.5/kernel/vserver/inode.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/inode.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/inode.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/inode.c
+--- linux-2.6.31/kernel/vserver/inode.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/inode.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,422 @@
 +/*
 + *  linux/kernel/vserver/inode.c
@@ -19771,9 +21948,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/inode.c linux-2.6.30.5-vs2.3
 +
 +#endif        /* CONFIG_PROPAGATE */
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/Kconfig
---- linux-2.6.30.5/kernel/vserver/Kconfig      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/Kconfig   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/Kconfig
+--- linux-2.6.31/kernel/vserver/Kconfig        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/Kconfig     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,251 @@
 +#
 +# Linux VServer configuration
@@ -20026,9 +22203,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/Kconfig linux-2.6.30.5-vs2.3
 +      default y
 +      select SECURITY_CAPABILITIES
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit.c
---- linux-2.6.30.5/kernel/vserver/limit.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit.c   2009-08-07 23:11:53.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/limit.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit.c
+--- linux-2.6.31/kernel/vserver/limit.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,333 @@
 +/*
 + *  linux/kernel/vserver/limit.c
@@ -20363,9 +22540,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit.c linux-2.6.30.5-vs2.3
 +      return points;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit_init.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit_init.h
---- linux-2.6.30.5/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit_init.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/limit_init.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit_init.h
+--- linux-2.6.31/kernel/vserver/limit_init.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit_init.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,31 @@
 +
 +
@@ -20398,9 +22575,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit_init.h linux-2.6.30.5-
 +      }
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit_proc.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit_proc.h
---- linux-2.6.30.5/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/limit_proc.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/limit_proc.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit_proc.h
+--- linux-2.6.31/kernel/vserver/limit_proc.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/limit_proc.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,57 @@
 +#ifndef _VX_LIMIT_PROC_H
 +#define _VX_LIMIT_PROC_H
@@ -20459,9 +22636,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/limit_proc.h linux-2.6.30.5-
 +#endif        /* _VX_LIMIT_PROC_H */
 +
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/Makefile linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/Makefile
---- linux-2.6.30.5/kernel/vserver/Makefile     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/Makefile  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/Makefile linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/Makefile
+--- linux-2.6.31/kernel/vserver/Makefile       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/Makefile    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,18 @@
 +#
 +# Makefile for the Linux vserver routines.
@@ -20481,9 +22658,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/Makefile linux-2.6.30.5-vs2.
 +vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
 +vserver-$(CONFIG_VSERVER_DEVICE) += device.o
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/monitor.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/monitor.c
---- linux-2.6.30.5/kernel/vserver/monitor.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/monitor.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/monitor.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/monitor.c
+--- linux-2.6.31/kernel/vserver/monitor.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/monitor.c   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,138 @@
 +/*
 + *  kernel/vserver/monitor.c
@@ -20623,9 +22800,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/monitor.c linux-2.6.30.5-vs2
 +
 +#endif        /* CONFIG_COMPAT */
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/network.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/network.c
---- linux-2.6.30.5/kernel/vserver/network.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/network.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/network.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/network.c
+--- linux-2.6.31/kernel/vserver/network.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/network.c   2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,864 @@
 +/*
 + *  linux/kernel/vserver/network.c
@@ -21491,10 +23668,10 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/network.c linux-2.6.30.5-vs2
 +EXPORT_SYMBOL_GPL(free_nx_info);
 +EXPORT_SYMBOL_GPL(unhash_nx_info);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/proc.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/proc.c
---- linux-2.6.30.5/kernel/vserver/proc.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/proc.c    2009-07-04 04:52:43.000000000 +0200
-@@ -0,0 +1,1097 @@
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/proc.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/proc.c
+--- linux-2.6.31/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/proc.c      2009-09-10 17:45:54.000000000 +0200
+@@ -0,0 +1,1098 @@
 +/*
 + *  linux/kernel/vserver/proc.c
 + *
@@ -21515,6 +23692,7 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/proc.c linux-2.6.30.5-vs2.3.
 +
 +#include <linux/proc_fs.h>
 +#include <linux/fs_struct.h>
++#include <linux/mount.h>
 +#include <asm/unistd.h>
 +
 +#include <linux/vs_context.h>
@@ -22592,9 +24770,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/proc.c linux-2.6.30.5-vs2.3.
 +      return buffer - orig;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched.c
---- linux-2.6.30.5/kernel/vserver/sched.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/sched.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched.c
+--- linux-2.6.31/kernel/vserver/sched.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,414 @@
 +/*
 + *  linux/kernel/vserver/sched.c
@@ -23010,9 +25188,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched.c linux-2.6.30.5-vs2.3
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched_init.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched_init.h
---- linux-2.6.30.5/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched_init.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/sched_init.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched_init.h
+--- linux-2.6.31/kernel/vserver/sched_init.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched_init.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,50 @@
 +
 +static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -23064,9 +25242,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched_init.h linux-2.6.30.5-
 +{
 +      return;
 +}
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched_proc.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched_proc.h
---- linux-2.6.30.5/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sched_proc.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/sched_proc.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched_proc.h
+--- linux-2.6.31/kernel/vserver/sched_proc.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sched_proc.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,57 @@
 +#ifndef _VX_SCHED_PROC_H
 +#define _VX_SCHED_PROC_H
@@ -23125,9 +25303,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sched_proc.h linux-2.6.30.5-
 +}
 +
 +#endif        /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/signal.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/signal.c
---- linux-2.6.30.5/kernel/vserver/signal.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/signal.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/signal.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/signal.c
+--- linux-2.6.31/kernel/vserver/signal.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/signal.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,132 @@
 +/*
 + *  linux/kernel/vserver/signal.c
@@ -23261,9 +25439,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/signal.c linux-2.6.30.5-vs2.
 +      return ret;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/space.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/space.c
---- linux-2.6.30.5/kernel/vserver/space.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/space.c   2009-07-04 04:52:00.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/space.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/space.c
+--- linux-2.6.31/kernel/vserver/space.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/space.c     2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,375 @@
 +/*
 + *  linux/kernel/vserver/space.c
@@ -23640,9 +25818,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/space.c linux-2.6.30.5-vs2.3
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/switch.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/switch.c
---- linux-2.6.30.5/kernel/vserver/switch.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/switch.c  2009-08-07 22:54:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/switch.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/switch.c
+--- linux-2.6.31/kernel/vserver/switch.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/switch.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,546 @@
 +/*
 + *  linux/kernel/vserver/switch.c
@@ -24190,9 +26368,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/switch.c linux-2.6.30.5-vs2.
 +}
 +
 +#endif        /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sysctl.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sysctl.c
---- linux-2.6.30.5/kernel/vserver/sysctl.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/sysctl.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/sysctl.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sysctl.c
+--- linux-2.6.31/kernel/vserver/sysctl.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/sysctl.c    2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,244 @@
 +/*
 + *  kernel/vserver/sysctl.c
@@ -24438,9 +26616,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/sysctl.c linux-2.6.30.5-vs2.
 +EXPORT_SYMBOL_GPL(vx_debug_space);
 +EXPORT_SYMBOL_GPL(vx_debug_misc);
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/tag.c linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/tag.c
---- linux-2.6.30.5/kernel/vserver/tag.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/tag.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/tag.c linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/tag.c
+--- linux-2.6.31/kernel/vserver/tag.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/tag.c       2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,63 @@
 +/*
 + *  linux/kernel/vserver/tag.c
@@ -24505,9 +26683,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/tag.c linux-2.6.30.5-vs2.3.0
 +}
 +
 +
-diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/vci_config.h linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/vci_config.h
---- linux-2.6.30.5/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/kernel/vserver/vci_config.h      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/kernel/vserver/vci_config.h linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/vci_config.h
+--- linux-2.6.31/kernel/vserver/vci_config.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/kernel/vserver/vci_config.h        2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,81 @@
 +
 +/*  interface version */
@@ -24590,21 +26768,9 @@ diff -NurpP --minimal linux-2.6.30.5/kernel/vserver/vci_config.h linux-2.6.30.5-
 +      0;
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/Makefile linux-2.6.30.5-vs2.3.0.36.14-pre7/Makefile
---- linux-2.6.30.5/Makefile    2009-08-17 16:37:28.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/Makefile 2009-08-22 18:56:40.000000000 +0200
-@@ -1,7 +1,7 @@
- VERSION = 2
- PATCHLEVEL = 6
- SUBLEVEL = 30
--EXTRAVERSION = .5
-+EXTRAVERSION = .5-vs2.3.0.36.14-pre7
- NAME = Man-Eating Seals of Antiquity
- # *DOCUMENTATION*
-diff -NurpP --minimal linux-2.6.30.5/mm/filemap_xip.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/filemap_xip.c
---- linux-2.6.30.5/mm/filemap_xip.c    2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/filemap_xip.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/filemap_xip.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/filemap_xip.c
+--- linux-2.6.31/mm/filemap_xip.c      2009-06-11 17:13:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/filemap_xip.c   2009-09-10 16:11:43.000000000 +0200
 @@ -17,6 +17,7 @@
  #include <linux/sched.h>
  #include <linux/seqlock.h>
@@ -24613,9 +26779,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/filemap_xip.c linux-2.6.30.5-vs2.3.0.36.
  #include <asm/tlbflush.h>
  #include <asm/io.h>
  
-diff -NurpP --minimal linux-2.6.30.5/mm/fremap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/fremap.c
---- linux-2.6.30.5/mm/fremap.c 2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/fremap.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/fremap.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/fremap.c
+--- linux-2.6.31/mm/fremap.c   2009-03-24 14:22:45.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/fremap.c        2009-09-10 16:11:43.000000000 +0200
 @@ -16,6 +16,7 @@
  #include <linux/module.h>
  #include <linux/syscalls.h>
@@ -24624,9 +26790,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/fremap.c linux-2.6.30.5-vs2.3.0.36.14-pr
  
  #include <asm/mmu_context.h>
  #include <asm/cacheflush.h>
-diff -NurpP --minimal linux-2.6.30.5/mm/hugetlb.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/hugetlb.c
---- linux-2.6.30.5/mm/hugetlb.c        2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/hugetlb.c     2009-08-17 16:56:58.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/hugetlb.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/hugetlb.c
+--- linux-2.6.31/mm/hugetlb.c  2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/hugetlb.c       2009-09-10 16:11:43.000000000 +0200
 @@ -24,6 +24,7 @@
  #include <asm/io.h>
  
@@ -24635,9 +26801,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/hugetlb.c linux-2.6.30.5-vs2.3.0.36.14-p
  #include "internal.h"
  
  const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL;
-diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/memory.c
---- linux-2.6.30.5/mm/memory.c 2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/memory.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/memory.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/memory.c
+--- linux-2.6.31/mm/memory.c   2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/memory.c        2009-09-10 16:26:26.000000000 +0200
 @@ -55,6 +55,7 @@
  #include <linux/kallsyms.h>
  #include <linux/swapops.h>
@@ -24646,7 +26812,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
  
  #include <asm/pgalloc.h>
  #include <asm/uaccess.h>
-@@ -612,6 +613,9 @@ static int copy_pte_range(struct mm_stru
+@@ -613,6 +614,9 @@ static int copy_pte_range(struct mm_stru
        int progress = 0;
        int rss[2];
  
@@ -24656,7 +26822,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
  again:
        rss[1] = rss[0] = 0;
        dst_pte = pte_alloc_map_lock(dst_mm, dst_pmd, addr, &dst_ptl);
-@@ -2575,6 +2579,8 @@ static int do_anonymous_page(struct mm_s
+@@ -2627,6 +2631,8 @@ static int do_anonymous_page(struct mm_s
        /* Allocate our own private page. */
        pte_unmap(page_table);
  
@@ -24665,7 +26831,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
        if (unlikely(anon_vma_prepare(vma)))
                goto oom;
        page = alloc_zeroed_user_highpage_movable(vma, address);
-@@ -2858,6 +2864,7 @@ static inline int handle_pte_fault(struc
+@@ -2909,6 +2915,7 @@ static inline int handle_pte_fault(struc
  {
        pte_t entry;
        spinlock_t *ptl;
@@ -24673,10 +26839,10 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
  
        entry = *pte;
        if (!pte_present(entry)) {
-@@ -2882,9 +2889,12 @@ static inline int handle_pte_fault(struc
+@@ -2933,9 +2940,12 @@ static inline int handle_pte_fault(struc
        if (unlikely(!pte_same(*pte, entry)))
                goto unlock;
-       if (write_access) {
+       if (flags & FAULT_FLAG_WRITE) {
 -              if (!pte_write(entry))
 -                      return do_wp_page(mm, vma, address,
 +              if (!pte_write(entry)) {
@@ -24688,7 +26854,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
                entry = pte_mkdirty(entry);
        }
        entry = pte_mkyoung(entry);
-@@ -2902,7 +2912,10 @@ static inline int handle_pte_fault(struc
+@@ -2953,7 +2963,10 @@ static inline int handle_pte_fault(struc
        }
  unlock:
        pte_unmap_unlock(pte, ptl);
@@ -24700,9 +26866,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/memory.c linux-2.6.30.5-vs2.3.0.36.14-pr
  }
  
  /*
-diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mlock.c
---- linux-2.6.30.5/mm/mlock.c  2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mlock.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/mlock.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/mlock.c
+--- linux-2.6.31/mm/mlock.c    2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/mlock.c 2009-09-10 16:29:21.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <linux/rmap.h>
  #include <linux/mmzone.h>
@@ -24711,7 +26877,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
  #include "internal.h"
  
-@@ -415,7 +416,7 @@ success:
+@@ -393,7 +394,7 @@ success:
        nr_pages = (end - start) >> PAGE_SHIFT;
        if (!lock)
                nr_pages = -nr_pages;
@@ -24720,7 +26886,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        /*
         * vm_flags is protected by the mmap_sem held in write mode.
-@@ -492,7 +493,7 @@ static int do_mlock(unsigned long start,
+@@ -470,7 +471,7 @@ static int do_mlock(unsigned long start,
  
  SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
  {
@@ -24729,7 +26895,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
        unsigned long lock_limit;
        int error = -ENOMEM;
  
-@@ -505,8 +506,10 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
+@@ -483,8 +484,10 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
        len = PAGE_ALIGN(len + (start & ~PAGE_MASK));
        start &= PAGE_MASK;
  
@@ -24742,7 +26908,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
        lock_limit >>= PAGE_SHIFT;
-@@ -514,6 +517,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
+@@ -492,6 +495,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
        /* check against resource limits */
        if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
                error = do_mlock(start, len, 1);
@@ -24750,7 +26916,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
        up_write(&current->mm->mmap_sem);
        return error;
  }
-@@ -575,6 +579,8 @@ SYSCALL_DEFINE1(mlockall, int, flags)
+@@ -553,6 +557,8 @@ SYSCALL_DEFINE1(mlockall, int, flags)
        lock_limit >>= PAGE_SHIFT;
  
        ret = -ENOMEM;
@@ -24759,39 +26925,39 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mlock.c linux-2.6.30.5-vs2.3.0.36.14-pre
        if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
            capable(CAP_IPC_LOCK))
                ret = do_mlockall(flags);
-@@ -652,8 +658,10 @@ void *alloc_locked_buffer(size_t size)
-       if (!buffer)
+@@ -627,8 +633,10 @@ int account_locked_memory(struct mm_stru
+       if (lim < vm)
                goto out;
  
--      current->mm->total_vm  += pgsz;
--      current->mm->locked_vm += pgsz;
-+      // current->mm->total_vm  += pgsz;
-+      vx_vmpages_add(current->mm, pgsz);
-+      // current->mm->locked_vm += pgsz;
-+      vx_vmlocked_add(current->mm, pgsz);
+-      mm->total_vm  += pgsz;
+-      mm->locked_vm += pgsz;
++      // mm->total_vm  += pgsz;
++      vx_vmpages_add(mm, pgsz);
++      // mm->locked_vm += pgsz;
++      vx_vmlocked_add(mm, pgsz);
  
+       error = 0;
   out:
-       up_write(&current->mm->mmap_sem);
-@@ -666,8 +674,10 @@ void release_locked_buffer(void *buffer,
+@@ -642,8 +650,10 @@ void refund_locked_memory(struct mm_stru
  
-       down_write(&current->mm->mmap_sem);
+       down_write(&mm->mmap_sem);
  
--      current->mm->total_vm  -= pgsz;
--      current->mm->locked_vm -= pgsz;
-+      // current->mm->total_vm  -= pgsz;
-+      vx_vmpages_sub(current->mm, pgsz);
-+      // current->mm->locked_vm -= pgsz;
-+      vx_vmlocked_sub(current->mm, pgsz);
+-      mm->total_vm  -= pgsz;
+-      mm->locked_vm -= pgsz;
++      // mm->total_vm  -= pgsz;
++      vx_vmpages_sub(mm, pgsz);
++      // mm->locked_vm -= pgsz;
++      vx_vmlocked_sub(mm, pgsz);
  
-       up_write(&current->mm->mmap_sem);
+       up_write(&mm->mmap_sem);
  }
-diff -NurpP --minimal linux-2.6.30.5/mm/mmap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mmap.c
---- linux-2.6.30.5/mm/mmap.c   2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mmap.c        2009-07-23 13:50:49.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/mmap.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/mmap.c
+--- linux-2.6.31/mm/mmap.c     2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/mmap.c  2009-09-10 16:30:48.000000000 +0200
 @@ -1222,7 +1222,8 @@ munmap_back:
-       if (correct_wcount)
-               atomic_inc(&inode->i_writecount);
  out:
+       perf_counter_mmap(vma);
 -      mm->total_vm += len >> PAGE_SHIFT;
 +      // mm->total_vm += len >> PAGE_SHIFT;
 +      vx_vmpages_add(mm, len >> PAGE_SHIFT);
@@ -24906,19 +27072,18 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mmap.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        return 1;
  }
  
-@@ -2306,8 +2324,7 @@ int install_special_mapping(struct mm_st
+@@ -2306,7 +2324,7 @@ int install_special_mapping(struct mm_st
                return -ENOMEM;
        }
  
 -      mm->total_vm += len >> PAGE_SHIFT;
--
 +      vx_vmpages_add(mm, len >> PAGE_SHIFT);
-       return 0;
- }
  
-diff -NurpP --minimal linux-2.6.30.5/mm/mremap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mremap.c
---- linux-2.6.30.5/mm/mremap.c 2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/mremap.c      2009-07-04 01:11:39.000000000 +0200
+       perf_counter_mmap(vma);
+diff -NurpP --minimal linux-2.6.31/mm/mremap.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/mremap.c
+--- linux-2.6.31/mm/mremap.c   2009-03-24 14:22:45.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/mremap.c        2009-09-10 16:11:43.000000000 +0200
 @@ -19,6 +19,7 @@
  #include <linux/security.h>
  #include <linux/syscalls.h>
@@ -24970,10 +27135,10 @@ diff -NurpP --minimal linux-2.6.30.5/mm/mremap.c linux-2.6.30.5-vs2.3.0.36.14-pr
                                mlock_vma_pages_range(vma, addr + old_len,
                                                   addr + new_len);
                        }
-diff -NurpP --minimal linux-2.6.30.5/mm/nommu.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/nommu.c
---- linux-2.6.30.5/mm/nommu.c  2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/nommu.c       2009-08-06 02:11:38.000000000 +0200
-@@ -1346,7 +1346,7 @@ unsigned long do_mmap_pgoff(struct file 
+diff -NurpP --minimal linux-2.6.31/mm/nommu.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/nommu.c
+--- linux-2.6.31/mm/nommu.c    2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/nommu.c 2009-09-10 16:11:43.000000000 +0200
+@@ -1365,7 +1365,7 @@ unsigned long do_mmap_pgoff(struct file 
        /* okay... we have a mapping; now we have to register it */
        result = vma->vm_start;
  
@@ -24982,7 +27147,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/nommu.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
  share:
        add_vma_to_mm(current->mm, vma);
-@@ -1617,7 +1617,7 @@ void exit_mmap(struct mm_struct *mm)
+@@ -1636,7 +1636,7 @@ void exit_mmap(struct mm_struct *mm)
  
        kenter("");
  
@@ -24991,9 +27156,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/nommu.c linux-2.6.30.5-vs2.3.0.36.14-pre
  
        while ((vma = mm->mmap)) {
                mm->mmap = vma->vm_next;
-diff -NurpP --minimal linux-2.6.30.5/mm/oom_kill.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/oom_kill.c
---- linux-2.6.30.5/mm/oom_kill.c       2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/oom_kill.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/oom_kill.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/oom_kill.c
+--- linux-2.6.31/mm/oom_kill.c 2009-06-11 17:13:27.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/oom_kill.c      2009-09-10 16:11:43.000000000 +0200
 @@ -27,6 +27,7 @@
  #include <linux/notifier.h>
  #include <linux/memcontrol.h>
@@ -25048,19 +27213,19 @@ diff -NurpP --minimal linux-2.6.30.5/mm/oom_kill.c linux-2.6.30.5-vs2.3.0.36.14-
  
        /* Try to kill a child first */
        list_for_each_entry(c, &p->children, sibling) {
-diff -NurpP --minimal linux-2.6.30.5/mm/page_alloc.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/page_alloc.c
---- linux-2.6.30.5/mm/page_alloc.c     2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/page_alloc.c  2009-08-17 16:56:58.000000000 +0200
-@@ -46,6 +46,8 @@
- #include <linux/page-isolation.h>
+diff -NurpP --minimal linux-2.6.31/mm/page_alloc.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/page_alloc.c
+--- linux-2.6.31/mm/page_alloc.c       2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/page_alloc.c    2009-09-10 16:26:46.000000000 +0200
+@@ -48,6 +48,8 @@
  #include <linux/page_cgroup.h>
  #include <linux/debugobjects.h>
+ #include <linux/kmemleak.h>
 +#include <linux/vs_base.h>
 +#include <linux/vs_limit.h>
  
  #include <asm/tlbflush.h>
  #include <asm/div64.h>
-@@ -1865,6 +1867,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -2078,6 +2080,9 @@ void si_meminfo(struct sysinfo *val)
        val->totalhigh = totalhigh_pages;
        val->freehigh = nr_free_highpages();
        val->mem_unit = PAGE_SIZE;
@@ -25070,7 +27235,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/page_alloc.c linux-2.6.30.5-vs2.3.0.36.1
  }
  
  EXPORT_SYMBOL(si_meminfo);
-@@ -1885,6 +1890,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2098,6 +2103,9 @@ void si_meminfo_node(struct sysinfo *val
        val->freehigh = 0;
  #endif
        val->mem_unit = PAGE_SIZE;
@@ -25080,9 +27245,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/page_alloc.c linux-2.6.30.5-vs2.3.0.36.1
  }
  #endif
  
-diff -NurpP --minimal linux-2.6.30.5/mm/rmap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/rmap.c
---- linux-2.6.30.5/mm/rmap.c   2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/rmap.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/rmap.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/rmap.c
+--- linux-2.6.31/mm/rmap.c     2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/rmap.c  2009-09-10 16:11:43.000000000 +0200
 @@ -50,6 +50,7 @@
  #include <linux/memcontrol.h>
  #include <linux/mmu_notifier.h>
@@ -25091,10 +27256,10 @@ diff -NurpP --minimal linux-2.6.30.5/mm/rmap.c linux-2.6.30.5-vs2.3.0.36.14-pre7
  
  #include <asm/tlbflush.h>
  
-diff -NurpP --minimal linux-2.6.30.5/mm/shmem.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/shmem.c
---- linux-2.6.30.5/mm/shmem.c  2009-06-11 17:13:27.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/shmem.c       2009-07-04 01:11:39.000000000 +0200
-@@ -1776,7 +1776,7 @@ static int shmem_statfs(struct dentry *d
+diff -NurpP --minimal linux-2.6.31/mm/shmem.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/shmem.c
+--- linux-2.6.31/mm/shmem.c    2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/shmem.c 2009-09-10 16:11:43.000000000 +0200
+@@ -1777,7 +1777,7 @@ static int shmem_statfs(struct dentry *d
  {
        struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
  
@@ -25103,7 +27268,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/shmem.c linux-2.6.30.5-vs2.3.0.36.14-pre
        buf->f_bsize = PAGE_CACHE_SIZE;
        buf->f_namelen = NAME_MAX;
        spin_lock(&sbinfo->stat_lock);
-@@ -2345,7 +2345,7 @@ static int shmem_fill_super(struct super
+@@ -2346,7 +2346,7 @@ static int shmem_fill_super(struct super
        sb->s_maxbytes = SHMEM_MAX_BYTES;
        sb->s_blocksize = PAGE_CACHE_SIZE;
        sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -25112,10 +27277,10 @@ diff -NurpP --minimal linux-2.6.30.5/mm/shmem.c linux-2.6.30.5-vs2.3.0.36.14-pre
        sb->s_op = &shmem_ops;
        sb->s_time_gran = 1;
  #ifdef CONFIG_TMPFS_POSIX_ACL
-diff -NurpP --minimal linux-2.6.30.5/mm/slab.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/slab.c
---- linux-2.6.30.5/mm/slab.c   2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/slab.c        2009-08-06 02:11:38.000000000 +0200
-@@ -510,6 +510,8 @@ struct kmem_cache {
+diff -NurpP --minimal linux-2.6.31/mm/slab.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/slab.c
+--- linux-2.6.31/mm/slab.c     2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/slab.c  2009-09-10 16:11:43.000000000 +0200
+@@ -431,6 +431,8 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEMISS(x) do { } while (0)
  #endif
  
@@ -25124,7 +27289,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/slab.c linux-2.6.30.5-vs2.3.0.36.14-pre7
  #if DEBUG
  
  /*
-@@ -3284,6 +3286,7 @@ retry:
+@@ -3253,6 +3255,7 @@ retry:
  
        obj = slab_get_obj(cachep, slabp, nodeid);
        check_slabp(cachep, slabp);
@@ -25132,25 +27297,25 @@ diff -NurpP --minimal linux-2.6.30.5/mm/slab.c linux-2.6.30.5-vs2.3.0.36.14-pre7
        l3->free_objects--;
        /* move slabp to correct slabp list: */
        list_del(&slabp->list);
-@@ -3358,6 +3361,7 @@ __cache_alloc_node(struct kmem_cache *ca
+@@ -3329,6 +3332,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:
 +      vx_slab_alloc(cachep, flags);
        local_irq_restore(save_flags);
        ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
-@@ -3531,6 +3535,7 @@ static inline void __cache_free(struct k
+       kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags,
+@@ -3515,6 +3519,7 @@ static inline void __cache_free(struct k
        check_irq_off();
+       kmemleak_free_recursive(objp, cachep->flags);
        objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0));
 +      vx_slab_free(cachep);
  
-       /*
-        * Skip calling cache_free_alien() when the platform is not numa.
-diff -NurpP --minimal linux-2.6.30.5/mm/slab_vs.h linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/slab_vs.h
---- linux-2.6.30.5/mm/slab_vs.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/slab_vs.h     2009-07-04 01:11:39.000000000 +0200
+       kmemcheck_slab_free(cachep, objp, obj_size(cachep));
+diff -NurpP --minimal linux-2.6.31/mm/slab_vs.h linux-2.6.31-vs2.3.0.36.14-pre8/mm/slab_vs.h
+--- linux-2.6.31/mm/slab_vs.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/slab_vs.h       2009-09-10 16:11:43.000000000 +0200
 @@ -0,0 +1,27 @@
 +
 +#include <linux/vserver/context.h>
@@ -25179,9 +27344,9 @@ diff -NurpP --minimal linux-2.6.30.5/mm/slab_vs.h linux-2.6.30.5-vs2.3.0.36.14-p
 +      atomic_sub(cachep->buffer_size, &current->vx_info->cacct.slab[what]);
 +}
 +
-diff -NurpP --minimal linux-2.6.30.5/mm/swapfile.c linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/swapfile.c
---- linux-2.6.30.5/mm/swapfile.c       2009-03-24 14:22:45.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/mm/swapfile.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/mm/swapfile.c linux-2.6.31-vs2.3.0.36.14-pre8/mm/swapfile.c
+--- linux-2.6.31/mm/swapfile.c 2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/mm/swapfile.c      2009-09-10 16:11:43.000000000 +0200
 @@ -34,6 +34,8 @@
  #include <asm/tlbflush.h>
  #include <linux/swapops.h>
@@ -25191,7 +27356,7 @@ diff -NurpP --minimal linux-2.6.30.5/mm/swapfile.c linux-2.6.30.5-vs2.3.0.36.14-
  
  static DEFINE_SPINLOCK(swap_lock);
  static unsigned int nr_swapfiles;
-@@ -1935,6 +1937,8 @@ void si_swapinfo(struct sysinfo *val)
+@@ -2061,6 +2063,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);
@@ -25200,18 +27365,18 @@ diff -NurpP --minimal linux-2.6.30.5/mm/swapfile.c linux-2.6.30.5-vs2.3.0.36.14-
  }
  
  /*
-diff -NurpP --minimal linux-2.6.30.5/net/core/dev.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/dev.c
---- linux-2.6.30.5/net/core/dev.c      2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/dev.c   2009-08-17 16:56:58.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/core/dev.c linux-2.6.31-vs2.3.0.36.14-pre8/net/core/dev.c
+--- linux-2.6.31/net/core/dev.c        2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/core/dev.c     2009-09-10 17:16:15.000000000 +0200
 @@ -126,6 +126,7 @@
  #include <linux/in.h>
  #include <linux/jhash.h>
  #include <linux/random.h>
 +#include <linux/vs_inet.h>
+ #include <trace/events/napi.h>
  
  #include "net-sysfs.h"
-@@ -2904,6 +2905,8 @@ static int dev_ifconf(struct net *net, c
+@@ -2941,6 +2942,8 @@ static int dev_ifconf(struct net *net, c
  
        total = 0;
        for_each_netdev(net, dev) {
@@ -25220,7 +27385,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/dev.c linux-2.6.30.5-vs2.3.0.36.14
                for (i = 0; i < NPROTO; i++) {
                        if (gifconf_list[i]) {
                                int done;
-@@ -2972,6 +2975,9 @@ static void dev_seq_printf_stats(struct 
+@@ -3009,6 +3012,9 @@ static void dev_seq_printf_stats(struct 
  {
        const struct net_device_stats *stats = dev_get_stats(dev);
  
@@ -25230,7 +27395,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/dev.c linux-2.6.30.5-vs2.3.0.36.14
        seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "
                   "%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
                   dev->name, stats->rx_bytes, stats->rx_packets,
-@@ -4915,6 +4921,15 @@ int dev_change_net_namespace(struct net_
+@@ -5257,6 +5263,15 @@ int dev_change_net_namespace(struct net_
                goto out;
  #endif
  
@@ -25246,7 +27411,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/dev.c linux-2.6.30.5-vs2.3.0.36.14
        /* Ensure the device has been registrered */
        err = -EINVAL;
        if (dev->reg_state != NETREG_REGISTERED)
-@@ -4974,6 +4989,8 @@ int dev_change_net_namespace(struct net_
+@@ -5317,6 +5332,8 @@ int dev_change_net_namespace(struct net_
  
        netdev_unregister_kobject(dev);
  
@@ -25255,10 +27420,10 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/dev.c linux-2.6.30.5-vs2.3.0.36.14
        /* Actually switch the network namespace */
        dev_net_set(dev, net);
  
-diff -NurpP --minimal linux-2.6.30.5/net/core/net-sysfs.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/net-sysfs.c
---- linux-2.6.30.5/net/core/net-sysfs.c        2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/net-sysfs.c     2009-07-04 01:11:39.000000000 +0200
-@@ -512,6 +512,9 @@ int netdev_register_kobject(struct net_d
+diff -NurpP --minimal linux-2.6.31/net/core/net-sysfs.c linux-2.6.31-vs2.3.0.36.14-pre8/net/core/net-sysfs.c
+--- linux-2.6.31/net/core/net-sysfs.c  2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/core/net-sysfs.c       2009-09-10 16:11:43.000000000 +0200
+@@ -513,6 +513,9 @@ int netdev_register_kobject(struct net_d
        if (dev_net(net) != &init_net)
                return 0;
  
@@ -25268,9 +27433,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/net-sysfs.c linux-2.6.30.5-vs2.3.0
        return device_add(dev);
  }
  
-diff -NurpP --minimal linux-2.6.30.5/net/core/rtnetlink.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/rtnetlink.c
---- linux-2.6.30.5/net/core/rtnetlink.c        2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/rtnetlink.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/core/rtnetlink.c linux-2.6.31-vs2.3.0.36.14-pre8/net/core/rtnetlink.c
+--- linux-2.6.31/net/core/rtnetlink.c  2009-06-11 17:13:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/core/rtnetlink.c       2009-09-10 16:11:43.000000000 +0200
 @@ -690,6 +690,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
  
        idx = 0;
@@ -25290,9 +27455,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/rtnetlink.c linux-2.6.30.5-vs2.3.0
        skb = nlmsg_new(if_nlmsg_size(dev), GFP_KERNEL);
        if (skb == NULL)
                goto errout;
-diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/sock.c
---- linux-2.6.30.5/net/core/sock.c     2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/core/sock.c  2009-08-17 17:00:07.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/core/sock.c linux-2.6.31-vs2.3.0.36.14-pre8/net/core/sock.c
+--- linux-2.6.31/net/core/sock.c       2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/core/sock.c    2009-09-10 16:11:43.000000000 +0200
 @@ -125,6 +125,10 @@
  #include <linux/ipsec.h>
  
@@ -25304,7 +27469,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
  
  #ifdef CONFIG_INET
  #include <net/tcp.h>
-@@ -968,6 +972,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -974,6 +978,8 @@ static struct sock *sk_prot_alloc(struct
                if (!try_module_get(prot->owner))
                        goto out_free_sec;
        }
@@ -25313,7 +27478,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
  
        return sk;
  
-@@ -1045,6 +1051,11 @@ void sk_free(struct sock *sk)
+@@ -1053,6 +1059,11 @@ static void __sk_free(struct sock *sk)
                       __func__, atomic_read(&sk->sk_omem_alloc));
  
        put_net(sock_net(sk));
@@ -25325,7 +27490,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
        sk_prot_free(sk->sk_prot_creator, sk);
  }
  
-@@ -1080,6 +1091,8 @@ struct sock *sk_clone(const struct sock 
+@@ -1100,6 +1111,8 @@ struct sock *sk_clone(const struct sock 
  
                /* SANITY */
                get_net(sock_net(newsk));
@@ -25334,7 +27499,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
                sk_node_init(&newsk->sk_node);
                sock_lock_init(newsk);
                bh_lock_sock(newsk);
-@@ -1131,6 +1144,12 @@ struct sock *sk_clone(const struct sock 
+@@ -1154,6 +1167,12 @@ struct sock *sk_clone(const struct sock 
                smp_wmb();
                atomic_set(&newsk->sk_refcnt, 2);
  
@@ -25347,7 +27512,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
                /*
                 * Increment the counter in the same struct proto as the master
                 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -1820,6 +1839,12 @@ void sock_init_data(struct socket *sock,
+@@ -1867,6 +1886,12 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_stamp = ktime_set(-1L, 0);
  
@@ -25360,18 +27525,18 @@ diff -NurpP --minimal linux-2.6.30.5/net/core/sock.c linux-2.6.30.5-vs2.3.0.36.1
        /*
         * Before updating sk_refcnt, we must commit prior changes to memory
         * (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/af_inet.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/af_inet.c
---- linux-2.6.30.5/net/ipv4/af_inet.c  2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/af_inet.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/af_inet.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/af_inet.c
+--- linux-2.6.31/net/ipv4/af_inet.c    2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/af_inet.c 2009-09-10 16:11:43.000000000 +0200
 @@ -115,6 +115,7 @@
  #ifdef CONFIG_IP_MROUTE
  #include <linux/mroute.h>
  #endif
 +#include <linux/vs_limit.h>
  
- extern void ip_mc_drop_socket(struct sock *sk);
  
-@@ -325,9 +326,12 @@ lookup_protocol:
+ /* The inetsw table contains everything that inet_create needs to
+@@ -324,9 +325,12 @@ lookup_protocol:
        }
  
        err = -EPERM;
@@ -25439,9 +27604,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/af_inet.c linux-2.6.30.5-vs2.3.0.3
                sin->sin_port = inet->sport;
                sin->sin_addr.s_addr = addr;
        }
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/devinet.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/devinet.c
---- linux-2.6.30.5/net/ipv4/devinet.c  2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/devinet.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/devinet.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/devinet.c
+--- linux-2.6.31/net/ipv4/devinet.c    2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/devinet.c 2009-09-10 16:11:43.000000000 +0200
 @@ -413,6 +413,7 @@ struct in_device *inetdev_by_index(struc
        return in_dev;
  }
@@ -25508,10 +27673,10 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/devinet.c linux-2.6.30.5-vs2.3.0.3
                        if (ip_idx < s_ip_idx)
                                continue;
                        if (inet_fill_ifaddr(skb, ifa, NETLINK_CB(cb->skb).pid,
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/fib_hash.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/fib_hash.c
---- linux-2.6.30.5/net/ipv4/fib_hash.c 2009-03-24 14:22:46.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/fib_hash.c      2009-07-04 01:11:39.000000000 +0200
-@@ -1022,7 +1022,7 @@ static int fib_seq_show(struct seq_file 
+diff -NurpP --minimal linux-2.6.31/net/ipv4/fib_hash.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/fib_hash.c
+--- linux-2.6.31/net/ipv4/fib_hash.c   2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/fib_hash.c        2009-09-10 16:11:43.000000000 +0200
+@@ -1021,7 +1021,7 @@ static int fib_seq_show(struct seq_file 
        prefix  = f->fn_key;
        mask    = FZ_MASK(iter->zone);
        flags   = fib_flag_trans(fa->fa_type, mask, fi);
@@ -25520,9 +27685,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/fib_hash.c linux-2.6.30.5-vs2.3.0.
                seq_printf(seq,
                         "%s\t%08X\t%08X\t%04X\t%d\t%u\t%d\t%08X\t%d\t%u\t%u%n",
                         fi->fib_dev ? fi->fib_dev->name : "*", prefix,
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_connection_sock.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_connection_sock.c
---- linux-2.6.30.5/net/ipv4/inet_connection_sock.c     2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_connection_sock.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/inet_connection_sock.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_connection_sock.c
+--- linux-2.6.31/net/ipv4/inet_connection_sock.c       2009-06-11 17:13:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_connection_sock.c    2009-09-10 16:11:43.000000000 +0200
 @@ -49,10 +49,40 @@ void inet_get_local_port_range(int *low,
  }
  EXPORT_SYMBOL(inet_get_local_port_range);
@@ -25576,9 +27741,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_connection_sock.c linux-2.6.3
                                        break;
                        }
                }
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_diag.c
---- linux-2.6.30.5/net/ipv4/inet_diag.c        2009-03-24 14:22:46.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_diag.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/inet_diag.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_diag.c
+--- linux-2.6.31/net/ipv4/inet_diag.c  2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_diag.c       2009-09-10 16:11:43.000000000 +0200
 @@ -32,6 +32,8 @@
  #include <linux/stddef.h>
  
@@ -25599,7 +27764,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
  
  #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
        if (r->idiag_family == AF_INET6) {
-@@ -206,8 +208,8 @@ static int inet_twsk_diag_fill(struct in
+@@ -204,8 +206,8 @@ static int inet_twsk_diag_fill(struct in
        r->id.idiag_cookie[1] = (u32)(((unsigned long)tw >> 31) >> 1);
        r->id.idiag_sport     = tw->tw_sport;
        r->id.idiag_dport     = tw->tw_dport;
@@ -25610,7 +27775,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
        r->idiag_state        = tw->tw_substate;
        r->idiag_timer        = 3;
        r->idiag_expires      = DIV_ROUND_UP(tmo * 1000, HZ);
-@@ -264,6 +266,7 @@ static int inet_diag_get_exact(struct sk
+@@ -262,6 +264,7 @@ static int inet_diag_get_exact(struct sk
        err = -EINVAL;
  
        if (req->idiag_family == AF_INET) {
@@ -25618,7 +27783,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                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);
-@@ -506,6 +509,7 @@ static int inet_csk_diag_dump(struct soc
+@@ -504,6 +507,7 @@ static int inet_csk_diag_dump(struct soc
                } else
  #endif
                {
@@ -25626,7 +27791,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                        entry.saddr = &inet->rcv_saddr;
                        entry.daddr = &inet->daddr;
                }
-@@ -542,6 +546,7 @@ static int inet_twsk_diag_dump(struct in
+@@ -540,6 +544,7 @@ static int inet_twsk_diag_dump(struct in
                } else
  #endif
                {
@@ -25634,7 +27799,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                        entry.saddr = &tw->tw_rcv_saddr;
                        entry.daddr = &tw->tw_daddr;
                }
-@@ -588,8 +593,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -586,8 +591,8 @@ static int inet_diag_fill_req(struct sk_
  
        r->id.idiag_sport = inet->sport;
        r->id.idiag_dport = ireq->rmt_port;
@@ -25645,7 +27810,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
        r->idiag_expires = jiffies_to_msecs(tmo);
        r->idiag_rqueue = 0;
        r->idiag_wqueue = 0;
-@@ -659,6 +664,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -657,6 +662,7 @@ static int inet_diag_dump_reqs(struct sk
                                continue;
  
                        if (bc) {
@@ -25653,7 +27818,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                                entry.saddr =
  #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
                                        (entry.family == AF_INET6) ?
-@@ -729,6 +735,8 @@ static int inet_diag_dump(struct sk_buff
+@@ -727,6 +733,8 @@ static int inet_diag_dump(struct sk_buff
                        sk_nulls_for_each(sk, node, &ilb->head) {
                                struct inet_sock *inet = inet_sk(sk);
  
@@ -25662,7 +27827,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                                if (num < s_num) {
                                        num++;
                                        continue;
-@@ -795,6 +803,8 @@ skip_listen_ht:
+@@ -793,6 +801,8 @@ skip_listen_ht:
                sk_nulls_for_each(sk, node, &head->chain) {
                        struct inet_sock *inet = inet_sk(sk);
  
@@ -25671,7 +27836,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                        if (num < s_num)
                                goto next_normal;
                        if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -819,6 +829,8 @@ next_normal:
+@@ -817,6 +827,8 @@ next_normal:
                        inet_twsk_for_each(tw, node,
                                    &head->twchain) {
  
@@ -25680,9 +27845,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_diag.c linux-2.6.30.5-vs2.3.0
                                if (num < s_num)
                                        goto next_dying;
                                if (r->id.idiag_sport != tw->tw_sport &&
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_hashtables.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_hashtables.c
---- linux-2.6.30.5/net/ipv4/inet_hashtables.c  2009-06-11 17:13:29.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/inet_hashtables.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/inet_hashtables.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_hashtables.c
+--- linux-2.6.31/net/ipv4/inet_hashtables.c    2009-06-11 17:13:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/inet_hashtables.c 2009-09-10 16:11:43.000000000 +0200
 @@ -21,6 +21,7 @@
  
  #include <net/inet_connection_sock.h>
@@ -25719,9 +27884,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/inet_hashtables.c linux-2.6.30.5-v
        /*
         * 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-2.6.30.5/net/ipv4/netfilter/nf_nat_helper.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/netfilter/nf_nat_helper.c
---- linux-2.6.30.5/net/ipv4/netfilter/nf_nat_helper.c  2009-08-17 16:37:43.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/netfilter/nf_nat_helper.c       2009-08-06 02:11:38.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/netfilter/nf_nat_helper.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/netfilter/nf_nat_helper.c
+--- linux-2.6.31/net/ipv4/netfilter/nf_nat_helper.c    2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/netfilter/nf_nat_helper.c 2009-09-10 16:11:43.000000000 +0200
 @@ -19,6 +19,7 @@
  #include <net/route.h>
  
@@ -25730,9 +27895,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/netfilter/nf_nat_helper.c linux-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-2.6.30.5/net/ipv4/netfilter.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/netfilter.c
---- linux-2.6.30.5/net/ipv4/netfilter.c        2009-03-24 14:22:46.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/netfilter.c     2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/netfilter.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/netfilter.c
+--- linux-2.6.31/net/ipv4/netfilter.c  2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/netfilter.c       2009-09-10 16:11:43.000000000 +0200
 @@ -4,7 +4,7 @@
  #include <linux/netfilter_ipv4.h>
  #include <linux/ip.h>
@@ -25742,9 +27907,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/netfilter.c linux-2.6.30.5-vs2.3.0
  #include <net/xfrm.h>
  #include <net/ip.h>
  #include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/raw.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/raw.c
---- linux-2.6.30.5/net/ipv4/raw.c      2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/raw.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/raw.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/raw.c
+--- linux-2.6.31/net/ipv4/raw.c        2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/raw.c     2009-09-10 17:17:12.000000000 +0200
 @@ -117,7 +117,7 @@ static struct sock *__raw_v4_lookup(stru
  
                if (net_eq(sock_net(sk), net) && inet->num == num       &&
@@ -25822,7 +27987,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/raw.c linux-2.6.30.5-vs2.3.0.36.14
                sin->sin_port = 0;
                memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
-@@ -859,7 +876,8 @@ static struct sock *raw_get_first(struct
+@@ -860,7 +877,8 @@ static struct sock *raw_get_first(struct
                struct hlist_node *node;
  
                sk_for_each(sk, node, &state->h->ht[state->bucket])
@@ -25832,7 +27997,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/raw.c linux-2.6.30.5-vs2.3.0.36.14
                                goto found;
        }
        sk = NULL;
-@@ -875,7 +893,8 @@ static struct sock *raw_get_next(struct 
+@@ -876,7 +894,8 @@ static struct sock *raw_get_next(struct 
                sk = sk_next(sk);
  try_again:
                ;
@@ -25842,7 +28007,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/raw.c linux-2.6.30.5-vs2.3.0.36.14
  
        if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
                sk = sk_head(&state->h->ht[state->bucket]);
-@@ -934,7 +953,10 @@ static void raw_sock_seq_show(struct seq
+@@ -935,7 +954,10 @@ static void raw_sock_seq_show(struct seq
  
        seq_printf(seq, "%4d: %08X:%04X %08X:%04X"
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n",
@@ -25851,12 +28016,12 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/raw.c linux-2.6.30.5-vs2.3.0.36.14
 +              nx_map_sock_lback(current_nx_info(), src), srcp,
 +              nx_map_sock_lback(current_nx_info(), dest), destp,
 +              sp->sk_state,
-               atomic_read(&sp->sk_wmem_alloc),
-               atomic_read(&sp->sk_rmem_alloc),
+               sk_wmem_alloc_get(sp),
+               sk_rmem_alloc_get(sp),
                0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp.c
---- linux-2.6.30.5/net/ipv4/tcp.c      2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/tcp.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp.c
+--- linux-2.6.31/net/ipv4/tcp.c        2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp.c     2009-09-10 16:11:43.000000000 +0200
 @@ -264,6 +264,7 @@
  #include <linux/cache.h>
  #include <linux/err.h>
@@ -25865,10 +28030,10 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp.c linux-2.6.30.5-vs2.3.0.36.14
  
  #include <net/icmp.h>
  #include <net/tcp.h>
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp_ipv4.c
---- linux-2.6.30.5/net/ipv4/tcp_ipv4.c 2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp_ipv4.c      2009-07-04 01:11:39.000000000 +0200
-@@ -1886,6 +1886,12 @@ static void *listening_get_next(struct s
+diff -NurpP --minimal linux-2.6.31/net/ipv4/tcp_ipv4.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp_ipv4.c
+--- linux-2.6.31/net/ipv4/tcp_ipv4.c   2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp_ipv4.c        2009-09-10 16:11:43.000000000 +0200
+@@ -1887,6 +1887,12 @@ static void *listening_get_next(struct s
                req = req->dl_next;
                while (1) {
                        while (req) {
@@ -25881,7 +28046,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                                if (req->rsk_ops->family == st->family) {
                                        cur = req;
                                        goto out;
-@@ -1910,6 +1916,10 @@ get_req:
+@@ -1911,6 +1917,10 @@ get_req:
        }
  get_sk:
        sk_nulls_for_each_from(sk, node) {
@@ -25892,7 +28057,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) {
                        cur = sk;
                        goto out;
-@@ -1973,6 +1983,11 @@ static void *established_get_first(struc
+@@ -1974,6 +1984,11 @@ static void *established_get_first(struc
  
                spin_lock_bh(lock);
                sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -25904,7 +28069,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                        if (sk->sk_family != st->family ||
                            !net_eq(sock_net(sk), net)) {
                                continue;
-@@ -1983,6 +1998,11 @@ static void *established_get_first(struc
+@@ -1984,6 +1999,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) {
@@ -25916,7 +28081,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                        if (tw->tw_family != st->family ||
                            !net_eq(twsk_net(tw), net)) {
                                continue;
-@@ -2011,7 +2031,9 @@ static void *established_get_next(struct
+@@ -2012,7 +2032,9 @@ static void *established_get_next(struct
                tw = cur;
                tw = tw_next(tw);
  get_tw:
@@ -25927,7 +28092,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                        tw = tw_next(tw);
                }
                if (tw) {
-@@ -2034,6 +2056,11 @@ get_tw:
+@@ -2035,6 +2057,11 @@ get_tw:
                sk = sk_nulls_next(sk);
  
        sk_nulls_for_each_from(sk, node) {
@@ -25939,7 +28104,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
                        goto found;
        }
-@@ -2185,9 +2212,9 @@ static void get_openreq4(struct sock *sk
+@@ -2186,9 +2213,9 @@ static void get_openreq4(struct sock *sk
        seq_printf(f, "%4d: %08X:%04X %08X:%04X"
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %p%n",
                i,
@@ -25951,7 +28116,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                ntohs(ireq->rmt_port),
                TCP_SYN_RECV,
                0, 0, /* could print option size, but that is af dependent. */
-@@ -2230,7 +2257,10 @@ static void get_tcp4_sock(struct sock *s
+@@ -2231,7 +2258,10 @@ static void get_tcp4_sock(struct sock *s
  
        seq_printf(f, "%4d: %08X:%04X %08X:%04X %02X %08X:%08X %02X:%08lX "
                        "%08X %5d %8d %lu %d %p %lu %lu %u %u %d%n",
@@ -25963,7 +28128,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                tp->write_seq - tp->snd_una,
                sk->sk_state == TCP_LISTEN ? sk->sk_ack_backlog :
                                             (tp->rcv_nxt - tp->copied_seq),
-@@ -2266,7 +2296,10 @@ static void get_timewait4_sock(struct in
+@@ -2267,7 +2297,10 @@ static void get_timewait4_sock(struct in
  
        seq_printf(f, "%4d: %08X:%04X %08X:%04X"
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p%n",
@@ -25975,9 +28140,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_ipv4.c linux-2.6.30.5-vs2.3.0.
                3, jiffies_to_clock_t(ttd), 0, 0, 0, 0,
                atomic_read(&tw->tw_refcnt), tw, len);
  }
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_minisocks.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp_minisocks.c
---- linux-2.6.30.5/net/ipv4/tcp_minisocks.c    2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/tcp_minisocks.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/tcp_minisocks.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp_minisocks.c
+--- linux-2.6.31/net/ipv4/tcp_minisocks.c      2009-09-10 15:26:29.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/tcp_minisocks.c   2009-09-10 16:11:43.000000000 +0200
 @@ -26,6 +26,10 @@
  #include <net/inet_common.h>
  #include <net/xfrm.h>
@@ -25989,7 +28154,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_minisocks.c linux-2.6.30.5-vs2
  #ifdef CONFIG_SYSCTL
  #define SYNC_INIT 0 /* let the user enable it */
  #else
-@@ -293,6 +297,11 @@ void tcp_time_wait(struct sock *sk, int 
+@@ -294,6 +298,11 @@ void tcp_time_wait(struct sock *sk, int 
                tcptw->tw_ts_recent     = tp->rx_opt.ts_recent;
                tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
  
@@ -26001,9 +28166,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/tcp_minisocks.c linux-2.6.30.5-vs2
  #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
                if (tw->tw_family == PF_INET6) {
                        struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/udp.c
---- linux-2.6.30.5/net/ipv4/udp.c      2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv4/udp.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv4/udp.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/udp.c
+--- linux-2.6.31/net/ipv4/udp.c        2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv4/udp.c     2009-09-10 17:17:40.000000000 +0200
 @@ -222,14 +222,7 @@ fail:
        return error;
  }
@@ -26091,7 +28256,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14
                err = ip_route_output_flow(net, &rt, &fl, sk, 1);
                if (err) {
                        if (err == -ENETUNREACH)
-@@ -944,7 +955,8 @@ try_again:
+@@ -945,7 +956,8 @@ try_again:
        {
                sin->sin_family = AF_INET;
                sin->sin_port = udp_hdr(skb)->source;
@@ -26101,7 +28266,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14
                memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
        }
        if (inet->cmsg_flags)
-@@ -1598,6 +1610,8 @@ static struct sock *udp_get_first(struct
+@@ -1599,6 +1611,8 @@ static struct sock *udp_get_first(struct
                sk_nulls_for_each(sk, node, &hslot->head) {
                        if (!net_eq(sock_net(sk), net))
                                continue;
@@ -26110,7 +28275,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14
                        if (sk->sk_family == state->family)
                                goto found;
                }
-@@ -1615,7 +1629,9 @@ static struct sock *udp_get_next(struct 
+@@ -1616,7 +1630,9 @@ static struct sock *udp_get_next(struct 
  
        do {
                sk = sk_nulls_next(sk);
@@ -26121,7 +28286,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14
  
        if (!sk) {
                if (state->bucket < UDP_HTABLE_SIZE)
-@@ -1720,7 +1736,10 @@ static void udp4_format_sock(struct sock
+@@ -1721,7 +1737,10 @@ static void udp4_format_sock(struct sock
  
        seq_printf(f, "%4d: %08X:%04X %08X:%04X"
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d%n",
@@ -26130,12 +28295,12 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv4/udp.c linux-2.6.30.5-vs2.3.0.36.14
 +              nx_map_sock_lback(current_nx_info(), src), srcp,
 +              nx_map_sock_lback(current_nx_info(), dest), destp,
 +              sp->sk_state,
-               atomic_read(&sp->sk_wmem_alloc),
-               atomic_read(&sp->sk_rmem_alloc),
+               sk_wmem_alloc_get(sp),
+               sk_rmem_alloc_get(sp),
                0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/addrconf.c
---- linux-2.6.30.5/net/ipv6/addrconf.c 2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/addrconf.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/addrconf.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/addrconf.c
+--- linux-2.6.31/net/ipv6/addrconf.c   2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/addrconf.c        2009-09-10 16:11:43.000000000 +0200
 @@ -86,6 +86,8 @@
  
  #include <linux/proc_fs.h>
@@ -26145,7 +28310,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
  
  /* Set to 3 to get tracing... */
  #define ACONF_DEBUG 2
-@@ -1118,7 +1120,7 @@ out:
+@@ -1117,7 +1119,7 @@ out:
  
  int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
                       const struct in6_addr *daddr, unsigned int prefs,
@@ -26154,7 +28319,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
  {
        struct ipv6_saddr_score scores[2],
                                *score = &scores[0], *hiscore = &scores[1];
-@@ -1191,6 +1193,8 @@ int ipv6_dev_get_saddr(struct net *net, 
+@@ -1190,6 +1192,8 @@ int ipv6_dev_get_saddr(struct net *net, 
                                               dev->name);
                                continue;
                        }
@@ -26163,7 +28328,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
  
                        score->rule = -1;
                        bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -2954,7 +2958,10 @@ static void if6_seq_stop(struct seq_file
+@@ -2979,7 +2983,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;
@@ -26175,7 +28340,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
                   &ifp->addr,
                   ifp->idev->dev->ifindex,
                   ifp->prefix_len,
-@@ -3448,6 +3455,12 @@ static int inet6_dump_addr(struct sk_buf
+@@ -3476,6 +3483,12 @@ static int inet6_dump_addr(struct sk_buf
        struct ifmcaddr6 *ifmca;
        struct ifacaddr6 *ifaca;
        struct net *net = sock_net(skb->sk);
@@ -26188,7 +28353,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
  
        s_idx = cb->args[0];
        s_ip_idx = ip_idx = cb->args[1];
-@@ -3469,6 +3482,8 @@ static int inet6_dump_addr(struct sk_buf
+@@ -3497,6 +3510,8 @@ static int inet6_dump_addr(struct sk_buf
                             ifa = ifa->if_next, ip_idx++) {
                                if (ip_idx < s_ip_idx)
                                        continue;
@@ -26197,7 +28362,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
                                err = inet6_fill_ifaddr(skb, ifa,
                                                        NETLINK_CB(cb->skb).pid,
                                                        cb->nlh->nlmsg_seq,
-@@ -3482,6 +3497,8 @@ static int inet6_dump_addr(struct sk_buf
+@@ -3510,6 +3525,8 @@ static int inet6_dump_addr(struct sk_buf
                             ifmca = ifmca->next, ip_idx++) {
                                if (ip_idx < s_ip_idx)
                                        continue;
@@ -26206,7 +28371,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
                                err = inet6_fill_ifmcaddr(skb, ifmca,
                                                          NETLINK_CB(cb->skb).pid,
                                                          cb->nlh->nlmsg_seq,
-@@ -3495,6 +3512,8 @@ static int inet6_dump_addr(struct sk_buf
+@@ -3523,6 +3540,8 @@ static int inet6_dump_addr(struct sk_buf
                             ifaca = ifaca->aca_next, ip_idx++) {
                                if (ip_idx < s_ip_idx)
                                        continue;
@@ -26215,7 +28380,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
                                err = inet6_fill_ifacaddr(skb, ifaca,
                                                          NETLINK_CB(cb->skb).pid,
                                                          cb->nlh->nlmsg_seq,
-@@ -3781,12 +3800,19 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -3809,12 +3828,19 @@ static int inet6_dump_ifinfo(struct sk_b
        int s_idx = cb->args[0];
        struct net_device *dev;
        struct inet6_dev *idev;
@@ -26235,9 +28400,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/addrconf.c linux-2.6.30.5-vs2.3.0.
                if ((idev = in6_dev_get(dev)) == NULL)
                        goto cont;
                err = inet6_fill_ifinfo(skb, idev, NETLINK_CB(cb->skb).pid,
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/af_inet6.c
---- linux-2.6.30.5/net/ipv6/af_inet6.c 2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/af_inet6.c      2009-08-22 18:55:56.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/af_inet6.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/af_inet6.c
+--- linux-2.6.31/net/ipv6/af_inet6.c   2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/af_inet6.c        2009-09-10 16:11:43.000000000 +0200
 @@ -41,6 +41,8 @@
  #include <linux/netdevice.h>
  #include <linux/icmpv6.h>
@@ -26247,7 +28412,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
  
  #include <net/ip.h>
  #include <net/ipv6.h>
-@@ -146,9 +148,12 @@ lookup_protocol:
+@@ -158,9 +160,12 @@ lookup_protocol:
        }
  
        err = -EPERM;
@@ -26261,7 +28426,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
        sock->ops = answer->ops;
        answer_prot = answer->prot;
        answer_no_check = answer->no_check;
-@@ -247,6 +252,7 @@ int inet6_bind(struct socket *sock, stru
+@@ -259,6 +264,7 @@ int inet6_bind(struct socket *sock, stru
        struct inet_sock *inet = inet_sk(sk);
        struct ipv6_pinfo *np = inet6_sk(sk);
        struct net *net = sock_net(sk);
@@ -26269,7 +28434,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
        __be32 v4addr = 0;
        unsigned short snum;
        int addr_type = 0;
-@@ -258,6 +264,11 @@ int inet6_bind(struct socket *sock, stru
+@@ -270,6 +276,11 @@ int inet6_bind(struct socket *sock, stru
  
        if (addr_len < SIN6_LEN_RFC2133)
                return -EINVAL;
@@ -26281,7 +28446,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
        addr_type = ipv6_addr_type(&addr->sin6_addr);
        if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM)
                return -EINVAL;
-@@ -289,13 +300,20 @@ int inet6_bind(struct socket *sock, stru
+@@ -301,6 +312,7 @@ int inet6_bind(struct socket *sock, stru
                /* Reproduce AF_INET checks to make the bindings consitant */
                v4addr = addr->sin6_addr.s6_addr32[3];
                chk_addr_ret = inet_addr_type(net, v4addr);
@@ -26289,21 +28454,18 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
                if (!sysctl_ip_nonlocal_bind &&
                    !(inet->freebind || inet->transparent) &&
                    v4addr != htonl(INADDR_ANY) &&
-                   chk_addr_ret != RTN_LOCAL &&
-                   chk_addr_ret != RTN_MULTICAST &&
--                  chk_addr_ret != RTN_BROADCAST)
-+                  chk_addr_ret != RTN_BROADCAST) {
-+                      err = -EADDRNOTAVAIL;
-+                      goto out;
-+              }
+@@ -310,6 +322,10 @@ int inet6_bind(struct socket *sock, stru
+                       err = -EADDRNOTAVAIL;
+                       goto out;
+               }
 +              if (!v4_addr_in_nx_info(sk->sk_nx_info, v4addr, NXA_MASK_BIND)) {
 +                      err = -EADDRNOTAVAIL;
-                       goto out;
++                      goto out;
 +              }
        } else {
                if (addr_type != IPV6_ADDR_ANY) {
                        struct net_device *dev = NULL;
-@@ -321,6 +339,11 @@ int inet6_bind(struct socket *sock, stru
+@@ -335,6 +351,11 @@ int inet6_bind(struct socket *sock, stru
                                }
                        }
  
@@ -26315,7 +28477,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
                        /* ipv4 addr of the socket is invalid.  Only the
                         * unspecified and mapped address have a v4 equivalent.
                         */
-@@ -339,6 +362,8 @@ int inet6_bind(struct socket *sock, stru
+@@ -353,6 +374,8 @@ int inet6_bind(struct socket *sock, stru
                }
        }
  
@@ -26324,7 +28486,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
        inet->rcv_saddr = v4addr;
        inet->saddr = v4addr;
  
-@@ -434,9 +459,11 @@ int inet6_getname(struct socket *sock, s
+@@ -448,9 +471,11 @@ int inet6_getname(struct socket *sock, s
                        return -ENOTCONN;
                sin->sin6_port = inet->dport;
                ipv6_addr_copy(&sin->sin6_addr, &np->daddr);
@@ -26336,9 +28498,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/af_inet6.c linux-2.6.30.5-vs2.3.0.
                if (ipv6_addr_any(&np->rcv_saddr))
                        ipv6_addr_copy(&sin->sin6_addr, &np->saddr);
                else
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/fib6_rules.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/fib6_rules.c
---- linux-2.6.30.5/net/ipv6/fib6_rules.c       2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/fib6_rules.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/fib6_rules.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/fib6_rules.c
+--- linux-2.6.31/net/ipv6/fib6_rules.c 2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/fib6_rules.c      2009-09-10 16:11:43.000000000 +0200
 @@ -96,7 +96,7 @@ static int fib6_rule_action(struct fib_r
                        if (ipv6_dev_get_saddr(net,
                                               ip6_dst_idev(&rt->u.dst)->dev,
@@ -26348,9 +28510,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/fib6_rules.c linux-2.6.30.5-vs2.3.
                                goto again;
                        if (!ipv6_prefix_equal(&saddr, &r->src.addr,
                                               r->src.plen))
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/inet6_hashtables.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/inet6_hashtables.c
---- linux-2.6.30.5/net/ipv6/inet6_hashtables.c 2009-03-24 14:22:46.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/inet6_hashtables.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/inet6_hashtables.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/inet6_hashtables.c
+--- linux-2.6.31/net/ipv6/inet6_hashtables.c   2009-03-24 14:22:46.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/inet6_hashtables.c        2009-09-10 16:11:43.000000000 +0200
 @@ -16,6 +16,7 @@
  
  #include <linux/module.h>
@@ -26386,9 +28548,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/inet6_hashtables.c linux-2.6.30.5-
                }
                if (sk->sk_bound_dev_if) {
                        if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/ip6_output.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/ip6_output.c
---- linux-2.6.30.5/net/ipv6/ip6_output.c       2009-03-24 14:22:47.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/ip6_output.c    2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/ip6_output.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/ip6_output.c
+--- linux-2.6.31/net/ipv6/ip6_output.c 2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/ip6_output.c      2009-09-10 16:11:43.000000000 +0200
 @@ -951,7 +951,7 @@ static int ip6_dst_lookup_tail(struct so
                err = ipv6_dev_get_saddr(net, ip6_dst_idev(*dst)->dev,
                                         &fl->fl6_dst,
@@ -26398,9 +28560,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/ip6_output.c linux-2.6.30.5-vs2.3.
                if (err)
                        goto out_err_release;
        }
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/Kconfig linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/Kconfig
---- linux-2.6.30.5/net/ipv6/Kconfig    2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/Kconfig 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/Kconfig linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/Kconfig
+--- linux-2.6.31/net/ipv6/Kconfig      2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/Kconfig   2009-09-10 16:11:43.000000000 +0200
 @@ -4,8 +4,8 @@
  
  #   IPv6 as module will cause a CRASH if you try to unload it
@@ -26412,9 +28574,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/Kconfig linux-2.6.30.5-vs2.3.0.36.
        ---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-2.6.30.5/net/ipv6/ndisc.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/ndisc.c
---- linux-2.6.30.5/net/ipv6/ndisc.c    2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/ndisc.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/ndisc.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/ndisc.c
+--- linux-2.6.31/net/ipv6/ndisc.c      2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/ndisc.c   2009-09-10 16:11:43.000000000 +0200
 @@ -589,7 +589,7 @@ static void ndisc_send_na(struct net_dev
        } else {
                if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
@@ -26424,9 +28586,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/ndisc.c linux-2.6.30.5-vs2.3.0.36.
                        return;
                src_addr = &tmpaddr;
        }
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/raw.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/raw.c
---- linux-2.6.30.5/net/ipv6/raw.c      2009-03-24 14:22:47.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/raw.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/raw.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/raw.c
+--- linux-2.6.31/net/ipv6/raw.c        2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/raw.c     2009-09-10 16:11:43.000000000 +0200
 @@ -29,6 +29,7 @@
  #include <linux/icmpv6.h>
  #include <linux/netfilter.h>
@@ -26449,9 +28611,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/raw.c linux-2.6.30.5-vs2.3.0.36.14
                /* ipv4 addr of the socket is invalid.  Only the
                 * unspecified and mapped address have a v4 equivalent.
                 */
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/route.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/route.c
---- linux-2.6.30.5/net/ipv6/route.c    2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/route.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/route.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/route.c
+--- linux-2.6.31/net/ipv6/route.c      2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/route.c   2009-09-10 16:11:43.000000000 +0200
 @@ -2257,7 +2257,8 @@ static int rt6_fill_node(struct net *net
                struct inet6_dev *idev = ip6_dst_idev(&rt->u.dst);
                struct in6_addr saddr_buf;
@@ -26462,9 +28624,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/route.c linux-2.6.30.5-vs2.3.0.36.
                        NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
        }
  
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/tcp_ipv6.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/tcp_ipv6.c
---- linux-2.6.30.5/net/ipv6/tcp_ipv6.c 2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/tcp_ipv6.c      2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/tcp_ipv6.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/tcp_ipv6.c
+--- linux-2.6.31/net/ipv6/tcp_ipv6.c   2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/tcp_ipv6.c        2009-09-10 16:11:43.000000000 +0200
 @@ -68,6 +68,7 @@
  
  #include <linux/crypto.h>
@@ -26491,9 +28653,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/tcp_ipv6.c linux-2.6.30.5-vs2.3.0.
  
        addr_type = ipv6_addr_type(&usin->sin6_addr);
  
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/udp.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/udp.c
---- linux-2.6.30.5/net/ipv6/udp.c      2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/udp.c   2009-08-22 18:36:05.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/udp.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/udp.c
+--- linux-2.6.31/net/ipv6/udp.c        2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/udp.c     2009-09-10 16:11:43.000000000 +0200
 @@ -47,6 +47,7 @@
  
  #include <linux/proc_fs.h>
@@ -26570,9 +28732,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/udp.c linux-2.6.30.5-vs2.3.0.36.14
                }
                if (!ipv6_addr_any(&np->daddr)) {
                        if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-2.6.30.5/net/ipv6/xfrm6_policy.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/xfrm6_policy.c
---- linux-2.6.30.5/net/ipv6/xfrm6_policy.c     2009-06-11 17:13:30.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/ipv6/xfrm6_policy.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/ipv6/xfrm6_policy.c linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/xfrm6_policy.c
+--- linux-2.6.31/net/ipv6/xfrm6_policy.c       2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/ipv6/xfrm6_policy.c    2009-09-10 16:11:43.000000000 +0200
 @@ -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,
@@ -26582,9 +28744,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/ipv6/xfrm6_policy.c linux-2.6.30.5-vs2.
        dst_release(dst);
        return 0;
  }
-diff -NurpP --minimal linux-2.6.30.5/net/netlink/af_netlink.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/netlink/af_netlink.c
---- linux-2.6.30.5/net/netlink/af_netlink.c    2009-06-11 17:13:31.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/netlink/af_netlink.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/netlink/af_netlink.c linux-2.6.31-vs2.3.0.36.14-pre8/net/netlink/af_netlink.c
+--- linux-2.6.31/net/netlink/af_netlink.c      2009-09-10 15:26:30.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/netlink/af_netlink.c   2009-09-10 16:11:43.000000000 +0200
 @@ -55,6 +55,9 @@
  #include <linux/types.h>
  #include <linux/audit.h>
@@ -26624,9 +28786,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/netlink/af_netlink.c linux-2.6.30.5-vs2
                                s = sk_next(s);
                        if (s) {
                                iter->link = i;
-diff -NurpP --minimal linux-2.6.30.5/net/sctp/ipv6.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sctp/ipv6.c
---- linux-2.6.30.5/net/sctp/ipv6.c     2009-06-11 17:13:32.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sctp/ipv6.c  2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/sctp/ipv6.c linux-2.6.31-vs2.3.0.36.14-pre8/net/sctp/ipv6.c
+--- linux-2.6.31/net/sctp/ipv6.c       2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/sctp/ipv6.c    2009-09-10 16:11:43.000000000 +0200
 @@ -316,7 +316,8 @@ static void sctp_v6_get_saddr(struct sct
                                   dst ? ip6_dst_idev(dst)->dev : NULL,
                                   &daddr->v6.sin6_addr,
@@ -26637,9 +28799,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/sctp/ipv6.c linux-2.6.30.5-vs2.3.0.36.1
                SCTP_DEBUG_PRINTK("saddr from ipv6_get_saddr: %pI6\n",
                                  &saddr->v6.sin6_addr);
                return;
-diff -NurpP --minimal linux-2.6.30.5/net/socket.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/socket.c
---- linux-2.6.30.5/net/socket.c        2009-08-17 16:37:44.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/socket.c     2009-08-17 16:56:58.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/socket.c linux-2.6.31-vs2.3.0.36.14-pre8/net/socket.c
+--- linux-2.6.31/net/socket.c  2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/socket.c       2009-09-10 16:11:43.000000000 +0200
 @@ -95,6 +95,10 @@
  
  #include <net/sock.h>
@@ -26748,9 +28910,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/socket.c linux-2.6.30.5-vs2.3.0.36.14-p
  
        err = sock1->ops->socketpair(sock1, sock2);
        if (err < 0)
-diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/auth.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/auth.c
---- linux-2.6.30.5/net/sunrpc/auth.c   2009-03-24 14:22:48.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/auth.c        2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/sunrpc/auth.c linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/auth.c
+--- linux-2.6.31/net/sunrpc/auth.c     2009-03-24 14:22:48.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/auth.c  2009-09-10 16:11:43.000000000 +0200
 @@ -14,6 +14,7 @@
  #include <linux/hash.h>
  #include <linux/sunrpc/clnt.h>
@@ -26775,9 +28937,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/auth.c linux-2.6.30.5-vs2.3.0.36
        };
        struct rpc_cred *ret;
  
-diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/auth_unix.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/auth_unix.c
---- linux-2.6.30.5/net/sunrpc/auth_unix.c      2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/auth_unix.c   2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/sunrpc/auth_unix.c linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/auth_unix.c
+--- linux-2.6.31/net/sunrpc/auth_unix.c        2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/auth_unix.c     2009-09-10 16:11:43.000000000 +0200
 @@ -11,12 +11,14 @@
  #include <linux/module.h>
  #include <linux/sunrpc/clnt.h>
@@ -26836,10 +28998,10 @@ diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/auth_unix.c linux-2.6.30.5-vs2.3
        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-2.6.30.5/net/sunrpc/clnt.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/clnt.c
---- linux-2.6.30.5/net/sunrpc/clnt.c   2009-06-11 17:13:32.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/sunrpc/clnt.c        2009-07-04 01:11:39.000000000 +0200
-@@ -32,6 +32,7 @@
+diff -NurpP --minimal linux-2.6.31/net/sunrpc/clnt.c linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/clnt.c
+--- linux-2.6.31/net/sunrpc/clnt.c     2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/sunrpc/clnt.c  2009-09-10 16:11:43.000000000 +0200
+@@ -31,6 +31,7 @@
  #include <linux/utsname.h>
  #include <linux/workqueue.h>
  #include <linux/in6.h>
@@ -26847,7 +29009,7 @@ diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/clnt.c linux-2.6.30.5-vs2.3.0.36
  
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/rpc_pipe_fs.h>
-@@ -335,6 +336,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
+@@ -339,6 +340,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
        if (!(args->flags & RPC_CLNT_CREATE_QUIET))
                clnt->cl_chatty = 1;
  
@@ -26857,9 +29019,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/sunrpc/clnt.c linux-2.6.30.5-vs2.3.0.36
        return clnt;
  }
  EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-2.6.30.5/net/unix/af_unix.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/unix/af_unix.c
---- linux-2.6.30.5/net/unix/af_unix.c  2009-06-11 17:13:32.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/unix/af_unix.c       2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/unix/af_unix.c linux-2.6.31-vs2.3.0.36.14-pre8/net/unix/af_unix.c
+--- linux-2.6.31/net/unix/af_unix.c    2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/unix/af_unix.c 2009-09-10 16:11:43.000000000 +0200
 @@ -114,6 +114,8 @@
  #include <linux/mount.h>
  #include <net/checksum.h>
@@ -26897,9 +29059,9 @@ diff -NurpP --minimal linux-2.6.30.5/net/unix/af_unix.c linux-2.6.30.5-vs2.3.0.3
                sk = next_unix_socket(&iter->i, sk);
        return sk;
  }
-diff -NurpP --minimal linux-2.6.30.5/net/x25/af_x25.c linux-2.6.30.5-vs2.3.0.36.14-pre7/net/x25/af_x25.c
---- linux-2.6.30.5/net/x25/af_x25.c    2009-08-17 16:37:44.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/net/x25/af_x25.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/net/x25/af_x25.c linux-2.6.31-vs2.3.0.36.14-pre8/net/x25/af_x25.c
+--- linux-2.6.31/net/x25/af_x25.c      2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/net/x25/af_x25.c   2009-09-10 16:11:43.000000000 +0200
 @@ -519,7 +519,10 @@ static int x25_create(struct net *net, s
  
        x25 = x25_sk(sk);
@@ -26912,10 +29074,10 @@ diff -NurpP --minimal linux-2.6.30.5/net/x25/af_x25.c linux-2.6.30.5-vs2.3.0.36.
  
        x25_init_timers(sk);
  
-diff -NurpP --minimal linux-2.6.30.5/scripts/checksyscalls.sh linux-2.6.30.5-vs2.3.0.36.14-pre7/scripts/checksyscalls.sh
---- linux-2.6.30.5/scripts/checksyscalls.sh    2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/scripts/checksyscalls.sh 2009-07-04 01:11:39.000000000 +0200
-@@ -108,7 +108,6 @@ cat << EOF
+diff -NurpP --minimal linux-2.6.31/scripts/checksyscalls.sh linux-2.6.31-vs2.3.0.36.14-pre8/scripts/checksyscalls.sh
+--- linux-2.6.31/scripts/checksyscalls.sh      2009-09-10 15:26:31.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/scripts/checksyscalls.sh   2009-09-10 16:11:43.000000000 +0200
+@@ -194,7 +194,6 @@ cat << EOF
  #define __IGNORE_afs_syscall
  #define __IGNORE_getpmsg
  #define __IGNORE_putpmsg
@@ -26923,15 +29085,19 @@ diff -NurpP --minimal linux-2.6.30.5/scripts/checksyscalls.sh linux-2.6.30.5-vs2
  EOF
  }
  
-diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0.36.14-pre7/security/commoncap.c
---- linux-2.6.30.5/security/commoncap.c        2009-06-11 17:13:33.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/security/commoncap.c     2009-07-04 01:11:39.000000000 +0200
-@@ -27,10 +27,11 @@
+diff -NurpP --minimal linux-2.6.31/security/commoncap.c linux-2.6.31-vs2.3.0.36.14-pre8/security/commoncap.c
+--- linux-2.6.31/security/commoncap.c  2009-09-10 15:26:32.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/security/commoncap.c       2009-09-10 16:32:54.000000000 +0200
+@@ -27,6 +27,7 @@
  #include <linux/sched.h>
  #include <linux/prctl.h>
  #include <linux/securebits.h>
 +#include <linux/vs_context.h>
  
+ /*
+  * If a non-root user executes a setuid-root binary in
+@@ -52,7 +53,7 @@ static void warn_setuid_and_fcaps_mixed(
  int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
  {
 -      NETLINK_CB(skb).eff_cap = current_cap();
@@ -26939,7 +29105,7 @@ diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0
        return 0;
  }
  
-@@ -40,6 +41,7 @@ int cap_netlink_recv(struct sk_buff *skb
+@@ -62,6 +63,7 @@ int cap_netlink_recv(struct sk_buff *skb
                return -EPERM;
        return 0;
  }
@@ -26947,7 +29113,7 @@ diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0
  EXPORT_SYMBOL(cap_netlink_recv);
  
  /**
-@@ -60,7 +62,22 @@ EXPORT_SYMBOL(cap_netlink_recv);
+@@ -82,7 +84,22 @@ EXPORT_SYMBOL(cap_netlink_recv);
  int cap_capable(struct task_struct *tsk, const struct cred *cred, int cap,
                int audit)
  {
@@ -26971,7 +29137,7 @@ diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0
  }
  
  /**
-@@ -586,7 +603,7 @@ int cap_inode_setxattr(struct dentry *de
+@@ -618,7 +635,7 @@ int cap_inode_setxattr(struct dentry *de
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1)  &&
@@ -26980,7 +29146,7 @@ diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0
                return -EPERM;
        return 0;
  }
-@@ -930,7 +947,8 @@ error:
+@@ -962,7 +979,8 @@ error:
   */
  int cap_syslog(int type)
  {
@@ -26990,14 +29156,14 @@ diff -NurpP --minimal linux-2.6.30.5/security/commoncap.c linux-2.6.30.5-vs2.3.0
                return -EPERM;
        return 0;
  }
-@@ -952,3 +970,4 @@ int cap_vm_enough_memory(struct mm_struc
-               cap_sys_admin = 1;
-       return __vm_enough_memory(mm, pages, cap_sys_admin);
+@@ -1014,3 +1032,4 @@ int cap_file_mmap(struct file *file, uns
+       }
+       return ret;
  }
 +
-diff -NurpP --minimal linux-2.6.30.5/security/selinux/hooks.c linux-2.6.30.5-vs2.3.0.36.14-pre7/security/selinux/hooks.c
---- linux-2.6.30.5/security/selinux/hooks.c    2009-06-11 17:13:33.000000000 +0200
-+++ linux-2.6.30.5-vs2.3.0.36.14-pre7/security/selinux/hooks.c 2009-07-04 01:11:39.000000000 +0200
+diff -NurpP --minimal linux-2.6.31/security/selinux/hooks.c linux-2.6.31-vs2.3.0.36.14-pre8/security/selinux/hooks.c
+--- linux-2.6.31/security/selinux/hooks.c      2009-09-10 15:26:32.000000000 +0200
++++ linux-2.6.31-vs2.3.0.36.14-pre8/security/selinux/hooks.c   2009-09-10 16:11:43.000000000 +0200
 @@ -64,7 +64,6 @@
  #include <linux/dccp.h>
  #include <linux/quota.h>
index e086b0c96c022b6f1a5b8be8589be06873ee9fcc..4f4209de91c848c2e17a3ab6f866f0badc8c8282 100644 (file)
@@ -275,7 +275,7 @@ Patch85:    kernel-hostap.patch
 # Taken from http://download.opensuse.org/factory/repo/src-oss/suse/src/kernel-source-2.6.30-10.3.src.rpm
 Patch90:       kernel-mpt-fusion.patch
 
-# based on http://vserver.13thfloor.at/Experimental/patch-2.6.30.5-vs2.3.0.36.14-pre7.diff
+# based on http://vserver.13thfloor.at/Experimental/patch-2.6.31-vs2.3.0.36.14-pre8.diff
 Patch100:      kernel-vserver-2.3.patch
 Patch101:      kernel-vserver-fixes.patch
 
This page took 0.739255 seconds and 4 git commands to generate.