-diff -NurpP --minimal linux-2.6.36.2/arch/alpha/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/Kconfig
---- linux-2.6.36.2/arch/alpha/Kconfig 2010-10-21 13:06:45.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/Kconfig 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/alpha/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/Kconfig
+--- linux-2.6.37/arch/alpha/Kconfig 2011-01-05 21:48:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/Kconfig 2010-11-23 02:09:40.000000000 +0100
@@ -677,6 +677,8 @@ config DUMMY_CONSOLE
depends on VGA_HOSE
default y
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/alpha/kernel/entry.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/entry.S
---- linux-2.6.36.2/arch/alpha/kernel/entry.S 2010-10-21 13:06:45.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/entry.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/alpha/kernel/entry.S linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/entry.S
+--- linux-2.6.37/arch/alpha/kernel/entry.S 2010-10-21 13:06:45.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/entry.S 2010-11-23 02:09:40.000000000 +0100
@@ -860,24 +860,15 @@ sys_getxgid:
.globl sys_getxpid
.ent sys_getxpid
ret
.end sys_getxpid
-diff -NurpP --minimal linux-2.6.36.2/arch/alpha/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/ptrace.c
---- linux-2.6.36.2/arch/alpha/kernel/ptrace.c 2010-07-07 18:30:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/alpha/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/ptrace.c
+--- linux-2.6.37/arch/alpha/kernel/ptrace.c 2011-01-05 21:48:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/ptrace.c 2010-11-23 02:09:40.000000000 +0100
@@ -13,6 +13,7 @@
#include <linux/user.h>
#include <linux/security.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/alpha/kernel/systbls.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/systbls.S
---- linux-2.6.36.2/arch/alpha/kernel/systbls.S 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/systbls.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/alpha/kernel/systbls.S linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/systbls.S
+--- linux-2.6.37/arch/alpha/kernel/systbls.S 2010-10-21 13:06:46.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/systbls.S 2010-11-23 02:09:40.000000000 +0100
@@ -446,7 +446,7 @@ sys_call_table:
.quad sys_stat64 /* 425 */
.quad sys_lstat64
.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.36.2/arch/alpha/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/traps.c
---- linux-2.6.36.2/arch/alpha/kernel/traps.c 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/alpha/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/alpha/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/traps.c
+--- linux-2.6.37/arch/alpha/kernel/traps.c 2010-10-21 13:06:46.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/alpha/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -183,7 +183,8 @@ die_if_kernel(char * str, struct pt_regs
#ifdef CONFIG_SMP
printk("CPU %d ", hard_smp_processor_id());
dik_show_regs(regs, r9_15);
add_taint(TAINT_DIE);
dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-2.6.36.2/arch/arm/include/asm/tlb.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/include/asm/tlb.h
---- linux-2.6.36.2/arch/arm/include/asm/tlb.h 2009-09-10 15:25:15.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/include/asm/tlb.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/arm/include/asm/tlb.h linux-2.6.37-vs2.3.0.37-rc1/arch/arm/include/asm/tlb.h
+--- linux-2.6.37/arch/arm/include/asm/tlb.h 2009-09-10 15:25:15.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/arm/include/asm/tlb.h 2010-11-23 02:09:40.000000000 +0100
@@ -27,6 +27,7 @@
#else /* !CONFIG_MMU */
#include <asm/pgalloc.h>
/*
-diff -NurpP --minimal linux-2.6.36.2/arch/arm/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/Kconfig
---- linux-2.6.36.2/arch/arm/Kconfig 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -1803,6 +1803,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/arm/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/arm/Kconfig
+--- linux-2.6.37/arch/arm/Kconfig 2011-01-05 21:48:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/arm/Kconfig 2011-01-05 22:30:25.000000000 +0100
+@@ -1854,6 +1854,8 @@ source "fs/Kconfig"
source "arch/arm/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/arm/kernel/calls.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/calls.S
---- linux-2.6.36.2/arch/arm/kernel/calls.S 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/calls.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/arm/kernel/calls.S linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/calls.S
+--- linux-2.6.37/arch/arm/kernel/calls.S 2010-10-21 13:06:46.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/calls.S 2010-11-23 02:09:40.000000000 +0100
@@ -322,7 +322,7 @@
/* 310 */ CALL(sys_request_key)
CALL(sys_keyctl)
CALL(sys_ioprio_set)
/* 315 */ CALL(sys_ioprio_get)
CALL(sys_inotify_init)
-diff -NurpP --minimal linux-2.6.36.2/arch/arm/kernel/process.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/process.c
---- linux-2.6.36.2/arch/arm/kernel/process.c 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/process.c 2010-10-21 13:09:36.000000000 +0200
-@@ -295,7 +295,8 @@ void __show_regs(struct pt_regs *regs)
+diff -NurpP --minimal linux-2.6.37/arch/arm/kernel/process.c linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/process.c
+--- linux-2.6.37/arch/arm/kernel/process.c 2011-01-05 21:48:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/process.c 2010-11-23 02:09:40.000000000 +0100
+@@ -315,7 +315,8 @@ void __show_regs(struct pt_regs *regs)
void show_regs(struct pt_regs * regs)
{
printk("\n");
__show_regs(regs);
__backtrace();
}
-diff -NurpP --minimal linux-2.6.36.2/arch/arm/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/traps.c
---- linux-2.6.36.2/arch/arm/kernel/traps.c 2010-10-21 13:06:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/arm/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
-@@ -244,8 +244,8 @@ static int __die(const char *str, int er
+diff -NurpP --minimal linux-2.6.37/arch/arm/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/traps.c
+--- linux-2.6.37/arch/arm/kernel/traps.c 2011-01-05 21:48:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/arm/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
+@@ -241,8 +241,8 @@ static int __die(const char *str, int er
print_modules();
__show_regs(regs);
if (!user_mode(regs) || in_interrupt()) {
dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-2.6.36.2/arch/cris/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/cris/Kconfig
---- linux-2.6.36.2/arch/cris/Kconfig 2010-10-21 13:06:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/cris/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -694,6 +694,8 @@ source "drivers/staging/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/cris/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/cris/Kconfig
+--- linux-2.6.37/arch/cris/Kconfig 2011-01-05 21:48:58.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/cris/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -687,6 +687,8 @@ source "drivers/staging/Kconfig"
source "arch/cris/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/frv/kernel/kernel_thread.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/frv/kernel/kernel_thread.S
---- linux-2.6.36.2/arch/frv/kernel/kernel_thread.S 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/frv/kernel/kernel_thread.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/frv/kernel/kernel_thread.S linux-2.6.37-vs2.3.0.37-rc1/arch/frv/kernel/kernel_thread.S
+--- linux-2.6.37/arch/frv/kernel/kernel_thread.S 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/frv/kernel/kernel_thread.S 2010-11-23 02:09:40.000000000 +0100
@@ -37,7 +37,7 @@ kernel_thread:
# start by forking the current process, but with shared VM
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.36.2/arch/h8300/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/h8300/Kconfig
---- linux-2.6.36.2/arch/h8300/Kconfig 2010-10-21 13:06:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/h8300/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -226,6 +226,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/h8300/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/h8300/Kconfig
+--- linux-2.6.37/arch/h8300/Kconfig 2011-01-05 21:48:59.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/h8300/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -219,6 +219,8 @@ source "fs/Kconfig"
source "arch/h8300/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/include/asm/tlb.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/include/asm/tlb.h
---- linux-2.6.36.2/arch/ia64/include/asm/tlb.h 2010-02-25 11:51:26.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/include/asm/tlb.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/include/asm/tlb.h linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/include/asm/tlb.h
+--- linux-2.6.37/arch/ia64/include/asm/tlb.h 2010-02-25 11:51:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/include/asm/tlb.h 2010-11-23 02:09:40.000000000 +0100
@@ -40,6 +40,7 @@
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <asm/pgalloc.h>
#include <asm/processor.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/Kconfig
---- linux-2.6.36.2/arch/ia64/Kconfig 2010-10-21 13:06:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -671,6 +671,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/ia64/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/Kconfig
+--- linux-2.6.37/arch/ia64/Kconfig 2011-01-05 21:48:59.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -670,6 +670,8 @@ source "fs/Kconfig"
source "arch/ia64/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/kernel/entry.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/entry.S
---- linux-2.6.36.2/arch/ia64/kernel/entry.S 2010-10-21 13:06:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/entry.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/kernel/entry.S linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/entry.S
+--- linux-2.6.37/arch/ia64/kernel/entry.S 2010-10-21 13:06:52.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/entry.S 2010-11-23 02:09:40.000000000 +0100
@@ -1714,7 +1714,7 @@ sys_call_table:
data8 sys_mq_notify
data8 sys_mq_getsetattr
data8 sys_waitid // 1270
data8 sys_add_key
data8 sys_request_key
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/kernel/perfmon.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/perfmon.c
---- linux-2.6.36.2/arch/ia64/kernel/perfmon.c 2010-10-21 13:06:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/perfmon.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/kernel/perfmon.c linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/perfmon.c
+--- linux-2.6.37/arch/ia64/kernel/perfmon.c 2011-01-05 21:48:59.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/perfmon.c 2010-11-23 02:09:40.000000000 +0100
@@ -42,6 +42,7 @@
#include <linux/completion.h>
#include <linux/tracehook.h>
#include <asm/errno.h>
#include <asm/intrinsics.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/kernel/process.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/process.c
---- linux-2.6.36.2/arch/ia64/kernel/process.c 2010-10-21 13:06:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/process.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/kernel/process.c linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/process.c
+--- linux-2.6.37/arch/ia64/kernel/process.c 2010-10-21 13:06:52.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/process.c 2010-11-23 02:09:40.000000000 +0100
@@ -113,8 +113,8 @@ show_regs (struct pt_regs *regs)
unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
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.36.2/arch/ia64/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/ptrace.c
---- linux-2.6.36.2/arch/ia64/kernel/ptrace.c 2010-08-02 16:52:04.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/ptrace.c
+--- linux-2.6.37/arch/ia64/kernel/ptrace.c 2011-01-05 21:48:59.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/ptrace.c 2010-11-23 02:09:40.000000000 +0100
@@ -21,6 +21,7 @@
#include <linux/regset.h>
#include <linux/elf.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/traps.c
---- linux-2.6.36.2/arch/ia64/kernel/traps.c 2010-07-07 18:31:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/traps.c
+--- linux-2.6.37/arch/ia64/kernel/traps.c 2010-07-07 18:31:01.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -59,8 +59,9 @@ die (const char *str, struct pt_regs *re
put_cpu();
}
}
}
-diff -NurpP --minimal linux-2.6.36.2/arch/ia64/mm/fault.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/mm/fault.c
---- linux-2.6.36.2/arch/ia64/mm/fault.c 2010-08-02 16:52:04.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/ia64/mm/fault.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/ia64/mm/fault.c linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/mm/fault.c
+--- linux-2.6.37/arch/ia64/mm/fault.c 2010-08-02 16:52:04.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/ia64/mm/fault.c 2010-11-23 02:09:40.000000000 +0100
@@ -10,6 +10,7 @@
#include <linux/interrupt.h>
#include <linux/kprobes.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/m32r/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/m32r/kernel/traps.c
---- linux-2.6.36.2/arch/m32r/kernel/traps.c 2009-12-03 20:01:57.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m32r/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/m32r/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/m32r/kernel/traps.c
+--- linux-2.6.37/arch/m32r/kernel/traps.c 2009-12-03 20:01:57.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m32r/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -196,8 +196,9 @@ static void show_registers(struct pt_reg
} else {
printk("SPI: %08lx\n", sp);
/*
* When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-2.6.36.2/arch/m68k/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/Kconfig
---- linux-2.6.36.2/arch/m68k/Kconfig 2010-10-21 13:06:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -616,6 +616,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/m68k/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/Kconfig
+--- linux-2.6.37/arch/m68k/Kconfig 2011-01-05 21:49:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -610,6 +610,8 @@ source "fs/Kconfig"
source "arch/m68k/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/m68k/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/kernel/ptrace.c
---- linux-2.6.36.2/arch/m68k/kernel/ptrace.c 2010-07-07 18:31:02.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/m68k/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/kernel/ptrace.c
+--- linux-2.6.37/arch/m68k/kernel/ptrace.c 2011-01-05 21:49:01.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/kernel/ptrace.c 2010-11-23 02:09:40.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/ptrace.h>
#include <linux/user.h>
#include <asm/uaccess.h>
#include <asm/page.h>
-@@ -254,6 +255,8 @@ long arch_ptrace(struct task_struct *chi
+@@ -255,6 +256,8 @@ long arch_ptrace(struct task_struct *chi
ret = ptrace_request(child, request, addr, data);
break;
}
return ret;
out_eio:
-diff -NurpP --minimal linux-2.6.36.2/arch/m68k/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/kernel/traps.c
---- linux-2.6.36.2/arch/m68k/kernel/traps.c 2010-08-02 16:52:04.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68k/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/m68k/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/kernel/traps.c
+--- linux-2.6.37/arch/m68k/kernel/traps.c 2010-08-02 16:52:04.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m68k/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -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);
addr = (unsigned long)&fp->un;
printk("Frame format=%X ", regs->format);
switch (regs->format) {
-diff -NurpP --minimal linux-2.6.36.2/arch/m68knommu/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68knommu/Kconfig
---- linux-2.6.36.2/arch/m68knommu/Kconfig 2010-10-21 13:06:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68knommu/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -730,6 +730,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/m68knommu/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/m68knommu/Kconfig
+--- linux-2.6.37/arch/m68knommu/Kconfig 2011-01-05 21:49:01.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m68knommu/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -732,6 +732,8 @@ source "fs/Kconfig"
source "arch/m68knommu/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/m68knommu/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68knommu/kernel/traps.c
---- linux-2.6.36.2/arch/m68knommu/kernel/traps.c 2009-09-10 15:25:23.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/m68knommu/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/m68knommu/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/m68knommu/kernel/traps.c
+--- linux-2.6.37/arch/m68knommu/kernel/traps.c 2011-01-05 21:49:01.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/m68knommu/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -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);
show_stack(NULL, (unsigned long *)(fp + 1));
add_taint(TAINT_DIE);
do_exit(SIGSEGV);
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/Kconfig
---- linux-2.6.36.2/arch/mips/Kconfig 2010-10-21 13:06:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -2298,6 +2298,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/mips/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/mips/Kconfig
+--- linux-2.6.37/arch/mips/Kconfig 2011-01-05 21:49:03.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/Kconfig 2011-01-05 22:30:26.000000000 +0100
+@@ -2396,6 +2396,8 @@ source "fs/Kconfig"
source "arch/mips/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/ptrace.c
---- linux-2.6.36.2/arch/mips/kernel/ptrace.c 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/ptrace.c
+--- linux-2.6.37/arch/mips/kernel/ptrace.c 2011-01-05 21:49:06.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/ptrace.c 2010-11-23 02:09:40.000000000 +0100
@@ -25,6 +25,7 @@
#include <linux/security.h>
#include <linux/audit.h>
#include <asm/byteorder.h>
#include <asm/cpu.h>
-@@ -259,6 +260,9 @@ long arch_ptrace(struct task_struct *chi
- {
- int ret;
+@@ -263,6 +264,9 @@ long arch_ptrace(struct task_struct *chi
+ void __user *datavp = (void __user *) data;
+ unsigned long __user *datalp = (void __user *) data;
+ if (!vx_check(vx_task_xid(child), VS_WATCH_P | VS_IDENT))
+ goto out;
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.36.2/arch/mips/kernel/scall32-o32.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall32-o32.S
---- linux-2.6.36.2/arch/mips/kernel/scall32-o32.S 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall32-o32.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/scall32-o32.S linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall32-o32.S
+--- linux-2.6.37/arch/mips/kernel/scall32-o32.S 2010-10-21 13:06:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall32-o32.S 2010-11-23 02:09:40.000000000 +0100
@@ -524,7 +524,7 @@ einval: li v0, -ENOSYS
sys sys_mq_timedreceive 5
sys sys_mq_notify 2 /* 4275 */
sys sys_waitid 5
sys sys_ni_syscall 0 /* available, was setaltroot */
sys sys_add_key 5 /* 4280 */
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/kernel/scall64-64.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-64.S
---- linux-2.6.36.2/arch/mips/kernel/scall64-64.S 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-64.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/scall64-64.S linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-64.S
+--- linux-2.6.37/arch/mips/kernel/scall64-64.S 2010-10-21 13:06:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-64.S 2010-11-23 02:09:40.000000000 +0100
@@ -363,7 +363,7 @@ sys_call_table:
PTR sys_mq_timedreceive
PTR sys_mq_notify
PTR sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/kernel/scall64-n32.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-n32.S
---- linux-2.6.36.2/arch/mips/kernel/scall64-n32.S 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-n32.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/scall64-n32.S linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-n32.S
+--- linux-2.6.37/arch/mips/kernel/scall64-n32.S 2010-10-21 13:06:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-n32.S 2010-11-23 02:09:40.000000000 +0100
@@ -362,7 +362,7 @@ EXPORT(sysn32_call_table)
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify
PTR compat_sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/kernel/scall64-o32.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-o32.S
---- linux-2.6.36.2/arch/mips/kernel/scall64-o32.S 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/scall64-o32.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/scall64-o32.S linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-o32.S
+--- linux-2.6.37/arch/mips/kernel/scall64-o32.S 2010-10-21 13:06:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/scall64-o32.S 2010-11-23 02:09:40.000000000 +0100
@@ -481,7 +481,7 @@ sys_call_table:
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify /* 4275 */
PTR sys_32_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */
-diff -NurpP --minimal linux-2.6.36.2/arch/mips/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/traps.c
---- linux-2.6.36.2/arch/mips/kernel/traps.c 2010-10-21 13:06:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/mips/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
-@@ -341,9 +341,10 @@ void show_registers(struct pt_regs *regs
+diff -NurpP --minimal linux-2.6.37/arch/mips/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/traps.c
+--- linux-2.6.37/arch/mips/kernel/traps.c 2011-01-05 21:49:06.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/mips/kernel/traps.c 2011-01-05 22:30:26.000000000 +0100
+@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs
__show_regs(regs);
print_modules();
if (cpu_has_userlocal) {
unsigned long tls;
-diff -NurpP --minimal linux-2.6.36.2/arch/parisc/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/Kconfig
---- linux-2.6.36.2/arch/parisc/Kconfig 2010-10-21 13:06:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -295,6 +295,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/parisc/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/Kconfig
+--- linux-2.6.37/arch/parisc/Kconfig 2011-01-05 21:49:08.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -293,6 +293,8 @@ source "fs/Kconfig"
source "arch/parisc/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/parisc/kernel/syscall_table.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/kernel/syscall_table.S
---- linux-2.6.36.2/arch/parisc/kernel/syscall_table.S 2010-07-07 18:31:04.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/kernel/syscall_table.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/parisc/kernel/syscall_table.S linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/kernel/syscall_table.S
+--- linux-2.6.37/arch/parisc/kernel/syscall_table.S 2011-01-05 21:49:09.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/kernel/syscall_table.S 2010-11-23 02:09:40.000000000 +0100
@@ -361,7 +361,7 @@
ENTRY_COMP(mbind) /* 260 */
ENTRY_COMP(get_mempolicy)
ENTRY_SAME(add_key)
ENTRY_SAME(request_key) /* 265 */
ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-2.6.36.2/arch/parisc/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/kernel/traps.c
---- linux-2.6.36.2/arch/parisc/kernel/traps.c 2009-09-10 15:25:40.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/parisc/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/kernel/traps.c
+--- linux-2.6.37/arch/parisc/kernel/traps.c 2009-09-10 15:25:40.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
@@ -236,8 +236,9 @@ void die_if_kernel(char *str, struct pt_
if (err == 0)
return; /* STFU */
/* Wot's wrong wif bein' racy? */
if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-2.6.36.2/arch/parisc/mm/fault.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/mm/fault.c
---- linux-2.6.36.2/arch/parisc/mm/fault.c 2010-08-02 16:52:06.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/parisc/mm/fault.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/parisc/mm/fault.c linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/mm/fault.c
+--- linux-2.6.37/arch/parisc/mm/fault.c 2010-08-02 16:52:06.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/parisc/mm/fault.c 2010-11-23 02:09:40.000000000 +0100
@@ -237,8 +237,9 @@ bad_area:
#ifdef PRINT_USER_FAULTS
if (vma) {
printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n",
vma->vm_start, vma->vm_end);
-diff -NurpP --minimal linux-2.6.36.2/arch/powerpc/include/asm/unistd.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/include/asm/unistd.h
---- linux-2.6.36.2/arch/powerpc/include/asm/unistd.h 2010-10-21 13:06:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/include/asm/unistd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/powerpc/include/asm/unistd.h linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/include/asm/unistd.h
+--- linux-2.6.37/arch/powerpc/include/asm/unistd.h 2011-01-05 21:49:10.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/include/asm/unistd.h 2010-11-23 02:09:40.000000000 +0100
@@ -275,7 +275,7 @@
#endif
#define __NR_rtas 255
#define __NR_migrate_pages 258
#define __NR_mbind 259
#define __NR_get_mempolicy 260
-diff -NurpP --minimal linux-2.6.36.2/arch/powerpc/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/Kconfig
---- linux-2.6.36.2/arch/powerpc/Kconfig 2010-10-21 13:06:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -974,6 +974,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/powerpc/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/Kconfig
+--- linux-2.6.37/arch/powerpc/Kconfig 2011-01-05 21:49:09.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -976,6 +976,8 @@ source "lib/Kconfig"
source "arch/powerpc/Kconfig.debug"
source "security/Kconfig"
config KEYS_COMPAT
-diff -NurpP --minimal linux-2.6.36.2/arch/powerpc/kernel/process.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/process.c
---- linux-2.6.36.2/arch/powerpc/kernel/process.c 2010-10-21 13:06:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/process.c 2010-10-21 13:09:36.000000000 +0200
-@@ -634,8 +634,9 @@ void show_regs(struct pt_regs * regs)
+diff -NurpP --minimal linux-2.6.37/arch/powerpc/kernel/process.c linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/process.c
+--- linux-2.6.37/arch/powerpc/kernel/process.c 2011-01-05 21:49:11.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/process.c 2010-11-23 02:09:40.000000000 +0100
+@@ -633,8 +633,9 @@ void show_regs(struct pt_regs * regs)
#else
printk("DAR: "REG", DSISR: "REG"\n", regs->dar, regs->dsisr);
#endif
#ifdef CONFIG_SMP
printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-2.6.36.2/arch/powerpc/kernel/traps.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/traps.c
---- linux-2.6.36.2/arch/powerpc/kernel/traps.c 2010-10-21 13:06:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/traps.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1048,8 +1048,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-2.6.37/arch/powerpc/kernel/traps.c linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/traps.c
+--- linux-2.6.37/arch/powerpc/kernel/traps.c 2011-01-05 21:49:11.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/traps.c 2010-11-23 02:09:40.000000000 +0100
+@@ -1053,8 +1053,9 @@ void nonrecoverable_exception(struct pt_
void trace_syscall(struct pt_regs *regs)
{
regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
}
-diff -NurpP --minimal linux-2.6.36.2/arch/powerpc/kernel/vdso.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/vdso.c
---- linux-2.6.36.2/arch/powerpc/kernel/vdso.c 2010-08-02 16:52:07.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/powerpc/kernel/vdso.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/powerpc/kernel/vdso.c linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/vdso.c
+--- linux-2.6.37/arch/powerpc/kernel/vdso.c 2011-01-05 21:49:11.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/powerpc/kernel/vdso.c 2010-11-23 02:09:40.000000000 +0100
@@ -23,6 +23,7 @@
#include <linux/security.h>
#include <linux/bootmem.h>
#include <asm/pgtable.h>
#include <asm/system.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/s390/include/asm/tlb.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/include/asm/tlb.h
---- linux-2.6.36.2/arch/s390/include/asm/tlb.h 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/include/asm/tlb.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/s390/include/asm/tlb.h linux-2.6.37-vs2.3.0.37-rc1/arch/s390/include/asm/tlb.h
+--- linux-2.6.37/arch/s390/include/asm/tlb.h 2011-01-05 21:49:13.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/s390/include/asm/tlb.h 2010-11-23 02:09:40.000000000 +0100
@@ -23,6 +23,8 @@
#include <linux/mm.h>
#include <asm/processor.h>
#include <asm/pgalloc.h>
#include <asm/smp.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/s390/include/asm/unistd.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/include/asm/unistd.h
---- linux-2.6.36.2/arch/s390/include/asm/unistd.h 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/include/asm/unistd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/s390/include/asm/unistd.h linux-2.6.37-vs2.3.0.37-rc1/arch/s390/include/asm/unistd.h
+--- linux-2.6.37/arch/s390/include/asm/unistd.h 2010-10-21 13:06:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/s390/include/asm/unistd.h 2010-11-23 02:09:40.000000000 +0100
@@ -202,7 +202,7 @@
#define __NR_clock_gettime (__NR_timer_create+6)
#define __NR_clock_getres (__NR_timer_create+7)
#define __NR_statfs64 265
#define __NR_fstatfs64 266
#define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-2.6.36.2/arch/s390/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/Kconfig
---- linux-2.6.36.2/arch/s390/Kconfig 2010-10-21 13:06:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -620,6 +620,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/s390/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/s390/Kconfig
+--- linux-2.6.37/arch/s390/Kconfig 2011-01-05 21:49:12.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/s390/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -640,6 +640,8 @@ source "fs/Kconfig"
source "arch/s390/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/s390/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/kernel/ptrace.c
---- linux-2.6.36.2/arch/s390/kernel/ptrace.c 2010-08-02 16:52:09.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/s390/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/arch/s390/kernel/ptrace.c
+--- linux-2.6.37/arch/s390/kernel/ptrace.c 2011-01-05 21:49:13.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/s390/kernel/ptrace.c 2010-11-23 02:09:40.000000000 +0100
@@ -36,6 +36,7 @@
#include <linux/regset.h>
#include <linux/tracehook.h>
#include <trace/syscall.h>
#include <asm/compat.h>
#include <asm/segment.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/s390/kernel/syscalls.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/kernel/syscalls.S
---- linux-2.6.36.2/arch/s390/kernel/syscalls.S 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/s390/kernel/syscalls.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/s390/kernel/syscalls.S linux-2.6.37-vs2.3.0.37-rc1/arch/s390/kernel/syscalls.S
+--- linux-2.6.37/arch/s390/kernel/syscalls.S 2010-10-21 13:06:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/s390/kernel/syscalls.S 2010-11-23 02:09:40.000000000 +0100
@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */
SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
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.36.2/arch/sh/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/Kconfig
---- linux-2.6.36.2/arch/sh/Kconfig 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -878,6 +878,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/sh/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/sh/Kconfig
+--- linux-2.6.37/arch/sh/Kconfig 2011-01-05 21:49:13.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sh/Kconfig 2011-01-05 22:30:27.000000000 +0100
+@@ -883,6 +883,8 @@ source "fs/Kconfig"
source "arch/sh/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/sh/kernel/irq.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/kernel/irq.c
---- linux-2.6.36.2/arch/sh/kernel/irq.c 2010-08-02 16:52:10.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/kernel/irq.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sh/kernel/irq.c linux-2.6.37-vs2.3.0.37-rc1/arch/sh/kernel/irq.c
+--- linux-2.6.37/arch/sh/kernel/irq.c 2011-01-05 21:49:16.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sh/kernel/irq.c 2010-11-23 02:09:40.000000000 +0100
@@ -13,6 +13,7 @@
#include <linux/seq_file.h>
#include <linux/ftrace.h>
#include <asm/processor.h>
#include <asm/machvec.h>
#include <asm/uaccess.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/sh/kernel/vsyscall/vsyscall.c linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/kernel/vsyscall/vsyscall.c
---- linux-2.6.36.2/arch/sh/kernel/vsyscall/vsyscall.c 2010-07-07 18:31:10.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sh/kernel/vsyscall/vsyscall.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sh/kernel/vsyscall/vsyscall.c linux-2.6.37-vs2.3.0.37-rc1/arch/sh/kernel/vsyscall/vsyscall.c
+--- linux-2.6.37/arch/sh/kernel/vsyscall/vsyscall.c 2010-07-07 18:31:10.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sh/kernel/vsyscall/vsyscall.c 2010-11-23 02:09:40.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/elf.h>
#include <linux/sched.h>
/*
* Should the kernel map a VDSO page into processes and pass its
-diff -NurpP --minimal linux-2.6.36.2/arch/sparc/include/asm/tlb_64.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/include/asm/tlb_64.h
---- linux-2.6.36.2/arch/sparc/include/asm/tlb_64.h 2009-09-10 15:25:45.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/include/asm/tlb_64.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sparc/include/asm/tlb_64.h linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/include/asm/tlb_64.h
+--- linux-2.6.37/arch/sparc/include/asm/tlb_64.h 2009-09-10 15:25:45.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/include/asm/tlb_64.h 2010-11-23 02:09:40.000000000 +0100
@@ -3,6 +3,7 @@
#include <linux/swap.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/sparc/include/asm/unistd.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/include/asm/unistd.h
---- linux-2.6.36.2/arch/sparc/include/asm/unistd.h 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/include/asm/unistd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sparc/include/asm/unistd.h linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/include/asm/unistd.h
+--- linux-2.6.37/arch/sparc/include/asm/unistd.h 2010-10-21 13:06:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/include/asm/unistd.h 2010-11-23 02:09:40.000000000 +0100
@@ -335,7 +335,7 @@
#define __NR_timer_getoverrun 264
#define __NR_timer_delete 265
#define __NR_io_setup 268
#define __NR_io_destroy 269
#define __NR_io_submit 270
-diff -NurpP --minimal linux-2.6.36.2/arch/sparc/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/Kconfig
---- linux-2.6.36.2/arch/sparc/Kconfig 2010-10-21 13:06:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -565,6 +565,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/sparc/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/Kconfig
+--- linux-2.6.37/arch/sparc/Kconfig 2011-01-05 21:49:17.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/Kconfig 2010-11-23 02:09:40.000000000 +0100
+@@ -560,6 +560,8 @@ source "fs/Kconfig"
source "arch/sparc/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/sparc/kernel/systbls_32.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/kernel/systbls_32.S
---- linux-2.6.36.2/arch/sparc/kernel/systbls_32.S 2010-10-21 13:06:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/kernel/systbls_32.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sparc/kernel/systbls_32.S linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/kernel/systbls_32.S
+--- linux-2.6.37/arch/sparc/kernel/systbls_32.S 2010-10-21 13:06:59.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/kernel/systbls_32.S 2010-11-23 02:09:40.000000000 +0100
@@ -70,7 +70,7 @@ sys_call_table:
/*250*/ .long sys_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
/*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.36.2/arch/sparc/kernel/systbls_64.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/kernel/systbls_64.S
---- linux-2.6.36.2/arch/sparc/kernel/systbls_64.S 2010-10-21 13:06:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/sparc/kernel/systbls_64.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/sparc/kernel/systbls_64.S linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/kernel/systbls_64.S
+--- linux-2.6.37/arch/sparc/kernel/systbls_64.S 2010-10-21 13:06:59.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/sparc/kernel/systbls_64.S 2010-11-23 02:09:41.000000000 +0100
@@ -71,7 +71,7 @@ sys_call_table32:
/*250*/ .word sys_mremap, compat_sys_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
/*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.36.2/arch/um/include/asm/tlb.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/asm/tlb.h
---- linux-2.6.36.2/arch/um/include/asm/tlb.h 2009-09-10 15:25:46.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/asm/tlb.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/um/include/asm/tlb.h linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/asm/tlb.h
+--- linux-2.6.37/arch/um/include/asm/tlb.h 2009-09-10 15:25:46.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/asm/tlb.h 2010-11-23 02:09:41.000000000 +0100
@@ -3,6 +3,7 @@
#include <linux/pagemap.h>
#include <asm/percpu.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-2.6.36.2/arch/um/include/shared/kern_constants.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/shared/kern_constants.h
---- linux-2.6.36.2/arch/um/include/shared/kern_constants.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/shared/kern_constants.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/um/include/shared/kern_constants.h linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/shared/kern_constants.h
+--- linux-2.6.37/arch/um/include/shared/kern_constants.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/shared/kern_constants.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../include/generated/asm-offsets.h"
-diff -NurpP --minimal linux-2.6.36.2/arch/um/include/shared/user_constants.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/shared/user_constants.h
---- linux-2.6.36.2/arch/um/include/shared/user_constants.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/include/shared/user_constants.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/um/include/shared/user_constants.h linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/shared/user_constants.h
+--- linux-2.6.37/arch/um/include/shared/user_constants.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/um/include/shared/user_constants.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,40 @@
+/*
+ * DO NOT MODIFY.
+#define UM_PROT_WRITE 2 /* PROT_WRITE # */
+#define UM_PROT_EXEC 4 /* PROT_EXEC # */
+
-diff -NurpP --minimal linux-2.6.36.2/arch/um/Kconfig.rest linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/Kconfig.rest
---- linux-2.6.36.2/arch/um/Kconfig.rest 2009-06-11 17:12:19.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/um/Kconfig.rest 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/um/Kconfig.rest linux-2.6.37-vs2.3.0.37-rc1/arch/um/Kconfig.rest
+--- linux-2.6.37/arch/um/Kconfig.rest 2009-06-11 17:12:19.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/um/Kconfig.rest 2010-11-23 02:09:41.000000000 +0100
@@ -18,6 +18,8 @@ source "drivers/connector/Kconfig"
source "fs/Kconfig"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/x86/ia32/ia32entry.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/ia32/ia32entry.S
---- linux-2.6.36.2/arch/x86/ia32/ia32entry.S 2010-10-21 13:06:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/ia32/ia32entry.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/x86/ia32/ia32entry.S linux-2.6.37-vs2.3.0.37-rc1/arch/x86/ia32/ia32entry.S
+--- linux-2.6.37/arch/x86/ia32/ia32entry.S 2010-10-21 13:06:59.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/x86/ia32/ia32entry.S 2010-11-23 02:09:41.000000000 +0100
@@ -783,7 +783,7 @@ ia32_sys_call_table:
.quad sys_tgkill /* 270 */
.quad compat_sys_utimes
.quad sys_mbind
.quad compat_sys_get_mempolicy /* 275 */
.quad sys_set_mempolicy
-diff -NurpP --minimal linux-2.6.36.2/arch/x86/include/asm/unistd_64.h linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/include/asm/unistd_64.h
---- linux-2.6.36.2/arch/x86/include/asm/unistd_64.h 2010-10-21 13:06:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/include/asm/unistd_64.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/x86/include/asm/unistd_64.h linux-2.6.37-vs2.3.0.37-rc1/arch/x86/include/asm/unistd_64.h
+--- linux-2.6.37/arch/x86/include/asm/unistd_64.h 2010-10-21 13:06:59.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/x86/include/asm/unistd_64.h 2010-11-23 02:09:41.000000000 +0100
@@ -535,7 +535,7 @@ __SYSCALL(__NR_tgkill, sys_tgkill)
#define __NR_utimes 235
__SYSCALL(__NR_utimes, sys_utimes)
#define __NR_mbind 237
__SYSCALL(__NR_mbind, sys_mbind)
#define __NR_set_mempolicy 238
-diff -NurpP --minimal linux-2.6.36.2/arch/x86/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/Kconfig
---- linux-2.6.36.2/arch/x86/Kconfig 2010-10-21 13:06:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -2135,6 +2135,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-2.6.37/arch/x86/Kconfig linux-2.6.37-vs2.3.0.37-rc1/arch/x86/Kconfig
+--- linux-2.6.37/arch/x86/Kconfig 2011-01-05 21:49:19.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/x86/Kconfig 2011-01-05 22:30:27.000000000 +0100
+@@ -2119,6 +2119,8 @@ source "fs/Kconfig"
source "arch/x86/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-2.6.36.2/arch/x86/kernel/syscall_table_32.S linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/kernel/syscall_table_32.S
---- linux-2.6.36.2/arch/x86/kernel/syscall_table_32.S 2010-10-21 13:07:00.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/arch/x86/kernel/syscall_table_32.S 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/arch/x86/kernel/syscall_table_32.S linux-2.6.37-vs2.3.0.37-rc1/arch/x86/kernel/syscall_table_32.S
+--- linux-2.6.37/arch/x86/kernel/syscall_table_32.S 2010-10-21 13:07:00.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/arch/x86/kernel/syscall_table_32.S 2010-11-23 02:09:41.000000000 +0100
@@ -272,7 +272,7 @@ ENTRY(sys_call_table)
.long sys_tgkill /* 270 */
.long sys_utimes
.long sys_mbind
.long sys_get_mempolicy
.long sys_set_mempolicy
-diff -NurpP --minimal linux-2.6.36.2/Documentation/vserver/debug.txt linux-2.6.36.2-vs2.3.0.36.38.2/Documentation/vserver/debug.txt
---- linux-2.6.36.2/Documentation/vserver/debug.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/Documentation/vserver/debug.txt 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/Documentation/vserver/debug.txt linux-2.6.37-vs2.3.0.37-rc1/Documentation/vserver/debug.txt
+--- linux-2.6.37/Documentation/vserver/debug.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/Documentation/vserver/debug.txt 2010-11-23 02:09:40.000000000 +0100
@@ -0,0 +1,154 @@
+
+debug_cvirt:
+ 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.36.2/drivers/block/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/Kconfig
---- linux-2.6.36.2/drivers/block/Kconfig 2010-08-02 16:52:14.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/Kconfig 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/block/Kconfig linux-2.6.37-vs2.3.0.37-rc1/drivers/block/Kconfig
+--- linux-2.6.37/drivers/block/Kconfig 2011-01-05 21:49:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/block/Kconfig 2010-11-23 02:09:41.000000000 +0100
@@ -273,6 +273,13 @@ config BLK_DEV_CRYPTOLOOP
source "drivers/block/drbd/Kconfig"
config BLK_DEV_NBD
tristate "Network block device support"
depends on NET
-diff -NurpP --minimal linux-2.6.36.2/drivers/block/loop.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/loop.c
---- linux-2.6.36.2/drivers/block/loop.c 2010-10-21 13:07:02.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/loop.c 2010-10-21 13:11:25.000000000 +0200
-@@ -74,6 +74,7 @@
- #include <linux/highmem.h>
+diff -NurpP --minimal linux-2.6.37/drivers/block/loop.c linux-2.6.37-vs2.3.0.37-rc1/drivers/block/loop.c
+--- linux-2.6.37/drivers/block/loop.c 2011-01-05 21:49:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/block/loop.c 2010-11-23 02:15:37.000000000 +0100
+@@ -75,6 +75,7 @@
#include <linux/kthread.h>
#include <linux/splice.h>
+ #include <linux/sysfs.h>
+#include <linux/vs_context.h>
#include <asm/uaccess.h>
-@@ -814,6 +815,7 @@ static int loop_set_fd(struct loop_devic
+@@ -907,6 +908,7 @@ static int loop_set_fd(struct loop_devic
lo->lo_blocksize = lo_blocksize;
lo->lo_device = bdev;
lo->lo_flags = lo_flags;
lo->lo_backing_file = file;
lo->transfer = transfer_none;
lo->ioctl = NULL;
-@@ -942,6 +944,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1037,6 +1039,7 @@ static int loop_clr_fd(struct loop_devic
lo->lo_encrypt_key_size = 0;
lo->lo_flags = 0;
lo->lo_thread = NULL;
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);
-@@ -979,7 +982,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1075,7 +1078,7 @@ loop_set_status(struct loop_device *lo,
if (lo->lo_encrypt_key_size &&
lo->lo_key_owner != uid &&
return -EPERM;
if (lo->lo_state != Lo_bound)
return -ENXIO;
-@@ -1063,7 +1066,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1159,7 +1162,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;
info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
lo->lo_encrypt_key_size);
-@@ -1409,6 +1413,9 @@ static int lo_open(struct block_device *
+@@ -1505,6 +1509,9 @@ static int lo_open(struct block_device *
{
struct loop_device *lo = bdev->bd_disk->private_data;
+ if (!vx_check(lo->lo_xid, VS_IDENT|VS_HOSTID|VS_ADMIN_P))
+ return -EACCES;
+
- lock_kernel();
+ mutex_lock(&loop_mutex);
mutex_lock(&lo->lo_ctl_mutex);
lo->lo_refcnt++;
-diff -NurpP --minimal linux-2.6.36.2/drivers/block/Makefile linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/Makefile
---- linux-2.6.36.2/drivers/block/Makefile 2010-02-25 11:51:36.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/Makefile 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/block/Makefile linux-2.6.37-vs2.3.0.37-rc1/drivers/block/Makefile
+--- linux-2.6.37/drivers/block/Makefile 2011-01-05 21:49:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/block/Makefile 2010-11-23 02:09:41.000000000 +0100
@@ -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_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_BLK_DEV_DRBD) += drbd/
-diff -NurpP --minimal linux-2.6.36.2/drivers/block/vroot.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/vroot.c
---- linux-2.6.36.2/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/block/vroot.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/block/vroot.c linux-2.6.37-vs2.3.0.37-rc1/drivers/block/vroot.c
+--- linux-2.6.37/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/block/vroot.c 2011-01-06 00:21:01.000000000 +0100
@@ -0,0 +1,282 @@
+/*
+ * linux/drivers/block/vroot.c
+ struct gendisk *disk = disks[i];
+
+ memset(vr, 0, sizeof(*vr));
-+ init_MUTEX(&vr->vr_ctl_mutex);
++ mutex_init(&vr->vr_ctl_mutex);
+ vr->vr_number = i;
+ disk->major = VROOT_MAJOR;
+ disk->first_minor = i;
+
+#endif
+
-diff -NurpP --minimal linux-2.6.36.2/drivers/char/sysrq.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/char/sysrq.c
---- linux-2.6.36.2/drivers/char/sysrq.c 2010-10-21 13:07:02.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/char/sysrq.c 2010-10-28 18:08:06.000000000 +0200
-@@ -41,6 +41,7 @@
- #include <linux/oom.h>
- #include <linux/slab.h>
- #include <linux/input.h>
-+#include <linux/vserver/debug.h>
-
- #include <asm/ptrace.h>
- #include <asm/irq_regs.h>
-@@ -395,6 +396,21 @@ static struct sysrq_key_op sysrq_unrt_op
- .enable_mask = SYSRQ_ENABLE_RTNICE,
- };
-
-+
-+#ifdef CONFIG_VSERVER_DEBUG
-+static void sysrq_handle_vxinfo(int key)
-+{
-+ dump_vx_info_inactive((key == 'x') ? 0 : 1);
-+}
-+
-+static struct sysrq_key_op sysrq_showvxinfo_op = {
-+ .handler = sysrq_handle_vxinfo,
-+ .help_msg = "conteXt",
-+ .action_msg = "Show Context Info",
-+ .enable_mask = SYSRQ_ENABLE_DUMP,
-+};
-+#endif
-+
- /* Key Operations table and lock */
- static DEFINE_SPINLOCK(sysrq_key_table_lock);
-
-@@ -449,7 +465,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 */
-+#ifdef CONFIG_VSERVER_DEBUG
-+ &sysrq_showvxinfo_op, /* x */
-+#else
- NULL, /* x */
-+#endif
- /* y: May be registered on sparc64 for global register dump */
- NULL, /* y */
- &sysrq_ftrace_dump_op, /* z */
-@@ -464,6 +484,8 @@ static int sysrq_key_table_key2index(int
- retval = key - '0';
- else if ((key >= 'a') && (key <= 'z'))
- retval = key + 10 - 'a';
-+ else if ((key >= 'A') && (key <= 'Z'))
-+ retval = key + 10 - 'A';
- else
- retval = -1;
- return retval;
-diff -NurpP --minimal linux-2.6.36.2/drivers/char/tty_io.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/char/tty_io.c
---- linux-2.6.36.2/drivers/char/tty_io.c 2010-12-13 22:08:57.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/char/tty_io.c 2010-12-13 22:09:27.000000000 +0100
-@@ -106,6 +106,7 @@
-
- #include <linux/kmod.h>
- #include <linux/nsproxy.h>
-+#include <linux/vs_pid.h>
-
- #undef TTY_DEBUG_HANGUP
-
-@@ -2047,7 +2048,8 @@ static int tiocsti(struct tty_struct *tt
- char ch, mbz = 0;
- struct tty_ldisc *ld;
-
-- if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN))
-+ if (((current->signal->tty != tty) &&
-+ !vx_capable(CAP_SYS_ADMIN, VXC_TIOCSTI)))
- return -EPERM;
- if (get_user(ch, p))
- return -EFAULT;
-@@ -2335,6 +2337,7 @@ static int tiocspgrp(struct tty_struct *
- return -ENOTTY;
- if (get_user(pgrp_nr, p))
- return -EFAULT;
-+ pgrp_nr = vx_rmap_pid(pgrp_nr);
- if (pgrp_nr < 0)
- return -EINVAL;
- rcu_read_lock();
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/r100_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r100_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/r100_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r100_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/r100_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r100_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/r100_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r100_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,28 @@
+static const unsigned r100_reg_safe_bm[102] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFEF,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/r200_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r200_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/r200_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r200_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/r200_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r200_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/r200_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r200_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,28 @@
+static const unsigned r200_reg_safe_bm[102] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFE3F, 0xFFFFFFEF,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/r300_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r300_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/r300_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r300_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/r300_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r300_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/r300_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r300_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,42 @@
+static const unsigned r300_reg_safe_bm[159] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0003FC01, 0xFFFFFCF8, 0xFF800B19,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/r420_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r420_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/r420_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/r420_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/r420_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r420_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/r420_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/r420_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,42 @@
+static const unsigned r420_reg_safe_bm[159] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0003FC01, 0xFFFFFCF8, 0xFF800B19,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/rn50_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rn50_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/rn50_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rn50_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/rn50_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rn50_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/rn50_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rn50_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,28 @@
+static const unsigned rn50_reg_safe_bm[102] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/rs600_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rs600_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/rs600_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rs600_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/rs600_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rs600_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/rs600_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rs600_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,57 @@
+static const unsigned rs600_reg_safe_bm[219] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/gpu/drm/radeon/rv515_reg_safe.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rv515_reg_safe.h
---- linux-2.6.36.2/drivers/gpu/drm/radeon/rv515_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/gpu/drm/radeon/rv515_reg_safe.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/gpu/drm/radeon/rv515_reg_safe.h linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rv515_reg_safe.h
+--- linux-2.6.37/drivers/gpu/drm/radeon/rv515_reg_safe.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/gpu/drm/radeon/rv515_reg_safe.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,57 @@
+static const unsigned rv515_reg_safe_bm[219] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+};
-diff -NurpP --minimal linux-2.6.36.2/drivers/infiniband/core/addr.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/infiniband/core/addr.c
---- linux-2.6.36.2/drivers/infiniband/core/addr.c 2010-10-21 13:07:05.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/infiniband/core/addr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/infiniband/core/addr.c linux-2.6.37-vs2.3.0.37-rc1/drivers/infiniband/core/addr.c
+--- linux-2.6.37/drivers/infiniband/core/addr.c 2010-10-21 13:07:05.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/infiniband/core/addr.c 2010-11-23 02:09:41.000000000 +0100
@@ -252,7 +252,7 @@ static int addr6_resolve(struct sockaddr
if (ipv6_addr_any(&fl.fl6_src)) {
if (ret)
goto put;
-diff -NurpP --minimal linux-2.6.36.2/drivers/infiniband/hw/ipath/ipath_user_pages.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/infiniband/hw/ipath/ipath_user_pages.c
---- linux-2.6.36.2/drivers/infiniband/hw/ipath/ipath_user_pages.c 2010-07-07 18:31:19.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/infiniband/hw/ipath/ipath_user_pages.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/infiniband/hw/ipath/ipath_user_pages.c linux-2.6.37-vs2.3.0.37-rc1/drivers/infiniband/hw/ipath/ipath_user_pages.c
+--- linux-2.6.37/drivers/infiniband/hw/ipath/ipath_user_pages.c 2010-07-07 18:31:19.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/infiniband/hw/ipath/ipath_user_pages.c 2010-11-23 02:09:41.000000000 +0100
@@ -35,6 +35,7 @@
#include <linux/device.h>
#include <linux/slab.h>
#include "ipath_kernel.h"
-diff -NurpP --minimal linux-2.6.36.2/drivers/md/dm.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm.c
---- linux-2.6.36.2/drivers/md/dm.c 2010-10-21 13:07:07.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm.c 2010-10-21 15:19:30.000000000 +0200
-@@ -21,6 +21,7 @@
+diff -NurpP --minimal linux-2.6.37/drivers/md/dm.c linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm.c
+--- linux-2.6.37/drivers/md/dm.c 2011-01-05 21:49:35.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm.c 2010-11-23 02:18:36.000000000 +0100
+@@ -20,6 +20,7 @@
#include <linux/idr.h>
#include <linux/hdreg.h>
#include <linux/delay.h>
#include <trace/events/block.h>
-@@ -121,6 +122,7 @@ struct mapped_device {
+@@ -120,6 +121,7 @@ struct mapped_device {
rwlock_t map_lock;
atomic_t holders;
atomic_t open_count;
unsigned long flags;
-@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device
+@@ -327,6 +329,7 @@ int dm_deleting_md(struct mapped_device
static int dm_blk_open(struct block_device *bdev, fmode_t mode)
{
struct mapped_device *md;
+ int ret = -ENXIO;
- lock_kernel();
+ mutex_lock(&dm_mutex);
spin_lock(&_minor_lock);
-@@ -352,19 +355,20 @@ static int dm_blk_open(struct block_devi
+@@ -336,19 +339,20 @@ static int dm_blk_open(struct block_devi
goto out;
if (test_bit(DMF_FREEING, &md->flags) ||
+ ret = 0;
out:
spin_unlock(&_minor_lock);
- unlock_kernel();
+ mutex_unlock(&dm_mutex);
-
- return md ? 0 : -ENXIO;
+ return ret;
}
static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -586,6 +590,14 @@ int dm_set_geometry(struct mapped_device
+@@ -566,6 +570,14 @@ int dm_set_geometry(struct mapped_device
return 0;
}
/*-----------------------------------------------------------------
* CRUD START:
* A more elegant soln is in the works that uses the queue
-@@ -1981,6 +1993,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1859,6 +1871,7 @@ static struct mapped_device *alloc_dev(i
INIT_LIST_HEAD(&md->uevent_list);
spin_lock_init(&md->uevent_lock);
md->queue = blk_alloc_queue(GFP_KERNEL);
if (!md->queue)
goto bad_queue;
-diff -NurpP --minimal linux-2.6.36.2/drivers/md/dm.h linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm.h
---- linux-2.6.36.2/drivers/md/dm.h 2010-10-21 13:07:07.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/md/dm.h linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm.h
+--- linux-2.6.37/drivers/md/dm.h 2010-10-21 13:07:07.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm.h 2010-11-23 02:09:41.000000000 +0100
@@ -41,6 +41,8 @@ struct dm_dev_internal {
struct dm_table;
struct dm_md_mempools;
/*-----------------------------------------------------------------
* Internal table functions.
*---------------------------------------------------------------*/
-diff -NurpP --minimal linux-2.6.36.2/drivers/md/dm-ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm-ioctl.c
---- linux-2.6.36.2/drivers/md/dm-ioctl.c 2010-10-21 13:07:07.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/md/dm-ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/md/dm-ioctl.c linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm-ioctl.c
+--- linux-2.6.37/drivers/md/dm-ioctl.c 2011-01-05 21:49:35.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/md/dm-ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -16,6 +16,7 @@
#include <linux/dm-ioctl.h>
#include <linux/hdreg.h>
return -EACCES;
if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-2.6.36.2/drivers/net/tun.c linux-2.6.36.2-vs2.3.0.36.38.2/drivers/net/tun.c
---- linux-2.6.36.2/drivers/net/tun.c 2010-10-21 13:07:15.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/drivers/net/tun.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/net/tun.c linux-2.6.37-vs2.3.0.37-rc1/drivers/net/tun.c
+--- linux-2.6.37/drivers/net/tun.c 2010-10-21 13:07:15.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/net/tun.c 2010-11-23 02:09:41.000000000 +0100
@@ -62,6 +62,7 @@
#include <linux/nsproxy.h>
#include <linux/virtio_net.h>
case TUNSETLINK:
/* Only allow setting the type when the interface is down */
if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-2.6.36.2/fs/attr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/attr.c
---- linux-2.6.36.2/fs/attr.c 2010-10-21 13:07:47.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/attr.c 2010-10-21 14:04:40.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/drivers/tty/sysrq.c linux-2.6.37-vs2.3.0.37-rc1/drivers/tty/sysrq.c
+--- linux-2.6.37/drivers/tty/sysrq.c 2011-01-05 21:50:13.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/tty/sysrq.c 2010-11-23 02:09:41.000000000 +0100
+@@ -41,6 +41,7 @@
+ #include <linux/oom.h>
+ #include <linux/slab.h>
+ #include <linux/input.h>
++#include <linux/vserver/debug.h>
+
+ #include <asm/ptrace.h>
+ #include <asm/irq_regs.h>
+@@ -395,6 +396,21 @@ static struct sysrq_key_op sysrq_unrt_op
+ .enable_mask = SYSRQ_ENABLE_RTNICE,
+ };
+
++
++#ifdef CONFIG_VSERVER_DEBUG
++static void sysrq_handle_vxinfo(int key)
++{
++ dump_vx_info_inactive((key == 'x') ? 0 : 1);
++}
++
++static struct sysrq_key_op sysrq_showvxinfo_op = {
++ .handler = sysrq_handle_vxinfo,
++ .help_msg = "conteXt",
++ .action_msg = "Show Context Info",
++ .enable_mask = SYSRQ_ENABLE_DUMP,
++};
++#endif
++
+ /* Key Operations table and lock */
+ static DEFINE_SPINLOCK(sysrq_key_table_lock);
+
+@@ -449,7 +465,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 */
++#ifdef CONFIG_VSERVER_DEBUG
++ &sysrq_showvxinfo_op, /* x */
++#else
+ NULL, /* x */
++#endif
+ /* y: May be registered on sparc64 for global register dump */
+ NULL, /* y */
+ &sysrq_ftrace_dump_op, /* z */
+@@ -464,6 +484,8 @@ static int sysrq_key_table_key2index(int
+ retval = key - '0';
+ else if ((key >= 'a') && (key <= 'z'))
+ retval = key + 10 - 'a';
++ else if ((key >= 'A') && (key <= 'Z'))
++ retval = key + 10 - 'A';
+ else
+ retval = -1;
+ return retval;
+diff -NurpP --minimal linux-2.6.37/drivers/tty/tty_io.c linux-2.6.37-vs2.3.0.37-rc1/drivers/tty/tty_io.c
+--- linux-2.6.37/drivers/tty/tty_io.c 2011-01-05 21:50:13.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/drivers/tty/tty_io.c 2011-01-05 22:30:36.000000000 +0100
+@@ -107,6 +107,7 @@
+
+ #include <linux/kmod.h>
+ #include <linux/nsproxy.h>
++#include <linux/vs_pid.h>
+
+ #undef TTY_DEBUG_HANGUP
+
+@@ -2057,7 +2058,8 @@ static int tiocsti(struct tty_struct *tt
+ char ch, mbz = 0;
+ struct tty_ldisc *ld;
+
+- if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN))
++ if (((current->signal->tty != tty) &&
++ !vx_capable(CAP_SYS_ADMIN, VXC_TIOCSTI)))
+ return -EPERM;
+ if (get_user(ch, p))
+ return -EFAULT;
+@@ -2345,6 +2347,7 @@ static int tiocspgrp(struct tty_struct *
+ return -ENOTTY;
+ if (get_user(pgrp_nr, p))
+ return -EFAULT;
++ pgrp_nr = vx_rmap_pid(pgrp_nr);
+ if (pgrp_nr < 0)
+ return -EINVAL;
+ rcu_read_lock();
+diff -NurpP --minimal linux-2.6.37/fs/attr.c linux-2.6.37-vs2.3.0.37-rc1/fs/attr.c
+--- linux-2.6.37/fs/attr.c 2010-10-21 13:07:47.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/attr.c 2010-11-23 02:09:41.000000000 +0100
@@ -13,6 +13,9 @@
#include <linux/fsnotify.h>
#include <linux/fcntl.h>
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
return -EPERM;
}
-diff -NurpP --minimal linux-2.6.36.2/fs/binfmt_aout.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_aout.c
---- linux-2.6.36.2/fs/binfmt_aout.c 2010-10-21 13:07:47.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_aout.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/binfmt_aout.c linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_aout.c
+--- linux-2.6.37/fs/binfmt_aout.c 2010-10-21 13:07:47.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_aout.c 2010-11-23 02:09:41.000000000 +0100
@@ -25,6 +25,7 @@
#include <linux/init.h>
#include <linux/coredump.h>
#include <asm/system.h>
#include <asm/uaccess.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/binfmt_elf.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_elf.c
---- linux-2.6.36.2/fs/binfmt_elf.c 2010-07-07 18:31:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_elf.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/binfmt_elf.c linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_elf.c
+--- linux-2.6.37/fs/binfmt_elf.c 2011-01-05 21:50:20.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_elf.c 2010-11-23 02:09:41.000000000 +0100
@@ -32,6 +32,7 @@
#include <linux/elf.h>
#include <linux/utsname.h>
#include <asm/uaccess.h>
#include <asm/param.h>
#include <asm/page.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/binfmt_flat.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_flat.c
---- linux-2.6.36.2/fs/binfmt_flat.c 2010-08-02 16:52:47.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_flat.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/binfmt_flat.c linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_flat.c
+--- linux-2.6.37/fs/binfmt_flat.c 2010-08-02 16:52:47.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_flat.c 2010-11-23 02:09:41.000000000 +0100
@@ -35,6 +35,7 @@
#include <linux/init.h>
#include <linux/flat.h>
#include <asm/byteorder.h>
#include <asm/system.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/binfmt_som.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_som.c
---- linux-2.6.36.2/fs/binfmt_som.c 2010-02-25 11:52:04.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/binfmt_som.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/binfmt_som.c linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_som.c
+--- linux-2.6.37/fs/binfmt_som.c 2010-02-25 11:52:04.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/binfmt_som.c 2010-11-23 02:09:41.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/shm.h>
#include <linux/personality.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/block_dev.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/block_dev.c
---- linux-2.6.36.2/fs/block_dev.c 2010-10-21 13:07:47.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/block_dev.c 2010-10-21 13:09:36.000000000 +0200
-@@ -26,6 +26,7 @@
+diff -NurpP --minimal linux-2.6.37/fs/block_dev.c linux-2.6.37-vs2.3.0.37-rc1/fs/block_dev.c
+--- linux-2.6.37/fs/block_dev.c 2011-01-05 21:50:20.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/block_dev.c 2010-11-23 02:09:41.000000000 +0100
+@@ -25,6 +25,7 @@
#include <linux/namei.h>
#include <linux/log2.h>
#include <linux/kmemleak.h>
#include <asm/uaccess.h>
#include "internal.h"
-@@ -530,6 +531,7 @@ struct block_device *bdget(dev_t dev)
+@@ -544,6 +545,7 @@ struct block_device *bdget(dev_t dev)
bdev->bd_invalidated = 0;
inode->i_mode = S_IFBLK;
inode->i_rdev = dev;
inode->i_bdev = bdev;
inode->i_data.a_ops = &def_blk_aops;
mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -576,6 +578,11 @@ EXPORT_SYMBOL(bdput);
+@@ -590,6 +592,11 @@ EXPORT_SYMBOL(bdput);
static struct block_device *bd_acquire(struct inode *inode)
{
struct block_device *bdev;
spin_lock(&bdev_lock);
bdev = inode->i_bdev;
-@@ -586,7 +593,7 @@ static struct block_device *bd_acquire(s
+@@ -600,7 +607,7 @@ static struct block_device *bd_acquire(s
}
spin_unlock(&bdev_lock);
if (bdev) {
spin_lock(&bdev_lock);
if (!inode->i_bdev) {
-diff -NurpP --minimal linux-2.6.36.2/fs/btrfs/ctree.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/ctree.h
---- linux-2.6.36.2/fs/btrfs/ctree.h 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/ctree.h 2010-10-21 13:09:36.000000000 +0200
-@@ -551,11 +551,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-2.6.37/fs/btrfs/ctree.h linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/ctree.h
+--- linux-2.6.37/fs/btrfs/ctree.h 2011-01-05 21:50:20.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/ctree.h 2011-01-05 22:30:38.000000000 +0100
+@@ -574,11 +574,14 @@ struct btrfs_inode_item {
/* modification sequence number for NFS */
__le64 sequence;
struct btrfs_timespec atime;
struct btrfs_timespec ctime;
struct btrfs_timespec mtime;
-@@ -1193,6 +1196,8 @@ struct btrfs_root {
- #define BTRFS_MOUNT_DISCARD (1 << 10)
- #define BTRFS_MOUNT_FORCE_COMPRESS (1 << 11)
+@@ -1236,6 +1239,8 @@ struct btrfs_root {
+ #define BTRFS_MOUNT_CLEAR_CACHE (1 << 13)
+ #define BTRFS_MOUNT_USER_SUBVOL_RM_ALLOWED (1 << 14)
+#define BTRFS_MOUNT_TAGGED (1 << 24)
+
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
#define btrfs_test_opt(root, opt) ((root)->fs_info->mount_opt & \
-@@ -1413,6 +1418,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -1456,6 +1461,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32);
BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32);
BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32);
BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32);
BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
-@@ -1474,6 +1480,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -1517,6 +1523,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
-@@ -2432,6 +2442,7 @@ extern const struct dentry_operations bt
+@@ -2510,6 +2520,7 @@ extern const struct dentry_operations bt
long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
void btrfs_update_iflags(struct inode *inode);
void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
/* file.c */
int btrfs_sync_file(struct file *file, int datasync);
-diff -NurpP --minimal linux-2.6.36.2/fs/btrfs/disk-io.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/disk-io.c
---- linux-2.6.36.2/fs/btrfs/disk-io.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/disk-io.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1707,6 +1707,9 @@ struct btrfs_root *open_ctree(struct sup
+diff -NurpP --minimal linux-2.6.37/fs/btrfs/disk-io.c linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/disk-io.c
+--- linux-2.6.37/fs/btrfs/disk-io.c 2011-01-05 21:50:20.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/disk-io.c 2011-01-05 22:30:38.000000000 +0100
+@@ -1733,6 +1733,9 @@ struct btrfs_root *open_ctree(struct sup
goto fail_iput;
}
features = btrfs_super_incompat_flags(disk_super) &
~BTRFS_FEATURE_INCOMPAT_SUPP;
if (features) {
-diff -NurpP --minimal linux-2.6.36.2/fs/btrfs/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/inode.c
---- linux-2.6.36.2/fs/btrfs/inode.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/btrfs/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/inode.c
+--- linux-2.6.37/fs/btrfs/inode.c 2011-01-05 21:50:21.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/inode.c 2011-01-05 22:30:38.000000000 +0100
@@ -37,6 +37,8 @@
#include <linux/posix_acl.h>
#include <linux/falloc.h>
#include "compat.h"
#include "ctree.h"
#include "disk-io.h"
-@@ -2415,6 +2417,8 @@ static void btrfs_read_locked_inode(stru
+@@ -2440,6 +2442,8 @@ static void btrfs_read_locked_inode(stru
int maybe_acls;
u64 alloc_group_block;
u32 rdev;
int ret;
path = btrfs_alloc_path();
-@@ -2431,8 +2435,13 @@ static void btrfs_read_locked_inode(stru
+@@ -2456,8 +2460,13 @@ static void btrfs_read_locked_inode(stru
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
inode->i_nlink = btrfs_inode_nlink(leaf, inode_item);
btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
tspec = btrfs_inode_atime(inode_item);
-@@ -2514,8 +2523,15 @@ static void fill_inode_item(struct btrfs
+@@ -2539,8 +2548,15 @@ static void fill_inode_item(struct btrfs
struct btrfs_inode_item *item,
struct inode *inode)
{
btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size);
btrfs_set_inode_mode(leaf, item, inode->i_mode);
btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
-@@ -6946,6 +6962,7 @@ static const struct inode_operations btr
+@@ -7228,6 +7244,7 @@ static const struct inode_operations btr
.listxattr = btrfs_listxattr,
.removexattr = btrfs_removexattr,
.permission = btrfs_permission,
};
static const struct inode_operations btrfs_dir_ro_inode_operations = {
.lookup = btrfs_lookup,
-@@ -7021,6 +7038,7 @@ static const struct inode_operations btr
+@@ -7303,6 +7320,7 @@ static const struct inode_operations btr
.permission = btrfs_permission,
.fallocate = btrfs_fallocate,
.fiemap = btrfs_fiemap,
};
static const struct inode_operations btrfs_special_inode_operations = {
.getattr = btrfs_getattr,
-diff -NurpP --minimal linux-2.6.36.2/fs/btrfs/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/ioctl.c
---- linux-2.6.36.2/fs/btrfs/ioctl.c 2010-08-02 16:52:47.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/btrfs/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/ioctl.c
+--- linux-2.6.37/fs/btrfs/ioctl.c 2011-01-05 21:50:21.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/ioctl.c 2011-01-05 22:30:39.000000000 +0100
@@ -68,10 +68,13 @@ static unsigned int btrfs_flags_to_ioctl
{
unsigned int iflags = 0;
if (flags & FS_APPEND_FL)
ip->flags |= BTRFS_INODE_APPEND;
else
-diff -NurpP --minimal linux-2.6.36.2/fs/btrfs/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/super.c
---- linux-2.6.36.2/fs/btrfs/super.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/btrfs/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -68,7 +68,7 @@ enum {
+diff -NurpP --minimal linux-2.6.37/fs/btrfs/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/super.c
+--- linux-2.6.37/fs/btrfs/super.c 2011-01-05 21:50:21.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/btrfs/super.c 2011-01-05 23:28:17.000000000 +0100
+@@ -70,8 +70,9 @@ enum {
Opt_nodatacow, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, Opt_ssd,
Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, Opt_compress,
Opt_compress_force, Opt_notreelog, Opt_ratio, Opt_flushoncommit,
-- Opt_discard, Opt_err,
-+ Opt_tag, Opt_notag, Opt_tagid, Opt_discard, Opt_err,
+- Opt_discard, Opt_space_cache, Opt_clear_cache, Opt_err,
++ Opt_discard, Opt_space_cache, Opt_clear_cache,
+ Opt_user_subvol_rm_allowed,
++ Opt_tag, Opt_notag, Opt_tagid, Opt_err,
};
static match_table_t tokens = {
-@@ -92,6 +92,9 @@ static match_table_t tokens = {
- {Opt_flushoncommit, "flushoncommit"},
- {Opt_ratio, "metadata_ratio=%d"},
- {Opt_discard, "discard"},
+@@ -98,6 +99,9 @@ static match_table_t tokens = {
+ {Opt_space_cache, "space_cache"},
+ {Opt_clear_cache, "clear_cache"},
+ {Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
+ {Opt_tag, "tag"},
+ {Opt_notag, "notag"},
+ {Opt_tagid, "tagid=%u"},
{Opt_err, NULL},
};
-@@ -235,6 +238,22 @@ int btrfs_parse_options(struct btrfs_roo
- case Opt_discard:
- btrfs_set_opt(info->mount_opt, DISCARD);
+@@ -252,6 +256,22 @@ int btrfs_parse_options(struct btrfs_roo
+ case Opt_user_subvol_rm_allowed:
+ btrfs_set_opt(info->mount_opt, USER_SUBVOL_RM_ALLOWED);
break;
+#ifndef CONFIG_TAGGING_NONE
+ case Opt_tag:
case Opt_err:
printk(KERN_INFO "btrfs: unrecognized mount option "
"'%s'\n", p);
-@@ -681,6 +700,12 @@ static int btrfs_remount(struct super_bl
+@@ -724,6 +744,12 @@ static int btrfs_remount(struct super_bl
if (ret)
return -EINVAL;
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
return 0;
-diff -NurpP --minimal linux-2.6.36.2/fs/char_dev.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/char_dev.c
---- linux-2.6.36.2/fs/char_dev.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/char_dev.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/char_dev.c linux-2.6.37-vs2.3.0.37-rc1/fs/char_dev.c
+--- linux-2.6.37/fs/char_dev.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/char_dev.c 2010-11-23 02:09:41.000000000 +0100
@@ -21,6 +21,8 @@
#include <linux/mutex.h>
#include <linux/backing-dev.h>
if (!kobj)
return -ENXIO;
new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-2.6.36.2/fs/dcache.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/dcache.c
---- linux-2.6.36.2/fs/dcache.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/dcache.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/dcache.c linux-2.6.37-vs2.3.0.37-rc1/fs/dcache.c
+--- linux-2.6.37/fs/dcache.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/dcache.c 2010-11-23 03:34:02.000000000 +0100
@@ -33,6 +33,7 @@
#include <linux/bootmem.h>
#include <linux/fs_struct.h>
#include "internal.h"
int sysctl_vfs_cache_pressure __read_mostly = 100;
-@@ -230,6 +231,8 @@ repeat:
+@@ -236,6 +237,8 @@ repeat:
return;
}
/*
* AV: ->d_delete() is _NOT_ allowed to block now.
*/
-@@ -323,6 +326,7 @@ static inline struct dentry * __dget_loc
+@@ -330,6 +333,7 @@ static inline struct dentry * __dget_loc
{
atomic_inc(&dentry->d_count);
- dentry_lru_del_init(dentry);
+ dentry_lru_del(dentry);
+ vx_dentry_inc(dentry);
return dentry;
}
-@@ -928,6 +932,9 @@ struct dentry *d_alloc(struct dentry * p
+@@ -940,6 +944,9 @@ struct dentry *d_alloc(struct dentry * p
struct dentry *dentry;
char *dname;
dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
if (!dentry)
return NULL;
-@@ -973,6 +980,7 @@ struct dentry *d_alloc(struct dentry * p
- if (parent)
- list_add(&dentry->d_u.d_child, &parent->d_subdirs);
- dentry_stat.nr_dentry++;
-+ vx_dentry_inc(dentry);
- spin_unlock(&dcache_lock);
+@@ -961,6 +968,7 @@ struct dentry *d_alloc(struct dentry * p
+ dname[name->len] = 0;
- return dentry;
-@@ -1432,6 +1440,7 @@ struct dentry * __d_lookup(struct dentry
+ atomic_set(&dentry->d_count, 1);
++ vx_dentry_inc(dentry);
+ dentry->d_flags = DCACHE_UNHASHED;
+ spin_lock_init(&dentry->d_lock);
+ dentry->d_inode = NULL;
+@@ -1445,6 +1453,7 @@ struct dentry * __d_lookup(struct dentry
}
atomic_inc(&dentry->d_count);
found = dentry;
spin_unlock(&dentry->d_lock);
break;
-diff -NurpP --minimal linux-2.6.36.2/fs/devpts/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/devpts/inode.c
---- linux-2.6.36.2/fs/devpts/inode.c 2010-08-02 16:52:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/devpts/inode.c 2010-10-21 22:25:15.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/devpts/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/devpts/inode.c
+--- linux-2.6.37/fs/devpts/inode.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/devpts/inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -25,6 +25,7 @@
#include <linux/parser.h>
#include <linux/fsnotify.h>
s->s_root = d_alloc_root(inode);
if (s->s_root)
-@@ -495,6 +532,9 @@ int devpts_pty_new(struct inode *ptmx_in
+@@ -493,6 +530,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);
inode->i_private = tty;
tty->driver_data = inode;
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/balloc.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/balloc.c
---- linux-2.6.36.2/fs/ext2/balloc.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/balloc.c 2010-10-21 13:09:36.000000000 +0200
-@@ -702,7 +702,6 @@ ext2_try_to_allocate(struct super_block
+diff -NurpP --minimal linux-2.6.37/fs/ext2/balloc.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/balloc.c
+--- linux-2.6.37/fs/ext2/balloc.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/balloc.c 2010-11-23 02:09:41.000000000 +0100
+@@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block
start = 0;
end = EXT2_BLOCKS_PER_GROUP(sb);
}
BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
repeat:
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/ext2.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ext2.h
---- linux-2.6.36.2/fs/ext2/ext2.h 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ext2.h 2010-10-21 14:10:55.000000000 +0200
-@@ -127,6 +127,7 @@ extern void ext2_set_inode_flags(struct
+diff -NurpP --minimal linux-2.6.37/fs/ext2/ext2.h linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ext2.h
+--- linux-2.6.37/fs/ext2/ext2.h 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ext2.h 2010-11-23 02:09:41.000000000 +0100
+@@ -126,6 +126,7 @@ extern void ext2_set_inode_flags(struct
extern void ext2_get_inode_flags(struct ext2_inode_info *);
extern int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
u64 start, u64 len);
/* ioctl.c */
extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/file.c
---- linux-2.6.36.2/fs/ext2/file.c 2010-08-02 16:52:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/file.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/file.c
+--- linux-2.6.37/fs/ext2/file.c 2010-08-02 16:52:48.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/file.c 2010-11-23 02:09:41.000000000 +0100
@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_
.setattr = ext2_setattr,
.check_acl = ext2_check_acl,
.fiemap = ext2_fiemap,
+ .sync_flags = ext2_sync_flags,
};
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/ialloc.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ialloc.c
---- linux-2.6.36.2/fs/ext2/ialloc.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ialloc.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/ialloc.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ialloc.c
+--- linux-2.6.37/fs/ext2/ialloc.c 2010-10-21 13:07:48.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ialloc.c 2010-11-23 02:09:41.000000000 +0100
@@ -17,6 +17,7 @@
#include <linux/backing-dev.h>
#include <linux/buffer_head.h>
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/inode.c
---- linux-2.6.36.2/fs/ext2/inode.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/inode.c
+--- linux-2.6.37/fs/ext2/inode.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -32,6 +32,7 @@
#include <linux/mpage.h>
#include <linux/fiemap.h>
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);
-@@ -1544,7 +1580,8 @@ int ext2_setattr(struct dentry *dentry,
+@@ -1535,7 +1571,8 @@ int ext2_setattr(struct dentry *dentry,
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
error = dquot_transfer(inode, iattr);
if (error)
return error;
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ioctl.c
---- linux-2.6.36.2/fs/ext2/ioctl.c 2009-09-10 15:26:21.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ioctl.c
+--- linux-2.6.37/fs/ext2/ioctl.c 2009-09-10 15:26:21.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -17,6 +17,16 @@
#include <asm/uaccess.h>
flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
ei->i_flags = flags;
mutex_unlock(&inode->i_mutex);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/namei.c
---- linux-2.6.36.2/fs/ext2/namei.c 2010-07-07 18:31:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/namei.c
+--- linux-2.6.37/fs/ext2/namei.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/namei.c 2010-11-23 02:09:41.000000000 +0100
@@ -32,6 +32,7 @@
#include <linux/pagemap.h>
};
const struct inode_operations ext2_special_inode_operations = {
-diff -NurpP --minimal linux-2.6.36.2/fs/ext2/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/super.c
---- linux-2.6.36.2/fs/ext2/super.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext2/super.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext2/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/super.c
+--- linux-2.6.37/fs/ext2/super.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext2/super.c 2010-11-23 02:09:41.000000000 +0100
@@ -378,7 +378,8 @@ enum {
Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
case Opt_nocheck:
clear_opt (sbi->s_mount_opt, CHECK);
break;
-@@ -833,6 +851,8 @@ static int ext2_fill_super(struct super_
+@@ -834,6 +852,8 @@ static int ext2_fill_super(struct super_
if (!parse_options((char *) data, sb))
goto failed_mount;
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
MS_POSIXACL : 0);
-@@ -1205,6 +1225,14 @@ static int ext2_remount (struct super_bl
+@@ -1207,6 +1227,14 @@ static int ext2_remount (struct super_bl
goto restore_opts;
}
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.36.2/fs/ext3/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/file.c
---- linux-2.6.36.2/fs/ext3/file.c 2010-07-07 18:31:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/file.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext3/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/file.c
+--- linux-2.6.37/fs/ext3/file.c 2010-07-07 18:31:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/file.c 2010-11-23 02:09:41.000000000 +0100
@@ -81,5 +81,6 @@ const struct inode_operations ext3_file_
#endif
.check_acl = ext3_check_acl,
+ .sync_flags = ext3_sync_flags,
};
-diff -NurpP --minimal linux-2.6.36.2/fs/ext3/ialloc.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/ialloc.c
---- linux-2.6.36.2/fs/ext3/ialloc.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/ialloc.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext3/ialloc.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/ialloc.c
+--- linux-2.6.37/fs/ext3/ialloc.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/ialloc.c 2010-11-23 02:09:41.000000000 +0100
@@ -23,6 +23,7 @@
#include <linux/buffer_head.h>
#include <linux/random.h>
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext3/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/inode.c
---- linux-2.6.36.2/fs/ext3/inode.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext3/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/inode.c
+--- linux-2.6.37/fs/ext3/inode.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -38,6 +38,7 @@
#include <linux/bio.h>
#include <linux/fiemap.h>
#include "xattr.h"
#include "acl.h"
-@@ -2387,7 +2388,7 @@ static void ext3_free_branches(handle_t
+@@ -2392,7 +2393,7 @@ static void ext3_free_branches(handle_t
int ext3_can_truncate(struct inode *inode)
{
return 0;
if (S_ISREG(inode->i_mode))
return 1;
-@@ -2772,36 +2773,60 @@ void ext3_set_inode_flags(struct inode *
+@@ -2776,36 +2777,60 @@ void ext3_set_inode_flags(struct inode *
{
unsigned int flags = EXT3_I(inode)->i_flags;
}
struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
-@@ -2815,6 +2840,8 @@ struct inode *ext3_iget(struct super_blo
+@@ -2819,6 +2844,8 @@ struct inode *ext3_iget(struct super_blo
transaction_t *transaction;
long ret;
int block;
inode = iget_locked(sb, ino);
if (!inode)
-@@ -2831,12 +2858,17 @@ struct inode *ext3_iget(struct super_blo
+@@ -2835,12 +2862,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);
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);
-@@ -2991,6 +3023,8 @@ static int ext3_do_update_inode(handle_t
+@@ -2995,6 +3027,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;
int err = 0, rc, block;
again:
-@@ -3005,29 +3039,32 @@ again:
+@@ -3009,29 +3043,32 @@ again:
ext3_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
if(!(test_opt(inode->i_sb, NO_UID32))) {
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);
-@@ -3187,7 +3224,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3191,7 +3228,8 @@ int ext3_setattr(struct dentry *dentry,
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -3209,6 +3247,8 @@ int ext3_setattr(struct dentry *dentry,
+@@ -3213,6 +3251,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;
error = ext3_mark_inode_dirty(handle, inode);
ext3_journal_stop(handle);
}
-diff -NurpP --minimal linux-2.6.36.2/fs/ext3/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/ioctl.c
---- linux-2.6.36.2/fs/ext3/ioctl.c 2009-06-11 17:13:03.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext3/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/ioctl.c
+--- linux-2.6.37/fs/ext3/ioctl.c 2009-06-11 17:13:03.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -8,6 +8,7 @@
*/
flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-2.6.36.2/fs/ext3/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/namei.c
---- linux-2.6.36.2/fs/ext3/namei.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext3/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/namei.c
+--- linux-2.6.37/fs/ext3/namei.c 2011-01-05 21:50:22.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/namei.c 2010-11-23 02:09:41.000000000 +0100
@@ -36,6 +36,7 @@
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
};
const struct inode_operations ext3_special_inode_operations = {
-diff -NurpP --minimal linux-2.6.36.2/fs/ext3/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/super.c
---- linux-2.6.36.2/fs/ext3/super.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext3/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -802,7 +802,8 @@ enum {
+diff -NurpP --minimal linux-2.6.37/fs/ext3/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/super.c
+--- linux-2.6.37/fs/ext3/super.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext3/super.c 2010-11-23 02:09:41.000000000 +0100
+@@ -796,7 +796,8 @@ enum {
Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
};
static const match_table_t tokens = {
-@@ -859,6 +860,9 @@ static const match_table_t tokens = {
+@@ -853,6 +854,9 @@ static const match_table_t tokens = {
{Opt_barrier, "barrier"},
{Opt_nobarrier, "nobarrier"},
{Opt_resize, "resize"},
{Opt_err, NULL},
};
-@@ -1011,6 +1015,20 @@ static int parse_options (char *options,
+@@ -1005,6 +1009,20 @@ static int parse_options (char *options,
case Opt_nouid32:
set_opt (sbi->s_mount_opt, NO_UID32);
break;
case Opt_nocheck:
clear_opt (sbi->s_mount_opt, CHECK);
break;
-@@ -1699,6 +1717,9 @@ static int ext3_fill_super (struct super
+@@ -1691,6 +1709,9 @@ static int ext3_fill_super (struct super
NULL, 0))
goto failed_mount;
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -2564,6 +2585,14 @@ static int ext3_remount (struct super_bl
+@@ -2575,6 +2596,14 @@ static int ext3_remount (struct super_bl
if (test_opt(sb, ABORT))
ext3_abort(sb, __func__, "Abort forced by user");
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/ext4.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ext4.h
---- linux-2.6.36.2/fs/ext4/ext4.h 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ext4.h 2010-10-21 13:09:36.000000000 +0200
-@@ -323,8 +323,12 @@ struct flex_groups {
+diff -NurpP --minimal linux-2.6.37/fs/ext4/ext4.h linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ext4.h
+--- linux-2.6.37/fs/ext4/ext4.h 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ext4.h 2011-01-05 22:32:19.000000000 +0100
+@@ -347,8 +347,12 @@ struct flex_groups {
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
#define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */
#define EXT4_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
#define EXT4_FL_USER_MODIFIABLE 0x004B80FF /* User modifiable flags */
-@@ -593,7 +597,8 @@ struct ext4_inode {
+@@ -617,7 +621,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] */
} linux2;
struct {
__le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
-@@ -707,6 +712,7 @@ do { \
+@@ -731,6 +736,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_reserved2 osd2.linux2.l_i_reserved2
#elif defined(__GNU__)
-@@ -885,6 +891,7 @@ struct ext4_inode_info {
- #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 */
-+#define EXT4_MOUNT_TAGGED 0x4000000 /* Enable Context Tags */
- #define EXT4_MOUNT_DELALLOC 0x8000000 /* Delalloc support */
- #define EXT4_MOUNT_DATA_ERR_ABORT 0x10000000 /* Abort on file data write */
- #define EXT4_MOUNT_BLOCK_VALIDITY 0x20000000 /* Block validity checking */
-@@ -1997,6 +2004,7 @@ extern int ext4_map_blocks(handle_t *han
+@@ -903,6 +909,7 @@ struct ext4_inode_info {
+ #define EXT4_MOUNT_POSIX_ACL 0x08000 /* POSIX Access Control Lists */
+ #define EXT4_MOUNT_NO_AUTO_DA_ALLOC 0x10000 /* No auto delalloc mapping */
+ #define EXT4_MOUNT_BARRIER 0x20000 /* Use block barriers */
++#define EXT4_MOUNT_TAGGED 0x40000 /* Enable Context Tags */
+ #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 */
+@@ -2054,6 +2061,7 @@ extern int ext4_map_blocks(handle_t *han
struct ext4_map_blocks *map, int flags);
extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
__u64 start, __u64 len);
/* move_extent.c */
extern int ext4_move_extents(struct file *o_filp, struct file *d_filp,
__u64 start_orig, __u64 start_donor,
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/file.c
---- linux-2.6.36.2/fs/ext4/file.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/file.c 2010-10-21 13:09:36.000000000 +0200
-@@ -161,5 +161,6 @@ const struct inode_operations ext4_file_
+diff -NurpP --minimal linux-2.6.37/fs/ext4/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/file.c
+--- linux-2.6.37/fs/ext4/file.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/file.c 2010-11-23 02:09:41.000000000 +0100
+@@ -203,5 +203,6 @@ const struct inode_operations ext4_file_
.check_acl = ext4_check_acl,
.fallocate = ext4_fallocate,
.fiemap = ext4_fiemap,
+ .sync_flags = ext4_sync_flags,
};
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/ialloc.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ialloc.c
---- linux-2.6.36.2/fs/ext4/ialloc.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ialloc.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext4/ialloc.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ialloc.c
+--- linux-2.6.37/fs/ext4/ialloc.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ialloc.c 2010-11-23 02:09:41.000000000 +0100
@@ -22,6 +22,7 @@
#include <linux/random.h>
#include <linux/bitops.h>
#include <asm/byteorder.h>
#include "ext4.h"
-@@ -976,6 +977,7 @@ got:
+@@ -991,6 +992,7 @@ got:
inode->i_mode = mode;
inode->i_uid = current_fsuid();
inode->i_gid = dir->i_gid;
} else
inode_init_owner(inode, dir, mode);
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/inode.c
---- linux-2.6.36.2/fs/ext4/inode.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext4/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/inode.c
+--- linux-2.6.37/fs/ext4/inode.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/inode.c 2011-01-05 22:30:39.000000000 +0100
@@ -40,6 +40,7 @@
#include <linux/workqueue.h>
#include <linux/kernel.h>
#include "ext4_jbd2.h"
#include "xattr.h"
-@@ -4596,7 +4597,7 @@ static void ext4_free_branches(handle_t
+@@ -4415,7 +4416,7 @@ static void ext4_free_branches(handle_t
int ext4_can_truncate(struct inode *inode)
{
return 0;
if (S_ISREG(inode->i_mode))
return 1;
-@@ -4947,41 +4948,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -4766,41 +4767,64 @@ void ext4_set_inode_flags(struct inode *
{
unsigned int flags = EXT4_I(inode)->i_flags;
} while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
}
-@@ -5017,6 +5041,8 @@ struct inode *ext4_iget(struct super_blo
+@@ -4836,6 +4860,8 @@ struct inode *ext4_iget(struct super_blo
journal_t *journal = EXT4_SB(sb)->s_journal;
long ret;
int block;
inode = iget_locked(sb, ino);
if (!inode)
-@@ -5032,12 +5058,16 @@ struct inode *ext4_iget(struct super_blo
+@@ -4851,12 +4877,16 @@ struct inode *ext4_iget(struct super_blo
goto bad_inode;
raw_inode = ext4_raw_inode(&iloc);
inode->i_mode = le16_to_cpu(raw_inode->i_mode);
inode->i_nlink = le16_to_cpu(raw_inode->i_links_count);
ei->i_state_flags = 0;
-@@ -5256,6 +5286,8 @@ static int ext4_do_update_inode(handle_t
+@@ -5075,6 +5105,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;
int err = 0, rc, block;
/* For fields not not tracking in the in-memory inode,
-@@ -5266,29 +5298,32 @@ static int ext4_do_update_inode(handle_t
+@@ -5085,29 +5117,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))) {
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -5473,7 +5508,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -5293,7 +5328,8 @@ int ext4_setattr(struct dentry *dentry,
if (is_quota_modification(inode, attr))
dquot_initialize(inode);
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -5495,6 +5531,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -5315,6 +5351,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;
error = ext4_mark_inode_dirty(handle, inode);
ext4_journal_stop(handle);
}
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ioctl.c
---- linux-2.6.36.2/fs/ext4/ioctl.c 2010-08-02 16:52:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext4/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ioctl.c
+--- linux-2.6.37/fs/ext4/ioctl.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -14,10 +14,39 @@
#include <linux/compat.h>
#include <linux/mount.h>
if (!capable(CAP_LINUX_IMMUTABLE))
goto flags_out;
}
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/namei.c
---- linux-2.6.36.2/fs/ext4/namei.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ext4/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/namei.c
+--- linux-2.6.37/fs/ext4/namei.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/namei.c 2011-01-05 22:30:39.000000000 +0100
@@ -34,6 +34,7 @@
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
#include "ext4.h"
#include "ext4_jbd2.h"
-@@ -912,6 +913,7 @@ restart:
+@@ -923,6 +924,7 @@ restart:
if (bh)
ll_rw_block(READ_META, 1, &bh);
}
}
if ((bh = bh_use[ra_ptr++]) == NULL)
goto next;
-@@ -2522,6 +2524,7 @@ const struct inode_operations ext4_dir_i
+@@ -2513,6 +2515,7 @@ const struct inode_operations ext4_dir_i
#endif
.check_acl = ext4_check_acl,
.fiemap = ext4_fiemap,
};
const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-2.6.36.2/fs/ext4/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/super.c
---- linux-2.6.36.2/fs/ext4/super.c 2010-12-13 22:08:58.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ext4/super.c 2010-12-13 22:09:27.000000000 +0100
-@@ -1220,6 +1220,7 @@ enum {
- Opt_inode_readahead_blks, Opt_journal_ioprio,
+diff -NurpP --minimal linux-2.6.37/fs/ext4/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/super.c
+--- linux-2.6.37/fs/ext4/super.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ext4/super.c 2011-01-05 22:30:39.000000000 +0100
+@@ -1247,6 +1247,7 @@ enum {
Opt_dioread_nolock, Opt_dioread_lock,
Opt_discard, Opt_nodiscard,
+ Opt_init_inode_table, Opt_noinit_inode_table,
+ Opt_tag, Opt_notag, Opt_tagid
};
static const match_table_t tokens = {
-@@ -1290,6 +1291,9 @@ static const match_table_t tokens = {
- {Opt_dioread_lock, "dioread_lock"},
- {Opt_discard, "discard"},
- {Opt_nodiscard, "nodiscard"},
+@@ -1322,6 +1323,9 @@ static const match_table_t tokens = {
+ {Opt_init_inode_table, "init_itable=%u"},
+ {Opt_init_inode_table, "init_itable"},
+ {Opt_noinit_inode_table, "noinit_itable"},
+ {Opt_tag, "tag"},
+ {Opt_notag, "notag"},
+ {Opt_tagid, "tagid=%u"},
{Opt_err, NULL},
};
-@@ -1458,6 +1462,20 @@ static int parse_options(char *options,
+@@ -1490,6 +1494,20 @@ static int parse_options(char *options,
case Opt_nouid32:
set_opt(sbi->s_mount_opt, NO_UID32);
break;
case Opt_debug:
set_opt(sbi->s_mount_opt, DEBUG);
break;
-@@ -2692,6 +2710,9 @@ static int ext4_fill_super(struct super_
+@@ -3134,6 +3152,9 @@ static int ext4_fill_super(struct super_
&journal_ioprio, NULL, 0))
goto failed_mount;
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -3754,6 +3775,14 @@ static int ext4_remount(struct super_blo
+@@ -4211,6 +4232,14 @@ static int ext4_remount(struct super_blo
if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
ext4_abort(sb, "Abort forced by user");
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-2.6.36.2/fs/fcntl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/fcntl.c
---- linux-2.6.36.2/fs/fcntl.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/fcntl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/fcntl.c linux-2.6.37-vs2.3.0.37-rc1/fs/fcntl.c
+--- linux-2.6.37/fs/fcntl.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/fcntl.c 2010-11-23 02:09:41.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/signal.h>
#include <linux/rcupdate.h>
err = security_file_fcntl(filp, cmd, arg);
if (err) {
-diff -NurpP --minimal linux-2.6.36.2/fs/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/file.c
---- linux-2.6.36.2/fs/file.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/file.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/file.c
+--- linux-2.6.37/fs/file.c 2010-10-21 13:07:48.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/file.c 2010-11-23 02:09:41.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/spinlock.h>
#include <linux/rcupdate.h>
#if 1
/* Sanity check */
if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-diff -NurpP --minimal linux-2.6.36.2/fs/file_table.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/file_table.c
---- linux-2.6.36.2/fs/file_table.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/file_table.c 2010-10-21 14:10:28.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/file_table.c linux-2.6.37-vs2.3.0.37-rc1/fs/file_table.c
+--- linux-2.6.37/fs/file_table.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/file_table.c 2010-11-23 02:09:41.000000000 +0100
@@ -24,6 +24,8 @@
#include <linux/percpu_counter.h>
#include <linux/percpu.h>
return f;
over:
-@@ -251,6 +255,8 @@ static void __fput(struct file *file)
+@@ -250,6 +254,8 @@ static void __fput(struct file *file)
cdev_put(inode->i_cdev);
fops_put(file->f_op);
put_pid(file->f_owner.pid);
file_sb_list_del(file);
if (file->f_mode & FMODE_WRITE)
drop_file_write_access(file);
-@@ -334,6 +340,8 @@ void put_filp(struct file *file)
+@@ -333,6 +339,8 @@ void put_filp(struct file *file)
{
if (atomic_long_dec_and_test(&file->f_count)) {
security_file_free(file);
file_sb_list_del(file);
file_free(file);
}
-diff -NurpP --minimal linux-2.6.36.2/fs/fs_struct.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/fs_struct.c
---- linux-2.6.36.2/fs/fs_struct.c 2010-10-21 13:07:48.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/fs_struct.c 2010-10-21 13:56:13.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/fs_struct.c linux-2.6.37-vs2.3.0.37-rc1/fs/fs_struct.c
+--- linux-2.6.37/fs/fs_struct.c 2010-10-21 13:07:48.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/fs_struct.c 2010-11-23 02:09:41.000000000 +0100
@@ -4,6 +4,7 @@
#include <linux/path.h>
#include <linux/slab.h>
}
return fs;
}
-diff -NurpP --minimal linux-2.6.36.2/fs/gfs2/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/file.c
---- linux-2.6.36.2/fs/gfs2/file.c 2010-10-21 13:07:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/file.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/gfs2/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/file.c
+--- linux-2.6.37/fs/gfs2/file.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/file.c 2010-11-23 02:09:41.000000000 +0100
@@ -132,6 +132,9 @@ static const u32 fsflags_to_gfs2[32] = {
[7] = GFS2_DIF_NOATIME,
[12] = GFS2_DIF_EXHASH,
static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch(cmd) {
-diff -NurpP --minimal linux-2.6.36.2/fs/gfs2/inode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/inode.h
---- linux-2.6.36.2/fs/gfs2/inode.h 2010-08-02 16:52:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/inode.h 2010-10-21 13:09:36.000000000 +0200
-@@ -109,6 +109,7 @@ extern const struct file_operations gfs2
+diff -NurpP --minimal linux-2.6.37/fs/gfs2/inode.h linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/inode.h
+--- linux-2.6.37/fs/gfs2/inode.h 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/inode.h 2010-11-23 02:09:41.000000000 +0100
+@@ -126,6 +126,7 @@ extern const struct file_operations gfs2
extern const struct file_operations gfs2_dir_fops_nolock;
extern void gfs2_set_inode_flags(struct inode *inode);
#ifdef CONFIG_GFS2_FS_LOCKING_DLM
extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-2.6.36.2/fs/gfs2/ops_inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/ops_inode.c
---- linux-2.6.36.2/fs/gfs2/ops_inode.c 2010-10-21 13:07:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/gfs2/ops_inode.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1352,6 +1352,7 @@ const struct inode_operations gfs2_file_
+diff -NurpP --minimal linux-2.6.37/fs/gfs2/ops_inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/ops_inode.c
+--- linux-2.6.37/fs/gfs2/ops_inode.c 2011-01-05 21:50:23.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/gfs2/ops_inode.c 2010-11-23 02:09:41.000000000 +0100
+@@ -1594,6 +1594,8 @@ const struct inode_operations gfs2_dir_i
.listxattr = gfs2_listxattr,
.removexattr = gfs2_removexattr,
.fiemap = gfs2_fiemap,
+ .sync_flags = gfs2_sync_flags,
- };
-
- const struct inode_operations gfs2_dir_iops = {
-@@ -1372,6 +1373,7 @@ const struct inode_operations gfs2_dir_i
- .listxattr = gfs2_listxattr,
- .removexattr = gfs2_removexattr,
- .fiemap = gfs2_fiemap,
+ .sync_flags = gfs2_sync_flags,
};
const struct inode_operations gfs2_symlink_iops = {
-diff -NurpP --minimal linux-2.6.36.2/fs/hfsplus/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/hfsplus/ioctl.c
---- linux-2.6.36.2/fs/hfsplus/ioctl.c 2010-08-02 16:52:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/hfsplus/ioctl.c 2010-10-21 13:09:36.000000000 +0200
-@@ -18,6 +18,7 @@
- #include <linux/sched.h>
- #include <linux/xattr.h>
- #include <linux/smp_lock.h>
-+// #include <linux/mount.h>
- #include <asm/uaccess.h>
- #include "hfsplus_fs.h"
-
-diff -NurpP --minimal linux-2.6.36.2/fs/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/inode.c
---- linux-2.6.36.2/fs/inode.c 2010-10-21 13:07:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/inode.c 2010-10-21 13:09:36.000000000 +0200
-@@ -24,6 +24,7 @@
- #include <linux/mount.h>
+diff -NurpP --minimal linux-2.6.37/fs/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/inode.c
+--- linux-2.6.37/fs/inode.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/inode.c 2010-11-23 03:34:25.000000000 +0100
+@@ -25,6 +25,7 @@
#include <linux/async.h>
#include <linux/posix_acl.h>
+ #include <linux/ima.h>
+#include <linux/vs_tag.h>
/*
* This is needed for the following functions:
-@@ -130,6 +131,9 @@ int inode_init_always(struct super_block
+@@ -162,6 +163,9 @@ int inode_init_always(struct super_block
struct address_space *const mapping = &inode->i_data;
inode->i_sb = sb;
inode->i_blkbits = sb->s_blocksize_bits;
inode->i_flags = 0;
atomic_set(&inode->i_count, 1);
-@@ -150,6 +154,7 @@ int inode_init_always(struct super_block
+@@ -182,6 +186,7 @@ int inode_init_always(struct super_block
inode->i_bdev = NULL;
inode->i_cdev = NULL;
inode->i_rdev = 0;
inode->dirtied_when = 0;
if (security_inode_alloc(inode))
-@@ -393,6 +398,8 @@ static int invalidate_list(struct list_h
- return busy;
+@@ -408,6 +413,8 @@ static void __remove_inode_hash(struct i
+ hlist_del_init(&inode->i_hash);
}
+EXPORT_SYMBOL_GPL(__iget);
+
/**
- * invalidate_inodes - discard the inodes on a device
- * @sb: superblock
-@@ -1528,9 +1535,11 @@ void init_special_inode(struct inode *in
+ * remove_inode_hash - remove an inode from the hash
+ * @inode: inode to unhash
+@@ -1675,9 +1682,11 @@ void init_special_inode(struct inode *in
if (S_ISCHR(mode)) {
inode->i_fop = &def_chr_fops;
inode->i_rdev = rdev;
} else if (S_ISFIFO(mode))
inode->i_fop = &def_fifo_fops;
else if (S_ISSOCK(mode))
-@@ -1559,5 +1568,6 @@ void inode_init_owner(struct inode *inod
+@@ -1706,5 +1715,6 @@ void inode_init_owner(struct inode *inod
} else
inode->i_gid = current_fsgid();
inode->i_mode = mode;
+ inode->i_tag = dx_current_fstag(inode->i_sb);
}
EXPORT_SYMBOL(inode_init_owner);
-diff -NurpP --minimal linux-2.6.36.2/fs/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ioctl.c
---- linux-2.6.36.2/fs/ioctl.c 2010-10-21 13:07:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ioctl.c 2010-10-21 13:09:36.000000000 +0200
-@@ -16,6 +16,9 @@
+diff -NurpP --minimal linux-2.6.37/fs/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/ioctl.c
+--- linux-2.6.37/fs/ioctl.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ioctl.c 2010-11-23 02:09:41.000000000 +0100
+@@ -15,6 +15,9 @@
#include <linux/writeback.h>
#include <linux/buffer_head.h>
#include <linux/falloc.h>
#include <asm/ioctls.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/ioprio.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ioprio.c
---- linux-2.6.36.2/fs/ioprio.c 2010-07-07 18:31:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ioprio.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ioprio.c linux-2.6.37-vs2.3.0.37-rc1/fs/ioprio.c
+--- linux-2.6.37/fs/ioprio.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ioprio.c 2011-01-05 22:30:39.000000000 +0100
@@ -27,6 +27,7 @@
#include <linux/syscalls.h>
#include <linux/security.h>
int set_task_ioprio(struct task_struct *task, int ioprio)
{
-@@ -124,6 +125,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
+@@ -119,6 +120,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
else
pgrp = find_vpid(who);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
ret = set_task_ioprio(p, ioprio);
if (ret)
break;
-@@ -213,6 +216,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
+@@ -208,6 +211,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
else
pgrp = find_vpid(who);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
tmpio = get_task_ioprio(p);
if (tmpio < 0)
continue;
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/file.c
---- linux-2.6.36.2/fs/jfs/file.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/file.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/file.c
+--- linux-2.6.37/fs/jfs/file.c 2010-10-21 13:07:50.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/file.c 2010-11-23 02:09:41.000000000 +0100
@@ -102,7 +102,8 @@ int jfs_setattr(struct dentry *dentry, s
if (is_quota_modification(inode, iattr))
dquot_initialize(inode);
};
const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/ioctl.c
---- linux-2.6.36.2/fs/jfs/ioctl.c 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/ioctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/ioctl.c
+--- linux-2.6.37/fs/jfs/ioctl.c 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -11,6 +11,7 @@
#include <linux/mount.h>
#include <linux/time.h>
flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
jfs_inode->mode2 = flags;
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/jfs_dinode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_dinode.h
---- linux-2.6.36.2/fs/jfs/jfs_dinode.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_dinode.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/jfs_dinode.h linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_dinode.h
+--- linux-2.6.37/fs/jfs/jfs_dinode.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_dinode.h 2010-11-23 02:09:41.000000000 +0100
@@ -161,9 +161,13 @@ struct dinode {
#define JFS_APPEND_FL 0x01000000 /* writes to file may only append */
#define JFS_FL_INHERIT 0x03C80000
/* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/jfs_filsys.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_filsys.h
---- linux-2.6.36.2/fs/jfs/jfs_filsys.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_filsys.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/jfs_filsys.h linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_filsys.h
+--- linux-2.6.37/fs/jfs/jfs_filsys.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_filsys.h 2010-11-23 02:09:41.000000000 +0100
@@ -263,6 +263,7 @@
#define JFS_NAME_MAX 255
#define JFS_PATH_MAX BPSIZE
/*
* file system state (superblock state)
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/jfs_imap.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_imap.c
---- linux-2.6.36.2/fs/jfs/jfs_imap.c 2010-07-07 18:31:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_imap.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/jfs_imap.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_imap.c
+--- linux-2.6.37/fs/jfs/jfs_imap.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_imap.c 2010-11-23 02:09:41.000000000 +0100
@@ -46,6 +46,7 @@
#include <linux/pagemap.h>
#include <linux/quotaops.h>
jfs_get_inode_flags(jfs_ip);
/*
* mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/jfs_inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_inode.c
---- linux-2.6.36.2/fs/jfs/jfs_inode.c 2010-08-02 16:52:49.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/jfs_inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_inode.c
+--- linux-2.6.37/fs/jfs/jfs_inode.c 2010-08-02 16:52:49.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/fs.h>
}
/*
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/jfs_inode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_inode.h
---- linux-2.6.36.2/fs/jfs/jfs_inode.h 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/jfs_inode.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/jfs_inode.h linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_inode.h
+--- linux-2.6.37/fs/jfs/jfs_inode.h 2010-10-21 13:07:50.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/jfs_inode.h 2010-11-23 02:09:41.000000000 +0100
@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s
extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid,
int fh_len, int fh_type);
extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
extern int jfs_setattr(struct dentry *, struct iattr *);
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/namei.c
---- linux-2.6.36.2/fs/jfs/namei.c 2010-07-07 18:31:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/jfs/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/namei.c
+--- linux-2.6.37/fs/jfs/namei.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/namei.c 2010-11-23 02:09:41.000000000 +0100
@@ -21,6 +21,7 @@
#include <linux/ctype.h>
#include <linux/quotaops.h>
};
const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-2.6.36.2/fs/jfs/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/super.c
---- linux-2.6.36.2/fs/jfs/super.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/jfs/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -195,7 +195,8 @@ static void jfs_put_super(struct super_b
+diff -NurpP --minimal linux-2.6.37/fs/jfs/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/super.c
+--- linux-2.6.37/fs/jfs/super.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/jfs/super.c 2010-11-23 03:40:34.000000000 +0100
+@@ -190,7 +190,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,
};
static const match_table_t tokens = {
-@@ -205,6 +206,10 @@ static const match_table_t tokens = {
+@@ -200,6 +201,10 @@ static const match_table_t tokens = {
{Opt_resize, "resize=%u"},
{Opt_resize_nosize, "resize"},
{Opt_errors, "errors=%s"},
{Opt_ignore, "noquota"},
{Opt_ignore, "quota"},
{Opt_usrquota, "usrquota"},
-@@ -339,6 +344,20 @@ static int parse_options(char *options,
+@@ -334,6 +339,20 @@ static int parse_options(char *options,
}
break;
}
default:
printk("jfs: Unrecognized mount option \"%s\" "
" or missing value\n", p);
-@@ -369,6 +388,12 @@ static int jfs_remount(struct super_bloc
- if (!parse_options(data, sb, &newLVSize, &flag)) {
+@@ -365,6 +384,12 @@ static int jfs_remount(struct super_bloc
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) {
-@@ -460,6 +485,9 @@ static int jfs_fill_super(struct super_b
+ printk(KERN_ERR
+@@ -447,6 +472,9 @@ static int jfs_fill_super(struct super_b
#ifdef CONFIG_JFS_POSIX_ACL
sb->s_flags |= MS_POSIXACL;
#endif
if (newLVSize) {
printk(KERN_ERR "resize option for remount only\n");
-diff -NurpP --minimal linux-2.6.36.2/fs/libfs.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/libfs.c
---- linux-2.6.36.2/fs/libfs.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/libfs.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/libfs.c linux-2.6.37-vs2.3.0.37-rc1/fs/libfs.c
+--- linux-2.6.37/fs/libfs.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/libfs.c 2010-11-23 02:09:41.000000000 +0100
@@ -124,7 +124,8 @@ static inline unsigned char dt_type(stru
* both impossible due to the lock on directory.
*/
ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
{
return -EISDIR;
-@@ -925,6 +940,7 @@ EXPORT_SYMBOL(dcache_dir_close);
+@@ -948,6 +963,7 @@ EXPORT_SYMBOL(dcache_dir_close);
EXPORT_SYMBOL(dcache_dir_lseek);
EXPORT_SYMBOL(dcache_dir_open);
EXPORT_SYMBOL(dcache_readdir);
+EXPORT_SYMBOL(dcache_readdir_filter);
EXPORT_SYMBOL(generic_read_dir);
- EXPORT_SYMBOL(get_sb_pseudo);
+ EXPORT_SYMBOL(mount_pseudo);
EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-2.6.36.2/fs/locks.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/locks.c
---- linux-2.6.36.2/fs/locks.c 2010-07-07 18:31:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/locks.c 2010-10-21 13:09:36.000000000 +0200
-@@ -127,6 +127,8 @@
+diff -NurpP --minimal linux-2.6.37/fs/locks.c linux-2.6.37-vs2.3.0.37-rc1/fs/locks.c
+--- linux-2.6.37/fs/locks.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/locks.c 2010-11-23 03:38:48.000000000 +0100
+@@ -126,6 +126,8 @@
#include <linux/time.h>
#include <linux/rcupdate.h>
#include <linux/pid_namespace.h>
#include <asm/uaccess.h>
-@@ -148,6 +150,8 @@ static struct kmem_cache *filelock_cache
+@@ -164,6 +166,8 @@ static struct kmem_cache *filelock_cache
/* Allocate an empty lock structure. */
- static struct file_lock *locks_alloc_lock(void)
+ struct file_lock *locks_alloc_lock(void)
{
+ if (!vx_locks_avail(1))
+ return NULL;
return kmem_cache_alloc(filelock_cache, GFP_KERNEL);
}
-
-@@ -174,6 +178,7 @@ static void locks_free_lock(struct file_
+ EXPORT_SYMBOL_GPL(locks_alloc_lock);
+@@ -191,6 +195,7 @@ void locks_free_lock(struct file_lock *f
BUG_ON(!list_empty(&fl->fl_block));
BUG_ON(!list_empty(&fl->fl_link));
locks_release_private(fl);
kmem_cache_free(filelock_cache, fl);
}
-@@ -194,6 +199,7 @@ void locks_init_lock(struct file_lock *f
+@@ -212,6 +217,7 @@ void locks_init_lock(struct file_lock *f
fl->fl_start = fl->fl_end = 0;
fl->fl_ops = NULL;
fl->fl_lmops = NULL;
}
EXPORT_SYMBOL(locks_init_lock);
-@@ -248,6 +254,7 @@ void locks_copy_lock(struct file_lock *n
+@@ -263,6 +269,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;
locks_copy_private(new, fl);
}
-@@ -286,6 +293,11 @@ static int flock_make_lock(struct file *
+@@ -301,6 +308,11 @@ static int flock_make_lock(struct file *
fl->fl_flags = FL_FLOCK;
fl->fl_type = type;
fl->fl_end = OFFSET_MAX;
*lock = fl;
return 0;
-@@ -451,6 +463,7 @@ static int lease_init(struct file *filp,
+@@ -466,6 +478,7 @@ static int lease_init(struct file *filp,
fl->fl_owner = current->files;
fl->fl_pid = current->tgid;
fl->fl_file = filp;
fl->fl_flags = FL_LEASE;
-@@ -470,6 +483,11 @@ static struct file_lock *lease_alloc(str
+@@ -485,6 +498,11 @@ static struct file_lock *lease_alloc(str
if (fl == NULL)
return ERR_PTR(error);
error = lease_init(filp, type, fl);
if (error) {
locks_free_lock(fl);
-@@ -770,6 +788,7 @@ static int flock_lock_file(struct file *
- if (found)
- cond_resched();
+@@ -786,6 +804,7 @@ static int flock_lock_file(struct file *
+ lock_flocks();
+ }
+ new_fl->fl_xid = -1;
find_conflict:
for_each_lock(inode, before) {
struct file_lock *fl = *before;
-@@ -790,6 +809,7 @@ find_conflict:
+@@ -806,6 +825,7 @@ find_conflict:
goto out;
locks_copy_lock(new_fl, request);
locks_insert_lock(before, new_fl);
new_fl = NULL;
error = 0;
-@@ -800,7 +820,8 @@ out:
+@@ -816,7 +836,8 @@ out:
return error;
}
{
struct file_lock *fl;
struct file_lock *new_fl = NULL;
-@@ -810,6 +831,8 @@ static int __posix_lock_file(struct inod
+@@ -826,6 +847,8 @@ static int __posix_lock_file(struct inod
struct file_lock **before;
int error, added = 0;
/*
* We may need two file_lock structures for this operation,
* so we get them in advance to avoid races.
-@@ -820,7 +843,11 @@ static int __posix_lock_file(struct inod
+@@ -836,7 +859,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();
+ vx_locks_inc(new_fl2);
}
- lock_kernel();
-@@ -1019,7 +1046,8 @@ static int __posix_lock_file(struct inod
+ lock_flocks();
+@@ -1035,7 +1062,8 @@ static int __posix_lock_file(struct inod
int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
{
}
EXPORT_SYMBOL(posix_lock_file);
-@@ -1109,7 +1137,7 @@ int locks_mandatory_area(int read_write,
+@@ -1125,7 +1153,7 @@ int locks_mandatory_area(int read_write,
fl.fl_end = offset + count - 1;
for (;;) {
if (error != FILE_LOCK_DEFERRED)
break;
error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
-@@ -1425,6 +1453,7 @@ int generic_setlease(struct file *filp,
-
- locks_copy_lock(new_fl, lease);
- locks_insert_lock(before, new_fl);
-+ vx_locks_inc(new_fl);
+@@ -1438,6 +1466,7 @@ int generic_setlease(struct file *filp,
+ goto out;
- *flp = new_fl;
+ locks_insert_lock(before, lease);
++ vx_locks_inc(lease);
return 0;
-@@ -1780,6 +1809,11 @@ int fcntl_setlk(unsigned int fd, struct
+
+ out:
+@@ -1822,6 +1851,11 @@ int fcntl_setlk(unsigned int fd, struct
if (file_lock == NULL)
return -ENOLCK;
/*
* This might block, so we do it before checking the inode.
*/
-@@ -1898,6 +1932,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -1940,6 +1974,11 @@ int fcntl_setlk64(unsigned int fd, struc
if (file_lock == NULL)
return -ENOLCK;
/*
* This might block, so we do it before checking the inode.
*/
-@@ -2163,8 +2202,11 @@ static int locks_show(struct seq_file *f
+@@ -2205,8 +2244,11 @@ static int locks_show(struct seq_file *f
- lock_get_status(f, fl, (long)f->private, "");
+ lock_get_status(f, fl, *((loff_t *)f->private), "");
- list_for_each_entry(bfl, &fl->fl_block, fl_block)
+ list_for_each_entry(bfl, &fl->fl_block, fl_block) {
+ if (!vx_check(fl->fl_xid, VS_WATCH_P | VS_IDENT))
+ continue;
- lock_get_status(f, bfl, (long)f->private, " ->");
+ lock_get_status(f, bfl, *((loff_t *)f->private), " ->");
+ }
- f->private++;
return 0;
-diff -NurpP --minimal linux-2.6.36.2/fs/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/namei.c
---- linux-2.6.36.2/fs/namei.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/namei.c 2010-10-21 22:29:08.000000000 +0200
+ }
+diff -NurpP --minimal linux-2.6.37/fs/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/namei.c
+--- linux-2.6.37/fs/namei.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/namei.c 2011-01-05 22:30:39.000000000 +0100
@@ -32,6 +32,14 @@
#include <linux/fcntl.h>
#include <linux/device_cgroup.h>
need_lookup:
parent = nd->path.dentry;
dir = parent->d_inode;
-@@ -1307,7 +1420,7 @@ static int may_delete(struct inode *dir,
+@@ -1301,7 +1414,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)||
return -EPERM;
if (isdir) {
if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -1430,6 +1543,14 @@ int may_open(struct path *path, int acc_
+@@ -1424,6 +1537,14 @@ int may_open(struct path *path, int acc_
break;
}
error = inode_permission(inode, acc_mode);
if (error)
return error;
-@@ -1538,7 +1659,8 @@ static int open_will_truncate(int flag,
+@@ -1532,7 +1653,8 @@ static int open_will_truncate(int flag,
}
static struct file *finish_open(struct nameidata *nd,
{
struct file *filp;
int will_truncate;
-@@ -1551,6 +1673,23 @@ static struct file *finish_open(struct n
+@@ -1545,6 +1667,23 @@ static struct file *finish_open(struct n
goto exit;
}
error = may_open(&nd->path, acc_mode, open_flag);
if (error) {
if (will_truncate)
mnt_drop_write(nd->path.mnt);
-@@ -1719,7 +1858,7 @@ static struct file *do_last(struct namei
+@@ -1715,7 +1854,7 @@ static struct file *do_last(struct namei
if (S_ISDIR(path->dentry->d_inode->i_mode))
goto exit;
ok:
return filp;
exit_mutex_unlock:
-@@ -1748,7 +1887,11 @@ struct file *do_filp_open(int dfd, const
+@@ -1744,7 +1883,11 @@ struct file *do_filp_open(int dfd, const
int count = 0;
int flag = open_to_namei_flags(open_flag);
int force_reval = 0;
if (!(open_flag & O_CREAT))
mode = 0;
-@@ -1814,6 +1957,13 @@ reval:
+@@ -1813,6 +1956,13 @@ reval:
if (!(open_flag & O_NOFOLLOW))
nd.flags |= LOOKUP_FOLLOW;
filp = do_last(&nd, &path, open_flag, acc_mode, mode, pathname);
while (unlikely(!filp)) { /* trailing symlink */
struct path holder;
struct inode *inode = path.dentry->d_inode;
-@@ -1852,6 +2002,13 @@ reval:
+@@ -1851,6 +2001,13 @@ reval:
holder = path;
nd.flags &= ~LOOKUP_PARENT;
filp = do_last(&nd, &path, open_flag, acc_mode, mode, pathname);
if (inode->i_op->put_link)
inode->i_op->put_link(holder.dentry, &nd, cookie);
path_put(&holder);
-@@ -1952,9 +2109,17 @@ int vfs_mknod(struct inode *dir, struct
+@@ -1951,9 +2108,17 @@ int vfs_mknod(struct inode *dir, struct
if (error)
return error;
if (!dir->i_op->mknod)
return -EPERM;
-@@ -2419,7 +2584,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -2418,7 +2583,7 @@ int vfs_link(struct dentry *old_dentry,
/*
* A link to an append-only or immutable file cannot be created.
*/
return -EPERM;
if (!dir->i_op->link)
return -EPERM;
-@@ -2791,6 +2956,222 @@ int vfs_follow_link(struct nameidata *nd
+@@ -2790,6 +2955,222 @@ int vfs_follow_link(struct nameidata *nd
return __vfs_follow_link(nd, link);
}
/* get the link contents into pagecache */
static char *page_getlink(struct dentry * dentry, struct page **ppage)
{
-diff -NurpP --minimal linux-2.6.36.2/fs/namespace.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/namespace.c
---- linux-2.6.36.2/fs/namespace.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/namespace.c 2010-10-21 15:11:02.000000000 +0200
-@@ -32,6 +32,11 @@
+diff -NurpP --minimal linux-2.6.37/fs/namespace.c linux-2.6.37-vs2.3.0.37-rc1/fs/namespace.c
+--- linux-2.6.37/fs/namespace.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/namespace.c 2010-11-23 02:09:41.000000000 +0100
+@@ -31,6 +31,11 @@
#include <linux/idr.h>
#include <linux/fs_struct.h>
#include <linux/fsnotify.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
#include "pnode.h"
-@@ -601,6 +606,7 @@ static struct vfsmount *clone_mnt(struct
+@@ -600,6 +605,7 @@ static struct vfsmount *clone_mnt(struct
mnt->mnt_root = dget(root);
mnt->mnt_mountpoint = mnt->mnt_root;
mnt->mnt_parent = mnt;
if (flag & CL_SLAVE) {
list_add(&mnt->mnt_slave, &old->mnt_slave_list);
-@@ -699,6 +705,31 @@ static inline void mangle(struct seq_fil
+@@ -698,6 +704,31 @@ static inline void mangle(struct seq_fil
seq_escape(m, s, " \t\n\\");
}
/*
* Simple .show_options callback for filesystems which don't want to
* implement more complex mount option showing.
-@@ -801,6 +832,8 @@ static int show_sb_opts(struct seq_file
+@@ -800,6 +831,8 @@ static int show_sb_opts(struct seq_file
{ MS_SYNCHRONOUS, ",sync" },
{ MS_DIRSYNC, ",dirsync" },
{ MS_MANDLOCK, ",mand" },
{ 0, NULL }
};
const struct proc_fs_info *fs_infop;
-@@ -847,10 +880,20 @@ static int show_vfsmnt(struct seq_file *
+@@ -846,10 +879,20 @@ static int show_vfsmnt(struct seq_file *
int err = 0;
struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
show_type(m, mnt->mnt_sb);
seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
err = show_sb_opts(m, mnt->mnt_sb);
-@@ -880,6 +923,11 @@ static int show_mountinfo(struct seq_fil
+@@ -879,6 +922,11 @@ static int show_mountinfo(struct seq_fil
struct path root = p->root;
int err = 0;
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\\");
-@@ -938,17 +986,27 @@ static int show_vfsstat(struct seq_file
+@@ -937,17 +985,27 @@ static int show_vfsstat(struct seq_file
struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
int err = 0;
/* file system type */
seq_puts(m, "with fstype ");
-@@ -1194,7 +1252,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
+@@ -1193,7 +1251,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
goto dput_and_out;
retval = -EPERM;
goto dput_and_out;
retval = do_umount(path.mnt, flags);
-@@ -1220,7 +1278,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
+@@ -1219,7 +1277,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
static int mount_is_safe(struct path *path)
{
return 0;
return -EPERM;
#ifdef notyet
-@@ -1510,7 +1568,7 @@ static int do_change_type(struct path *p
+@@ -1509,7 +1567,7 @@ static int do_change_type(struct path *p
int type;
int err = 0;
return -EPERM;
if (path->dentry != path->mnt->mnt_root)
-@@ -1541,11 +1599,13 @@ static int do_change_type(struct path *p
+@@ -1540,11 +1598,13 @@ static int do_change_type(struct path *p
* do loopback mount.
*/
static int do_loopback(struct path *path, char *old_name,
if (err)
return err;
if (!old_name || !*old_name)
-@@ -1580,6 +1640,7 @@ static int do_loopback(struct path *path
+@@ -1579,6 +1639,7 @@ static int do_loopback(struct path *path
br_write_unlock(vfsmount_lock);
release_mounts(&umount_list);
}
out:
up_write(&namespace_sem);
-@@ -1610,12 +1671,12 @@ static int change_mount_flags(struct vfs
+@@ -1609,12 +1670,12 @@ static int change_mount_flags(struct vfs
* on it - tough luck.
*/
static int do_remount(struct path *path, int flags, int mnt_flags,
return -EPERM;
if (!check_mnt(path->mnt))
-@@ -1659,7 +1720,7 @@ static int do_move_mount(struct path *pa
+@@ -1658,7 +1719,7 @@ static int do_move_mount(struct path *pa
struct path old_path, parent_path;
struct vfsmount *p;
int err = 0;
return -EPERM;
if (!old_name || !*old_name)
return -EINVAL;
-@@ -1741,7 +1802,7 @@ static int do_new_mount(struct path *pat
+@@ -1740,7 +1801,7 @@ static int do_new_mount(struct path *pat
return -EINVAL;
/* we need capabilities... */
+ if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
return -EPERM;
- lock_kernel();
-@@ -2009,6 +2070,7 @@ long do_mount(char *dev_name, char *dir_
+ mnt = do_kern_mount(type, flags, name, data);
+@@ -2006,6 +2067,7 @@ long do_mount(char *dev_name, char *dir_
struct path path;
int retval = 0;
int mnt_flags = 0;
/* Discard magic */
if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2036,6 +2098,12 @@ long do_mount(char *dev_name, char *dir_
+@@ -2033,6 +2095,12 @@ long do_mount(char *dev_name, char *dir_
if (!(flags & MS_NOATIME))
mnt_flags |= MNT_RELATIME;
/* Separate the per-mountpoint flags */
if (flags & MS_NOSUID)
mnt_flags |= MNT_NOSUID;
-@@ -2052,15 +2120,17 @@ long do_mount(char *dev_name, char *dir_
+@@ -2049,15 +2117,17 @@ long do_mount(char *dev_name, char *dir_
if (flags & MS_RDONLY)
mnt_flags |= MNT_READONLY;
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
retval = do_change_type(&path, flags);
else if (flags & MS_MOVE)
-@@ -2139,6 +2209,7 @@ static struct mnt_namespace *dup_mnt_ns(
+@@ -2136,6 +2206,7 @@ static struct mnt_namespace *dup_mnt_ns(
q = next_mnt(q, new_ns->root);
}
up_write(&namespace_sem);
if (rootmnt)
mntput(rootmnt);
-@@ -2280,9 +2351,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -2277,9 +2348,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
down_write(&namespace_sem);
mutex_lock(&old.dentry->d_inode->i_mutex);
error = -EINVAL;
goto out2;
if (!check_mnt(root.mnt))
goto out2;
-@@ -2415,6 +2487,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -2412,6 +2484,7 @@ void put_mnt_ns(struct mnt_namespace *ns
br_write_unlock(vfsmount_lock);
up_write(&namespace_sem);
release_mounts(&umount_list);
kfree(ns);
}
EXPORT_SYMBOL(put_mnt_ns);
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/client.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/client.c
---- linux-2.6.36.2/fs/nfs/client.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/client.c 2010-10-21 13:09:36.000000000 +0200
-@@ -740,6 +740,9 @@ static int nfs_init_server_rpcclient(str
+diff -NurpP --minimal linux-2.6.37/fs/nfs/client.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/client.c
+--- linux-2.6.37/fs/nfs/client.c 2011-01-05 21:50:24.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/client.c 2010-11-23 02:09:41.000000000 +0100
+@@ -747,6 +747,9 @@ static int nfs_init_server_rpcclient(str
if (server->flags & NFS_MOUNT_SOFT)
server->client->cl_softrtry = 1;
return 0;
}
-@@ -911,6 +914,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -920,6 +923,10 @@ static void nfs_server_set_fsinfo(struct
server->acdirmin = server->acdirmax = 0;
}
+
server->maxfilesize = fsinfo->maxfilesize;
- /* We're airborne Set socket buffersize */
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/dir.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/dir.c
---- linux-2.6.36.2/fs/nfs/dir.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/dir.c 2010-10-21 13:09:36.000000000 +0200
-@@ -33,6 +33,7 @@
- #include <linux/namei.h>
- #include <linux/mount.h>
+ server->time_delta = fsinfo->time_delta;
+diff -NurpP --minimal linux-2.6.37/fs/nfs/dir.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/dir.c
+--- linux-2.6.37/fs/nfs/dir.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/dir.c 2011-01-05 22:30:39.000000000 +0100
+@@ -35,6 +35,7 @@
#include <linux/sched.h>
+ #include <linux/vmalloc.h>
+ #include <linux/kmemleak.h>
+#include <linux/vs_tag.h>
- #include "nfs4_fs.h"
#include "delegation.h"
-@@ -986,6 +987,7 @@ static struct dentry *nfs_lookup(struct
+ #include "iostat.h"
+@@ -1221,6 +1222,7 @@ static struct dentry *nfs_lookup(struct
if (IS_ERR(res))
goto out_unblock_sillyrename;
no_entry:
res = d_materialise_unique(dentry, inode);
if (res != NULL) {
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/inode.c
---- linux-2.6.36.2/fs/nfs/inode.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/nfs/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/inode.c
+--- linux-2.6.37/fs/nfs/inode.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/inode.c 2011-01-05 22:30:39.000000000 +0100
@@ -37,6 +37,7 @@
#include <linux/inet.h>
#include <linux/nfs_xdr.h>
#include <asm/system.h>
#include <asm/uaccess.h>
-@@ -267,6 +268,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -265,6 +266,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;
/* We set i_ino for the few things that still rely on it,
* such as stat(2) */
-@@ -315,8 +318,8 @@ nfs_fhget(struct super_block *sb, struct
+@@ -313,8 +316,8 @@ nfs_fhget(struct super_block *sb, struct
nfsi->change_attr = 0;
inode->i_size = 0;
inode->i_nlink = 0;
inode->i_blocks = 0;
memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
-@@ -353,13 +356,13 @@ nfs_fhget(struct super_block *sb, struct
+@@ -351,13 +354,13 @@ nfs_fhget(struct super_block *sb, struct
else if (nfs_server_capable(inode, NFS_CAP_NLINK))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
if (fattr->valid & NFS_ATTR_FATTR_OWNER)
else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
nfsi->cache_validity |= NFS_INO_INVALID_ATTR
| NFS_INO_INVALID_ACCESS
-@@ -372,6 +375,11 @@ nfs_fhget(struct super_block *sb, struct
+@@ -370,6 +373,11 @@ nfs_fhget(struct super_block *sb, struct
*/
inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
}
nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
nfsi->attrtimeo_timestamp = now;
nfsi->access_cache = RB_ROOT;
-@@ -488,6 +496,8 @@ void nfs_setattr_update_inode(struct ino
+@@ -486,6 +494,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;
NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
spin_unlock(&inode->i_lock);
}
-@@ -923,6 +933,9 @@ static int nfs_check_inode_attributes(st
+@@ -926,6 +936,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;
/* Has the inode gone and changed behind our back? */
-@@ -946,13 +959,18 @@ static int nfs_check_inode_attributes(st
+@@ -949,13 +962,18 @@ static int nfs_check_inode_attributes(st
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
}
/* Has the link count changed? */
if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1187,6 +1205,9 @@ static int nfs_update_inode(struct inode
+@@ -1190,6 +1208,9 @@ static int nfs_update_inode(struct inode
unsigned long invalid = 0;
unsigned long now = jiffies;
unsigned long save_cache_validity;
dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n",
__func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1289,6 +1310,9 @@ static int nfs_update_inode(struct inode
+@@ -1292,6 +1313,9 @@ static int nfs_update_inode(struct inode
| NFS_INO_REVAL_PAGECACHE
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_ATIME)
memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1310,9 +1334,9 @@ static int nfs_update_inode(struct inode
+@@ -1313,9 +1337,9 @@ static int nfs_update_inode(struct inode
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
}
} else if (server->caps & NFS_CAP_OWNER)
invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1321,9 +1345,9 @@ static int nfs_update_inode(struct inode
+@@ -1324,9 +1348,9 @@ static int nfs_update_inode(struct inode
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
}
} else if (server->caps & NFS_CAP_OWNER_GROUP)
invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1331,6 +1355,10 @@ static int nfs_update_inode(struct inode
+@@ -1334,6 +1358,10 @@ static int nfs_update_inode(struct inode
| NFS_INO_INVALID_ACL
| NFS_INO_REVAL_FORCED);
if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
if (inode->i_nlink != fattr->nlink) {
invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/nfs3xdr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/nfs3xdr.c
---- linux-2.6.36.2/fs/nfs/nfs3xdr.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/nfs3xdr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/nfs/nfs3xdr.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/nfs3xdr.c
+--- linux-2.6.37/fs/nfs/nfs3xdr.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/nfs3xdr.c 2011-01-05 22:30:39.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
#include "internal.h"
#define NFSDBG_FACILITY NFSDBG_XDR
-@@ -175,7 +176,7 @@ xdr_decode_fattr(__be32 *p, struct nfs_f
+@@ -205,7 +206,7 @@ xdr_decode_fattr(__be32 *p, struct nfs_f
}
static inline __be32 *
{
if (attr->ia_valid & ATTR_MODE) {
*p++ = xdr_one;
-@@ -183,15 +184,17 @@ xdr_encode_sattr(__be32 *p, struct iattr
+@@ -213,15 +214,17 @@ xdr_encode_sattr(__be32 *p, struct iattr
} else {
*p++ = xdr_zero;
}
} else {
*p++ = xdr_zero;
}
-@@ -278,7 +281,8 @@ static int
+@@ -328,7 +331,8 @@ static int
nfs3_xdr_sattrargs(struct rpc_rqst *req, __be32 *p, struct nfs3_sattrargs *args)
{
p = xdr_encode_fhandle(p, args->fh);
*p++ = htonl(args->guard);
if (args->guard)
p = xdr_encode_time3(p, &args->guardtime);
-@@ -383,7 +387,8 @@ nfs3_xdr_createargs(struct rpc_rqst *req
+@@ -433,7 +437,8 @@ nfs3_xdr_createargs(struct rpc_rqst *req
*p++ = args->verifier[0];
*p++ = args->verifier[1];
} else
req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
return 0;
-@@ -397,7 +402,8 @@ nfs3_xdr_mkdirargs(struct rpc_rqst *req,
+@@ -447,7 +452,8 @@ nfs3_xdr_mkdirargs(struct rpc_rqst *req,
{
p = xdr_encode_fhandle(p, args->fh);
p = xdr_encode_array(p, args->name, args->len);
req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
return 0;
}
-@@ -410,7 +416,8 @@ nfs3_xdr_symlinkargs(struct rpc_rqst *re
+@@ -460,7 +466,8 @@ nfs3_xdr_symlinkargs(struct rpc_rqst *re
{
p = xdr_encode_fhandle(p, args->fromfh);
p = xdr_encode_array(p, args->fromname, args->fromlen);
*p++ = htonl(args->pathlen);
req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
-@@ -428,7 +435,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req,
+@@ -478,7 +485,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req,
p = xdr_encode_fhandle(p, args->fh);
p = xdr_encode_array(p, args->name, args->len);
*p++ = htonl(args->type);
if (args->type == NF3CHR || args->type == NF3BLK) {
*p++ = htonl(MAJOR(args->rdev));
*p++ = htonl(MINOR(args->rdev));
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/nfsroot.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/nfsroot.c
---- linux-2.6.36.2/fs/nfs/nfsroot.c 2010-08-02 16:52:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/nfsroot.c 2010-10-21 13:09:36.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,
-- Opt_acregmax, Opt_acdirmin, Opt_acdirmax,
-+ Opt_acregmax, Opt_acdirmin, Opt_acdirmax, Opt_tagid,
- /* Options that take no arguments */
- Opt_soft, Opt_hard, Opt_intr,
- Opt_nointr, Opt_posix, Opt_noposix, Opt_cto, Opt_nocto, Opt_ac,
- Opt_noac, Opt_lock, Opt_nolock, Opt_v2, Opt_v3, Opt_udp, Opt_tcp,
-- Opt_acl, Opt_noacl,
-+ Opt_acl, Opt_noacl, Opt_tag, Opt_notag,
- /* Error token */
- Opt_err
- };
-@@ -164,6 +164,9 @@ static const match_table_t tokens __init
- {Opt_tcp, "tcp"},
- {Opt_acl, "acl"},
- {Opt_noacl, "noacl"},
-+ {Opt_tag, "tag"},
-+ {Opt_notag, "notag"},
-+ {Opt_tagid, "tagid=%u"},
- {Opt_err, NULL}
-
- };
-@@ -275,6 +278,20 @@ static int __init root_nfs_parse(char *n
- case Opt_noacl:
- nfs_data.flags |= NFS_MOUNT_NOACL;
- break;
-+#ifndef CONFIG_TAGGING_NONE
-+ case Opt_tag:
-+ nfs_data.flags |= NFS_MOUNT_TAGGED;
-+ break;
-+ case Opt_notag:
-+ nfs_data.flags &= ~NFS_MOUNT_TAGGED;
-+ break;
-+#endif
-+#ifdef CONFIG_PROPAGATE
-+ case Opt_tagid:
-+ /* use args[0] */
-+ nfs_data.flags |= NFS_MOUNT_TAGGED;
-+ break;
-+#endif
- default:
- printk(KERN_WARNING "Root-NFS: unknown "
- "option: %s\n", p);
-diff -NurpP --minimal linux-2.6.36.2/fs/nfs/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/super.c
---- linux-2.6.36.2/fs/nfs/super.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfs/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -54,6 +54,7 @@
+diff -NurpP --minimal linux-2.6.37/fs/nfs/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/super.c
+--- linux-2.6.37/fs/nfs/super.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfs/super.c 2011-01-05 23:44:00.000000000 +0100
+@@ -53,6 +53,7 @@
#include <linux/nfs_xdr.h>
#include <linux/magic.h>
#include <linux/parser.h>
#include <asm/system.h>
#include <asm/uaccess.h>
-@@ -617,6 +618,7 @@ static void nfs_show_mount_options(struc
+@@ -86,6 +87,7 @@ enum {
+ Opt_sharecache, Opt_nosharecache,
+ Opt_resvport, Opt_noresvport,
+ Opt_fscache, Opt_nofscache,
++ Opt_tag, Opt_notag,
+
+ /* Mount options that take integer arguments */
+ Opt_port,
+@@ -99,6 +101,7 @@ enum {
+ Opt_mountvers,
+ Opt_nfsvers,
+ Opt_minorversion,
++ Opt_tagid,
+
+ /* Mount options that take string arguments */
+ Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
+@@ -179,6 +182,10 @@ static const match_table_t nfs_mount_opt
+ { Opt_fscache_uniq, "fsc=%s" },
+ { Opt_local_lock, "local_lock=%s" },
+
++ { Opt_tag, "tag" },
++ { Opt_notag, "notag" },
++ { Opt_tagid, "tagid=%u" },
++
+ { Opt_err, NULL }
+ };
+
+@@ -640,6 +647,7 @@ static void nfs_show_mount_options(struc
{ NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
{ NFS_MOUNT_UNSHARED, ",nosharecache", "" },
{ NFS_MOUNT_NORESVPORT, ",noresvport", "" },
{ 0, NULL, NULL }
};
const struct proc_nfs_info *nfs_infop;
-diff -NurpP --minimal linux-2.6.36.2/fs/nfsd/auth.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/auth.c
---- linux-2.6.36.2/fs/nfsd/auth.c 2010-02-25 11:52:05.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/auth.c 2010-10-21 13:09:36.000000000 +0200
+@@ -1120,6 +1128,14 @@ static int nfs_parse_mount_options(char
+ kfree(mnt->fscache_uniq);
+ mnt->fscache_uniq = NULL;
+ break;
++#ifndef CONFIG_TAGGING_NONE
++ case Opt_tag:
++ mnt->flags |= NFS_MOUNT_TAGGED;
++ break;
++ case Opt_notag:
++ mnt->flags &= ~NFS_MOUNT_TAGGED;
++ break;
++#endif
+
+ /*
+ * options that take numeric values
+@@ -1304,6 +1320,12 @@ static int nfs_parse_mount_options(char
+ goto out_invalid_value;
+ mnt->minorversion = option;
+ break;
++#ifdef CONFIG_PROPAGATE
++ case Opt_tagid:
++ /* use args[0] */
++ nfs_data.flags |= NFS_MOUNT_TAGGED;
++ break;
++#endif
+
+ /*
+ * options that take text values
+diff -NurpP --minimal linux-2.6.37/fs/nfsd/auth.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/auth.c
+--- linux-2.6.37/fs/nfsd/auth.c 2010-02-25 11:52:05.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/auth.c 2010-11-23 02:09:41.000000000 +0100
@@ -1,6 +1,7 @@
/* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> */
rqgi = rqstp->rq_cred.cr_group_info;
-diff -NurpP --minimal linux-2.6.36.2/fs/nfsd/nfs3xdr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfs3xdr.c
---- linux-2.6.36.2/fs/nfsd/nfs3xdr.c 2010-02-25 11:52:05.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfs3xdr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/nfsd/nfs3xdr.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfs3xdr.c
+--- linux-2.6.37/fs/nfsd/nfs3xdr.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfs3xdr.c 2011-01-05 22:30:39.000000000 +0100
@@ -7,6 +7,7 @@
*/
if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
} else {
-diff -NurpP --minimal linux-2.6.36.2/fs/nfsd/nfs4xdr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfs4xdr.c
---- linux-2.6.36.2/fs/nfsd/nfs4xdr.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfs4xdr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/nfsd/nfs4xdr.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfs4xdr.c
+--- linux-2.6.37/fs/nfsd/nfs4xdr.c 2011-01-05 21:50:25.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfs4xdr.c 2010-11-23 02:09:41.000000000 +0100
@@ -47,6 +47,7 @@
#include <linux/nfsd_idmap.h>
#include <linux/nfs4_acl.h>
#include "xdr4.h"
#include "vfs.h"
-@@ -2057,14 +2058,18 @@ out_acl:
+@@ -2063,14 +2064,18 @@ out_acl:
WRITE32(stat.nlink);
}
if (bmval1 & FATTR4_WORD1_OWNER) {
if (status == nfserr_resource)
goto out_resource;
if (status)
-diff -NurpP --minimal linux-2.6.36.2/fs/nfsd/nfsxdr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfsxdr.c
---- linux-2.6.36.2/fs/nfsd/nfsxdr.c 2010-02-25 11:52:05.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/nfsd/nfsxdr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/nfsd/nfsxdr.c linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfsxdr.c
+--- linux-2.6.37/fs/nfsd/nfsxdr.c 2010-02-25 11:52:05.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/nfsd/nfsxdr.c 2010-11-23 02:09:41.000000000 +0100
@@ -6,6 +6,7 @@
#include "xdr.h"
if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
*p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/dlmglue.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/dlmglue.c
---- linux-2.6.36.2/fs/ocfs2/dlmglue.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/dlmglue.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/dlmglue.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/dlmglue.c
+--- linux-2.6.37/fs/ocfs2/dlmglue.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/dlmglue.c 2010-11-23 02:09:41.000000000 +0100
@@ -2114,6 +2114,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);
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.36.2/fs/ocfs2/dlmglue.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/dlmglue.h
---- linux-2.6.36.2/fs/ocfs2/dlmglue.h 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/dlmglue.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/dlmglue.h linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/dlmglue.h
+--- linux-2.6.37/fs/ocfs2/dlmglue.h 2010-10-21 13:07:50.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/dlmglue.h 2010-11-23 02:09:41.000000000 +0100
@@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
__be16 lvb_inlink;
__be32 lvb_iattr;
};
#define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/file.c
---- linux-2.6.36.2/fs/ocfs2/file.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/file.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1138,13 +1138,15 @@ int ocfs2_setattr(struct dentry *dentry,
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/file.c
+--- linux-2.6.37/fs/ocfs2/file.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/file.c 2011-01-05 22:30:39.000000000 +0100
+@@ -1126,13 +1126,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);
if (!(attr->ia_valid & OCFS2_VALID_ATTRS)) {
mlog(0, "can't handle attrs: 0x%x\n", attr->ia_valid);
return 0;
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/inode.c
---- linux-2.6.36.2/fs/ocfs2/inode.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/inode.c
+--- linux-2.6.37/fs/ocfs2/inode.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/highmem.h>
#include <linux/pagemap.h>
/* 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.36.2/fs/ocfs2/inode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/inode.h
---- linux-2.6.36.2/fs/ocfs2/inode.h 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/inode.h 2010-10-21 13:09:36.000000000 +0200
-@@ -153,6 +153,7 @@ struct buffer_head *ocfs2_bread(struct i
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/inode.h linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/inode.h
+--- linux-2.6.37/fs/ocfs2/inode.h 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/inode.h 2010-11-23 02:09:41.000000000 +0100
+@@ -151,6 +151,7 @@ struct buffer_head *ocfs2_bread(struct i
void ocfs2_set_inode_flags(struct inode *inode);
void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi);
static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
{
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ioctl.c
---- linux-2.6.36.2/fs/ocfs2/ioctl.c 2010-02-25 11:52:06.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ioctl.c 2010-10-21 13:09:36.000000000 +0200
-@@ -43,7 +43,41 @@ static int ocfs2_get_inode_attr(struct i
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ioctl.c
+--- linux-2.6.37/fs/ocfs2/ioctl.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ioctl.c 2010-11-23 02:09:41.000000000 +0100
+@@ -63,7 +63,41 @@ static int ocfs2_get_inode_attr(struct i
return status;
}
unsigned mask)
{
struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode);
-@@ -68,6 +102,11 @@ static int ocfs2_set_inode_attr(struct i
+@@ -88,6 +122,11 @@ static int ocfs2_set_inode_attr(struct i
if (!S_ISDIR(inode->i_mode))
flags &= ~OCFS2_DIRSYNC_FL;
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (IS_ERR(handle)) {
status = PTR_ERR(handle);
-@@ -109,6 +148,7 @@ bail:
+@@ -451,6 +490,7 @@ bail:
return status;
}
long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_path.dentry->d_inode;
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/namei.c
---- linux-2.6.36.2/fs/ocfs2/namei.c 2010-10-21 13:07:50.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/namei.c
+--- linux-2.6.37/fs/ocfs2/namei.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/namei.c 2010-11-23 02:09:41.000000000 +0100
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/highmem.h>
#define MLOG_MASK_PREFIX ML_NAMEI
#include <cluster/masklog.h>
-@@ -486,6 +487,7 @@ static int __ocfs2_mknod_locked(struct i
+@@ -487,6 +488,7 @@ static int __ocfs2_mknod_locked(struct i
struct ocfs2_dinode *fe = NULL;
struct ocfs2_extent_list *fel;
u16 feat;
*new_fe_bh = NULL;
-@@ -523,8 +525,11 @@ static int __ocfs2_mknod_locked(struct i
+@@ -524,8 +526,11 @@ static int __ocfs2_mknod_locked(struct i
fe->i_suballoc_loc = cpu_to_le64(suballoc_loc);
fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
fe->i_mode = cpu_to_le16(inode->i_mode);
if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/ocfs2_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ocfs2_fs.h
---- linux-2.6.36.2/fs/ocfs2/ocfs2_fs.h 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ocfs2_fs.h 2010-10-21 14:00:41.000000000 +0200
-@@ -258,6 +258,11 @@
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/ocfs2_fs.h linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ocfs2_fs.h
+--- linux-2.6.37/fs/ocfs2/ocfs2_fs.h 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ocfs2_fs.h 2011-01-05 22:30:39.000000000 +0100
+@@ -266,6 +266,11 @@
#define OCFS2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/
#define OCFS2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */
#define OCFS2_FL_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */
#define OCFS2_FL_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/ocfs2.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ocfs2.h
---- linux-2.6.36.2/fs/ocfs2/ocfs2.h 2010-08-02 16:52:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/ocfs2.h 2010-10-21 13:09:36.000000000 +0200
-@@ -256,6 +256,7 @@ enum ocfs2_mount_options
- control lists */
- OCFS2_MOUNT_USRQUOTA = 1 << 10, /* We support user quotas */
- OCFS2_MOUNT_GRPQUOTA = 1 << 11, /* We support group quotas */
-+ OCFS2_MOUNT_TAGGED = 1 << 12, /* use tagging */
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/ocfs2.h linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ocfs2.h
+--- linux-2.6.37/fs/ocfs2/ocfs2.h 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/ocfs2.h 2011-01-05 22:30:39.000000000 +0100
+@@ -267,6 +267,7 @@ enum ocfs2_mount_options
+ writes */
+ OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
+ OCFS2_MOUNT_HB_GLOBAL = 1 << 14, /* Global heartbeat */
++ OCFS2_MOUNT_TAGGED = 1 << 15, /* use tagging */
};
#define OCFS2_OSB_SOFT_RO 0x0001
-diff -NurpP --minimal linux-2.6.36.2/fs/ocfs2/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/super.c
---- linux-2.6.36.2/fs/ocfs2/super.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/ocfs2/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -179,6 +179,7 @@ enum {
- Opt_grpquota,
+diff -NurpP --minimal linux-2.6.37/fs/ocfs2/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/super.c
+--- linux-2.6.37/fs/ocfs2/super.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/ocfs2/super.c 2010-11-23 03:14:32.000000000 +0100
+@@ -181,6 +181,7 @@ enum {
+ Opt_coherency_full,
Opt_resv_level,
Opt_dir_resv_level,
+ Opt_tag, Opt_notag, Opt_tagid,
Opt_err,
};
-@@ -207,6 +208,9 @@ static const match_table_t tokens = {
- {Opt_grpquota, "grpquota"},
+@@ -212,6 +213,9 @@ static const match_table_t tokens = {
+ {Opt_coherency_full, "coherency=full"},
{Opt_resv_level, "resv_level=%u"},
{Opt_dir_resv_level, "dir_resv_level=%u"},
+ {Opt_tag, "tag"},
{Opt_err, NULL}
};
-@@ -617,6 +621,13 @@ static int ocfs2_remount(struct super_bl
+@@ -659,6 +663,13 @@ static int ocfs2_remount(struct super_bl
goto out;
}
+ goto out;
+ }
+
- if ((osb->s_mount_opt & OCFS2_MOUNT_HB_LOCAL) !=
- (parsed_options.mount_opt & OCFS2_MOUNT_HB_LOCAL)) {
- ret = -EINVAL;
-@@ -1153,6 +1164,9 @@ static int ocfs2_fill_super(struct super
+ /* We're going to/from readonly mode. */
+ if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
+ /* Disable quota accounting before remounting RO */
+@@ -1177,6 +1188,9 @@ static int ocfs2_fill_super(struct super
ocfs2_complete_mount_recovery(osb);
if (ocfs2_mount_local(osb))
snprintf(nodestr, sizeof(nodestr), "local");
else
-@@ -1468,6 +1482,20 @@ static int ocfs2_parse_options(struct su
+@@ -1499,6 +1513,20 @@ static int ocfs2_parse_options(struct su
option < OCFS2_MAX_RESV_LEVEL)
mopt->dir_resv_level = option;
break;
default:
mlog(ML_ERROR,
"Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-2.6.36.2/fs/open.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/open.c
---- linux-2.6.36.2/fs/open.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/open.c 2010-10-21 13:55:41.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/open.c linux-2.6.37-vs2.3.0.37-rc1/fs/open.c
+--- linux-2.6.37/fs/open.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/open.c 2010-11-23 02:09:41.000000000 +0100
@@ -30,6 +30,11 @@
#include <linux/fs_struct.h>
#include <linux/ima.h>
}
void put_unused_fd(unsigned int fd)
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/array.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/array.c
---- linux-2.6.36.2/fs/proc/array.c 2010-08-02 16:52:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/array.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/array.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/array.c
+--- linux-2.6.37/fs/proc/array.c 2010-08-02 16:52:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/array.c 2010-11-23 02:09:41.000000000 +0100
@@ -81,6 +81,8 @@
#include <linux/pid_namespace.h>
#include <linux/ptrace.h>
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.36.2/fs/proc/base.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/base.c
---- linux-2.6.36.2/fs/proc/base.c 2010-12-13 22:08:58.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/base.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/fs/proc/base.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/base.c
+--- linux-2.6.37/fs/proc/base.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/base.c 2011-01-05 22:30:39.000000000 +0100
@@ -83,6 +83,8 @@
#include <linux/pid_namespace.h>
#include <linux/fs_struct.h>
#include "internal.h"
/* NOTE:
-@@ -1041,12 +1043,17 @@ static ssize_t oom_adjust_write(struct f
- return -ESRCH;
+@@ -1056,11 +1058,16 @@ static ssize_t oom_adjust_write(struct f
+ goto err_task_lock;
}
- if (oom_adjust < task->signal->oom_adj && !capable(CAP_SYS_RESOURCE)) {
+ if (oom_adjust < task->signal->oom_adj &&
+ !vx_capable(CAP_SYS_RESOURCE, VXC_OOM_ADJUST)) {
- unlock_task_sighand(task, &flags);
- put_task_struct(task);
- return -EACCES;
+ err = -EACCES;
+ goto err_sighand;
}
+ /* prevent guest processes from circumventing the oom killer */
+ if (vx_current_xid() && (oom_adjust == OOM_DISABLE))
+ oom_adjust = OOM_ADJUST_MIN;
+
- /*
- * Warn that /proc/pid/oom_adj is deprecated, see
- * Documentation/feature-removal-schedule.txt.
-@@ -1179,7 +1186,7 @@ static ssize_t proc_loginuid_write(struc
+ if (oom_adjust != task->signal->oom_adj) {
+ if (oom_adjust == OOM_DISABLE)
+ atomic_inc(&task->mm->oom_disable_count);
+@@ -1227,7 +1234,7 @@ static ssize_t proc_loginuid_write(struc
ssize_t length;
uid_t loginuid;
return -EPERM;
rcu_read_lock();
-@@ -1617,6 +1624,8 @@ static struct inode *proc_pid_make_inode
+@@ -1666,6 +1673,8 @@ static struct inode *proc_pid_make_inode
inode->i_gid = cred->egid;
rcu_read_unlock();
}
security_task_to_inode(task, inode);
out:
-@@ -2167,6 +2176,13 @@ static struct dentry *proc_pident_lookup
+@@ -2219,6 +2228,13 @@ static struct dentry *proc_pident_lookup
if (!task)
goto out_no_task;
/*
* Yes, it does not scale. And it should not. Don't add
* new entries into /proc/<tgid>/ without very good reasons.
-@@ -2574,7 +2590,7 @@ out_iput:
+@@ -2628,7 +2644,7 @@ out_iput:
static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
{
struct dentry *error;
const struct pid_entry *p, *last;
error = ERR_PTR(-ENOENT);
-@@ -2664,6 +2680,9 @@ static int proc_pid_personality(struct s
+@@ -2718,6 +2734,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;
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),
-@@ -2723,6 +2742,8 @@ static const struct pid_entry tgid_base_
+@@ -2777,6 +2796,8 @@ static const struct pid_entry tgid_base_
#ifdef CONFIG_CGROUPS
REG("cgroup", S_IRUGO, proc_cgroup_operations),
#endif
INF("oom_score", S_IRUGO, proc_oom_score),
REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -2739,6 +2760,7 @@ static const struct pid_entry tgid_base_
+@@ -2793,6 +2814,7 @@ static const struct pid_entry tgid_base_
#ifdef CONFIG_TASK_IO_ACCOUNTING
INF("io", S_IRUGO, proc_tgid_io_accounting),
#endif
};
static int proc_tgid_base_readdir(struct file * filp,
-@@ -2930,7 +2952,7 @@ retry:
+@@ -2985,7 +3007,7 @@ retry:
iter.task = NULL;
pid = find_ge_pid(iter.tgid, ns);
if (pid) {
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
-@@ -2960,7 +2982,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -3015,7 +3037,7 @@ static int proc_pid_fill_cache(struct fi
struct tgid_iter iter)
{
char name[PROC_NUMBUF];
return proc_fill_cache(filp, dirent, filldir, name, len,
proc_pid_instantiate, iter.task, NULL);
}
-@@ -2969,7 +2991,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -3024,7 +3046,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;
struct tgid_iter iter;
struct pid_namespace *ns;
-@@ -2989,6 +3011,8 @@ int proc_pid_readdir(struct file * filp,
+@@ -3044,6 +3066,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;
if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
put_task_struct(iter.task);
goto out;
-@@ -3137,6 +3161,8 @@ static struct dentry *proc_task_lookup(s
+@@ -3193,6 +3217,8 @@ static struct dentry *proc_task_lookup(s
tid = name_to_int(dentry);
if (tid == ~0U)
goto out;
ns = dentry->d_sb->s_fs_info;
rcu_read_lock();
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/generic.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/generic.c
---- linux-2.6.36.2/fs/proc/generic.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/generic.c 2010-10-21 21:43:28.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/generic.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/generic.c
+--- linux-2.6.37/fs/proc/generic.c 2010-10-21 13:07:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/generic.c 2010-11-23 02:09:41.000000000 +0100
@@ -22,6 +22,7 @@
#include <linux/bitops.h>
#include <linux/spinlock.h>
} else {
kfree(ent);
ent = NULL;
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/inode.c
---- linux-2.6.36.2/fs/proc/inode.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/inode.c 2010-10-21 13:09:36.000000000 +0200
-@@ -428,6 +428,8 @@ struct inode *proc_get_inode(struct supe
+diff -NurpP --minimal linux-2.6.37/fs/proc/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/inode.c
+--- linux-2.6.37/fs/proc/inode.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/inode.c 2010-11-23 02:09:41.000000000 +0100
+@@ -427,6 +427,8 @@ struct inode *proc_get_inode(struct supe
inode->i_uid = de->uid;
inode->i_gid = de->gid;
}
if (de->size)
inode->i_size = de->size;
if (de->nlink)
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/internal.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/internal.h
---- linux-2.6.36.2/fs/proc/internal.h 2010-02-25 11:52:06.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/internal.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/internal.h linux-2.6.37-vs2.3.0.37-rc1/fs/proc/internal.h
+--- linux-2.6.37/fs/proc/internal.h 2010-02-25 11:52:06.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/internal.h 2010-11-23 02:09:41.000000000 +0100
@@ -10,6 +10,7 @@
*/
static inline int proc_fd(struct inode *inode)
{
return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/loadavg.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/loadavg.c
---- linux-2.6.36.2/fs/proc/loadavg.c 2009-09-10 15:26:23.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/loadavg.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/loadavg.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/loadavg.c
+--- linux-2.6.37/fs/proc/loadavg.c 2009-09-10 15:26:23.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/loadavg.c 2010-11-23 02:09:41.000000000 +0100
@@ -12,15 +12,27 @@
static int loadavg_proc_show(struct seq_file *m, void *v)
task_active_pid_ns(current)->last_pid);
return 0;
}
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/meminfo.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/meminfo.c
---- linux-2.6.36.2/fs/proc/meminfo.c 2009-12-03 20:02:53.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/meminfo.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/meminfo.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/meminfo.c
+--- linux-2.6.37/fs/proc/meminfo.c 2009-12-03 20:02:53.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/meminfo.c 2010-11-23 02:09:41.000000000 +0100
@@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_
allowed = ((totalram_pages - hugetlb_total_pages())
* sysctl_overcommit_ratio / 100) + total_swap_pages;
total_swapcache_pages - i.bufferram;
if (cached < 0)
cached = 0;
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/root.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/root.c
---- linux-2.6.36.2/fs/proc/root.c 2010-08-02 16:52:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/root.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/root.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/root.c
+--- linux-2.6.37/fs/proc/root.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/root.c 2010-11-23 02:09:41.000000000 +0100
@@ -18,9 +18,14 @@
#include <linux/bitops.h>
#include <linux/mount.h>
static int proc_test_super(struct super_block *sb, void *data)
{
return sb->s_fs_info == data;
-@@ -135,6 +140,7 @@ void __init proc_root_init(void)
+@@ -134,6 +139,7 @@ void __init proc_root_init(void)
#endif
proc_mkdir("bus", NULL);
proc_sys_init();
};
int pid_ns_prepare_proc(struct pid_namespace *ns)
-diff -NurpP --minimal linux-2.6.36.2/fs/proc/uptime.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/uptime.c
---- linux-2.6.36.2/fs/proc/uptime.c 2009-12-03 20:02:53.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/proc/uptime.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/proc/uptime.c linux-2.6.37-vs2.3.0.37-rc1/fs/proc/uptime.c
+--- linux-2.6.37/fs/proc/uptime.c 2009-12-03 20:02:53.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/proc/uptime.c 2010-11-23 02:09:41.000000000 +0100
@@ -4,22 +4,22 @@
#include <linux/sched.h>
#include <linux/seq_file.h>
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.36.2/fs/quota/dquot.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/quota/dquot.c
---- linux-2.6.36.2/fs/quota/dquot.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/quota/dquot.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1538,6 +1538,9 @@ int __dquot_alloc_space(struct inode *in
+diff -NurpP --minimal linux-2.6.37/fs/quota/dquot.c linux-2.6.37-vs2.3.0.37-rc1/fs/quota/dquot.c
+--- linux-2.6.37/fs/quota/dquot.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/quota/dquot.c 2010-11-23 02:09:41.000000000 +0100
+@@ -1541,6 +1541,9 @@ int __dquot_alloc_space(struct inode *in
int reserve = flags & DQUOT_SPACE_RESERVE;
int nofail = flags & DQUOT_SPACE_NOFAIL;
/*
* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex
-@@ -1592,6 +1595,9 @@ int dquot_alloc_inode(const struct inode
+@@ -1595,6 +1598,9 @@ int dquot_alloc_inode(const struct inode
int cnt, ret = 0;
char warntype[MAXQUOTAS];
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode))
-@@ -1662,6 +1668,8 @@ void __dquot_free_space(struct inode *in
+@@ -1665,6 +1671,8 @@ void __dquot_free_space(struct inode *in
char warntype[MAXQUOTAS];
int reserve = flags & DQUOT_SPACE_RESERVE;
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode)) {
-@@ -1700,6 +1708,8 @@ void dquot_free_inode(const struct inode
+@@ -1703,6 +1711,8 @@ void dquot_free_inode(const struct inode
unsigned int cnt;
char warntype[MAXQUOTAS];
/* First test before acquiring mutex - solves deadlocks when we
* re-enter the quota code and are already holding the mutex */
if (!dquot_active(inode))
-diff -NurpP --minimal linux-2.6.36.2/fs/quota/quota.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/quota/quota.c
---- linux-2.6.36.2/fs/quota/quota.c 2010-08-02 16:52:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/quota/quota.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/quota/quota.c linux-2.6.37-vs2.3.0.37-rc1/fs/quota/quota.c
+--- linux-2.6.37/fs/quota/quota.c 2010-08-02 16:52:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/quota/quota.c 2010-11-23 02:09:41.000000000 +0100
@@ -8,6 +8,7 @@
#include <linux/fs.h>
#include <linux/namei.h>
sb = get_super(bdev);
bdput(bdev);
if (!sb)
-diff -NurpP --minimal linux-2.6.36.2/fs/reiserfs/file.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/file.c
---- linux-2.6.36.2/fs/reiserfs/file.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/file.c 2010-10-21 13:09:36.000000000 +0200
-@@ -313,4 +313,5 @@ const struct inode_operations reiserfs_f
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/file.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/file.c
+--- linux-2.6.37/fs/reiserfs/file.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/file.c 2010-11-23 02:09:41.000000000 +0100
+@@ -312,4 +312,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.36.2/fs/reiserfs/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/inode.c
---- linux-2.6.36.2/fs/reiserfs/inode.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/inode.c 2010-10-21 13:59:16.000000000 +0200
-@@ -19,6 +19,7 @@
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/inode.c
+--- linux-2.6.37/fs/reiserfs/inode.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/inode.c 2010-11-23 02:09:41.000000000 +0100
+@@ -18,6 +18,7 @@
#include <linux/writeback.h>
#include <linux/quotaops.h>
#include <linux/swap.h>
int reiserfs_commit_write(struct file *f, struct page *page,
unsigned from, unsigned to);
-@@ -1133,6 +1134,8 @@ static void init_inode(struct inode *ino
+@@ -1131,6 +1132,8 @@ static void init_inode(struct inode *ino
struct buffer_head *bh;
struct item_head *ih;
__u32 rdev;
//int version = ITEM_VERSION_1;
bh = PATH_PLAST_BUFFER(path);
-@@ -1153,12 +1156,13 @@ static void init_inode(struct inode *ino
+@@ -1151,12 +1154,13 @@ static void init_inode(struct inode *ino
(struct stat_data_v1 *)B_I_PITEM(bh, ih);
unsigned long blocks;
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);
-@@ -1200,11 +1204,12 @@ static void init_inode(struct inode *ino
+@@ -1198,11 +1202,12 @@ static void init_inode(struct inode *ino
// (directories and symlinks)
struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih);
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);
-@@ -1234,6 +1239,10 @@ static void init_inode(struct inode *ino
+@@ -1232,6 +1237,10 @@ static void init_inode(struct inode *ino
sd_attrs_to_i_attrs(sd_v2_attrs(sd), inode);
}
pathrelse(path);
if (S_ISREG(inode->i_mode)) {
inode->i_op = &reiserfs_file_inode_operations;
-@@ -1256,13 +1265,15 @@ static void init_inode(struct inode *ino
+@@ -1254,13 +1263,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;
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);
-@@ -2861,14 +2872,19 @@ int reiserfs_commit_write(struct file *f
+@@ -2858,14 +2869,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)) {
if (sd_attrs & REISERFS_APPEND_FL)
inode->i_flags |= S_APPEND;
else
-@@ -2881,6 +2897,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
+@@ -2878,6 +2894,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;
}
}
-@@ -2891,6 +2916,11 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2888,6 +2913,11 @@ void i_attrs_to_sd_attrs(struct inode *i
*sd_attrs |= REISERFS_IMMUTABLE_FL;
else
*sd_attrs &= ~REISERFS_IMMUTABLE_FL;
if (inode->i_flags & S_SYNC)
*sd_attrs |= REISERFS_SYNC_FL;
else
-@@ -2903,6 +2933,15 @@ void i_attrs_to_sd_attrs(struct inode *i
+@@ -2900,6 +2930,15 @@ void i_attrs_to_sd_attrs(struct inode *i
*sd_attrs |= REISERFS_NOTAIL_FL;
else
*sd_attrs &= ~REISERFS_NOTAIL_FL;
}
}
-@@ -3146,7 +3185,8 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3143,7 +3182,8 @@ int reiserfs_setattr(struct dentry *dent
}
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
struct reiserfs_transaction_handle th;
int jbegin_count =
2 *
-@@ -3175,6 +3215,9 @@ int reiserfs_setattr(struct dentry *dent
+@@ -3172,6 +3212,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;
mark_inode_dirty(inode);
error = journal_end(&th, inode->i_sb, jbegin_count);
if (error)
-diff -NurpP --minimal linux-2.6.36.2/fs/reiserfs/ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/ioctl.c
---- linux-2.6.36.2/fs/reiserfs/ioctl.c 2010-12-13 22:08:58.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/ioctl.c 2010-12-13 22:09:27.000000000 +0100
-@@ -7,11 +7,27 @@
- #include <linux/mount.h>
- #include <linux/reiserfs_fs.h>
- #include <linux/time.h>
-+#include <linux/mount.h>
- #include <asm/uaccess.h>
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/ioctl.c
+--- linux-2.6.37/fs/reiserfs/ioctl.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/ioctl.c 2011-01-05 22:30:39.000000000 +0100
+@@ -11,6 +11,21 @@
#include <linux/pagemap.h>
- #include <linux/smp_lock.h>
#include <linux/compat.h>
+
/*
* reiserfs_ioctl - handler for ioctl for inode
* supported commands:
-@@ -23,7 +39,7 @@
+@@ -22,7 +37,7 @@
long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = filp->f_path.dentry->d_inode;
int err = 0;
reiserfs_write_lock(inode->i_sb);
-@@ -48,6 +64,7 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -47,6 +62,7 @@ long reiserfs_ioctl(struct file *filp, u
flags = REISERFS_I(inode)->i_attrs;
i_attrs_to_sd_attrs(inode, (__u16 *) & flags);
err = put_user(flags, (int __user *)arg);
break;
case REISERFS_IOC_SETFLAGS:{
-@@ -68,6 +85,10 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -67,6 +83,10 @@ long reiserfs_ioctl(struct file *filp, u
err = -EFAULT;
goto setflags_out;
}
/*
* Is it quota file? Do not allow user to mess with it
*/
-@@ -92,6 +113,10 @@ long reiserfs_ioctl(struct file *filp, u
+@@ -91,6 +111,10 @@ long reiserfs_ioctl(struct file *filp, u
goto setflags_out;
}
}
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.36.2/fs/reiserfs/namei.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/namei.c
---- linux-2.6.36.2/fs/reiserfs/namei.c 2010-08-02 16:52:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/namei.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/namei.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/namei.c
+--- linux-2.6.37/fs/reiserfs/namei.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/namei.c 2010-11-23 02:09:41.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/reiserfs_acl.h>
#include <linux/reiserfs_xattr.h>
};
/*
-diff -NurpP --minimal linux-2.6.36.2/fs/reiserfs/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/super.c
---- linux-2.6.36.2/fs/reiserfs/super.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -893,6 +893,14 @@ static int reiserfs_parse_options(struct
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/super.c
+--- linux-2.6.37/fs/reiserfs/super.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/super.c 2010-11-23 02:09:41.000000000 +0100
+@@ -892,6 +892,14 @@ static int reiserfs_parse_options(struct
{"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
{"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
#endif
#ifdef CONFIG_REISERFS_FS_POSIX_ACL
{"acl",.setmask = 1 << REISERFS_POSIXACL},
{"noacl",.clrmask = 1 << REISERFS_POSIXACL},
-@@ -1202,6 +1210,14 @@ static int reiserfs_remount(struct super
+@@ -1201,6 +1209,14 @@ static int reiserfs_remount(struct super
handle_quota_files(s, qf_names, &qfmt);
#endif
handle_attrs(s);
/* Add options that are safe here */
-@@ -1684,6 +1700,10 @@ static int reiserfs_fill_super(struct su
+@@ -1683,6 +1699,10 @@ static int reiserfs_fill_super(struct su
goto error;
}
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.36.2/fs/reiserfs/xattr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/xattr.c
---- linux-2.6.36.2/fs/reiserfs/xattr.c 2010-08-02 16:52:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/reiserfs/xattr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/reiserfs/xattr.c linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/xattr.c
+--- linux-2.6.37/fs/reiserfs/xattr.c 2011-01-05 21:50:26.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/reiserfs/xattr.c 2010-11-23 02:09:41.000000000 +0100
@@ -40,6 +40,7 @@
#include <linux/errno.h>
#include <linux/gfp.h>
#include <linux/file.h>
#include <linux/pagemap.h>
#include <linux/xattr.h>
-diff -NurpP --minimal linux-2.6.36.2/fs/stat.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/stat.c
---- linux-2.6.36.2/fs/stat.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/stat.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/stat.c linux-2.6.37-vs2.3.0.37-rc1/fs/stat.c
+--- linux-2.6.37/fs/stat.c 2010-10-21 13:07:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/stat.c 2010-11-23 02:09:41.000000000 +0100
@@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
stat->nlink = inode->i_nlink;
stat->uid = inode->i_uid;
stat->rdev = inode->i_rdev;
stat->atime = inode->i_atime;
stat->mtime = inode->i_mtime;
-diff -NurpP --minimal linux-2.6.36.2/fs/statfs.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/statfs.c
---- linux-2.6.36.2/fs/statfs.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/statfs.c 2010-10-21 14:07:35.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/statfs.c linux-2.6.37-vs2.3.0.37-rc1/fs/statfs.c
+--- linux-2.6.37/fs/statfs.c 2010-10-21 13:07:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/statfs.c 2010-11-23 02:09:41.000000000 +0100
@@ -7,6 +7,8 @@
#include <linux/statfs.h>
#include <linux/security.h>
return retval;
}
-diff -NurpP --minimal linux-2.6.36.2/fs/super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/super.c
---- linux-2.6.36.2/fs/super.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/super.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/super.c linux-2.6.37-vs2.3.0.37-rc1/fs/super.c
+--- linux-2.6.37/fs/super.c 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/super.c 2010-11-23 03:09:36.000000000 +0100
@@ -30,6 +30,9 @@
#include <linux/idr.h>
#include <linux/mutex.h>
#include "internal.h"
-@@ -918,12 +921,18 @@ struct vfsmount *
+@@ -956,6 +959,7 @@ struct vfsmount *
vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void *data)
{
struct vfsmount *mnt;
+ struct super_block *sb;
+ struct dentry *root;
char *secdata = NULL;
int error;
-
+@@ -963,6 +967,11 @@ vfs_kern_mount(struct file_system_type *
if (!type)
return ERR_PTR(-ENODEV);
error = -ENOMEM;
mnt = alloc_vfsmnt(name);
if (!mnt)
-@@ -945,11 +954,19 @@ vfs_kern_mount(struct file_system_type *
- error = type->get_sb(type, flags, name, data, mnt);
- if (error < 0)
- goto out_free_secdata;
+@@ -994,11 +1003,19 @@ vfs_kern_mount(struct file_system_type *
+ if (error < 0)
+ goto out_free_secdata;
+ }
- BUG_ON(!mnt->mnt_sb);
- WARN_ON(!mnt->mnt_sb->s_bdi);
+
if (error)
goto out_sb;
-diff -NurpP --minimal linux-2.6.36.2/fs/sysfs/mount.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/sysfs/mount.c
---- linux-2.6.36.2/fs/sysfs/mount.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/sysfs/mount.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/sysfs/mount.c linux-2.6.37-vs2.3.0.37-rc1/fs/sysfs/mount.c
+--- linux-2.6.37/fs/sysfs/mount.c 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/sysfs/mount.c 2010-11-23 02:09:41.000000000 +0100
@@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
sb->s_blocksize = PAGE_CACHE_SIZE;
sb->s_op = &sysfs_ops;
sb->s_time_gran = 1;
-diff -NurpP --minimal linux-2.6.36.2/fs/utimes.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/utimes.c
---- linux-2.6.36.2/fs/utimes.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/utimes.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/utimes.c linux-2.6.37-vs2.3.0.37-rc1/fs/utimes.c
+--- linux-2.6.37/fs/utimes.c 2010-10-21 13:07:51.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/utimes.c 2010-11-23 02:09:41.000000000 +0100
@@ -8,6 +8,8 @@
#include <linux/stat.h>
#include <linux/utime.h>
if (times && times[0].tv_nsec == UTIME_NOW &&
times[1].tv_nsec == UTIME_NOW)
times = NULL;
-diff -NurpP --minimal linux-2.6.36.2/fs/xattr.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xattr.c
---- linux-2.6.36.2/fs/xattr.c 2010-08-02 16:52:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xattr.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xattr.c linux-2.6.37-vs2.3.0.37-rc1/fs/xattr.c
+--- linux-2.6.37/fs/xattr.c 2010-08-02 16:52:52.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xattr.c 2010-11-23 02:09:41.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/module.h>
#include <linux/fsnotify.h>
/* In user.* namespace, only regular files and directories can have
* extended attributes. For sticky directories, only the owner and
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_ioctl.c
---- linux-2.6.36.2/fs/xfs/linux-2.6/xfs_ioctl.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2010-10-21 14:02:37.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_ioctl.c
+--- linux-2.6.37/fs/xfs/linux-2.6/xfs_ioctl.c 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_ioctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -28,7 +28,7 @@
#include "xfs_bmap_btree.h"
#include "xfs_dinode.h"
if (xflags & XFS_XFLAG_APPEND)
inode->i_flags |= S_APPEND;
else
-@@ -1341,10 +1353,18 @@ xfs_file_ioctl(
+@@ -1342,10 +1354,18 @@ xfs_file_ioctl(
case XFS_IOC_FSGETXATTRA:
return xfs_ioc_fsgetxattr(ip, 1, arg);
case XFS_IOC_FSSETXATTR:
return xfs_ioc_setxflags(ip, filp, arg);
case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/linux-2.6/xfs_ioctl.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_ioctl.h
---- linux-2.6.36.2/fs/xfs/linux-2.6/xfs_ioctl.h 2010-07-07 18:31:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_ioctl.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/linux-2.6/xfs_ioctl.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_ioctl.h
+--- linux-2.6.37/fs/xfs/linux-2.6/xfs_ioctl.h 2010-07-07 18:31:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_ioctl.h 2010-11-23 02:09:41.000000000 +0100
@@ -70,6 +70,12 @@ xfs_handle_to_dentry(
void __user *uhandle,
u32 hlen);
extern long
xfs_file_ioctl(
struct file *filp,
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_iops.c
---- linux-2.6.36.2/fs/xfs/linux-2.6/xfs_iops.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_iops.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_iops.c
+--- linux-2.6.37/fs/xfs/linux-2.6/xfs_iops.c 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_iops.c 2010-11-23 02:09:41.000000000 +0100
@@ -30,6 +30,7 @@
#include "xfs_bmap_btree.h"
#include "xfs_dinode.h"
/*
* Bring the timestamps in the XFS inode uptodate.
-@@ -499,6 +501,7 @@ xfs_vn_getattr(
+@@ -464,6 +466,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;
stat->ino = ip->i_ino;
stat->atime = inode->i_atime;
stat->mtime = inode->i_mtime;
-@@ -687,6 +690,7 @@ static const struct inode_operations xfs
+@@ -652,6 +655,7 @@ static const struct inode_operations xfs
.listxattr = xfs_vn_listxattr,
.fallocate = xfs_vn_fallocate,
.fiemap = xfs_vn_fiemap,
};
static const struct inode_operations xfs_dir_inode_operations = {
-@@ -712,6 +716,7 @@ static const struct inode_operations xfs
+@@ -677,6 +681,7 @@ static const struct inode_operations xfs
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr,
};
static const struct inode_operations xfs_dir_ci_inode_operations = {
-@@ -761,6 +766,10 @@ xfs_diflags_to_iflags(
+@@ -726,6 +731,10 @@ xfs_diflags_to_iflags(
inode->i_flags |= S_IMMUTABLE;
else
inode->i_flags &= ~S_IMMUTABLE;
if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
inode->i_flags |= S_APPEND;
else
-@@ -773,6 +782,15 @@ xfs_diflags_to_iflags(
+@@ -738,6 +747,15 @@ xfs_diflags_to_iflags(
inode->i_flags |= S_NOATIME;
else
inode->i_flags &= ~S_NOATIME;
}
/*
-@@ -801,6 +819,7 @@ xfs_setup_inode(
+@@ -769,6 +787,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;
switch (inode->i_mode & S_IFMT) {
case S_IFBLK:
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/linux-2.6/xfs_linux.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_linux.h
---- linux-2.6.36.2/fs/xfs/linux-2.6/xfs_linux.h 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_linux.h 2010-10-21 13:09:36.000000000 +0200
-@@ -116,6 +116,7 @@
+diff -NurpP --minimal linux-2.6.37/fs/xfs/linux-2.6/xfs_linux.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_linux.h
+--- linux-2.6.37/fs/xfs/linux-2.6/xfs_linux.h 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_linux.h 2010-11-23 03:28:16.000000000 +0100
+@@ -115,6 +115,7 @@
#define current_cpu() (raw_smp_processor_id())
#define current_pid() (current->pid)
-+#define current_fstag(cred,vp) (dx_current_fstag((vp)->i_sb))
++#define current_fstag(vp) (dx_current_fstag((vp)->i_sb))
#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.36.2/fs/xfs/linux-2.6/xfs_super.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_super.c
---- linux-2.6.36.2/fs/xfs/linux-2.6/xfs_super.c 2010-10-21 13:07:51.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/linux-2.6/xfs_super.c 2010-10-21 13:09:36.000000000 +0200
-@@ -113,6 +113,9 @@ mempool_t *xfs_ioend_pool;
+diff -NurpP --minimal linux-2.6.37/fs/xfs/linux-2.6/xfs_super.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_super.c
+--- linux-2.6.37/fs/xfs/linux-2.6/xfs_super.c 2011-01-05 21:50:27.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/linux-2.6/xfs_super.c 2010-11-23 02:09:41.000000000 +0100
+@@ -112,6 +112,9 @@ mempool_t *xfs_ioend_pool;
#define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */
#define MNTOPT_DELAYLOG "delaylog" /* Delayed loging enabled */
#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed loging disabled */
/*
* Table driven mount option parser.
-@@ -121,10 +124,14 @@ mempool_t *xfs_ioend_pool;
+@@ -120,10 +123,14 @@ mempool_t *xfs_ioend_pool;
* in the future, too.
*/
enum {
{Opt_barrier, "barrier"},
{Opt_nobarrier, "nobarrier"},
{Opt_err, NULL}
-@@ -371,6 +378,19 @@ xfs_parseargs(
+@@ -367,6 +374,19 @@ xfs_parseargs(
} else if (!strcmp(this_char, "irixsgid")) {
cmn_err(CE_WARN,
"XFS: irixsgid is now a sysctl(2) variable, option is deprecated.");
} else {
cmn_err(CE_WARN,
"XFS: unknown mount option [%s].", this_char);
-@@ -1320,6 +1340,16 @@ xfs_fs_remount(
+@@ -1312,6 +1332,16 @@ xfs_fs_remount(
case Opt_nobarrier:
mp->m_flags &= ~XFS_MOUNT_BARRIER;
break;
default:
/*
* Logically we would return an error here to prevent
-@@ -1547,6 +1577,9 @@ xfs_fs_fill_super(
+@@ -1540,6 +1570,9 @@ xfs_fs_fill_super(
if (error)
goto out_filestream_unmount;
sb->s_magic = XFS_SB_MAGIC;
sb->s_blocksize = mp->m_sb.sb_blocksize;
sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1;
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_dinode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_dinode.h
---- linux-2.6.36.2/fs/xfs/xfs_dinode.h 2009-06-11 17:13:09.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_dinode.h 2010-10-21 13:09:36.000000000 +0200
-@@ -50,7 +50,9 @@ typedef struct xfs_dinode {
- __be32 di_gid; /* owner's group id */
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_dinode.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_dinode.h
+--- linux-2.6.37/fs/xfs/xfs_dinode.h 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_dinode.h 2010-11-23 03:21:21.000000000 +0100
+@@ -51,7 +51,9 @@ typedef struct xfs_dinode {
__be32 di_nlink; /* number of links to file */
- __be16 di_projid; /* owner's project id */
-- __u8 di_pad[8]; /* unused, zeroed space */
+ __be16 di_projid_lo; /* lower part of owner's project id */
+ __be16 di_projid_hi; /* higher part owner's project id */
+- __u8 di_pad[6]; /* unused, zeroed space */
++ __u8 di_pad[2]; /* unused, zeroed space */
+ __be16 di_tag; /* context tagging */
+ __be16 di_vflags; /* vserver specific flags */
-+ __u8 di_pad[4]; /* unused, zeroed space */
__be16 di_flushiter; /* incremented on flush */
xfs_timestamp_t di_atime; /* time last accessed */
xfs_timestamp_t di_mtime; /* time last modified */
-@@ -183,6 +185,8 @@ static inline void xfs_dinode_put_rdev(s
+@@ -184,6 +186,8 @@ static inline void xfs_dinode_put_rdev(s
#define XFS_DIFLAG_EXTSZINHERIT_BIT 12 /* inherit inode extent size */
#define XFS_DIFLAG_NODEFRAG_BIT 13 /* do not reorganize/defragment */
#define XFS_DIFLAG_FILESTREAM_BIT 14 /* use filestream allocator */
#define XFS_DIFLAG_REALTIME (1 << XFS_DIFLAG_REALTIME_BIT)
#define XFS_DIFLAG_PREALLOC (1 << XFS_DIFLAG_PREALLOC_BIT)
#define XFS_DIFLAG_NEWRTBM (1 << XFS_DIFLAG_NEWRTBM_BIT)
-@@ -198,6 +202,7 @@ static inline void xfs_dinode_put_rdev(s
+@@ -199,6 +203,7 @@ static inline void xfs_dinode_put_rdev(s
#define XFS_DIFLAG_EXTSZINHERIT (1 << XFS_DIFLAG_EXTSZINHERIT_BIT)
#define XFS_DIFLAG_NODEFRAG (1 << XFS_DIFLAG_NODEFRAG_BIT)
#define XFS_DIFLAG_FILESTREAM (1 << XFS_DIFLAG_FILESTREAM_BIT)
#ifdef CONFIG_XFS_RT
#define XFS_IS_REALTIME_INODE(ip) ((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME)
-@@ -210,6 +215,10 @@ static inline void xfs_dinode_put_rdev(s
+@@ -211,6 +216,10 @@ static inline void xfs_dinode_put_rdev(s
XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND | XFS_DIFLAG_SYNC | \
XFS_DIFLAG_NOATIME | XFS_DIFLAG_NODUMP | XFS_DIFLAG_RTINHERIT | \
XFS_DIFLAG_PROJINHERIT | XFS_DIFLAG_NOSYMLINKS | XFS_DIFLAG_EXTSIZE | \
+#define XFS_DIVFLAG_COW 0x02
#endif /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_fs.h
---- linux-2.6.36.2/fs/xfs/xfs_fs.h 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_fs.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_fs.h
+--- linux-2.6.37/fs/xfs/xfs_fs.h 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_fs.h 2010-11-23 03:16:13.000000000 +0100
@@ -67,6 +67,9 @@ struct fsxattr {
#define XFS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */
#define XFS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */
#define XFS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */
/*
-@@ -295,7 +298,8 @@ typedef struct xfs_bstat {
- __u32 bs_gen; /* generation count */
- __u16 bs_projid; /* project id */
+@@ -297,7 +300,8 @@ typedef struct xfs_bstat {
+ #define bs_projid bs_projid_lo /* (previously just bs_projid) */
__u16 bs_forkoff; /* inode fork offset in bytes */
-- unsigned char bs_pad[12]; /* pad space, unused */
+ __u16 bs_projid_hi; /* higher part of project id */
+- unsigned char bs_pad[10]; /* pad space, unused */
++ unsigned char bs_pad[8]; /* pad space, unused */
+ __u16 bs_tag; /* context tagging */
-+ unsigned char bs_pad[10]; /* pad space, unused */
__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.36.2/fs/xfs/xfs_ialloc.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_ialloc.c
---- linux-2.6.36.2/fs/xfs/xfs_ialloc.c 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_ialloc.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_ialloc.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_ialloc.c
+--- linux-2.6.37/fs/xfs/xfs_ialloc.c 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_ialloc.c 2010-11-23 02:09:41.000000000 +0100
@@ -37,7 +37,6 @@
#include "xfs_error.h"
#include "xfs_bmap.h"
/*
* Allocation group level functions.
*/
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_inode.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_inode.c
---- linux-2.6.36.2/fs/xfs/xfs_inode.c 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_inode.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_inode.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_inode.c
+--- linux-2.6.37/fs/xfs/xfs_inode.c 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_inode.c 2010-11-23 03:28:30.000000000 +0100
@@ -245,6 +245,7 @@ xfs_inotobp(
return 0;
}
+ to->di_tag = INOTAG_TAG(tagged, uid, gid, tag);
+
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));
-@@ -679,21 +690,26 @@ xfs_dinode_from_disk(
+ to->di_projid_lo = be16_to_cpu(from->di_projid_lo);
+ to->di_projid_hi = be16_to_cpu(from->di_projid_hi);
+@@ -680,21 +691,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);
+ to->di_tag = cpu_to_be16(TAGINO_TAG(tagged, from->di_tag));
+
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));
-@@ -714,12 +730,14 @@ xfs_dinode_to_disk(
+ to->di_projid_lo = cpu_to_be16(from->di_projid_lo);
+ to->di_projid_hi = cpu_to_be16(from->di_projid_hi);
+@@ -716,12 +732,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);
{
uint flags = 0;
-@@ -730,6 +748,8 @@ _xfs_dic2xflags(
+@@ -732,6 +750,8 @@ _xfs_dic2xflags(
flags |= XFS_XFLAG_PREALLOC;
if (di_flags & XFS_DIFLAG_IMMUTABLE)
flags |= XFS_XFLAG_IMMUTABLE;
if (di_flags & XFS_DIFLAG_APPEND)
flags |= XFS_XFLAG_APPEND;
if (di_flags & XFS_DIFLAG_SYNC)
-@@ -754,6 +774,10 @@ _xfs_dic2xflags(
+@@ -756,6 +776,10 @@ _xfs_dic2xflags(
flags |= XFS_XFLAG_FILESTREAM;
}
return flags;
}
-@@ -763,7 +787,7 @@ xfs_ip2xflags(
+@@ -765,7 +789,7 @@ xfs_ip2xflags(
{
xfs_icdinode_t *dic = &ip->i_d;
(XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0);
}
-@@ -771,7 +795,8 @@ uint
+@@ -773,7 +797,8 @@ uint
xfs_dic2xflags(
xfs_dinode_t *dip)
{
(XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0);
}
-@@ -804,7 +829,6 @@ xfs_iread(
+@@ -806,7 +831,6 @@ xfs_iread(
if (error)
return error;
dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset);
/*
* If we got something that isn't an inode it means someone
* (nfs or dmi) has a stale handle.
-@@ -829,7 +853,8 @@ xfs_iread(
+@@ -831,7 +855,8 @@ xfs_iread(
* Otherwise, just get the truly permanent information.
*/
if (dip->di_mode) {
error = xfs_iformat(ip, dip);
if (error) {
#ifdef DEBUG
-@@ -1027,6 +1052,7 @@ xfs_ialloc(
+@@ -1028,6 +1053,7 @@ xfs_ialloc(
ASSERT(ip->i_d.di_nlink == nlink);
ip->i_d.di_uid = current_fsuid();
ip->i_d.di_gid = current_fsgid();
-+ ip->i_d.di_tag = current_fstag(cr, &ip->i_vnode);
- ip->i_d.di_projid = prid;
++ ip->i_d.di_tag = current_fstag(&ip->i_vnode);
+ xfs_set_projid(ip, prid);
memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
-@@ -1087,6 +1113,7 @@ xfs_ialloc(
+@@ -1088,6 +1114,7 @@ xfs_ialloc(
ip->i_d.di_dmevmask = 0;
ip->i_d.di_dmstate = 0;
ip->i_d.di_flags = 0;
flags = XFS_ILOG_CORE;
switch (mode & S_IFMT) {
case S_IFIFO:
-@@ -2105,6 +2132,7 @@ xfs_ifree(
+@@ -2106,6 +2133,7 @@ xfs_ifree(
}
ip->i_d.di_mode = 0; /* mark incore inode as free */
ip->i_d.di_flags = 0;
ip->i_d.di_dmevmask = 0;
ip->i_d.di_forkoff = 0; /* mark the attr fork not in use */
ip->i_df.if_ext_max =
-@@ -2975,7 +3003,8 @@ xfs_iflush_int(
+@@ -2976,7 +3004,8 @@ xfs_iflush_int(
* because if the inode is dirty at all the core must
* be.
*/
/* 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.36.2/fs/xfs/xfs_inode.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_inode.h
---- linux-2.6.36.2/fs/xfs/xfs_inode.h 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_inode.h 2010-10-21 13:09:36.000000000 +0200
-@@ -135,7 +135,9 @@ typedef struct xfs_icdinode {
- __uint32_t di_gid; /* owner's group id */
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_inode.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_inode.h
+--- linux-2.6.37/fs/xfs/xfs_inode.h 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_inode.h 2010-11-23 03:29:08.000000000 +0100
+@@ -136,7 +136,9 @@ typedef struct xfs_icdinode {
__uint32_t di_nlink; /* number of links to file */
- __uint16_t di_projid; /* owner's project id */
-- __uint8_t di_pad[8]; /* unused, zeroed space */
+ __uint16_t di_projid_lo; /* lower part of owner's project id */
+ __uint16_t di_projid_hi; /* higher part of owner's project id */
+- __uint8_t di_pad[6]; /* unused, zeroed space */
++ __uint8_t di_pad[2]; /* unused, zeroed space */
+ __uint16_t di_tag; /* context tagging */
+ __uint16_t di_vflags; /* vserver specific flags */
-+ __uint8_t di_pad[4]; /* unused, zeroed space */
__uint16_t di_flushiter; /* incremented on flush */
xfs_ictimestamp_t di_atime; /* time last accessed */
xfs_ictimestamp_t di_mtime; /* time last modified */
-@@ -509,7 +511,7 @@ int xfs_itobp(struct xfs_mount *, struc
+@@ -527,7 +529,7 @@ int xfs_itobp(struct xfs_mount *, struc
int xfs_iread(struct xfs_mount *, struct xfs_trans *,
struct xfs_inode *, uint);
void xfs_dinode_to_disk(struct xfs_dinode *,
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.36.2/fs/xfs/xfs_itable.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_itable.c
---- linux-2.6.36.2/fs/xfs/xfs_itable.c 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_itable.c 2010-10-21 13:09:36.000000000 +0200
-@@ -97,6 +97,7 @@ xfs_bulkstat_one_int(
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_itable.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_itable.c
+--- linux-2.6.37/fs/xfs/xfs_itable.c 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_itable.c 2010-11-23 02:09:41.000000000 +0100
+@@ -98,6 +98,7 @@ xfs_bulkstat_one_int(
buf->bs_mode = dic->di_mode;
buf->bs_uid = dic->di_uid;
buf->bs_gid = dic->di_gid;
buf->bs_size = dic->di_size;
/*
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_log_recover.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_log_recover.c
---- linux-2.6.36.2/fs/xfs/xfs_log_recover.c 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_log_recover.c 2010-10-21 14:02:02.000000000 +0200
-@@ -2450,7 +2450,8 @@ xlog_recover_do_inode_trans(
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_log_recover.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_log_recover.c
+--- linux-2.6.37/fs/xfs/xfs_log_recover.c 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_log_recover.c 2010-11-23 02:09:41.000000000 +0100
+@@ -2451,7 +2451,8 @@ xlog_recover_do_inode_trans(
}
/* The core is in in-core format */
/* the rest is in on-disk format */
if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_mount.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_mount.h
---- linux-2.6.36.2/fs/xfs/xfs_mount.h 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_mount.h 2010-10-21 13:09:36.000000000 +0200
-@@ -238,6 +238,7 @@ typedef struct xfs_mount {
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_mount.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_mount.h
+--- linux-2.6.37/fs/xfs/xfs_mount.h 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_mount.h 2010-11-23 02:09:41.000000000 +0100
+@@ -239,6 +239,7 @@ typedef struct xfs_mount {
allocator */
#define XFS_MOUNT_NOATTR2 (1ULL << 25) /* disable use of attr2 format */
/*
* Default minimum read and write sizes.
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_vnodeops.c linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_vnodeops.c
---- linux-2.6.36.2/fs/xfs/xfs_vnodeops.c 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_vnodeops.c 2010-10-21 15:17:26.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_vnodeops.c linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_vnodeops.c
+--- linux-2.6.37/fs/xfs/xfs_vnodeops.c 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_vnodeops.c 2011-01-06 00:07:49.000000000 +0100
@@ -50,6 +50,78 @@
#include "xfs_vnodeops.h"
#include "xfs_trace.h"
+ xfs_get_inode_flags(ip);
+
+ xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
-+ xfs_ichgtime(ip, XFS_ICHGTIME_CHG);
++ xfs_trans_ichgtime(tp, ip, XFS_ICHGTIME_CHG);
+
+ XFS_STATS_INC(xs_ig_attrchg);
+
ASSERT(tp);
code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp,
capable(CAP_FOWNER) ?
-@@ -326,7 +402,7 @@ xfs_setattr(
+@@ -329,7 +405,7 @@ xfs_setattr(
/*
* Change file ownership. Must be the owner or privileged.
*/
/*
* CAP_FSETID overrides the following restrictions:
*
-@@ -342,6 +418,10 @@ xfs_setattr(
+@@ -345,6 +421,10 @@ xfs_setattr(
* Change the ownerships and register quota modifications
* in the transaction.
*/
if (iuid != uid) {
if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) {
ASSERT(mask & ATTR_UID);
-diff -NurpP --minimal linux-2.6.36.2/fs/xfs/xfs_vnodeops.h linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_vnodeops.h
---- linux-2.6.36.2/fs/xfs/xfs_vnodeops.h 2010-07-07 18:31:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/fs/xfs/xfs_vnodeops.h 2010-10-21 13:09:36.000000000 +0200
-@@ -14,6 +14,7 @@ struct xfs_inode;
+diff -NurpP --minimal linux-2.6.37/fs/xfs/xfs_vnodeops.h linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_vnodeops.h
+--- linux-2.6.37/fs/xfs/xfs_vnodeops.h 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/fs/xfs/xfs_vnodeops.h 2010-11-23 02:09:41.000000000 +0100
+@@ -13,6 +13,7 @@ struct xfs_inode;
struct xfs_iomap;
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.36.2/include/asm-generic/tlb.h linux-2.6.36.2-vs2.3.0.36.38.2/include/asm-generic/tlb.h
---- linux-2.6.36.2/include/asm-generic/tlb.h 2009-09-10 15:26:24.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/asm-generic/tlb.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/asm-generic/tlb.h linux-2.6.37-vs2.3.0.37-rc1/include/asm-generic/tlb.h
+--- linux-2.6.37/include/asm-generic/tlb.h 2009-09-10 15:26:24.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/asm-generic/tlb.h 2010-11-23 02:09:41.000000000 +0100
@@ -14,6 +14,7 @@
#define _ASM_GENERIC__TLB_H
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-2.6.36.2/include/linux/capability.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/capability.h
---- linux-2.6.36.2/include/linux/capability.h 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/capability.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/capability.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/capability.h
+--- linux-2.6.37/include/linux/capability.h 2010-10-21 13:07:52.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/capability.h 2011-01-06 01:44:43.000000000 +0100
@@ -280,6 +280,7 @@ struct cpu_vfs_cap_data {
arbitrary SCSI commands */
/* Allow setting encryption key on loopback filesystem */
#define CAP_SYS_ADMIN 21
-@@ -352,7 +353,13 @@ struct cpu_vfs_cap_data {
+@@ -354,7 +355,12 @@ struct cpu_vfs_cap_data {
- #define CAP_MAC_ADMIN 33
+ #define CAP_LAST_CAP CAP_MAC_ADMIN
--#define CAP_LAST_CAP CAP_MAC_ADMIN
+-#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
+/* Allow context manipulations */
+/* Allow changing context info on files */
+
-+#define CAP_CONTEXT 34
-+
++#define CAP_CONTEXT 63
+
-+#define CAP_LAST_CAP CAP_CONTEXT
++#define cap_valid(x) ((x) >= 0 && ((x) <= CAP_LAST_CAP || (x) == CAP_CONTEXT))
- #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
-
-diff -NurpP --minimal linux-2.6.36.2/include/linux/cred.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/cred.h
---- linux-2.6.36.2/include/linux/cred.h 2010-08-02 16:52:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/cred.h 2010-12-01 17:26:52.000000000 +0100
+ /*
+ * Bit location of each capability (used by user-space library and kernel)
+diff -NurpP --minimal linux-2.6.37/include/linux/cred.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/cred.h
+--- linux-2.6.37/include/linux/cred.h 2011-01-05 21:50:29.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/cred.h 2011-01-05 22:46:34.000000000 +0100
@@ -208,6 +208,31 @@ static inline void validate_process_cred
}
#endif
/**
* get_new_cred - Get a reference on a new set of credentials
* @cred: The new credentials to reference
-diff -NurpP --minimal linux-2.6.36.2/include/linux/devpts_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/devpts_fs.h
---- linux-2.6.36.2/include/linux/devpts_fs.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/devpts_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/devpts_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/devpts_fs.h
+--- linux-2.6.37/include/linux/devpts_fs.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/devpts_fs.h 2010-11-23 02:09:41.000000000 +0100
@@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
#endif
-
#endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/ext2_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ext2_fs.h
---- linux-2.6.36.2/include/linux/ext2_fs.h 2010-02-25 11:52:07.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ext2_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/ext2_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/ext2_fs.h
+--- linux-2.6.37/include/linux/ext2_fs.h 2010-02-25 11:52:07.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/ext2_fs.h 2010-11-23 02:09:41.000000000 +0100
@@ -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) */
#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
-diff -NurpP --minimal linux-2.6.36.2/include/linux/ext3_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ext3_fs.h
---- linux-2.6.36.2/include/linux/ext3_fs.h 2010-10-21 13:07:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ext3_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/ext3_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/ext3_fs.h
+--- linux-2.6.37/include/linux/ext3_fs.h 2010-10-21 13:07:53.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/ext3_fs.h 2010-11-23 02:09:41.000000000 +0100
@@ -173,10 +173,14 @@ struct ext3_group_desc
#define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */
#define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */
/* ioctl.c */
extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-2.6.36.2/include/linux/fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/fs.h
---- linux-2.6.36.2/include/linux/fs.h 2010-10-21 13:07:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/fs.h 2010-10-21 13:09:36.000000000 +0200
-@@ -208,6 +208,9 @@ struct inodes_stat_t {
+diff -NurpP --minimal linux-2.6.37/include/linux/fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/fs.h
+--- linux-2.6.37/include/linux/fs.h 2011-01-05 21:50:30.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/fs.h 2011-01-05 22:30:40.000000000 +0100
+@@ -214,6 +214,9 @@ struct inodes_stat_t {
#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
#define MS_STRICTATIME (1<<24) /* Always perform atime updates */
#define MS_BORN (1<<29)
#define MS_ACTIVE (1<<30)
#define MS_NOUSER (1<<31)
-@@ -235,6 +238,14 @@ struct inodes_stat_t {
- #define S_NOCMTIME 128 /* Do not update file c/mtime */
+@@ -242,6 +245,14 @@ struct inodes_stat_t {
#define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */
#define S_PRIVATE 512 /* Inode is fs-internal */
-+#define S_IXUNLINK 1024 /* Immutable Invert on unlink */
+ #define S_IMA 1024 /* Inode has an associated IMA struct */
++#define S_IXUNLINK 2048 /* Immutable Invert on unlink */
+
+/* Linux-VServer related Inode flags */
+
/*
* Note that nosuid etc flags are inode-specific: setting some file-system
-@@ -257,12 +268,15 @@ struct inodes_stat_t {
+@@ -264,12 +275,15 @@ struct inodes_stat_t {
#define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \
((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
#define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
#define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
-@@ -270,6 +284,16 @@ struct inodes_stat_t {
- #define IS_SWAPFILE(inode) ((inode)->i_flags & S_SWAPFILE)
+@@ -278,6 +292,16 @@ struct inodes_stat_t {
#define IS_PRIVATE(inode) ((inode)->i_flags & S_PRIVATE)
+ #define IS_IMA(inode) ((inode)->i_flags & S_IMA)
+#define IS_BARRIER(inode) (S_ISDIR((inode)->i_mode) && ((inode)->i_vflags & V_BARRIER))
+
/* the read-only stuff doesn't really belong here, but any other place is
probably as bad and I don't want to create yet another include file. */
-@@ -353,11 +377,14 @@ struct inodes_stat_t {
+@@ -362,11 +386,14 @@ struct inodes_stat_t {
#define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
#define FS_EXTENT_FL 0x00080000 /* Extents */
#define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */
#define SYNC_FILE_RANGE_WAIT_BEFORE 1
#define SYNC_FILE_RANGE_WRITE 2
-@@ -437,6 +464,7 @@ typedef void (dio_iodone_t)(struct kiocb
+@@ -446,6 +473,7 @@ typedef void (dio_iodone_t)(struct kiocb
#define ATTR_KILL_PRIV (1 << 14)
#define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
#define ATTR_TIMES_SET (1 << 16)
/*
* This is the Inode Attributes structure, used for notify_change(). It
-@@ -452,6 +480,7 @@ struct iattr {
+@@ -461,6 +489,7 @@ struct iattr {
umode_t ia_mode;
uid_t ia_uid;
gid_t ia_gid;
loff_t ia_size;
struct timespec ia_atime;
struct timespec ia_mtime;
-@@ -465,6 +494,9 @@ struct iattr {
+@@ -474,6 +503,9 @@ struct iattr {
struct file *ia_file;
};
/*
* Includes for diskquotas.
*/
-@@ -732,7 +764,9 @@ struct inode {
+@@ -743,7 +775,9 @@ struct inode {
unsigned int i_nlink;
uid_t i_uid;
gid_t i_gid;
unsigned int i_blkbits;
u64 i_version;
loff_t i_size;
-@@ -774,7 +808,8 @@ struct inode {
+@@ -785,7 +819,8 @@ struct inode {
unsigned long i_state;
unsigned long dirtied_when; /* jiffies of first dirtying */
+ unsigned short i_flags;
+ unsigned short i_vflags;
- atomic_t i_writecount;
- #ifdef CONFIG_SECURITY
-@@ -862,12 +897,12 @@ static inline void i_size_write(struct i
+ #ifdef CONFIG_IMA
+ /* protected by i_lock */
+@@ -882,12 +917,12 @@ static inline void i_size_write(struct i
static inline unsigned iminor(const struct inode *inode)
{
}
extern struct block_device *I_BDEV(struct inode *inode);
-@@ -929,6 +964,7 @@ struct file {
+@@ -949,6 +984,7 @@ struct file {
loff_t f_pos;
struct fown_struct f_owner;
const struct cred *f_cred;
struct file_ra_state f_ra;
u64 f_version;
-@@ -1068,6 +1104,7 @@ struct file_lock {
+@@ -1087,6 +1123,7 @@ struct file_lock {
struct file *fl_file;
loff_t fl_start;
loff_t fl_end;
struct fasync_struct * fl_fasync; /* for lease break notifications */
unsigned long fl_break_time; /* for nonblocking lease breaks */
-@@ -1536,6 +1573,7 @@ struct inode_operations {
+@@ -1568,6 +1605,7 @@ struct inode_operations {
ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
ssize_t (*listxattr) (struct dentry *, char *, size_t);
int (*removexattr) (struct dentry *, const char *);
void (*truncate_range)(struct inode *, loff_t, loff_t);
long (*fallocate)(struct inode *inode, int mode, loff_t offset,
loff_t len);
-@@ -1556,6 +1594,7 @@ extern ssize_t vfs_readv(struct file *,
+@@ -1588,6 +1626,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 *);
struct super_operations {
struct inode *(*alloc_inode)(struct super_block *sb);
-@@ -2344,6 +2383,7 @@ extern int dcache_dir_open(struct inode
+@@ -2389,6 +2428,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);
extern int simple_setattr(struct dentry *, struct iattr *);
extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
extern int simple_statfs(struct dentry *, struct kstatfs *);
-diff -NurpP --minimal linux-2.6.36.2/include/linux/gfs2_ondisk.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/gfs2_ondisk.h
---- linux-2.6.36.2/include/linux/gfs2_ondisk.h 2010-07-07 18:31:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/gfs2_ondisk.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/gfs2_ondisk.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/gfs2_ondisk.h
+--- linux-2.6.37/include/linux/gfs2_ondisk.h 2010-07-07 18:31:55.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/gfs2_ondisk.h 2010-11-23 02:09:41.000000000 +0100
@@ -211,6 +211,9 @@ enum {
gfs2fl_NoAtime = 7,
gfs2fl_Sync = 8,
#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000
#define GFS2_DIF_INHERIT_JDATA 0x80000000
-diff -NurpP --minimal linux-2.6.36.2/include/linux/if_tun.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/if_tun.h
---- linux-2.6.36.2/include/linux/if_tun.h 2010-08-02 16:52:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/if_tun.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/if_tun.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/if_tun.h
+--- linux-2.6.37/include/linux/if_tun.h 2010-08-02 16:52:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/if_tun.h 2010-11-23 02:09:41.000000000 +0100
@@ -53,6 +53,7 @@
#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
/* TUNSETIFF ifr flags */
#define IFF_TUN 0x0001
-diff -NurpP --minimal linux-2.6.36.2/include/linux/init_task.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/init_task.h
---- linux-2.6.36.2/include/linux/init_task.h 2010-08-02 16:52:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/init_task.h 2010-10-21 13:09:36.000000000 +0200
-@@ -172,6 +172,10 @@ extern struct cred init_cred;
+diff -NurpP --minimal linux-2.6.37/include/linux/init_task.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/init_task.h
+--- linux-2.6.37/include/linux/init_task.h 2011-01-05 21:50:30.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/init_task.h 2010-11-23 02:09:41.000000000 +0100
+@@ -178,6 +178,10 @@ extern struct cred init_cred;
INIT_FTRACE_GRAPH \
INIT_TRACE_RECURSION \
INIT_TASK_RCU_PREEMPT(tsk) \
}
-diff -NurpP --minimal linux-2.6.36.2/include/linux/ipc.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ipc.h
---- linux-2.6.36.2/include/linux/ipc.h 2009-12-03 20:02:55.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/ipc.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/ipc.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/ipc.h
+--- linux-2.6.37/include/linux/ipc.h 2009-12-03 20:02:55.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/ipc.h 2010-11-23 02:09:41.000000000 +0100
@@ -91,6 +91,7 @@ struct kern_ipc_perm
key_t key;
uid_t uid;
uid_t cuid;
gid_t cgid;
mode_t mode;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/Kbuild linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/Kbuild
---- linux-2.6.36.2/include/linux/Kbuild 2010-10-21 13:07:52.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/Kbuild 2010-10-21 14:12:01.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/Kbuild linux-2.6.37-vs2.3.0.37-rc1/include/linux/Kbuild
+--- linux-2.6.37/include/linux/Kbuild 2011-01-05 21:50:28.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/Kbuild 2010-11-23 02:09:41.000000000 +0100
@@ -15,6 +15,7 @@ header-y += netfilter_bridge/
header-y += netfilter_ipv4/
header-y += netfilter_ipv6/
header-y += wimax/
objhdr-y += version.h
-diff -NurpP --minimal linux-2.6.36.2/include/linux/loop.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/loop.h
---- linux-2.6.36.2/include/linux/loop.h 2009-09-10 15:26:25.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/loop.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/loop.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/loop.h
+--- linux-2.6.37/include/linux/loop.h 2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/loop.h 2010-11-23 02:09:41.000000000 +0100
@@ -45,6 +45,7 @@ struct loop_device {
struct loop_func_table *lo_encryption;
__u32 lo_init[2];
int (*ioctl)(struct loop_device *, int cmd,
unsigned long arg);
-diff -NurpP --minimal linux-2.6.36.2/include/linux/magic.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/magic.h
---- linux-2.6.36.2/include/linux/magic.h 2010-07-07 18:31:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/magic.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/magic.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/magic.h
+--- linux-2.6.37/include/linux/magic.h 2011-01-05 21:50:30.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/magic.h 2010-11-23 02:09:41.000000000 +0100
@@ -3,7 +3,7 @@
#define ADFS_SUPER_MAGIC 0xadf5
#define QNX4_SUPER_MAGIC 0x002f /* qnx4 fs detection */
#define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/major.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/major.h
---- linux-2.6.36.2/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/major.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/major.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/major.h
+--- linux-2.6.37/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/major.h 2010-11-23 02:09:41.000000000 +0100
@@ -15,6 +15,7 @@
#define HD_MAJOR IDE0_MAJOR
#define PTY_SLAVE_MAJOR 3
#define TTYAUX_MAJOR 5
#define LP_MAJOR 6
#define VCS_MAJOR 7
-diff -NurpP --minimal linux-2.6.36.2/include/linux/memcontrol.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/memcontrol.h
---- linux-2.6.36.2/include/linux/memcontrol.h 2010-10-21 13:07:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/memcontrol.h 2010-10-28 19:36:06.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/memcontrol.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/memcontrol.h
+--- linux-2.6.37/include/linux/memcontrol.h 2010-10-21 13:07:53.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/memcontrol.h 2010-11-23 02:09:41.000000000 +0100
@@ -77,6 +77,13 @@ int task_in_mem_cgroup(struct task_struc
extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page);
extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p);
static inline
int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
{
-diff -NurpP --minimal linux-2.6.36.2/include/linux/mm_types.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/mm_types.h
---- linux-2.6.36.2/include/linux/mm_types.h 2010-10-21 13:07:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/mm_types.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/mm_types.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/mm_types.h
+--- linux-2.6.37/include/linux/mm_types.h 2011-01-05 21:50:31.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/mm_types.h 2010-11-23 02:09:41.000000000 +0100
@@ -269,6 +269,7 @@ struct mm_struct {
/* Architecture-specific MM context */
/* Swap token stuff */
/*
-diff -NurpP --minimal linux-2.6.36.2/include/linux/mount.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/mount.h
---- linux-2.6.36.2/include/linux/mount.h 2010-10-21 13:07:53.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/mount.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/mount.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/mount.h
+--- linux-2.6.37/include/linux/mount.h 2010-10-21 13:07:53.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/mount.h 2010-11-23 02:09:41.000000000 +0100
@@ -46,6 +46,9 @@ struct mnt_namespace;
#define MNT_INTERNAL 0x4000
};
static inline int *get_mnt_writers_ptr(struct vfsmount *mnt)
-diff -NurpP --minimal linux-2.6.36.2/include/linux/net.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/net.h
---- linux-2.6.36.2/include/linux/net.h 2010-08-02 16:52:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/net.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/net.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/net.h
+--- linux-2.6.37/include/linux/net.h 2011-01-05 21:50:31.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/net.h 2010-11-23 02:09:41.000000000 +0100
@@ -71,6 +71,7 @@ struct net;
#define SOCK_NOSPACE 2
#define SOCK_PASSCRED 3
#ifndef ARCH_HAS_SOCKET_TYPES
/**
-diff -NurpP --minimal linux-2.6.36.2/include/linux/nfs_mount.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/nfs_mount.h
---- linux-2.6.36.2/include/linux/nfs_mount.h 2010-10-21 13:07:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/nfs_mount.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/nfs_mount.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/nfs_mount.h
+--- linux-2.6.37/include/linux/nfs_mount.h 2011-01-05 21:50:31.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/nfs_mount.h 2010-11-23 02:09:41.000000000 +0100
@@ -63,7 +63,8 @@ struct nfs_mount_data {
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
/* The following are for internal use only */
#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
-diff -NurpP --minimal linux-2.6.36.2/include/linux/nsproxy.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/nsproxy.h
---- linux-2.6.36.2/include/linux/nsproxy.h 2009-06-11 17:13:17.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/nsproxy.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/nsproxy.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/nsproxy.h
+--- linux-2.6.37/include/linux/nsproxy.h 2009-06-11 17:13:17.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/nsproxy.h 2010-11-23 02:09:41.000000000 +0100
@@ -3,6 +3,7 @@
#include <linux/spinlock.h>
}
#ifdef CONFIG_CGROUP_NS
-diff -NurpP --minimal linux-2.6.36.2/include/linux/pid.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/pid.h
---- linux-2.6.36.2/include/linux/pid.h 2009-03-24 14:22:43.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/pid.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/pid.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/pid.h
+--- linux-2.6.37/include/linux/pid.h 2009-03-24 14:22:43.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/pid.h 2010-11-23 02:09:41.000000000 +0100
@@ -8,7 +8,8 @@ enum pid_type
PIDTYPE_PID,
PIDTYPE_PGID,
pid_t pid_vnr(struct pid *pid);
#define do_each_pid_task(pid, type, task) \
-diff -NurpP --minimal linux-2.6.36.2/include/linux/proc_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/proc_fs.h
---- linux-2.6.36.2/include/linux/proc_fs.h 2009-12-03 20:02:56.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/proc_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/proc_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/proc_fs.h
+--- linux-2.6.37/include/linux/proc_fs.h 2009-12-03 20:02:56.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/proc_fs.h 2010-11-23 02:09:41.000000000 +0100
@@ -56,6 +56,7 @@ struct proc_dir_entry {
nlink_t nlink;
uid_t uid;
int fd;
union proc_op op;
struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/quotaops.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/quotaops.h
---- linux-2.6.36.2/include/linux/quotaops.h 2010-10-21 13:07:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/quotaops.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/quotaops.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/quotaops.h
+--- linux-2.6.37/include/linux/quotaops.h 2010-10-21 13:07:54.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/quotaops.h 2010-11-23 02:09:41.000000000 +0100
@@ -8,6 +8,7 @@
#define _LINUX_QUOTAOPS_
}
static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-2.6.36.2/include/linux/reboot.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reboot.h
---- linux-2.6.36.2/include/linux/reboot.h 2010-07-07 18:31:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reboot.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/reboot.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/reboot.h
+--- linux-2.6.37/include/linux/reboot.h 2010-07-07 18:31:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/reboot.h 2010-11-23 02:09:41.000000000 +0100
@@ -33,6 +33,7 @@
#define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
#ifdef __KERNEL__
-diff -NurpP --minimal linux-2.6.36.2/include/linux/reiserfs_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reiserfs_fs.h
---- linux-2.6.36.2/include/linux/reiserfs_fs.h 2010-10-21 13:07:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reiserfs_fs.h 2010-10-21 13:09:36.000000000 +0200
-@@ -977,6 +977,11 @@ struct stat_data_v1 {
+diff -NurpP --minimal linux-2.6.37/include/linux/reiserfs_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/reiserfs_fs.h
+--- linux-2.6.37/include/linux/reiserfs_fs.h 2011-01-05 21:50:32.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/reiserfs_fs.h 2010-11-23 02:09:41.000000000 +0100
+@@ -976,6 +976,11 @@ struct stat_data_v1 {
#define REISERFS_COMPR_FL FS_COMPR_FL
#define REISERFS_NOTAIL_FL FS_NOTAIL_FL
/* persistent flags that file inherits from the parent directory */
#define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL | \
REISERFS_SYNC_FL | \
-@@ -986,6 +991,9 @@ struct stat_data_v1 {
+@@ -985,6 +990,9 @@ struct stat_data_v1 {
REISERFS_COMPR_FL | \
REISERFS_NOTAIL_FL )
/* Stat Data on disk (reiserfs version of UFS disk inode minus the
address blocks) */
struct stat_data {
-@@ -2071,6 +2079,7 @@ static inline void reiserfs_update_sd(st
+@@ -2070,6 +2078,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);
+int reiserfs_sync_flags(struct inode *inode, int, int);
- /* namei.c */
- void set_de_name_and_namelen(struct reiserfs_dir_entry *de);
-diff -NurpP --minimal linux-2.6.36.2/include/linux/reiserfs_fs_sb.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reiserfs_fs_sb.h
---- linux-2.6.36.2/include/linux/reiserfs_fs_sb.h 2010-02-25 11:52:07.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/reiserfs_fs_sb.h 2010-10-21 13:09:36.000000000 +0200
+ int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len);
+
+diff -NurpP --minimal linux-2.6.37/include/linux/reiserfs_fs_sb.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/reiserfs_fs_sb.h
+--- linux-2.6.37/include/linux/reiserfs_fs_sb.h 2010-02-25 11:52:07.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/reiserfs_fs_sb.h 2010-11-23 02:09:41.000000000 +0100
@@ -476,6 +476,7 @@ enum reiserfs_mount_options {
REISERFS_EXPOSE_PRIVROOT,
REISERFS_BARRIER_NONE,
/* Actions on error */
REISERFS_ERROR_PANIC,
-diff -NurpP --minimal linux-2.6.36.2/include/linux/sched.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sched.h
---- linux-2.6.36.2/include/linux/sched.h 2010-10-21 13:07:54.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sched.h 2010-10-21 13:09:36.000000000 +0200
-@@ -1339,6 +1339,14 @@ struct task_struct {
+diff -NurpP --minimal linux-2.6.37/include/linux/sched.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/sched.h
+--- linux-2.6.37/include/linux/sched.h 2011-01-05 21:50:32.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/sched.h 2011-01-05 22:30:40.000000000 +0100
+@@ -1357,6 +1357,14 @@ struct task_struct {
#endif
seccomp_t seccomp;
/* Thread group tracking */
u32 parent_exec_id;
u32 self_exec_id;
-@@ -1573,6 +1581,11 @@ struct pid_namespace;
+@@ -1591,6 +1599,11 @@ struct pid_namespace;
pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
struct pid_namespace *ns);
static inline pid_t task_pid_nr(struct task_struct *tsk)
{
return tsk->pid;
-@@ -1586,7 +1599,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1604,7 +1617,8 @@ static inline pid_t task_pid_nr_ns(struc
static inline pid_t task_pid_vnr(struct task_struct *tsk)
{
}
-@@ -1599,7 +1613,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1617,7 +1631,7 @@ pid_t task_tgid_nr_ns(struct task_struct
static inline pid_t task_tgid_vnr(struct task_struct *tsk)
{
}
-diff -NurpP --minimal linux-2.6.36.2/include/linux/shmem_fs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/shmem_fs.h
---- linux-2.6.36.2/include/linux/shmem_fs.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/shmem_fs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/shmem_fs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/shmem_fs.h
+--- linux-2.6.37/include/linux/shmem_fs.h 2010-10-21 13:07:55.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/shmem_fs.h 2010-11-23 02:09:41.000000000 +0100
@@ -9,6 +9,9 @@
#define SHMEM_NR_DIRECT 16
struct shmem_inode_info {
spinlock_t lock;
unsigned long flags;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/stat.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/stat.h
---- linux-2.6.36.2/include/linux/stat.h 2008-12-25 00:26:37.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/stat.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/stat.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/stat.h
+--- linux-2.6.37/include/linux/stat.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/stat.h 2010-11-23 02:09:41.000000000 +0100
@@ -66,6 +66,7 @@ struct kstat {
unsigned int nlink;
uid_t uid;
dev_t rdev;
loff_t size;
struct timespec atime;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/sunrpc/auth.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sunrpc/auth.h
---- linux-2.6.36.2/include/linux/sunrpc/auth.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sunrpc/auth.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/sunrpc/auth.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/sunrpc/auth.h
+--- linux-2.6.37/include/linux/sunrpc/auth.h 2011-01-05 21:50:33.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/sunrpc/auth.h 2010-11-23 02:09:41.000000000 +0100
@@ -25,6 +25,7 @@
struct auth_cred {
uid_t uid;
struct group_info *group_info;
unsigned char machine_cred : 1;
};
-diff -NurpP --minimal linux-2.6.36.2/include/linux/sunrpc/clnt.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sunrpc/clnt.h
---- linux-2.6.36.2/include/linux/sunrpc/clnt.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sunrpc/clnt.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/sunrpc/clnt.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/sunrpc/clnt.h
+--- linux-2.6.37/include/linux/sunrpc/clnt.h 2011-01-05 21:50:33.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/sunrpc/clnt.h 2010-11-23 02:09:41.000000000 +0100
@@ -49,7 +49,8 @@ struct rpc_clnt {
unsigned int cl_softrtry : 1,/* soft timeouts */
cl_discrtry : 1,/* disconnect before retry */
struct rpc_rtt * cl_rtt; /* RTO estimator data */
const struct rpc_timeout *cl_timeout; /* Timeout strategy */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/syscalls.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/syscalls.h
---- linux-2.6.36.2/include/linux/syscalls.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/syscalls.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/syscalls.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/syscalls.h
+--- linux-2.6.37/include/linux/syscalls.h 2011-01-05 21:50:34.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/syscalls.h 2010-11-23 02:09:41.000000000 +0100
@@ -478,6 +478,8 @@ asmlinkage long sys_symlink(const char _
asmlinkage long sys_unlink(const char __user *pathname);
asmlinkage long sys_rename(const char __user *oldname,
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.36.2/include/linux/sysctl.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sysctl.h
---- linux-2.6.36.2/include/linux/sysctl.h 2010-08-02 16:52:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sysctl.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/sysctl.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/sysctl.h
+--- linux-2.6.37/include/linux/sysctl.h 2010-08-02 16:52:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/sysctl.h 2010-11-23 02:09:41.000000000 +0100
@@ -60,6 +60,7 @@ enum
CTL_ABI=9, /* Binary emulation */
CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
KERN_SPARC_REBOOT=21, /* reboot command on Sparc */
KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/sysfs.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sysfs.h
---- linux-2.6.36.2/include/linux/sysfs.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/sysfs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/sysfs.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/sysfs.h
+--- linux-2.6.37/include/linux/sysfs.h 2011-01-05 21:50:34.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/sysfs.h 2010-11-23 02:09:41.000000000 +0100
@@ -19,6 +19,8 @@
#include <linux/kobject_ns.h>
#include <asm/atomic.h>
struct kobject;
struct module;
enum kobj_ns_type;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/time.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/time.h
---- linux-2.6.36.2/include/linux/time.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/time.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/time.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/time.h
+--- linux-2.6.37/include/linux/time.h 2010-10-21 13:07:55.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/time.h 2010-11-23 02:09:41.000000000 +0100
@@ -252,6 +252,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;
#endif /* __KERNEL__ */
#define NFDBITS __NFDBITS
-diff -NurpP --minimal linux-2.6.36.2/include/linux/types.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/types.h
---- linux-2.6.36.2/include/linux/types.h 2010-10-21 13:07:55.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/types.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/types.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/types.h
+--- linux-2.6.37/include/linux/types.h 2011-01-05 21:50:34.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/types.h 2010-11-23 02:09:41.000000000 +0100
@@ -40,6 +40,9 @@ typedef __kernel_uid32_t uid_t;
typedef __kernel_gid32_t gid_t;
typedef __kernel_uid16_t uid16_t;
typedef unsigned long uintptr_t;
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vroot.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vroot.h
---- linux-2.6.36.2/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vroot.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vroot.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vroot.h
+--- linux-2.6.37/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vroot.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,51 @@
+
+/*
+#define VROOT_CLR_DEV 0x5601
+
+#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_base.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_base.h
---- linux-2.6.36.2/include/linux/vs_base.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_base.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_base.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_base.h
+--- linux-2.6.37/include/linux/vs_base.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_base.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,10 @@
+#ifndef _VS_BASE_H
+#define _VS_BASE_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_context.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_context.h
---- linux-2.6.36.2/include/linux/vs_context.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_context.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_context.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_context.h
+--- linux-2.6.37/include/linux/vs_context.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_context.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,242 @@
+#ifndef _VS_CONTEXT_H
+#define _VS_CONTEXT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_cowbl.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_cowbl.h
---- linux-2.6.36.2/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_cowbl.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_cowbl.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_cowbl.h
+--- linux-2.6.37/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_cowbl.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,48 @@
+#ifndef _VS_COWBL_H
+#define _VS_COWBL_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_cvirt.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_cvirt.h
---- linux-2.6.36.2/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_cvirt.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_cvirt.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_cvirt.h
+--- linux-2.6.37/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_cvirt.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,50 @@
+#ifndef _VS_CVIRT_H
+#define _VS_CVIRT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_device.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_device.h
---- linux-2.6.36.2/include/linux/vs_device.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_device.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_device.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_device.h
+--- linux-2.6.37/include/linux/vs_device.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_device.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,45 @@
+#ifndef _VS_DEVICE_H
+#define _VS_DEVICE_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_dlimit.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_dlimit.h
---- linux-2.6.36.2/include/linux/vs_dlimit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_dlimit.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_dlimit.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_dlimit.h
+--- linux-2.6.37/include/linux/vs_dlimit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_dlimit.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,215 @@
+#ifndef _VS_DLIMIT_H
+#define _VS_DLIMIT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/base.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/base.h
---- linux-2.6.36.2/include/linux/vserver/base.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/base.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/base.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/base.h
+--- linux-2.6.37/include/linux/vserver/base.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/base.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,170 @@
+#ifndef _VX_BASE_H
+#define _VX_BASE_H
+#define nx_info_state(n, m) (__nx_state(n) & (m))
+
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cacct_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_cmd.h
---- linux-2.6.36.2/include/linux/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cacct_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_cmd.h
+--- linux-2.6.37/include/linux/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,23 @@
+#ifndef _VX_CACCT_CMD_H
+#define _VX_CACCT_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CACCT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cacct_def.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_def.h
---- linux-2.6.36.2/include/linux/vserver/cacct_def.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_def.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cacct_def.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_def.h
+--- linux-2.6.37/include/linux/vserver/cacct_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_def.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,43 @@
+#ifndef _VX_CACCT_DEF_H
+#define _VX_CACCT_DEF_H
+#endif
+
+#endif /* _VX_CACCT_DEF_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cacct.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct.h
---- linux-2.6.36.2/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cacct.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct.h
+--- linux-2.6.37/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,15 @@
+#ifndef _VX_CACCT_H
+#define _VX_CACCT_H
+};
+
+#endif /* _VX_CACCT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cacct_int.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_int.h
---- linux-2.6.36.2/include/linux/vserver/cacct_int.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cacct_int.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cacct_int.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_int.h
+--- linux-2.6.37/include/linux/vserver/cacct_int.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cacct_int.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,21 @@
+#ifndef _VX_CACCT_INT_H
+#define _VX_CACCT_INT_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CACCT_INT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/check.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/check.h
---- linux-2.6.36.2/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/check.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/check.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/check.h
+--- linux-2.6.37/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/check.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,89 @@
+#ifndef _VS_CHECK_H
+#define _VS_CHECK_H
+#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1)
+
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/context_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/context_cmd.h
---- linux-2.6.36.2/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/context_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/context_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/context_cmd.h
+--- linux-2.6.37/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/context_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,145 @@
+#ifndef _VX_CONTEXT_CMD_H
+#define _VX_CONTEXT_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/context.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/context.h
---- linux-2.6.36.2/include/linux/vserver/context.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/context.h 2010-12-01 17:36:51.000000000 +0100
-@@ -0,0 +1,186 @@
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/context.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/context.h
+--- linux-2.6.37/include/linux/vserver/context.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/context.h 2011-01-05 22:46:44.000000000 +0100
+@@ -0,0 +1,190 @@
+#ifndef _VX_CONTEXT_H
+#define _VX_CONTEXT_H
+
+ struct _vx_cvirt_pc cvirt_pc;
+};
+
++struct _vx_space {
++ unsigned long vx_nsmask; /* assignment mask */
++ struct nsproxy *vx_nsproxy; /* private namespaces */
++ struct fs_struct *vx_fs; /* private namespace fs */
++ const struct cred *vx_real_cred; /* real task credentials */
++ const struct cred *vx_cred; /* task credentials */
++};
++
+struct vx_info {
+ struct hlist_node vx_hlist; /* linked list of contexts */
+ xid_t vx_id; /* context id */
+ struct vx_info *vx_parent; /* parent context */
+ int vx_state; /* context state */
+
-+ unsigned long vx_nsmask[VX_SPACES]; /* assignment mask */
-+ struct nsproxy *vx_nsproxy[VX_SPACES]; /* private namespaces */
-+ struct fs_struct *vx_fs[VX_SPACES]; /* private namespace fs */
-+ const struct cred *vx_real_cred; /* real task credentials */
-+ const struct cred *vx_cred; /* task credentials */
++ struct _vx_space space[VX_SPACES]; /* namespace store */
+
+ uint64_t vx_flags; /* context flags */
+ uint64_t vx_ccaps; /* context caps (vserver) */
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cvirt_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt_cmd.h
---- linux-2.6.36.2/include/linux/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cvirt_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt_cmd.h
+--- linux-2.6.37/include/linux/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,53 @@
+#ifndef _VX_CVIRT_CMD_H
+#define _VX_CVIRT_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CVIRT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cvirt_def.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt_def.h
---- linux-2.6.36.2/include/linux/vserver/cvirt_def.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt_def.h 2010-10-21 14:26:47.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cvirt_def.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt_def.h
+--- linux-2.6.37/include/linux/vserver/cvirt_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt_def.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,80 @@
+#ifndef _VX_CVIRT_DEF_H
+#define _VX_CVIRT_DEF_H
+#endif
+
+#endif /* _VX_CVIRT_DEF_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/cvirt.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt.h
---- linux-2.6.36.2/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/cvirt.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/cvirt.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt.h
+--- linux-2.6.37/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/cvirt.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,20 @@
+#ifndef _VX_CVIRT_H
+#define _VX_CVIRT_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CVIRT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/debug_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/debug_cmd.h
---- linux-2.6.36.2/include/linux/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/debug_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/debug_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/debug_cmd.h
+--- linux-2.6.37/include/linux/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/debug_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,58 @@
+#ifndef _VX_DEBUG_CMD_H
+#define _VX_DEBUG_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DEBUG_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/debug.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/debug.h
---- linux-2.6.36.2/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/debug.h 2010-10-21 18:35:25.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/debug.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/debug.h
+--- linux-2.6.37/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/debug.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,140 @@
+#ifndef _VX_DEBUG_H
+#define _VX_DEBUG_H
+
+
+#endif /* _VX_DEBUG_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/device_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device_cmd.h
---- linux-2.6.36.2/include/linux/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/device_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device_cmd.h
+--- linux-2.6.37/include/linux/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,44 @@
+#ifndef _VX_DEVICE_CMD_H
+#define _VX_DEVICE_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DEVICE_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/device_def.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device_def.h
---- linux-2.6.36.2/include/linux/vserver/device_def.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device_def.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/device_def.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device_def.h
+--- linux-2.6.37/include/linux/vserver/device_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device_def.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,17 @@
+#ifndef _VX_DEVICE_DEF_H
+#define _VX_DEVICE_DEF_H
+};
+
+#endif /* _VX_DEVICE_DEF_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/device.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device.h
---- linux-2.6.36.2/include/linux/vserver/device.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/device.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/device.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device.h
+--- linux-2.6.37/include/linux/vserver/device.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/device.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,15 @@
+#ifndef _VX_DEVICE_H
+#define _VX_DEVICE_H
+#else /* _VX_DEVICE_H */
+#warning duplicate inclusion
+#endif /* _VX_DEVICE_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/dlimit_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/dlimit_cmd.h
---- linux-2.6.36.2/include/linux/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/dlimit_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/dlimit_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/dlimit_cmd.h
+--- linux-2.6.37/include/linux/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/dlimit_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,109 @@
+#ifndef _VX_DLIMIT_CMD_H
+#define _VX_DLIMIT_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/dlimit.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/dlimit.h
---- linux-2.6.36.2/include/linux/vserver/dlimit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/dlimit.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/dlimit.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/dlimit.h
+--- linux-2.6.37/include/linux/vserver/dlimit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/dlimit.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,54 @@
+#ifndef _VX_DLIMIT_H
+#define _VX_DLIMIT_H
+#else /* _VX_DLIMIT_H */
+#warning duplicate inclusion
+#endif /* _VX_DLIMIT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/global.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/global.h
---- linux-2.6.36.2/include/linux/vserver/global.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/global.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/global.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/global.h
+--- linux-2.6.37/include/linux/vserver/global.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/global.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,19 @@
+#ifndef _VX_GLOBAL_H
+#define _VX_GLOBAL_H
+
+
+#endif /* _VX_GLOBAL_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/history.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/history.h
---- linux-2.6.36.2/include/linux/vserver/history.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/history.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/history.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/history.h
+--- linux-2.6.37/include/linux/vserver/history.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/history.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,197 @@
+#ifndef _VX_HISTORY_H
+#define _VX_HISTORY_H
+#endif /* CONFIG_VSERVER_HISTORY */
+
+#endif /* _VX_HISTORY_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/inode_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/inode_cmd.h
---- linux-2.6.36.2/include/linux/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/inode_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/inode_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/inode_cmd.h
+--- linux-2.6.37/include/linux/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/inode_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,59 @@
+#ifndef _VX_INODE_CMD_H
+#define _VX_INODE_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_INODE_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/inode.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/inode.h
---- linux-2.6.36.2/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/inode.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/inode.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/inode.h
+--- linux-2.6.37/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/inode.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,39 @@
+#ifndef _VX_INODE_H
+#define _VX_INODE_H
+#else /* _VX_INODE_H */
+#warning duplicate inclusion
+#endif /* _VX_INODE_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/Kbuild linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/Kbuild
---- linux-2.6.36.2/include/linux/vserver/Kbuild 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/Kbuild 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/Kbuild linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/Kbuild
+--- linux-2.6.37/include/linux/vserver/Kbuild 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/Kbuild 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,8 @@
+
+unifdef-y += context_cmd.h network_cmd.h space_cmd.h \
+
+unifdef-y += switch.h network.h monitor.h inode.h device.h
+
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/limit_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_cmd.h
---- linux-2.6.36.2/include/linux/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/limit_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_cmd.h
+--- linux-2.6.37/include/linux/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,71 @@
+#ifndef _VX_LIMIT_CMD_H
+#define _VX_LIMIT_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/limit_def.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_def.h
---- linux-2.6.36.2/include/linux/vserver/limit_def.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_def.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/limit_def.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_def.h
+--- linux-2.6.37/include/linux/vserver/limit_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_def.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,47 @@
+#ifndef _VX_LIMIT_DEF_H
+#define _VX_LIMIT_DEF_H
+#endif
+
+#endif /* _VX_LIMIT_DEF_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/limit.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit.h
---- linux-2.6.36.2/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/limit.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit.h
+--- linux-2.6.37/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,71 @@
+#ifndef _VX_LIMIT_H
+#define _VX_LIMIT_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/limit_int.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_int.h
---- linux-2.6.36.2/include/linux/vserver/limit_int.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/limit_int.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/limit_int.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_int.h
+--- linux-2.6.37/include/linux/vserver/limit_int.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/limit_int.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,198 @@
+#ifndef _VX_LIMIT_INT_H
+#define _VX_LIMIT_INT_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_INT_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/monitor.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/monitor.h
---- linux-2.6.36.2/include/linux/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/monitor.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/monitor.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/monitor.h
+--- linux-2.6.37/include/linux/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/monitor.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,96 @@
+#ifndef _VX_MONITOR_H
+#define _VX_MONITOR_H
+
+
+#endif /* _VX_MONITOR_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/network_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/network_cmd.h
---- linux-2.6.36.2/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/network_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/network_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/network_cmd.h
+--- linux-2.6.37/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/network_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,150 @@
+#ifndef _VX_NETWORK_CMD_H
+#define _VX_NETWORK_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/network.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/network.h
---- linux-2.6.36.2/include/linux/vserver/network.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/network.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/network.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/network.h
+--- linux-2.6.37/include/linux/vserver/network.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/network.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,146 @@
+#ifndef _VX_NETWORK_H
+#define _VX_NETWORK_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_NETWORK_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/percpu.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/percpu.h
---- linux-2.6.36.2/include/linux/vserver/percpu.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/percpu.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/percpu.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/percpu.h
+--- linux-2.6.37/include/linux/vserver/percpu.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/percpu.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,14 @@
+#ifndef _VX_PERCPU_H
+#define _VX_PERCPU_H
+#define PERCPU_PERCTX (sizeof(struct _vx_percpu))
+
+#endif /* _VX_PERCPU_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/pid.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/pid.h
---- linux-2.6.36.2/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/pid.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/pid.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/pid.h
+--- linux-2.6.37/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/pid.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,51 @@
+#ifndef _VSERVER_PID_H
+#define _VSERVER_PID_H
+}
+
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/sched_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched_cmd.h
---- linux-2.6.36.2/include/linux/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched_cmd.h 2010-10-28 19:02:11.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/sched_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched_cmd.h
+--- linux-2.6.37/include/linux/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,21 @@
+#ifndef _VX_SCHED_CMD_H
+#define _VX_SCHED_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SCHED_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/sched_def.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched_def.h
---- linux-2.6.36.2/include/linux/vserver/sched_def.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched_def.h 2010-10-28 18:13:49.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/sched_def.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched_def.h
+--- linux-2.6.37/include/linux/vserver/sched_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched_def.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,38 @@
+#ifndef _VX_SCHED_DEF_H
+#define _VX_SCHED_DEF_H
+#endif
+
+#endif /* _VX_SCHED_DEF_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/sched.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched.h
---- linux-2.6.36.2/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/sched.h 2010-10-28 18:16:35.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/sched.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched.h
+--- linux-2.6.37/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/sched.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,23 @@
+#ifndef _VX_SCHED_H
+#define _VX_SCHED_H
+#else /* _VX_SCHED_H */
+#warning duplicate inclusion
+#endif /* _VX_SCHED_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/signal_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/signal_cmd.h
---- linux-2.6.36.2/include/linux/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/signal_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/signal_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/signal_cmd.h
+--- linux-2.6.37/include/linux/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/signal_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,43 @@
+#ifndef _VX_SIGNAL_CMD_H
+#define _VX_SIGNAL_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/signal.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/signal.h
---- linux-2.6.36.2/include/linux/vserver/signal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/signal.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/signal.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/signal.h
+--- linux-2.6.37/include/linux/vserver/signal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/signal.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,14 @@
+#ifndef _VX_SIGNAL_H
+#define _VX_SIGNAL_H
+#else /* _VX_SIGNAL_H */
+#warning duplicate inclusion
+#endif /* _VX_SIGNAL_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/space_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/space_cmd.h
---- linux-2.6.36.2/include/linux/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/space_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/space_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/space_cmd.h
+--- linux-2.6.37/include/linux/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/space_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,38 @@
+#ifndef _VX_SPACE_CMD_H
+#define _VX_SPACE_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SPACE_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/space.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/space.h
---- linux-2.6.36.2/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/space.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/space.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/space.h
+--- linux-2.6.37/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/space.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,12 @@
+#ifndef _VX_SPACE_H
+#define _VX_SPACE_H
+#else /* _VX_SPACE_H */
+#warning duplicate inclusion
+#endif /* _VX_SPACE_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/switch.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/switch.h
---- linux-2.6.36.2/include/linux/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/switch.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/switch.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/switch.h
+--- linux-2.6.37/include/linux/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/switch.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,98 @@
+#ifndef _VX_SWITCH_H
+#define _VX_SWITCH_H
+
+#endif /* _VX_SWITCH_H */
+
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/tag_cmd.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/tag_cmd.h
---- linux-2.6.36.2/include/linux/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/tag_cmd.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/tag_cmd.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/tag_cmd.h
+--- linux-2.6.37/include/linux/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/tag_cmd.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,22 @@
+#ifndef _VX_TAG_CMD_H
+#define _VX_TAG_CMD_H
+
+#endif /* __KERNEL__ */
+#endif /* _VX_TAG_CMD_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vserver/tag.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/tag.h
---- linux-2.6.36.2/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vserver/tag.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vserver/tag.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/tag.h
+--- linux-2.6.37/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vserver/tag.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,143 @@
+#ifndef _DX_TAG_H
+#define _DX_TAG_H
+#endif
+
+#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_inet6.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_inet6.h
---- linux-2.6.36.2/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_inet6.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_inet6.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_inet6.h
+--- linux-2.6.37/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_inet6.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,246 @@
+#ifndef _VS_INET6_H
+#define _VS_INET6_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_inet.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_inet.h
---- linux-2.6.36.2/include/linux/vs_inet.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_inet.h 2010-10-21 17:41:35.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_inet.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_inet.h
+--- linux-2.6.37/include/linux/vs_inet.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_inet.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,351 @@
+#ifndef _VS_INET_H
+#define _VS_INET_H
+#else
+// #warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_limit.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_limit.h
---- linux-2.6.36.2/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_limit.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_limit.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_limit.h
+--- linux-2.6.37/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_limit.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,140 @@
+#ifndef _VS_LIMIT_H
+#define _VS_LIMIT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_memory.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_memory.h
---- linux-2.6.36.2/include/linux/vs_memory.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_memory.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_memory.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_memory.h
+--- linux-2.6.37/include/linux/vs_memory.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_memory.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,58 @@
+#ifndef _VS_MEMORY_H
+#define _VS_MEMORY_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_network.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_network.h
---- linux-2.6.36.2/include/linux/vs_network.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_network.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_network.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_network.h
+--- linux-2.6.37/include/linux/vs_network.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_network.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,169 @@
+#ifndef _NX_VS_NETWORK_H
+#define _NX_VS_NETWORK_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_pid.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_pid.h
---- linux-2.6.36.2/include/linux/vs_pid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_pid.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_pid.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_pid.h
+--- linux-2.6.37/include/linux/vs_pid.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_pid.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,95 @@
+#ifndef _VS_PID_H
+#define _VS_PID_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_sched.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_sched.h
---- linux-2.6.36.2/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_sched.h 2010-10-24 15:13:57.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_sched.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_sched.h
+--- linux-2.6.37/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_sched.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,40 @@
+#ifndef _VS_SCHED_H
+#define _VS_SCHED_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_socket.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_socket.h
---- linux-2.6.36.2/include/linux/vs_socket.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_socket.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_socket.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_socket.h
+--- linux-2.6.37/include/linux/vs_socket.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_socket.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,67 @@
+#ifndef _VS_SOCKET_H
+#define _VS_SOCKET_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_tag.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_tag.h
---- linux-2.6.36.2/include/linux/vs_tag.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_tag.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_tag.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_tag.h
+--- linux-2.6.37/include/linux/vs_tag.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_tag.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,47 @@
+#ifndef _VS_TAG_H
+#define _VS_TAG_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/linux/vs_time.h linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_time.h
---- linux-2.6.36.2/include/linux/vs_time.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/linux/vs_time.h 2010-10-21 14:25:37.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/linux/vs_time.h linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_time.h
+--- linux-2.6.37/include/linux/vs_time.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/linux/vs_time.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,19 @@
+#ifndef _VS_TIME_H
+#define _VS_TIME_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-2.6.36.2/include/net/addrconf.h linux-2.6.36.2-vs2.3.0.36.38.2/include/net/addrconf.h
---- linux-2.6.36.2/include/net/addrconf.h 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/net/addrconf.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/net/addrconf.h linux-2.6.37-vs2.3.0.37-rc1/include/net/addrconf.h
+--- linux-2.6.37/include/net/addrconf.h 2011-01-05 21:50:35.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/net/addrconf.h 2010-11-23 02:09:41.000000000 +0100
@@ -84,7 +84,8 @@ extern int ipv6_dev_get_saddr(struct n
struct net_device *dev,
const struct in6_addr *daddr,
extern int ipv6_get_lladdr(struct net_device *dev,
struct in6_addr *addr,
unsigned char banned_flags);
-diff -NurpP --minimal linux-2.6.36.2/include/net/af_unix.h linux-2.6.36.2-vs2.3.0.36.38.2/include/net/af_unix.h
---- linux-2.6.36.2/include/net/af_unix.h 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/net/af_unix.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/net/af_unix.h linux-2.6.37-vs2.3.0.37-rc1/include/net/af_unix.h
+--- linux-2.6.37/include/net/af_unix.h 2011-01-05 21:50:35.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/net/af_unix.h 2011-01-05 22:30:40.000000000 +0100
@@ -4,6 +4,7 @@
#include <linux/socket.h>
#include <linux/un.h>
#include <net/sock.h>
extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-2.6.36.2/include/net/inet_timewait_sock.h linux-2.6.36.2-vs2.3.0.36.38.2/include/net/inet_timewait_sock.h
---- linux-2.6.36.2/include/net/inet_timewait_sock.h 2010-08-02 16:52:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/net/inet_timewait_sock.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/net/inet_timewait_sock.h linux-2.6.37-vs2.3.0.37-rc1/include/net/inet_timewait_sock.h
+--- linux-2.6.37/include/net/inet_timewait_sock.h 2010-08-02 16:52:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/net/inet_timewait_sock.h 2010-11-23 02:09:41.000000000 +0100
@@ -117,6 +117,10 @@ struct inet_timewait_sock {
#define tw_hash __tw_common.skc_hash
#define tw_prot __tw_common.skc_prot
int tw_timeout;
volatile unsigned char tw_substate;
/* 3 bits hole, try to pack */
-diff -NurpP --minimal linux-2.6.36.2/include/net/route.h linux-2.6.36.2-vs2.3.0.36.38.2/include/net/route.h
---- linux-2.6.36.2/include/net/route.h 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/net/route.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/net/route.h linux-2.6.37-vs2.3.0.37-rc1/include/net/route.h
+--- linux-2.6.37/include/net/route.h 2010-10-21 13:07:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/include/net/route.h 2010-11-23 02:09:41.000000000 +0100
@@ -145,6 +145,9 @@ static inline void ip_rt_put(struct rtab
dst_release(&rt->dst);
}
err = __ip_route_output_key(net, rp, &fl);
if (err)
return err;
-diff -NurpP --minimal linux-2.6.36.2/include/net/sock.h linux-2.6.36.2-vs2.3.0.36.38.2/include/net/sock.h
---- linux-2.6.36.2/include/net/sock.h 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/include/net/sock.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/include/net/sock.h linux-2.6.37-vs2.3.0.37-rc1/include/net/sock.h
+--- linux-2.6.37/include/net/sock.h 2011-01-05 21:50:36.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/include/net/sock.h 2011-01-05 22:30:42.000000000 +0100
@@ -150,6 +150,10 @@ struct sock_common {
#ifdef CONFIG_NET_NS
struct net *skc_net;
kmemcheck_bitfield_begin(flags);
unsigned int sk_shutdown : 2,
sk_no_check : 2,
-diff -NurpP --minimal linux-2.6.36.2/init/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/init/Kconfig
---- linux-2.6.36.2/init/Kconfig 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/init/Kconfig 2010-10-21 13:09:36.000000000 +0200
-@@ -476,6 +476,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
+diff -NurpP --minimal linux-2.6.37/init/Kconfig linux-2.6.37-vs2.3.0.37-rc1/init/Kconfig
+--- linux-2.6.37/init/Kconfig 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/init/Kconfig 2011-01-05 22:30:42.000000000 +0100
+@@ -503,6 +503,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
menuconfig CGROUPS
boolean "Control Group support"
depends on EVENTFD
help
This option adds support for grouping sets of processes together, for
use with process control subsystems such as Cpusets, CFS, memory
-@@ -503,6 +504,7 @@ config CGROUP_DEBUG
+@@ -528,6 +529,7 @@ config CGROUP_DEBUG
+
config CGROUP_NS
bool "Namespace cgroup subsystem"
- depends on CGROUPS
+ default n
help
Provides a simple namespace cgroup subsystem to
provide hierarchical naming of sets of namespaces,
-diff -NurpP --minimal linux-2.6.36.2/init/main.c linux-2.6.36.2-vs2.3.0.36.38.2/init/main.c
---- linux-2.6.36.2/init/main.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/init/main.c 2010-10-21 13:10:12.000000000 +0200
-@@ -68,6 +68,7 @@
+diff -NurpP --minimal linux-2.6.37/init/main.c linux-2.6.37-vs2.3.0.37-rc1/init/main.c
+--- linux-2.6.37/init/main.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/init/main.c 2010-11-23 02:09:41.000000000 +0100
+@@ -67,6 +67,7 @@
#include <linux/sfi.h>
#include <linux/shmem_fs.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <asm/bugs.h>
-diff -NurpP --minimal linux-2.6.36.2/ipc/mqueue.c linux-2.6.36.2-vs2.3.0.36.38.2/ipc/mqueue.c
---- linux-2.6.36.2/ipc/mqueue.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/ipc/mqueue.c 2010-10-21 13:28:42.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/ipc/mqueue.c linux-2.6.37-vs2.3.0.37-rc1/ipc/mqueue.c
+--- linux-2.6.37/ipc/mqueue.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/ipc/mqueue.c 2010-11-23 02:09:41.000000000 +0100
@@ -33,6 +33,8 @@
#include <linux/pid.h>
#include <linux/ipc_namespace.h>
struct sock *notify_sock;
struct sk_buff *notify_cookie;
-@@ -125,6 +128,7 @@ static struct inode *mqueue_get_inode(st
+@@ -126,6 +129,7 @@ static struct inode *mqueue_get_inode(st
if (S_ISREG(mode)) {
struct mqueue_inode_info *info;
struct task_struct *p = current;
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 */
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;
-@@ -156,16 +161,19 @@ static struct inode *mqueue_get_inode(st
+@@ -157,16 +162,19 @@ 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 >
} else if (S_ISDIR(mode)) {
inc_nlink(inode);
/* Some things misbehave if size == 0 on a directory */
-@@ -267,8 +275,11 @@ static void mqueue_evict_inode(struct in
+@@ -268,8 +276,11 @@ static void mqueue_evict_inode(struct in
+ info->attr.mq_msgsize);
user = info->user;
if (user) {
/*
* get_ns_from_inode() ensures that the
* (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -278,6 +289,7 @@ static void mqueue_evict_inode(struct in
+@@ -279,6 +290,7 @@ static void mqueue_evict_inode(struct in
if (ipc_ns)
ipc_ns->mq_queues_count--;
spin_unlock(&mq_lock);
free_uid(user);
}
if (ipc_ns)
-diff -NurpP --minimal linux-2.6.36.2/ipc/msg.c linux-2.6.36.2-vs2.3.0.36.38.2/ipc/msg.c
---- linux-2.6.36.2/ipc/msg.c 2010-08-02 16:52:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/ipc/msg.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/ipc/msg.c linux-2.6.37-vs2.3.0.37-rc1/ipc/msg.c
+--- linux-2.6.37/ipc/msg.c 2010-08-02 16:52:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/ipc/msg.c 2010-11-23 02:09:41.000000000 +0100
@@ -37,6 +37,7 @@
#include <linux/rwsem.h>
#include <linux/nsproxy.h>
msq->q_perm.security = NULL;
retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-2.6.36.2/ipc/namespace.c linux-2.6.36.2-vs2.3.0.36.38.2/ipc/namespace.c
---- linux-2.6.36.2/ipc/namespace.c 2009-09-10 15:26:27.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/ipc/namespace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/ipc/namespace.c linux-2.6.37-vs2.3.0.37-rc1/ipc/namespace.c
+--- linux-2.6.37/ipc/namespace.c 2009-09-10 15:26:27.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/ipc/namespace.c 2010-11-23 02:09:41.000000000 +0100
@@ -11,6 +11,8 @@
#include <linux/slab.h>
#include <linux/fs.h>
#include "util.h"
-diff -NurpP --minimal linux-2.6.36.2/ipc/sem.c linux-2.6.36.2-vs2.3.0.36.38.2/ipc/sem.c
---- linux-2.6.36.2/ipc/sem.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/ipc/sem.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/ipc/sem.c linux-2.6.37-vs2.3.0.37-rc1/ipc/sem.c
+--- linux-2.6.37/ipc/sem.c 2010-10-21 13:07:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/ipc/sem.c 2010-11-23 02:09:41.000000000 +0100
@@ -86,6 +86,8 @@
#include <linux/rwsem.h>
#include <linux/nsproxy.h>
security_sem_free(sma);
ipc_rcu_putref(sma);
}
-diff -NurpP --minimal linux-2.6.36.2/ipc/shm.c linux-2.6.36.2-vs2.3.0.36.38.2/ipc/shm.c
---- linux-2.6.36.2/ipc/shm.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/ipc/shm.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/ipc/shm.c linux-2.6.37-vs2.3.0.37-rc1/ipc/shm.c
+--- linux-2.6.37/ipc/shm.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/ipc/shm.c 2010-11-23 02:09:41.000000000 +0100
@@ -39,6 +39,8 @@
#include <linux/nsproxy.h>
#include <linux/mount.h>
#include <asm/uaccess.h>
-@@ -169,7 +171,12 @@ static void shm_open(struct vm_area_stru
+@@ -173,7 +175,12 @@ static void shm_open(struct vm_area_stru
*/
static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp)
{
shm_rmid(ns, shp);
shm_unlock(shp);
if (!is_file_hugepages(shp->shm_file))
-@@ -179,6 +186,7 @@ static void shm_destroy(struct ipc_names
+@@ -183,6 +190,7 @@ static void shm_destroy(struct ipc_names
shp->mlock_user);
fput (shp->shm_file);
security_shm_free(shp);
ipc_rcu_putref(shp);
}
-@@ -349,11 +357,15 @@ static int newseg(struct ipc_namespace *
+@@ -355,11 +363,15 @@ static int newseg(struct ipc_namespace *
if (ns->shm_tot + numpages > ns->shm_ctlall)
return -ENOSPC;
shp->shm_perm.mode = (shmflg & S_IRWXUGO);
shp->mlock_user = NULL;
-@@ -407,6 +419,7 @@ static int newseg(struct ipc_namespace *
+@@ -413,6 +425,7 @@ static int newseg(struct ipc_namespace *
ns->shm_tot += numpages;
error = shp->shm_perm.id;
shm_unlock(shp);
return error;
no_id:
-diff -NurpP --minimal linux-2.6.36.2/kernel/capability.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/capability.c
---- linux-2.6.36.2/kernel/capability.c 2010-08-02 16:52:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/capability.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/capability.c linux-2.6.37-vs2.3.0.37-rc1/kernel/capability.c
+--- linux-2.6.37/kernel/capability.c 2010-08-02 16:52:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/capability.c 2010-11-23 02:09:41.000000000 +0100
@@ -14,6 +14,7 @@
#include <linux/security.h>
#include <linux/syscalls.h>
if (unlikely(!cap_valid(cap))) {
printk(KERN_CRIT "capable() called with invalid cap=%u\n", cap);
BUG();
-diff -NurpP --minimal linux-2.6.36.2/kernel/compat.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/compat.c
---- linux-2.6.36.2/kernel/compat.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/compat.c 2010-10-21 14:22:43.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/compat.c linux-2.6.37-vs2.3.0.37-rc1/kernel/compat.c
+--- linux-2.6.37/kernel/compat.c 2010-10-21 13:07:56.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/compat.c 2010-11-23 02:09:41.000000000 +0100
@@ -914,7 +914,7 @@ asmlinkage long compat_sys_stime(compat_
if (err)
return err;
return 0;
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/cred.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/cred.c
---- linux-2.6.36.2/kernel/cred.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/cred.c 2010-12-01 17:25:55.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/kernel/cred.c linux-2.6.37-vs2.3.0.37-rc1/kernel/cred.c
+--- linux-2.6.37/kernel/cred.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/cred.c 2011-01-05 22:46:34.000000000 +0100
@@ -60,31 +60,6 @@ struct cred init_cred = {
#endif
};
/*
* Dispose of the shared task group credentials
*/
-diff -NurpP --minimal linux-2.6.36.2/kernel/exit.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/exit.c
---- linux-2.6.36.2/kernel/exit.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/exit.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/kernel/exit.c linux-2.6.37-vs2.3.0.37-rc1/kernel/exit.c
+--- linux-2.6.37/kernel/exit.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/exit.c 2011-01-05 22:30:42.000000000 +0100
@@ -48,6 +48,10 @@
#include <linux/fs_struct.h>
#include <linux/init_task.h>
+#include <linux/vs_pid.h>
#include <trace/events/sched.h>
#include <linux/hw_breakpoint.h>
-
-@@ -487,9 +491,11 @@ static void close_files(struct files_str
+ #include <linux/oom.h>
+@@ -494,9 +498,11 @@ static void close_files(struct files_str
filp_close(file, files);
cond_resched();
}
}
}
}
-@@ -1032,11 +1038,16 @@ NORET_TYPE void do_exit(long code)
+@@ -1043,11 +1049,16 @@ NORET_TYPE void do_exit(long code)
validate_creds_for_do_exit(tsk);
BUG();
/* Avoid "noreturn function does return". */
for (;;)
-diff -NurpP --minimal linux-2.6.36.2/kernel/fork.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/fork.c
---- linux-2.6.36.2/kernel/fork.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/fork.c 2010-10-21 13:09:36.000000000 +0200
-@@ -65,6 +65,10 @@
- #include <linux/perf_event.h>
+diff -NurpP --minimal linux-2.6.37/kernel/fork.c linux-2.6.37-vs2.3.0.37-rc1/kernel/fork.c
+--- linux-2.6.37/kernel/fork.c 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/fork.c 2011-01-05 22:30:42.000000000 +0100
+@@ -66,6 +66,10 @@
#include <linux/posix-timers.h>
#include <linux/user-return-notifier.h>
+ #include <linux/oom.h>
+#include <linux/vs_context.h>
+#include <linux/vs_network.h>
+#include <linux/vs_limit.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
-@@ -160,6 +164,8 @@ void free_task(struct task_struct *tsk)
+@@ -161,6 +165,8 @@ void free_task(struct task_struct *tsk)
account_kernel_stack(tsk->stack, -1);
free_thread_info(tsk->stack);
rt_mutex_debug_task_free(tsk);
ftrace_graph_exit_task(tsk);
free_task_struct(tsk);
}
-@@ -492,6 +498,7 @@ static struct mm_struct * mm_init(struct
+@@ -495,6 +501,7 @@ static struct mm_struct * mm_init(struct
if (likely(!mm_alloc_pgd(mm))) {
mm->def_flags = 0;
mmu_notifier_mm_init(mm);
return mm;
}
-@@ -525,6 +532,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -528,6 +535,7 @@ void __mmdrop(struct mm_struct *mm)
mm_free_pgd(mm);
destroy_context(mm);
mmu_notifier_mm_destroy(mm);
free_mm(mm);
}
EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -660,6 +668,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -663,6 +671,7 @@ struct mm_struct *dup_mm(struct task_str
goto fail_nomem;
memcpy(mm, oldmm, sizeof(*mm));
/* Initializing for Swap token stuff */
mm->token_priority = 0;
-@@ -698,6 +707,7 @@ fail_nocontext:
+@@ -701,6 +710,7 @@ fail_nocontext:
* If init_new_context() failed, we cannot use mmput() to free the mm
* because it calls destroy_context()
*/
mm_free_pgd(mm);
free_mm(mm);
return NULL;
-@@ -973,6 +983,8 @@ static struct task_struct *copy_process(
+@@ -980,6 +990,8 @@ static struct task_struct *copy_process(
int retval;
struct task_struct *p;
int cgroup_callbacks_done = 0;
if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
return ERR_PTR(-EINVAL);
-@@ -1019,7 +1031,12 @@ static struct task_struct *copy_process(
+@@ -1026,7 +1038,12 @@ static struct task_struct *copy_process(
DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
#endif
if (atomic_read(&p->real_cred->user->processes) >=
task_rlimit(p, RLIMIT_NPROC)) {
if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1284,6 +1301,18 @@ static struct task_struct *copy_process(
+@@ -1291,6 +1308,18 @@ static struct task_struct *copy_process(
total_forks++;
spin_unlock(¤t->sighand->siglock);
write_unlock_irq(&tasklist_lock);
proc_fork_connector(p);
cgroup_post_fork(p);
-diff -NurpP --minimal linux-2.6.36.2/kernel/kthread.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/kthread.c
---- linux-2.6.36.2/kernel/kthread.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/kthread.c 2010-10-21 13:42:40.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/kthread.c linux-2.6.37-vs2.3.0.37-rc1/kernel/kthread.c
+--- linux-2.6.37/kernel/kthread.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/kthread.c 2011-01-05 22:30:42.000000000 +0100
@@ -16,6 +16,7 @@
#include <linux/mutex.h>
#include <linux/slab.h>
#include <trace/events/sched.h>
static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-2.6.36.2/kernel/Makefile linux-2.6.36.2-vs2.3.0.36.38.2/kernel/Makefile
---- linux-2.6.36.2/kernel/Makefile 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/Makefile 2010-10-21 13:09:36.000000000 +0200
-@@ -25,6 +25,7 @@ CFLAGS_REMOVE_sched_clock.o = -pg
- CFLAGS_REMOVE_perf_event.o = -pg
+diff -NurpP --minimal linux-2.6.37/kernel/Makefile linux-2.6.37-vs2.3.0.37-rc1/kernel/Makefile
+--- linux-2.6.37/kernel/Makefile 2011-01-05 21:50:37.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/Makefile 2010-11-23 02:09:41.000000000 +0100
+@@ -25,6 +25,7 @@ CFLAGS_REMOVE_perf_event.o = -pg
+ CFLAGS_REMOVE_irq_work.o = -pg
endif
+obj-y += vserver/
obj-$(CONFIG_FREEZER) += freezer.o
obj-$(CONFIG_PROFILING) += profile.o
obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o
-diff -NurpP --minimal linux-2.6.36.2/kernel/nsproxy.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/nsproxy.c
---- linux-2.6.36.2/kernel/nsproxy.c 2010-07-07 18:31:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/nsproxy.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/nsproxy.c linux-2.6.37-vs2.3.0.37-rc1/kernel/nsproxy.c
+--- linux-2.6.37/kernel/nsproxy.c 2010-07-07 18:31:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/nsproxy.c 2010-11-23 02:09:41.000000000 +0100
@@ -20,6 +20,8 @@
#include <linux/mnt_namespace.h>
#include <linux/utsname.h>
return -EPERM;
*new_nsp = create_new_namespaces(unshare_flags, current,
-diff -NurpP --minimal linux-2.6.36.2/kernel/pid.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/pid.c
---- linux-2.6.36.2/kernel/pid.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/pid.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/pid.c linux-2.6.37-vs2.3.0.37-rc1/kernel/pid.c
+--- linux-2.6.37/kernel/pid.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/pid.c 2010-11-23 02:37:26.000000000 +0100
@@ -36,6 +36,7 @@
#include <linux/pid_namespace.h>
#include <linux/init_task.h>
+ type = PIDTYPE_PID;
if (pid) {
struct hlist_node *first;
- first = rcu_dereference_check(pid->tasks[type].first,
-@@ -416,7 +420,7 @@ EXPORT_SYMBOL(pid_task);
- */
+ first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
+@@ -417,7 +421,7 @@ EXPORT_SYMBOL(pid_task);
struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
{
+ rcu_lockdep_assert(rcu_read_lock_held());
- return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
+ return pid_task(find_pid_ns(vx_rmap_pid(nr), ns), PIDTYPE_PID);
}
struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -458,7 +462,7 @@ struct pid *find_get_pid(pid_t nr)
+@@ -459,7 +463,7 @@ struct pid *find_get_pid(pid_t nr)
}
EXPORT_SYMBOL_GPL(find_get_pid);
{
struct upid *upid;
pid_t nr = 0;
-@@ -471,6 +475,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
+@@ -472,6 +476,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
return nr;
}
pid_t pid_vnr(struct pid *pid)
{
return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-2.6.36.2/kernel/pid_namespace.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/pid_namespace.c
---- linux-2.6.36.2/kernel/pid_namespace.c 2010-07-07 18:31:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/pid_namespace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/pid_namespace.c linux-2.6.37-vs2.3.0.37-rc1/kernel/pid_namespace.c
+--- linux-2.6.37/kernel/pid_namespace.c 2010-07-07 18:31:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/pid_namespace.c 2010-11-23 02:09:41.000000000 +0100
@@ -14,6 +14,7 @@
#include <linux/err.h>
#include <linux/acct.h>
kmem_cache_free(pid_ns_cachep, ns);
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/posix-timers.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/posix-timers.c
---- linux-2.6.36.2/kernel/posix-timers.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/posix-timers.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/posix-timers.c linux-2.6.37-vs2.3.0.37-rc1/kernel/posix-timers.c
+--- linux-2.6.37/kernel/posix-timers.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/posix-timers.c 2010-11-23 02:09:41.000000000 +0100
@@ -46,6 +46,7 @@
#include <linux/wait.h>
#include <linux/workqueue.h>
/* If we failed to send the signal the timer stops. */
return ret > 0;
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/printk.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/printk.c
---- linux-2.6.36.2/kernel/printk.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/printk.c 2010-10-21 13:43:06.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/printk.c linux-2.6.37-vs2.3.0.37-rc1/kernel/printk.c
+--- linux-2.6.37/kernel/printk.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/printk.c 2011-01-05 22:30:42.000000000 +0100
@@ -39,6 +39,7 @@
#include <linux/syslog.h>
#include <linux/cpu.h>
#include <asm/uaccess.h>
-@@ -266,18 +267,15 @@ int do_syslog(int type, char __user *buf
+@@ -272,18 +273,19 @@ int do_syslog(int type, char __user *buf
unsigned i, j, limit, count;
int do_clear = 0;
char c;
- int error = 0;
+ int error;
- error = security_syslog(type, from_file);
+ /*
+ * If this is from /proc/kmsg we only do the capabilities checks
+ * at open time.
+ */
+ if (type == SYSLOG_ACTION_OPEN || !from_file) {
+- if (dmesg_restrict && !capable(CAP_SYS_ADMIN))
++ if (dmesg_restrict &&
++ !vx_capable(CAP_SYS_ADMIN, VXC_SYSLOG))
+ return -EPERM;
+ if ((type != SYSLOG_ACTION_READ_ALL &&
+ type != SYSLOG_ACTION_SIZE_BUFFER) &&
+- !capable(CAP_SYS_ADMIN))
++ !vx_capable(CAP_SYS_ADMIN, VXC_SYSLOG))
+ return -EPERM;
+ }
+
+@@ -291,12 +293,9 @@ int do_syslog(int type, char __user *buf
if (error)
return error;
error = -EINVAL;
if (!buf || len < 0)
goto out;
-@@ -288,6 +286,16 @@ int do_syslog(int type, char __user *buf
+@@ -307,6 +306,16 @@ int do_syslog(int type, char __user *buf
error = -EFAULT;
goto out;
}
error = wait_event_interruptible(log_wait,
(log_start - log_end));
if (error)
-@@ -314,16 +322,6 @@ int do_syslog(int type, char __user *buf
+@@ -333,16 +342,6 @@ int do_syslog(int type, char __user *buf
/* FALL THRU */
/* Read last kernel messages */
case SYSLOG_ACTION_READ_ALL:
count = len;
if (count > log_buf_len)
count = log_buf_len;
-diff -NurpP --minimal linux-2.6.36.2/kernel/ptrace.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/ptrace.c
---- linux-2.6.36.2/kernel/ptrace.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/ptrace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/ptrace.c linux-2.6.37-vs2.3.0.37-rc1/kernel/ptrace.c
+--- linux-2.6.37/kernel/ptrace.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/ptrace.c 2010-11-23 02:09:41.000000000 +0100
@@ -22,6 +22,7 @@
#include <linux/syscalls.h>
#include <linux/uaccess.h>
return security_ptrace_access_check(task, mode);
}
-@@ -709,6 +715,10 @@ SYSCALL_DEFINE4(ptrace, long, request, l
+@@ -713,6 +719,10 @@ SYSCALL_DEFINE4(ptrace, long, request, l
goto out;
}
if (request == PTRACE_ATTACH) {
ret = ptrace_attach(child);
/*
-diff -NurpP --minimal linux-2.6.36.2/kernel/sched.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sched.c
---- linux-2.6.36.2/kernel/sched.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sched.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/kernel/sched.c linux-2.6.37-vs2.3.0.37-rc1/kernel/sched.c
+--- linux-2.6.37/kernel/sched.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/sched.c 2011-01-05 22:30:42.000000000 +0100
@@ -72,6 +72,8 @@
#include <linux/ctype.h>
#include <linux/ftrace.h>
#include <asm/tlb.h>
#include <asm/irq_regs.h>
-@@ -3017,9 +3019,17 @@ static inline long calc_load_fold_idle(v
+@@ -3361,9 +3363,17 @@ static void calc_global_nohz(unsigned lo
*/
void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
{
+ }
}
- static unsigned long
-@@ -3314,16 +3324,19 @@ void account_user_time(struct task_struc
+ /*
+@@ -3651,16 +3661,19 @@ void account_user_time(struct task_struc
cputime_t cputime_scaled)
{
struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
cpustat->nice = cputime64_add(cpustat->nice, tmp);
else
cpustat->user = cputime64_add(cpustat->user, tmp);
-@@ -3374,6 +3387,7 @@ void account_system_time(struct task_str
+@@ -3711,6 +3724,7 @@ void account_system_time(struct task_str
cputime_t cputime, cputime_t cputime_scaled)
{
struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
cputime64_t tmp;
if ((p->flags & PF_VCPU) && (irq_count() - hardirq_offset == 0)) {
-@@ -3384,6 +3398,7 @@ void account_system_time(struct task_str
+@@ -3721,6 +3735,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);
account_group_system_time(p, cputime);
/* Add system time to cpustat. */
-@@ -4470,7 +4485,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -4804,7 +4819,7 @@ SYSCALL_DEFINE1(nice, int, increment)
nice = 19;
if (increment < 0 && !can_nice(current, nice))
retval = security_task_setnice(current, nice);
if (retval)
-diff -NurpP --minimal linux-2.6.36.2/kernel/sched_fair.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sched_fair.c
---- linux-2.6.36.2/kernel/sched_fair.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sched_fair.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/sched_fair.c linux-2.6.37-vs2.3.0.37-rc1/kernel/sched_fair.c
+--- linux-2.6.37/kernel/sched_fair.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/sched_fair.c 2011-01-05 22:30:42.000000000 +0100
@@ -782,6 +782,9 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
check_spread(cfs_rq, se);
if (se != cfs_rq->curr)
account_entity_dequeue(cfs_rq, se);
update_min_vruntime(cfs_rq);
-diff -NurpP --minimal linux-2.6.36.2/kernel/signal.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/signal.c
---- linux-2.6.36.2/kernel/signal.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/signal.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/signal.c linux-2.6.37-vs2.3.0.37-rc1/kernel/signal.c
+--- linux-2.6.37/kernel/signal.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/signal.c 2010-11-23 02:09:41.000000000 +0100
@@ -28,6 +28,8 @@
#include <linux/freezer.h>
#include <linux/pid_namespace.h>
return security_task_kill(t, info, sig, 0);
}
-@@ -1170,7 +1195,7 @@ int kill_pid_info(int sig, struct siginf
+@@ -1171,7 +1196,7 @@ int kill_pid_info(int sig, struct siginf
rcu_read_lock();
retry:
p = pid_task(pid, PIDTYPE_PID);
error = group_send_sig_info(sig, info, p);
if (unlikely(error == -ESRCH))
/*
-@@ -1210,7 +1235,7 @@ int kill_pid_info_as_uid(int sig, struct
+@@ -1211,7 +1236,7 @@ int kill_pid_info_as_uid(int sig, struct
rcu_read_lock();
p = pid_task(pid, PIDTYPE_PID);
ret = -ESRCH;
goto out_unlock;
}
-@@ -1265,8 +1290,10 @@ static int kill_something_info(int sig,
+@@ -1266,8 +1291,10 @@ static int kill_something_info(int sig,
struct task_struct * p;
for_each_process(p) {
int err = group_send_sig_info(sig, info, p);
++count;
if (err != -EPERM)
-@@ -1933,6 +1960,11 @@ relock:
+@@ -1936,6 +1963,11 @@ relock:
!sig_kernel_only(signr))
continue;
if (sig_kernel_stop(signr)) {
/*
* The default action is to stop all threads in
-diff -NurpP --minimal linux-2.6.36.2/kernel/softirq.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/softirq.c
---- linux-2.6.36.2/kernel/softirq.c 2010-08-02 16:52:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/softirq.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/softirq.c linux-2.6.37-vs2.3.0.37-rc1/kernel/softirq.c
+--- linux-2.6.37/kernel/softirq.c 2011-01-05 21:50:38.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/softirq.c 2010-11-23 02:09:41.000000000 +0100
@@ -24,6 +24,7 @@
#include <linux/ftrace.h>
#include <linux/smp.h>
#define CREATE_TRACE_POINTS
#include <trace/events/irq.h>
-diff -NurpP --minimal linux-2.6.36.2/kernel/sys.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sys.c
---- linux-2.6.36.2/kernel/sys.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sys.c 2010-10-21 13:45:48.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/sys.c linux-2.6.37-vs2.3.0.37-rc1/kernel/sys.c
+--- linux-2.6.37/kernel/sys.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/sys.c 2010-11-23 02:09:41.000000000 +0100
@@ -42,6 +42,7 @@
#include <linux/syscalls.h>
#include <linux/kprobes.h>
return -EPERM;
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/sysctl_binary.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sysctl_binary.c
---- linux-2.6.36.2/kernel/sysctl_binary.c 2010-08-02 16:52:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sysctl_binary.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/sysctl_binary.c linux-2.6.37-vs2.3.0.37-rc1/kernel/sysctl_binary.c
+--- linux-2.6.37/kernel/sysctl_binary.c 2010-08-02 16:52:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/sysctl_binary.c 2010-11-23 02:09:41.000000000 +0100
@@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
{ CTL_INT, KERN_PANIC, "panic" },
{ CTL_STR, KERN_SPARC_REBOOT, "reboot-cmd" },
{ CTL_INT, KERN_CTLALTDEL, "ctrl-alt-del" },
-diff -NurpP --minimal linux-2.6.36.2/kernel/sysctl.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sysctl.c
---- linux-2.6.36.2/kernel/sysctl.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/sysctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/sysctl.c linux-2.6.37-vs2.3.0.37-rc1/kernel/sysctl.c
+--- linux-2.6.37/kernel/sysctl.c 2011-01-05 21:50:39.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/sysctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -73,6 +73,7 @@
#if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
#include <linux/lockdep.h>
#ifdef CONFIG_CHR_DEV_SG
#include <scsi/sg.h>
#endif
-@@ -573,6 +574,13 @@ static struct ctl_table kern_table[] = {
+@@ -571,6 +572,13 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dostring,
},
#endif
#ifdef CONFIG_CHR_DEV_SG
{
.procname = "sg-big-buff",
-diff -NurpP --minimal linux-2.6.36.2/kernel/time/timekeeping.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/time/timekeeping.c
---- linux-2.6.36.2/kernel/time/timekeeping.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/time/timekeeping.c 2010-10-21 14:17:59.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/time/timekeeping.c linux-2.6.37-vs2.3.0.37-rc1/kernel/time/timekeeping.c
+--- linux-2.6.37/kernel/time/timekeeping.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/time/timekeeping.c 2010-11-23 02:09:41.000000000 +0100
@@ -229,6 +229,7 @@ void getnstimeofday(struct timespec *ts)
} while (read_seqretry(&xtime_lock, seq));
}
EXPORT_SYMBOL(getnstimeofday);
-diff -NurpP --minimal linux-2.6.36.2/kernel/time.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/time.c
---- linux-2.6.36.2/kernel/time.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/time.c 2010-10-21 14:22:43.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/time.c linux-2.6.37-vs2.3.0.37-rc1/kernel/time.c
+--- linux-2.6.37/kernel/time.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/time.c 2010-11-23 02:09:41.000000000 +0100
@@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
if (err)
return err;
}
return 0;
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/timer.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/timer.c
---- linux-2.6.36.2/kernel/timer.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/timer.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/timer.c linux-2.6.37-vs2.3.0.37-rc1/kernel/timer.c
+--- linux-2.6.37/kernel/timer.c 2011-01-05 21:50:39.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/timer.c 2011-01-05 22:30:42.000000000 +0100
@@ -40,6 +40,10 @@
- #include <linux/perf_event.h>
+ #include <linux/irq_work.h>
#include <linux/sched.h>
#include <linux/slab.h>
+#include <linux/vs_base.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
-@@ -1332,12 +1336,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
+@@ -1341,12 +1345,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
#endif
/**
* sys_getpid - return the thread group id of the current process
-@@ -1366,10 +1364,23 @@ SYSCALL_DEFINE0(getppid)
+@@ -1375,10 +1373,23 @@ SYSCALL_DEFINE0(getppid)
rcu_read_lock();
pid = task_tgid_vnr(current->real_parent);
rcu_read_unlock();
SYSCALL_DEFINE0(getuid)
{
/* Only we change this so SMP safe */
-diff -NurpP --minimal linux-2.6.36.2/kernel/user_namespace.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/user_namespace.c
---- linux-2.6.36.2/kernel/user_namespace.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/user_namespace.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/user_namespace.c linux-2.6.37-vs2.3.0.37-rc1/kernel/user_namespace.c
+--- linux-2.6.37/kernel/user_namespace.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/user_namespace.c 2010-11-23 02:09:41.000000000 +0100
@@ -11,6 +11,7 @@
#include <linux/user_namespace.h>
#include <linux/highuid.h>
INIT_WORK(&ns->destroyer, free_user_ns_work);
schedule_work(&ns->destroyer);
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/utsname.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/utsname.c
---- linux-2.6.36.2/kernel/utsname.c 2009-09-10 15:26:28.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/utsname.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/utsname.c linux-2.6.37-vs2.3.0.37-rc1/kernel/utsname.c
+--- linux-2.6.37/kernel/utsname.c 2009-09-10 15:26:28.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/utsname.c 2010-11-23 02:09:41.000000000 +0100
@@ -14,14 +14,17 @@
#include <linux/utsname.h>
#include <linux/err.h>
+ atomic_dec(&vs_global_uts_ns);
kfree(ns);
}
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cacct.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct.c
---- linux-2.6.36.2/kernel/vserver/cacct.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cacct.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct.c
+--- linux-2.6.37/kernel/vserver/cacct.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,42 @@
+/*
+ * linux/kernel/vserver/cacct.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cacct_init.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct_init.h
---- linux-2.6.36.2/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct_init.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cacct_init.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct_init.h
+--- linux-2.6.37/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct_init.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,25 @@
+
+
+ return;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cacct_proc.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct_proc.h
---- linux-2.6.36.2/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cacct_proc.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cacct_proc.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct_proc.h
+--- linux-2.6.37/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cacct_proc.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,53 @@
+#ifndef _VX_CACCT_PROC_H
+#define _VX_CACCT_PROC_H
+}
+
+#endif /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/context.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/context.c
---- linux-2.6.36.2/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/context.c 2010-12-01 20:34:45.000000000 +0100
-@@ -0,0 +1,1077 @@
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/context.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/context.c
+--- linux-2.6.37/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/context.c 2011-01-05 22:46:44.000000000 +0100
+@@ -0,0 +1,1087 @@
+/*
+ * linux/kernel/vserver/context.c
+ *
+ new->reboot_cmd = 0;
+ new->exit_code = 0;
+
-+ // preconfig fs entries
++ // preconfig spaces
+ for (index = 0; index < VX_SPACES; index++) {
++ struct _vx_space *space = &new->space[index];
++
++ // filesystem
+ spin_lock(&init_fs.lock);
+ init_fs.users++;
+ spin_unlock(&init_fs.lock);
-+ new->vx_fs[index] = &init_fs;
++ space->vx_fs = &init_fs;
++
++ /* FIXME: do we want defaults? */
++ space->vx_real_cred = 0;
++ space->vx_cred = 0;
+ }
+
-+ /* FIXME: we want defaults */
-+ new->vx_real_cred = 0;
-+ new->vx_cred = 0;
+
+ vxdprintk(VXD_CBIT(xid, 0),
+ "alloc_vx_info(%d) = %p", xid, new);
+ vs_state_change(vxi, VSC_SHUTDOWN);
+
+ for (index = 0; index < VX_SPACES; index++) {
-+ nsproxy = xchg(&vxi->vx_nsproxy[index], NULL);
++ struct _vx_space *space = &vxi->space[index];
++
++ nsproxy = xchg(&space->vx_nsproxy, NULL);
+ if (nsproxy)
+ put_nsproxy(nsproxy);
+
-+ fs = xchg(&vxi->vx_fs[index], NULL);
++ fs = xchg(&space->vx_fs, NULL);
+ spin_lock(&fs->lock);
+ kill = !--fs->users;
+ spin_unlock(&fs->lock);
+ if (kill)
+ free_fs_struct(fs);
-+ }
+
-+ cred = xchg(&vxi->vx_real_cred, NULL);
-+ if (cred) {
-+ alter_cred_subscribers(cred, -1);
-+ put_cred(cred);
-+ }
++ cred = xchg(&space->vx_real_cred, NULL);
++ if (cred) {
++ alter_cred_subscribers(cred, -1);
++ put_cred(cred);
++ }
+
-+ cred = xchg(&vxi->vx_cred, NULL);
-+ if (cred) {
-+ alter_cred_subscribers(cred, -1);
-+ put_cred(cred);
++ cred = xchg(&space->vx_cred, NULL);
++ if (cred) {
++ alter_cred_subscribers(cred, -1);
++ put_cred(cred);
++ }
+ }
+}
+
+ /* context shutdown is mandatory */
+ BUG_ON(!vx_info_state(vxi, VXS_SHUTDOWN));
+
-+ /* nsproxy and fs check */
++ /* spaces check */
+ for (index = 0; index < VX_SPACES; index++) {
-+ BUG_ON(vxi->vx_nsproxy[index]);
-+ BUG_ON(vxi->vx_fs[index]);
++ struct _vx_space *space = &vxi->space[index];
++
++ BUG_ON(space->vx_nsproxy);
++ BUG_ON(space->vx_fs);
++ BUG_ON(space->vx_real_cred);
++ BUG_ON(space->vx_cred);
+ }
+
+ spin_lock_irqsave(&vx_info_inactive_lock, flags);
+
+EXPORT_SYMBOL_GPL(free_vx_info);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cvirt.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt.c
---- linux-2.6.36.2/kernel/vserver/cvirt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt.c 2010-10-24 12:39:42.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cvirt.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt.c
+--- linux-2.6.37/kernel/vserver/cvirt.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt.c 2011-01-05 22:46:44.000000000 +0100
@@ -0,0 +1,303 @@
+/*
+ * linux/kernel/vserver/cvirt.c
+ if (id == VHIN_CONTEXT)
+ return vxi->vx_name;
+
-+ nsproxy = vxi->vx_nsproxy[0];
++ nsproxy = vxi->space[0].vx_nsproxy;
+ if (!nsproxy)
+ return NULL;
+
+
+#endif
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cvirt_init.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt_init.h
---- linux-2.6.36.2/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt_init.h 2010-10-21 14:40:17.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cvirt_init.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt_init.h
+--- linux-2.6.37/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt_init.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,69 @@
+
+
+ return;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/cvirt_proc.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt_proc.h
---- linux-2.6.36.2/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/cvirt_proc.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/cvirt_proc.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt_proc.h
+--- linux-2.6.37/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/cvirt_proc.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,135 @@
+#ifndef _VX_CVIRT_PROC_H
+#define _VX_CVIRT_PROC_H
+}
+
+#endif /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/debug.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/debug.c
---- linux-2.6.36.2/kernel/vserver/debug.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/debug.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/debug.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/debug.c
+--- linux-2.6.37/kernel/vserver/debug.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/debug.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,32 @@
+/*
+ * kernel/vserver/debug.c
+
+EXPORT_SYMBOL_GPL(dump_vx_info);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/device.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/device.c
---- linux-2.6.36.2/kernel/vserver/device.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/device.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/device.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/device.c
+--- linux-2.6.37/kernel/vserver/device.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/device.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,443 @@
+/*
+ * linux/kernel/vserver/device.c
+#endif /* CONFIG_COMPAT */
+
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/dlimit.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/dlimit.c
---- linux-2.6.36.2/kernel/vserver/dlimit.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/dlimit.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/dlimit.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/dlimit.c
+--- linux-2.6.37/kernel/vserver/dlimit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/dlimit.c 2011-01-05 23:26:15.000000000 +0100
@@ -0,0 +1,531 @@
+/*
+ * linux/kernel/vserver/dlimit.c
+ memset(new, 0, sizeof(struct dl_info));
+ new->dl_tag = tag;
+ new->dl_sb = sb;
-+ INIT_RCU_HEAD(&new->dl_rcu);
++ // INIT_RCU_HEAD(&new->dl_rcu);
+ INIT_HLIST_NODE(&new->dl_hlist);
+ spin_lock_init(&new->dl_lock);
+ atomic_set(&new->dl_refcnt, 0);
+EXPORT_SYMBOL_GPL(locate_dl_info);
+EXPORT_SYMBOL_GPL(rcu_free_dl_info);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/helper.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/helper.c
---- linux-2.6.36.2/kernel/vserver/helper.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/helper.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/helper.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/helper.c
+--- linux-2.6.37/kernel/vserver/helper.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/helper.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,223 @@
+/*
+ * linux/kernel/vserver/helper.c
+ return do_vshelper(vshelper_path, argv, envp, 1);
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/history.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/history.c
---- linux-2.6.36.2/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/history.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/history.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/history.c
+--- linux-2.6.37/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/history.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,258 @@
+/*
+ * kernel/vserver/history.c
+
+#endif /* CONFIG_COMPAT */
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/inet.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/inet.c
---- linux-2.6.36.2/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/inet.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/inet.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/inet.c
+--- linux-2.6.37/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/inet.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,224 @@
+
+#include <linux/in.h>
+
+EXPORT_SYMBOL_GPL(ip_v4_find_src);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/init.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/init.c
---- linux-2.6.36.2/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/init.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/init.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/init.c
+--- linux-2.6.37/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/init.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,45 @@
+/*
+ * linux/kernel/init.c
+module_init(init_vserver);
+module_exit(exit_vserver);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/inode.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/inode.c
---- linux-2.6.36.2/kernel/vserver/inode.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/inode.c 2010-10-21 17:40:44.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/inode.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/inode.c
+--- linux-2.6.37/kernel/vserver/inode.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/inode.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,435 @@
+/*
+ * linux/kernel/vserver/inode.c
+
+#endif /* CONFIG_PROPAGATE */
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/Kconfig
---- linux-2.6.36.2/kernel/vserver/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/Kconfig 2010-10-21 21:49:28.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/Kconfig linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/Kconfig
+--- linux-2.6.37/kernel/vserver/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/Kconfig 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,265 @@
+#
+# Linux VServer configuration
+ default y
+ select SECURITY_CAPABILITIES
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/limit.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit.c
---- linux-2.6.36.2/kernel/vserver/limit.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/limit.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit.c
+--- linux-2.6.37/kernel/vserver/limit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,354 @@
+/*
+ * linux/kernel/vserver/limit.c
+ return points;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/limit_init.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit_init.h
---- linux-2.6.36.2/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit_init.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/limit_init.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit_init.h
+--- linux-2.6.37/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit_init.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,31 @@
+
+
+ }
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/limit_proc.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit_proc.h
---- linux-2.6.36.2/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/limit_proc.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/limit_proc.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit_proc.h
+--- linux-2.6.37/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/limit_proc.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,57 @@
+#ifndef _VX_LIMIT_PROC_H
+#define _VX_LIMIT_PROC_H
+#endif /* _VX_LIMIT_PROC_H */
+
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/Makefile linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/Makefile
---- linux-2.6.36.2/kernel/vserver/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/Makefile 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/Makefile linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/Makefile
+--- linux-2.6.37/kernel/vserver/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/Makefile 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,18 @@
+#
+# Makefile for the Linux vserver routines.
+vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
+vserver-$(CONFIG_VSERVER_DEVICE) += device.o
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/network.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/network.c
---- linux-2.6.36.2/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/network.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/network.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/network.c
+--- linux-2.6.37/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/network.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,864 @@
+/*
+ * linux/kernel/vserver/network.c
+EXPORT_SYMBOL_GPL(free_nx_info);
+EXPORT_SYMBOL_GPL(unhash_nx_info);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/proc.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/proc.c
---- linux-2.6.36.2/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/proc.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/proc.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/proc.c
+--- linux-2.6.37/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/proc.c 2011-01-05 22:46:44.000000000 +0100
@@ -0,0 +1,1098 @@
+/*
+ * linux/kernel/vserver/proc.c
+ "CCaps:\t%016llx\n"
+ "Spaces:\t%08lx %08lx\n",
+ (unsigned long long)vxi->vx_ccaps,
-+ vxi->vx_nsmask[0], vxi->vx_nsmask[1]);
++ vxi->space[0].vx_nsmask, vxi->space[1].vx_nsmask);
+ return buffer - orig;
+}
+
+
+int proc_vxi_nsproxy0(struct vx_info *vxi, char *buffer)
+{
-+ return vx_info_proc_nsproxy(vxi->vx_nsproxy[0], buffer);
++ return vx_info_proc_nsproxy(vxi->space[0].vx_nsproxy, buffer);
+}
+
+int proc_vxi_nsproxy1(struct vx_info *vxi, char *buffer)
+{
-+ return vx_info_proc_nsproxy(vxi->vx_nsproxy[1], buffer);
++ return vx_info_proc_nsproxy(vxi->space[1].vx_nsproxy, buffer);
+}
+
+int proc_vxi_cvirt(struct vx_info *vxi, char *buffer)
+ return buffer - orig;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/sched.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched.c
---- linux-2.6.36.2/kernel/vserver/sched.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched.c 2010-10-28 19:13:19.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/sched.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched.c
+--- linux-2.6.37/kernel/vserver/sched.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,82 @@
+/*
+ * linux/kernel/vserver/sched.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/sched_init.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched_init.h
---- linux-2.6.36.2/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched_init.h 2010-10-28 18:17:11.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/sched_init.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched_init.h
+--- linux-2.6.37/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched_init.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,27 @@
+
+static inline void vx_info_init_sched(struct _vx_sched *sched)
+{
+ return;
+}
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/sched_proc.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched_proc.h
---- linux-2.6.36.2/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sched_proc.h 2010-10-28 18:15:30.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/sched_proc.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched_proc.h
+--- linux-2.6.37/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sched_proc.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,32 @@
+#ifndef _VX_SCHED_PROC_H
+#define _VX_SCHED_PROC_H
+}
+
+#endif /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/signal.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/signal.c
---- linux-2.6.36.2/kernel/vserver/signal.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/signal.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/signal.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/signal.c
+--- linux-2.6.37/kernel/vserver/signal.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/signal.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,132 @@
+/*
+ * linux/kernel/vserver/signal.c
+ return ret;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/space.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/space.c
---- linux-2.6.36.2/kernel/vserver/space.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/space.c 2010-12-01 20:39:35.000000000 +0100
-@@ -0,0 +1,422 @@
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/space.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/space.c
+--- linux-2.6.37/kernel/vserver/space.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/space.c 2011-01-05 22:46:44.000000000 +0100
+@@ -0,0 +1,433 @@
+/*
+ * linux/kernel/vserver/space.c
+ *
+{
+ struct nsproxy *proxy, *proxy_cur, *proxy_new;
+ struct fs_struct *fs_cur, *fs = NULL;
++ struct _vx_space *space;
+ int ret, kill = 0;
+
+ vxdprintk(VXD_CBIT(space, 8), "vx_enter_space(%p[#%u],0x%08lx,%d)",
+ if (vx_info_flags(vxi, VXF_INFO_PRIVATE, 0))
+ return -EACCES;
+
++ if (index >= VX_SPACES)
++ return -EINVAL;
++
++ space = &vxi->space[index];
++
+ if (!mask)
-+ mask = vxi->vx_nsmask[index];
++ mask = space->vx_nsmask;
+
-+ if ((mask & vxi->vx_nsmask[index]) != mask)
++ if ((mask & space->vx_nsmask) != mask)
+ return -EINVAL;
+
+ if (mask & CLONE_FS) {
-+ fs = copy_fs_struct(vxi->vx_fs[index]);
++ fs = copy_fs_struct(space->vx_fs);
+ if (!fs)
+ return -ENOMEM;
+ }
-+ proxy = vxi->vx_nsproxy[index];
++ proxy = space->vx_nsproxy;
+
+ vxdprintk(VXD_CBIT(space, 9),
+ "vx_enter_space(%p[#%u],0x%08lx,%d) -> (%p,%p)",
+ if (mask & CLONE_NEWUSER) {
+ vxdprintk(VXD_CBIT(space, 10),
+ "vx_enter_space(%p[#%u],%p,%p) cred (%p,%p)",
-+ vxi, vxi->vx_id, vxi->vx_real_cred, vxi->vx_cred,
++ vxi, vxi->vx_id,
++ space->vx_real_cred, space->vx_cred,
+ current->real_cred, current->cred);
+ exit_creds(current);
-+ current->real_cred = get_cred(vxi->vx_real_cred);
++ current->real_cred = get_cred(space->vx_real_cred);
+ alter_cred_subscribers(current->real_cred, 1);
-+ current->cred = get_cred(vxi->vx_cred);
++ current->cred = get_cred(space->vx_cred);
+ alter_cred_subscribers(current->cred, 1);
+ }
+
+{
+ struct nsproxy *proxy_vxi, *proxy_cur, *proxy_new;
+ struct fs_struct *fs_vxi, *fs;
++ struct _vx_space *space;
+ int ret, kill = 0;
+
+ vxdprintk(VXD_CBIT(space, 8), "vx_set_space(%p[#%u],0x%08lx,%d)",
+ vxi, vxi->vx_id, mask, index);
-+#if 0
-+ if (!mask)
-+ mask = default_space_mask.mask;
-+#endif
++
+ if ((mask & space_mask.mask) != mask)
+ return -EINVAL;
+
-+ proxy_vxi = vxi->vx_nsproxy[index];
-+ fs_vxi = vxi->vx_fs[index];
++ if (index >= VX_SPACES)
++ return -EINVAL;
++
++ space = &vxi->space[index];
++
++ proxy_vxi = space->vx_nsproxy;
++ fs_vxi = space->vx_fs;
+
+ if (mask & CLONE_FS) {
+ fs = copy_fs_struct(current->fs);
+
+ if (mask & CLONE_FS) {
+ spin_lock(&fs_vxi->lock);
-+ vxi->vx_fs[index] = fs;
++ space->vx_fs = fs;
+ kill = !--fs_vxi->users;
+ spin_unlock(&fs_vxi->lock);
+ }
+ goto out_put;
+ }
+
-+ proxy_new = xchg(&vxi->vx_nsproxy[index], proxy_new);
-+ vxi->vx_nsmask[index] |= mask;
++ proxy_new = xchg(&space->vx_nsproxy, proxy_new);
++ space->vx_nsmask |= mask;
+
+ if (mask & CLONE_NEWUSER) {
+ const struct cred *cred;
+
+ vxdprintk(VXD_CBIT(space, 10),
+ "vx_set_space(%p[#%u],%p,%p) cred (%p,%p)",
-+ vxi, vxi->vx_id, vxi->vx_real_cred, vxi->vx_cred,
++ vxi, vxi->vx_id,
++ space->vx_real_cred, space->vx_cred,
+ current->real_cred, current->cred);
+
+ if (current->real_cred) {
+ alter_cred_subscribers(cred, 1);
+ } else
+ cred = NULL;
-+ cred = xchg(&vxi->vx_real_cred, cred);
++ cred = xchg(&space->vx_real_cred, cred);
+ if (cred) {
+ alter_cred_subscribers(cred, -1);
+ put_cred(cred);
+ alter_cred_subscribers(cred, 1);
+ } else
+ cred = NULL;
-+ cred = xchg(&vxi->vx_cred, cred);
++ cred = xchg(&space->vx_cred, cred);
+ if (cred) {
+ alter_cred_subscribers(cred, -1);
+ put_cred(cred);
+ return 0;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/switch.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/switch.c
---- linux-2.6.36.2/kernel/vserver/switch.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/switch.c 2010-10-28 19:10:47.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/switch.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/switch.c
+--- linux-2.6.37/kernel/vserver/switch.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/switch.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,531 @@
+/*
+ * linux/kernel/vserver/switch.c
+}
+
+#endif /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/sysctl.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sysctl.c
---- linux-2.6.36.2/kernel/vserver/sysctl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/sysctl.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/sysctl.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sysctl.c
+--- linux-2.6.37/kernel/vserver/sysctl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/sysctl.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,241 @@
+/*
+ * kernel/vserver/sysctl.c
+EXPORT_SYMBOL_GPL(vx_debug_space);
+EXPORT_SYMBOL_GPL(vx_debug_misc);
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/tag.c linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/tag.c
---- linux-2.6.36.2/kernel/vserver/tag.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/tag.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/tag.c linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/tag.c
+--- linux-2.6.37/kernel/vserver/tag.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/tag.c 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,63 @@
+/*
+ * linux/kernel/vserver/tag.c
+}
+
+
-diff -NurpP --minimal linux-2.6.36.2/kernel/vserver/vci_config.h linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/vci_config.h
---- linux-2.6.36.2/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/kernel/vserver/vci_config.h 2010-10-28 20:45:52.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/kernel/vserver/vci_config.h linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/vci_config.h
+--- linux-2.6.37/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/kernel/vserver/vci_config.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,82 @@
+
+/* interface version */
+ 0;
+}
+
-diff -NurpP --minimal linux-2.6.36.2/mm/filemap_xip.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/filemap_xip.c
---- linux-2.6.36.2/mm/filemap_xip.c 2010-07-07 18:31:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/filemap_xip.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/filemap_xip.c linux-2.6.37-vs2.3.0.37-rc1/mm/filemap_xip.c
+--- linux-2.6.37/mm/filemap_xip.c 2010-07-07 18:31:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/filemap_xip.c 2010-11-23 02:09:41.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/seqlock.h>
#include <linux/mutex.h>
#include <asm/tlbflush.h>
#include <asm/io.h>
-diff -NurpP --minimal linux-2.6.36.2/mm/fremap.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/fremap.c
---- linux-2.6.36.2/mm/fremap.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/fremap.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/fremap.c linux-2.6.37-vs2.3.0.37-rc1/mm/fremap.c
+--- linux-2.6.37/mm/fremap.c 2010-10-21 13:07:57.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/fremap.c 2010-11-23 02:09:41.000000000 +0100
@@ -16,6 +16,7 @@
#include <linux/module.h>
#include <linux/syscalls.h>
#include <asm/mmu_context.h>
#include <asm/cacheflush.h>
-diff -NurpP --minimal linux-2.6.36.2/mm/hugetlb.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/hugetlb.c
---- linux-2.6.36.2/mm/hugetlb.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/hugetlb.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/mm/hugetlb.c linux-2.6.37-vs2.3.0.37-rc1/mm/hugetlb.c
+--- linux-2.6.37/mm/hugetlb.c 2011-01-05 21:50:39.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/hugetlb.c 2011-01-05 22:30:43.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/hugetlb.h>
#include "internal.h"
const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL;
-diff -NurpP --minimal linux-2.6.36.2/mm/memcontrol.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/memcontrol.c
---- linux-2.6.36.2/mm/memcontrol.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/memcontrol.c 2010-12-13 22:09:27.000000000 +0100
-@@ -639,6 +639,31 @@ struct mem_cgroup *mem_cgroup_from_task(
+diff -NurpP --minimal linux-2.6.37/mm/memcontrol.c linux-2.6.37-vs2.3.0.37-rc1/mm/memcontrol.c
+--- linux-2.6.37/mm/memcontrol.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/memcontrol.c 2011-01-05 22:30:43.000000000 +0100
+@@ -681,6 +681,31 @@ struct mem_cgroup *mem_cgroup_from_task(
struct mem_cgroup, css);
}
static struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
{
struct mem_cgroup *mem = NULL;
-diff -NurpP --minimal linux-2.6.36.2/mm/memory.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/memory.c
---- linux-2.6.36.2/mm/memory.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/memory.c 2010-10-21 13:09:36.000000000 +0200
-@@ -3145,6 +3145,7 @@ static inline int handle_pte_fault(struc
+diff -NurpP --minimal linux-2.6.37/mm/memory.c linux-2.6.37-vs2.3.0.37-rc1/mm/memory.c
+--- linux-2.6.37/mm/memory.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/memory.c 2010-11-23 02:09:41.000000000 +0100
+@@ -3153,6 +3153,7 @@ static inline int handle_pte_fault(struc
{
pte_t entry;
spinlock_t *ptl;
entry = *pte;
if (!pte_present(entry)) {
-@@ -3169,9 +3170,12 @@ static inline int handle_pte_fault(struc
+@@ -3177,9 +3178,12 @@ static inline int handle_pte_fault(struc
if (unlikely(!pte_same(*pte, entry)))
goto unlock;
if (flags & FAULT_FLAG_WRITE) {
entry = pte_mkdirty(entry);
}
entry = pte_mkyoung(entry);
-@@ -3189,7 +3193,10 @@ static inline int handle_pte_fault(struc
+@@ -3197,7 +3201,10 @@ static inline int handle_pte_fault(struc
}
unlock:
pte_unmap_unlock(pte, ptl);
}
/*
-diff -NurpP --minimal linux-2.6.36.2/mm/mremap.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/mremap.c
---- linux-2.6.36.2/mm/mremap.c 2010-07-07 18:31:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/mremap.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/mremap.c linux-2.6.37-vs2.3.0.37-rc1/mm/mremap.c
+--- linux-2.6.37/mm/mremap.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/mremap.c 2010-11-23 02:09:41.000000000 +0100
@@ -19,6 +19,7 @@
#include <linux/security.h>
#include <linux/syscalls.h>
#include <asm/uaccess.h>
#include <asm/cacheflush.h>
-diff -NurpP --minimal linux-2.6.36.2/mm/oom_kill.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/oom_kill.c
---- linux-2.6.36.2/mm/oom_kill.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/oom_kill.c 2010-10-28 19:36:06.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/oom_kill.c linux-2.6.37-vs2.3.0.37-rc1/mm/oom_kill.c
+--- linux-2.6.37/mm/oom_kill.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/oom_kill.c 2010-11-23 02:09:41.000000000 +0100
@@ -31,6 +31,9 @@
#include <linux/memcontrol.h>
#include <linux/mempolicy.h>
/* When mem_cgroup_out_of_memory() and p is not member of the group */
if (mem && !task_in_mem_cgroup(p, mem))
return true;
-@@ -209,6 +219,18 @@ unsigned int oom_badness(struct task_str
+@@ -210,6 +220,18 @@ unsigned int oom_badness(struct task_str
points += p->signal->oom_score_adj;
/*
* Never return 0 for an eligible task that may be killed since it's
* possible that no single user task uses more than 0.1% of memory and
* no single admin tasks uses more than 3.0%.
-@@ -407,8 +429,8 @@ static int oom_kill_task(struct task_str
- if (!p)
- return 1;
+@@ -414,8 +436,8 @@ static int oom_kill_task(struct task_str
+ /* mm cannot be safely dereferenced after task_unlock(p) */
+ mm = p->mm;
- pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n",
- task_pid_nr(p), p->comm, K(p->mm->total_vm),
K(get_mm_counter(p->mm, MM_ANONPAGES)),
K(get_mm_counter(p->mm, MM_FILEPAGES)));
task_unlock(p);
-@@ -452,8 +474,8 @@ static int oom_kill_process(struct task_
+@@ -477,8 +499,8 @@ static int oom_kill_process(struct task_
}
task_lock(p);
task_unlock(p);
/*
-@@ -542,6 +564,8 @@ int unregister_oom_notifier(struct notif
+@@ -567,6 +589,8 @@ int unregister_oom_notifier(struct notif
}
EXPORT_SYMBOL_GPL(unregister_oom_notifier);
/*
* Try to acquire the OOM killer lock for the zones in zonelist. Returns zero
* if a parallel OOM killing is already taking place that includes a zone in
-@@ -701,7 +725,12 @@ retry:
+@@ -726,7 +750,12 @@ retry:
if (!p) {
dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
read_unlock(&tasklist_lock);
}
if (oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-diff -NurpP --minimal linux-2.6.36.2/mm/page_alloc.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/page_alloc.c
---- linux-2.6.36.2/mm/page_alloc.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/page_alloc.c 2010-12-13 22:09:27.000000000 +0100
-@@ -52,6 +52,8 @@
+diff -NurpP --minimal linux-2.6.37/mm/page_alloc.c linux-2.6.37-vs2.3.0.37-rc1/mm/page_alloc.c
+--- linux-2.6.37/mm/page_alloc.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/page_alloc.c 2011-01-05 22:30:43.000000000 +0100
+@@ -53,6 +53,8 @@
#include <linux/compaction.h>
#include <trace/events/kmem.h>
#include <linux/ftrace_event.h>
#include <asm/tlbflush.h>
#include <asm/div64.h>
-@@ -2334,6 +2336,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -2335,6 +2337,9 @@ void si_meminfo(struct sysinfo *val)
val->totalhigh = totalhigh_pages;
val->freehigh = nr_free_highpages();
val->mem_unit = PAGE_SIZE;
}
EXPORT_SYMBOL(si_meminfo);
-@@ -2354,6 +2359,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2355,6 +2360,9 @@ void si_meminfo_node(struct sysinfo *val
val->freehigh = 0;
#endif
val->mem_unit = PAGE_SIZE;
}
#endif
-diff -NurpP --minimal linux-2.6.36.2/mm/rmap.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/rmap.c
---- linux-2.6.36.2/mm/rmap.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/rmap.c 2010-10-21 13:19:11.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/rmap.c linux-2.6.37-vs2.3.0.37-rc1/mm/rmap.c
+--- linux-2.6.37/mm/rmap.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/rmap.c 2010-11-23 02:09:41.000000000 +0100
@@ -57,6 +57,7 @@
#include <linux/mmu_notifier.h>
#include <linux/migrate.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-2.6.36.2/mm/shmem.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/shmem.c
---- linux-2.6.36.2/mm/shmem.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/shmem.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1815,7 +1815,7 @@ static int shmem_statfs(struct dentry *d
+diff -NurpP --minimal linux-2.6.37/mm/shmem.c linux-2.6.37-vs2.3.0.37-rc1/mm/shmem.c
+--- linux-2.6.37/mm/shmem.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/shmem.c 2010-11-23 02:09:41.000000000 +0100
+@@ -1816,7 +1816,7 @@ static int shmem_statfs(struct dentry *d
{
struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
buf->f_bsize = PAGE_CACHE_SIZE;
buf->f_namelen = NAME_MAX;
if (sbinfo->max_blocks) {
-@@ -2377,7 +2377,7 @@ int shmem_fill_super(struct super_block
+@@ -2378,7 +2378,7 @@ int shmem_fill_super(struct super_block
sb->s_maxbytes = SHMEM_MAX_BYTES;
sb->s_blocksize = PAGE_CACHE_SIZE;
sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
sb->s_op = &shmem_ops;
sb->s_time_gran = 1;
#ifdef CONFIG_TMPFS_POSIX_ACL
-diff -NurpP --minimal linux-2.6.36.2/mm/slab.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/slab.c
---- linux-2.6.36.2/mm/slab.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/slab.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/slab.c linux-2.6.37-vs2.3.0.37-rc1/mm/slab.c
+--- linux-2.6.37/mm/slab.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/slab.c 2010-11-23 02:09:41.000000000 +0100
@@ -407,6 +407,8 @@ static void kmem_list3_init(struct kmem_
#define STATS_INC_FREEMISS(x) do { } while (0)
#endif
kmemcheck_slab_free(cachep, objp, obj_size(cachep));
-diff -NurpP --minimal linux-2.6.36.2/mm/slab_vs.h linux-2.6.36.2-vs2.3.0.36.38.2/mm/slab_vs.h
---- linux-2.6.36.2/mm/slab_vs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/slab_vs.h 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/mm/slab_vs.h linux-2.6.37-vs2.3.0.37-rc1/mm/slab_vs.h
+--- linux-2.6.37/mm/slab_vs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/slab_vs.h 2010-11-23 02:09:41.000000000 +0100
@@ -0,0 +1,29 @@
+
+#include <linux/vserver/context.h>
+ atomic_sub(cachep->buffer_size, &vxi->cacct.slab[what]);
+}
+
-diff -NurpP --minimal linux-2.6.36.2/mm/swapfile.c linux-2.6.36.2-vs2.3.0.36.38.2/mm/swapfile.c
---- linux-2.6.36.2/mm/swapfile.c 2010-10-21 13:07:57.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/mm/swapfile.c 2010-10-21 13:09:36.000000000 +0200
-@@ -35,6 +35,8 @@
+diff -NurpP --minimal linux-2.6.37/mm/swapfile.c linux-2.6.37-vs2.3.0.37-rc1/mm/swapfile.c
+--- linux-2.6.37/mm/swapfile.c 2011-01-05 21:50:40.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/mm/swapfile.c 2010-11-23 02:09:41.000000000 +0100
+@@ -36,6 +36,8 @@
#include <asm/tlbflush.h>
#include <linux/swapops.h>
#include <linux/page_cgroup.h>
static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
unsigned char);
-@@ -1747,6 +1749,16 @@ static int swap_show(struct seq_file *sw
+@@ -1773,6 +1775,16 @@ static int swap_show(struct seq_file *sw
if (si == SEQ_START_TOKEN) {
seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n");
return 0;
}
-@@ -2131,6 +2143,8 @@ void si_swapinfo(struct sysinfo *val)
+@@ -2178,6 +2190,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);
}
/*
-diff -NurpP --minimal linux-2.6.36.2/net/core/dev.c linux-2.6.36.2-vs2.3.0.36.38.2/net/core/dev.c
---- linux-2.6.36.2/net/core/dev.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/core/dev.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/net/core/dev.c linux-2.6.37-vs2.3.0.37-rc1/net/core/dev.c
+--- linux-2.6.37/net/core/dev.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/core/dev.c 2010-11-23 02:09:41.000000000 +0100
@@ -127,6 +127,7 @@
#include <linux/in.h>
#include <linux/jhash.h>
#include <linux/random.h>
+#include <linux/vs_inet.h>
#include <trace/events/napi.h>
- #include <linux/pci.h>
-
-@@ -607,7 +608,8 @@ struct net_device *__dev_get_by_name(str
+ #include <trace/events/net.h>
+ #include <trace/events/skb.h>
+@@ -608,7 +609,8 @@ struct net_device *__dev_get_by_name(str
struct hlist_head *head = dev_name_hash(net, name);
hlist_for_each_entry(dev, p, head, name_hlist)
return dev;
return NULL;
-@@ -633,7 +635,8 @@ struct net_device *dev_get_by_name_rcu(s
+@@ -634,7 +636,8 @@ struct net_device *dev_get_by_name_rcu(s
struct hlist_head *head = dev_name_hash(net, name);
hlist_for_each_entry_rcu(dev, p, head, name_hlist)
return dev;
return NULL;
-@@ -684,7 +687,8 @@ struct net_device *__dev_get_by_index(st
+@@ -685,7 +688,8 @@ struct net_device *__dev_get_by_index(st
struct hlist_head *head = dev_index_hash(net, ifindex);
hlist_for_each_entry(dev, p, head, index_hlist)
return dev;
return NULL;
-@@ -709,7 +713,8 @@ struct net_device *dev_get_by_index_rcu(
+@@ -710,7 +714,8 @@ struct net_device *dev_get_by_index_rcu(
struct hlist_head *head = dev_index_hash(net, ifindex);
hlist_for_each_entry_rcu(dev, p, head, index_hlist)
return dev;
return NULL;
-@@ -762,10 +767,12 @@ struct net_device *dev_getbyhwaddr(struc
+@@ -763,10 +768,12 @@ struct net_device *dev_getbyhwaddr(struc
ASSERT_RTNL();
return NULL;
}
-@@ -776,9 +783,11 @@ struct net_device *__dev_getfirstbyhwtyp
+@@ -777,9 +784,11 @@ struct net_device *__dev_getfirstbyhwtyp
struct net_device *dev;
ASSERT_RTNL();
return NULL;
}
-@@ -896,6 +905,8 @@ static int __dev_alloc_name(struct net *
+@@ -897,6 +906,8 @@ static int __dev_alloc_name(struct net *
continue;
if (i < 0 || i >= max_netdevices)
continue;
/* avoid cases where sscanf is not exact inverse of printf */
snprintf(buf, IFNAMSIZ, name, i);
-@@ -3668,6 +3679,8 @@ static int dev_ifconf(struct net *net, c
+@@ -3746,6 +3757,8 @@ static int dev_ifconf(struct net *net, c
total = 0;
for_each_netdev(net, dev) {
for (i = 0; i < NPROTO; i++) {
if (gifconf_list[i]) {
int done;
-@@ -3739,6 +3752,10 @@ static void dev_seq_printf_stats(struct
+@@ -3817,6 +3830,10 @@ static void dev_seq_printf_stats(struct
struct rtnl_link_stats64 temp;
const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
"%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
dev->name, stats->rx_bytes, stats->rx_packets,
-diff -NurpP --minimal linux-2.6.36.2/net/core/rtnetlink.c linux-2.6.36.2-vs2.3.0.36.38.2/net/core/rtnetlink.c
---- linux-2.6.36.2/net/core/rtnetlink.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/core/rtnetlink.c 2010-10-21 13:09:36.000000000 +0200
-@@ -927,6 +927,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
+diff -NurpP --minimal linux-2.6.37/net/core/rtnetlink.c linux-2.6.37-vs2.3.0.37-rc1/net/core/rtnetlink.c
+--- linux-2.6.37/net/core/rtnetlink.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/core/rtnetlink.c 2010-11-23 02:09:41.000000000 +0100
+@@ -891,6 +891,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
hlist_for_each_entry(dev, node, head, index_hlist) {
if (idx < s_idx)
goto cont;
if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq, 0,
-@@ -1643,6 +1645,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -1607,6 +1609,9 @@ void rtmsg_ifinfo(int type, struct net_d
struct sk_buff *skb;
int err = -ENOBUFS;
skb = nlmsg_new(if_nlmsg_size(dev), GFP_KERNEL);
if (skb == NULL)
goto errout;
-diff -NurpP --minimal linux-2.6.36.2/net/core/sock.c linux-2.6.36.2-vs2.3.0.36.38.2/net/core/sock.c
---- linux-2.6.36.2/net/core/sock.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/core/sock.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/core/sock.c linux-2.6.37-vs2.3.0.37-rc1/net/core/sock.c
+--- linux-2.6.37/net/core/sock.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/core/sock.c 2011-01-05 22:30:43.000000000 +0100
@@ -127,6 +127,10 @@
#include <net/cls_cgroup.h>
#ifdef CONFIG_INET
#include <net/tcp.h>
-@@ -1046,6 +1050,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1069,6 +1073,8 @@ static struct sock *sk_prot_alloc(struct
goto out_free_sec;
sk_tx_queue_clear(sk);
}
return sk;
-@@ -1142,6 +1148,11 @@ static void __sk_free(struct sock *sk)
+@@ -1168,6 +1174,11 @@ static void __sk_free(struct sock *sk)
put_cred(sk->sk_peer_cred);
put_pid(sk->sk_peer_pid);
put_net(sock_net(sk));
sk_prot_free(sk->sk_prot_creator, sk);
}
-@@ -1189,6 +1200,8 @@ struct sock *sk_clone(const struct sock
+@@ -1215,6 +1226,8 @@ struct sock *sk_clone(const struct sock
/* SANITY */
get_net(sock_net(newsk));
sk_node_init(&newsk->sk_node);
sock_lock_init(newsk);
bh_lock_sock(newsk);
-@@ -1244,6 +1257,12 @@ struct sock *sk_clone(const struct sock
+@@ -1270,6 +1283,12 @@ struct sock *sk_clone(const struct sock
smp_wmb();
atomic_set(&newsk->sk_refcnt, 2);
/*
* Increment the counter in the same struct proto as the master
* sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -1986,6 +2005,12 @@ void sock_init_data(struct socket *sock,
+@@ -2016,6 +2035,12 @@ void sock_init_data(struct socket *sock,
sk->sk_stamp = ktime_set(-1L, 0);
/*
* Before updating sk_refcnt, we must commit prior changes to memory
* (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/af_inet.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/af_inet.c
---- linux-2.6.36.2/net/ipv4/af_inet.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/af_inet.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/af_inet.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/af_inet.c
+--- linux-2.6.37/net/ipv4/af_inet.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/af_inet.c 2010-11-23 02:09:41.000000000 +0100
@@ -116,6 +116,7 @@
#ifdef CONFIG_IP_MROUTE
#include <linux/mroute.h>
/* The inetsw table contains everything that inet_create needs to
-@@ -327,9 +328,13 @@ lookup_protocol:
+@@ -325,9 +326,13 @@ lookup_protocol:
}
err = -EPERM;
err = -EAFNOSUPPORT;
if (!inet_netns_ok(net, protocol))
goto out_rcu_unlock;
-@@ -453,6 +458,7 @@ int inet_bind(struct socket *sock, struc
+@@ -451,6 +456,7 @@ int inet_bind(struct socket *sock, struc
struct sockaddr_in *addr = (struct sockaddr_in *)uaddr;
struct sock *sk = sock->sk;
struct inet_sock *inet = inet_sk(sk);
unsigned short snum;
int chk_addr_ret;
int err;
-@@ -466,7 +472,11 @@ int inet_bind(struct socket *sock, struc
+@@ -464,7 +470,11 @@ int inet_bind(struct socket *sock, struc
if (addr_len < sizeof(struct sockaddr_in))
goto out;
/* Not specified by any standard per-se, however it breaks too
* many applications when removed. It is unfortunate since
-@@ -478,7 +488,7 @@ int inet_bind(struct socket *sock, struc
+@@ -476,7 +486,7 @@ int inet_bind(struct socket *sock, struc
err = -EADDRNOTAVAIL;
if (!sysctl_ip_nonlocal_bind &&
!(inet->freebind || inet->transparent) &&
chk_addr_ret != RTN_LOCAL &&
chk_addr_ret != RTN_MULTICAST &&
chk_addr_ret != RTN_BROADCAST)
-@@ -503,7 +513,7 @@ int inet_bind(struct socket *sock, struc
+@@ -501,7 +511,7 @@ int inet_bind(struct socket *sock, struc
if (sk->sk_state != TCP_CLOSE || inet->inet_num)
goto out_release_sock;
if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
inet->inet_saddr = 0; /* Use device */
-@@ -705,11 +715,13 @@ int inet_getname(struct socket *sock, st
+@@ -703,11 +713,13 @@ int inet_getname(struct socket *sock, st
peer == 1))
return -ENOTCONN;
sin->sin_port = inet->inet_dport;
sin->sin_port = inet->inet_sport;
sin->sin_addr.s_addr = addr;
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/devinet.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/devinet.c
---- linux-2.6.36.2/net/ipv4/devinet.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/devinet.c 2010-10-21 13:09:36.000000000 +0200
-@@ -417,6 +417,7 @@ struct in_device *inetdev_by_index(struc
+diff -NurpP --minimal linux-2.6.37/net/ipv4/devinet.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/devinet.c
+--- linux-2.6.37/net/ipv4/devinet.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/devinet.c 2010-11-23 02:09:41.000000000 +0100
+@@ -420,6 +420,7 @@ struct in_device *inetdev_by_index(struc
}
EXPORT_SYMBOL(inetdev_by_index);
/* Called only from RTNL semaphored context. No locks. */
struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
-@@ -659,6 +660,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -660,6 +661,8 @@ int devinet_ioctl(struct net *net, unsig
in_dev = __in_dev_get_rtnl(dev);
if (in_dev) {
if (tryaddrmatch) {
/* Matthias Andree */
/* compare label and address (4.4BSD style) */
-@@ -667,6 +670,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -668,6 +671,8 @@ int devinet_ioctl(struct net *net, unsig
This is checked above. */
for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
ifap = &ifa->ifa_next) {
if (!strcmp(ifr.ifr_name, ifa->ifa_label) &&
sin_orig.sin_addr.s_addr ==
ifa->ifa_address) {
-@@ -679,9 +684,12 @@ int devinet_ioctl(struct net *net, unsig
+@@ -680,9 +685,12 @@ int devinet_ioctl(struct net *net, unsig
comparing just the label */
if (!ifa) {
for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
}
}
-@@ -833,6 +841,8 @@ static int inet_gifconf(struct net_devic
+@@ -834,6 +842,8 @@ static int inet_gifconf(struct net_devic
goto out;
for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
if (!buf) {
done += sizeof(ifr);
continue;
-@@ -1182,6 +1192,7 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1183,6 +1193,7 @@ static int inet_dump_ifaddr(struct sk_bu
struct net_device *dev;
struct in_device *in_dev;
struct in_ifaddr *ifa;
struct hlist_head *head;
struct hlist_node *node;
-@@ -1204,6 +1215,8 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1205,6 +1216,8 @@ static int inet_dump_ifaddr(struct sk_bu
for (ifa = in_dev->ifa_list, ip_idx = 0; ifa;
ifa = ifa->ifa_next, ip_idx++) {
if (ip_idx < s_ip_idx)
continue;
if (inet_fill_ifaddr(skb, ifa,
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/fib_hash.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/fib_hash.c
---- linux-2.6.36.2/net/ipv4/fib_hash.c 2010-07-07 18:31:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/fib_hash.c 2010-10-21 13:09:36.000000000 +0200
-@@ -1017,7 +1017,7 @@ static int fib_seq_show(struct seq_file
+diff -NurpP --minimal linux-2.6.37/net/ipv4/fib_hash.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/fib_hash.c
+--- linux-2.6.37/net/ipv4/fib_hash.c 2011-01-05 21:50:41.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/fib_hash.c 2010-11-23 02:09:41.000000000 +0100
+@@ -1080,7 +1080,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);
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.36.2/net/ipv4/inet_connection_sock.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_connection_sock.c
---- linux-2.6.36.2/net/ipv4/inet_connection_sock.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_connection_sock.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/inet_connection_sock.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_connection_sock.c
+--- linux-2.6.37/net/ipv4/inet_connection_sock.c 2010-10-21 13:07:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_connection_sock.c 2010-11-23 02:09:41.000000000 +0100
@@ -52,10 +52,40 @@ void inet_get_local_port_range(int *low,
}
EXPORT_SYMBOL(inet_get_local_port_range);
break;
}
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/inet_diag.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_diag.c
---- linux-2.6.36.2/net/ipv4/inet_diag.c 2010-07-07 18:31:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_diag.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/inet_diag.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_diag.c
+--- linux-2.6.37/net/ipv4/inet_diag.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_diag.c 2010-11-23 02:09:41.000000000 +0100
@@ -33,6 +33,8 @@
#include <linux/stddef.h>
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);
-@@ -505,6 +510,7 @@ static int inet_csk_diag_dump(struct soc
+@@ -507,6 +512,7 @@ static int inet_csk_diag_dump(struct soc
} else
#endif
{
entry.saddr = &inet->inet_rcv_saddr;
entry.daddr = &inet->inet_daddr;
}
-@@ -541,6 +547,7 @@ static int inet_twsk_diag_dump(struct in
+@@ -545,6 +551,7 @@ static int inet_twsk_diag_dump(struct in
} else
#endif
{
entry.saddr = &tw->tw_rcv_saddr;
entry.daddr = &tw->tw_daddr;
}
-@@ -587,8 +594,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -591,8 +598,8 @@ static int inet_diag_fill_req(struct sk_
r->id.idiag_sport = inet->inet_sport;
r->id.idiag_dport = ireq->rmt_port;
r->idiag_expires = jiffies_to_msecs(tmo);
r->idiag_rqueue = 0;
r->idiag_wqueue = 0;
-@@ -658,6 +665,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -663,6 +670,7 @@ static int inet_diag_dump_reqs(struct sk
continue;
if (bc) {
entry.saddr =
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
(entry.family == AF_INET6) ?
-@@ -728,6 +736,8 @@ static int inet_diag_dump(struct sk_buff
+@@ -733,6 +741,8 @@ static int inet_diag_dump(struct sk_buff
sk_nulls_for_each(sk, node, &ilb->head) {
struct inet_sock *inet = inet_sk(sk);
if (num < s_num) {
num++;
continue;
-@@ -794,6 +804,8 @@ skip_listen_ht:
+@@ -799,6 +809,8 @@ skip_listen_ht:
sk_nulls_for_each(sk, node, &head->chain) {
struct inet_sock *inet = inet_sk(sk);
if (num < s_num)
goto next_normal;
if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -818,6 +830,8 @@ next_normal:
+@@ -823,6 +835,8 @@ next_normal:
inet_twsk_for_each(tw, node,
&head->twchain) {
if (num < s_num)
goto next_dying;
if (r->id.idiag_sport != tw->tw_sport &&
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/inet_hashtables.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_hashtables.c
---- linux-2.6.36.2/net/ipv4/inet_hashtables.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/inet_hashtables.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/inet_hashtables.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_hashtables.c
+--- linux-2.6.37/net/ipv4/inet_hashtables.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/inet_hashtables.c 2011-01-05 22:30:43.000000000 +0100
@@ -21,6 +21,7 @@
#include <net/inet_connection_sock.h>
#include <net/ip.h>
/*
-@@ -132,6 +133,11 @@ static inline int compute_score(struct s
+@@ -155,6 +156,11 @@ static inline int compute_score(struct s
if (rcv_saddr != daddr)
return -1;
score += 2;
}
if (sk->sk_bound_dev_if) {
if (sk->sk_bound_dev_if != dif)
-@@ -149,7 +155,6 @@ static inline int compute_score(struct s
+@@ -172,7 +178,6 @@ static inline int compute_score(struct s
* wildcarded during the search since they can never be otherwise.
*/
struct sock *__inet_lookup_listener(struct net *net,
struct inet_hashinfo *hashinfo,
const __be32 daddr, const unsigned short hnum,
-@@ -172,6 +177,7 @@ begin:
+@@ -195,6 +200,7 @@ begin:
hiscore = score;
}
}
/*
* 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.36.2/net/ipv4/netfilter/nf_nat_helper.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/netfilter/nf_nat_helper.c
---- linux-2.6.36.2/net/ipv4/netfilter/nf_nat_helper.c 2010-07-07 18:31:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/netfilter/nf_nat_helper.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/netfilter/nf_nat_helper.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/netfilter/nf_nat_helper.c
+--- linux-2.6.37/net/ipv4/netfilter/nf_nat_helper.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/netfilter/nf_nat_helper.c 2010-11-23 02:09:41.000000000 +0100
@@ -20,6 +20,7 @@
#include <net/route.h>
#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.36.2/net/ipv4/netfilter.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/netfilter.c
---- linux-2.6.36.2/net/ipv4/netfilter.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/netfilter.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/netfilter.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/netfilter.c
+--- linux-2.6.37/net/ipv4/netfilter.c 2010-10-21 13:07:58.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/netfilter.c 2010-11-23 02:09:41.000000000 +0100
@@ -5,7 +5,7 @@
#include <linux/ip.h>
#include <linux/skbuff.h>
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/raw.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/raw.c
---- linux-2.6.36.2/net/ipv4/raw.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/raw.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/raw.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/raw.c
+--- linux-2.6.37/net/ipv4/raw.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/raw.c 2010-11-23 02:09:41.000000000 +0100
@@ -116,7 +116,7 @@ static struct sock *__raw_v4_lookup(stru
if (net_eq(sock_net(sk), net) && inet->inet_num == num &&
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.36.2/net/ipv4/tcp.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp.c
---- linux-2.6.36.2/net/ipv4/tcp.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/tcp.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp.c
+--- linux-2.6.37/net/ipv4/tcp.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp.c 2011-01-05 22:30:43.000000000 +0100
@@ -266,6 +266,7 @@
#include <linux/crypto.h>
#include <linux/time.h>
#include <net/icmp.h>
#include <net/tcp.h>
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/tcp_ipv4.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp_ipv4.c
---- linux-2.6.36.2/net/ipv4/tcp_ipv4.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp_ipv4.c 2010-10-21 13:09:36.000000000 +0200
-@@ -2016,6 +2016,12 @@ static void *listening_get_next(struct s
+diff -NurpP --minimal linux-2.6.37/net/ipv4/tcp_ipv4.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp_ipv4.c
+--- linux-2.6.37/net/ipv4/tcp_ipv4.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp_ipv4.c 2011-01-05 22:33:32.000000000 +0100
+@@ -2018,6 +2018,12 @@ static void *listening_get_next(struct s
req = req->dl_next;
while (1) {
while (req) {
if (req->rsk_ops->family == st->family) {
cur = req;
goto out;
-@@ -2041,6 +2047,10 @@ get_req:
+@@ -2043,6 +2049,10 @@ get_req:
}
get_sk:
sk_nulls_for_each_from(sk, node) {
+ sk, sk->sk_nid, nx_current_nid());
+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
+ continue;
- if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) {
- cur = sk;
- goto out;
-@@ -2115,6 +2125,11 @@ static void *established_get_first(struc
+ if (!net_eq(sock_net(sk), net))
+ continue;
+ if (sk->sk_family == st->family) {
+@@ -2119,6 +2129,11 @@ static void *established_get_first(struc
spin_lock_bh(lock);
sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
if (sk->sk_family != st->family ||
!net_eq(sock_net(sk), net)) {
continue;
-@@ -2125,6 +2140,11 @@ static void *established_get_first(struc
+@@ -2129,6 +2144,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) {
if (tw->tw_family != st->family ||
!net_eq(twsk_net(tw), net)) {
continue;
-@@ -2154,7 +2174,9 @@ static void *established_get_next(struct
+@@ -2158,7 +2178,9 @@ static void *established_get_next(struct
tw = cur;
tw = tw_next(tw);
get_tw:
tw = tw_next(tw);
}
if (tw) {
-@@ -2178,6 +2200,11 @@ get_tw:
+@@ -2182,6 +2204,11 @@ get_tw:
sk = sk_nulls_next(sk);
sk_nulls_for_each_from(sk, node) {
if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
goto found;
}
-@@ -2387,9 +2414,9 @@ static void get_openreq4(struct sock *sk
+@@ -2391,9 +2418,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,
ntohs(ireq->rmt_port),
TCP_SYN_RECV,
0, 0, /* could print option size, but that is af dependent. */
-@@ -2441,7 +2468,10 @@ static void get_tcp4_sock(struct sock *s
+@@ -2445,7 +2472,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",
tp->write_seq - tp->snd_una,
rx_queue,
timer_active,
-@@ -2476,7 +2506,10 @@ static void get_timewait4_sock(struct in
+@@ -2480,7 +2510,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",
3, jiffies_to_clock_t(ttd), 0, 0, 0, 0,
atomic_read(&tw->tw_refcnt), tw, len);
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv4/tcp_minisocks.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp_minisocks.c
---- linux-2.6.36.2/net/ipv4/tcp_minisocks.c 2010-10-21 13:07:58.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/tcp_minisocks.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/tcp_minisocks.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp_minisocks.c
+--- linux-2.6.37/net/ipv4/tcp_minisocks.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/tcp_minisocks.c 2011-01-05 22:30:43.000000000 +0100
@@ -23,6 +23,9 @@
#include <linux/slab.h>
#include <linux/sysctl.h>
#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.36.2/net/ipv4/udp.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/udp.c
---- linux-2.6.36.2/net/ipv4/udp.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv4/udp.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv4/udp.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/udp.c
+--- linux-2.6.37/net/ipv4/udp.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv4/udp.c 2011-01-05 22:30:43.000000000 +0100
@@ -296,14 +296,7 @@ fail:
}
EXPORT_SYMBOL(udp_lib_get_port);
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
}
if (inet->cmsg_flags)
-@@ -1923,6 +1934,8 @@ static struct sock *udp_get_first(struct
+@@ -1924,6 +1935,8 @@ static struct sock *udp_get_first(struct
sk_nulls_for_each(sk, node, &hslot->head) {
if (!net_eq(sock_net(sk), net))
continue;
if (sk->sk_family == state->family)
goto found;
}
-@@ -1940,7 +1953,9 @@ static struct sock *udp_get_next(struct
+@@ -1941,7 +1954,9 @@ static struct sock *udp_get_next(struct
do {
sk = sk_nulls_next(sk);
if (!sk) {
if (state->bucket <= state->udp_table->mask)
-@@ -2047,7 +2062,10 @@ static void udp4_format_sock(struct sock
+@@ -2048,7 +2063,10 @@ static void udp4_format_sock(struct sock
seq_printf(f, "%5d: %08X:%04X %08X:%04X"
" %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d%n",
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.36.2/net/ipv6/addrconf.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/addrconf.c
---- linux-2.6.36.2/net/ipv6/addrconf.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/addrconf.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/addrconf.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/addrconf.c
+--- linux-2.6.37/net/ipv6/addrconf.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/addrconf.c 2011-01-05 22:30:43.000000000 +0100
@@ -87,6 +87,8 @@
#include <linux/proc_fs.h>
/* Set to 3 to get tracing... */
#define ACONF_DEBUG 2
-@@ -1119,7 +1121,7 @@ out:
+@@ -1124,7 +1126,7 @@ out:
int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
const struct in6_addr *daddr, unsigned int prefs,
{
struct ipv6_saddr_score scores[2],
*score = &scores[0], *hiscore = &scores[1];
-@@ -1191,6 +1193,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1196,6 +1198,8 @@ int ipv6_dev_get_saddr(struct net *net,
dev->name);
continue;
}
score->rule = -1;
bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -3077,7 +3081,10 @@ static void if6_seq_stop(struct seq_file
+@@ -3079,7 +3083,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;
err = inet6_fill_ifacaddr(skb, ifaca,
NETLINK_CB(cb->skb).pid,
cb->nlh->nlmsg_seq,
-@@ -3973,6 +3991,11 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -3975,6 +3993,11 @@ static int inet6_dump_ifinfo(struct sk_b
struct inet6_dev *idev;
struct hlist_head *head;
struct hlist_node *node;
s_h = cb->args[0];
s_idx = cb->args[1];
-@@ -3984,6 +4007,8 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -3986,6 +4009,8 @@ static int inet6_dump_ifinfo(struct sk_b
hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
if (idx < s_idx)
goto cont;
idev = __in6_dev_get(dev);
if (!idev)
goto cont;
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/af_inet6.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/af_inet6.c
---- linux-2.6.36.2/net/ipv6/af_inet6.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/af_inet6.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/af_inet6.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/af_inet6.c
+--- linux-2.6.37/net/ipv6/af_inet6.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/af_inet6.c 2010-11-23 02:09:41.000000000 +0100
@@ -42,6 +42,8 @@
#include <linux/netdevice.h>
#include <linux/icmpv6.h>
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-@@ -353,6 +374,9 @@ int inet6_bind(struct socket *sock, stru
+@@ -354,6 +375,9 @@ int inet6_bind(struct socket *sock, stru
}
}
inet->inet_rcv_saddr = v4addr;
inet->inet_saddr = v4addr;
-@@ -454,9 +478,11 @@ int inet6_getname(struct socket *sock, s
+@@ -455,9 +479,11 @@ int inet6_getname(struct socket *sock, s
return -ENOTCONN;
sin->sin6_port = inet->inet_dport;
ipv6_addr_copy(&sin->sin6_addr, &np->daddr);
if (ipv6_addr_any(&np->rcv_saddr))
ipv6_addr_copy(&sin->sin6_addr, &np->saddr);
else
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/fib6_rules.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/fib6_rules.c
---- linux-2.6.36.2/net/ipv6/fib6_rules.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/fib6_rules.c 2010-10-21 13:09:36.000000000 +0200
-@@ -89,7 +89,7 @@ static int fib6_rule_action(struct fib_r
+diff -NurpP --minimal linux-2.6.37/net/ipv6/fib6_rules.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/fib6_rules.c
+--- linux-2.6.37/net/ipv6/fib6_rules.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/fib6_rules.c 2010-11-23 02:09:41.000000000 +0100
+@@ -88,7 +88,7 @@ static int fib6_rule_action(struct fib_r
ip6_dst_idev(&rt->dst)->dev,
&flp->fl6_dst,
rt6_flags2srcprefs(flags),
goto again;
if (!ipv6_prefix_equal(&saddr, &r->src.addr,
r->src.plen))
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/inet6_hashtables.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/inet6_hashtables.c
---- linux-2.6.36.2/net/ipv6/inet6_hashtables.c 2010-02-25 11:52:10.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/inet6_hashtables.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/inet6_hashtables.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/inet6_hashtables.c
+--- linux-2.6.37/net/ipv6/inet6_hashtables.c 2010-02-25 11:52:10.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/inet6_hashtables.c 2010-11-23 02:09:41.000000000 +0100
@@ -16,6 +16,7 @@
#include <linux/module.h>
}
if (sk->sk_bound_dev_if) {
if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/ip6_output.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/ip6_output.c
---- linux-2.6.36.2/net/ipv6/ip6_output.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/ip6_output.c 2010-10-21 13:09:36.000000000 +0200
-@@ -938,7 +938,7 @@ static int ip6_dst_lookup_tail(struct so
+diff -NurpP --minimal linux-2.6.37/net/ipv6/ip6_output.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/ip6_output.c
+--- linux-2.6.37/net/ipv6/ip6_output.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/ip6_output.c 2011-01-05 22:30:43.000000000 +0100
+@@ -930,7 +930,7 @@ static int ip6_dst_lookup_tail(struct so
err = ipv6_dev_get_saddr(net, ip6_dst_idev(*dst)->dev,
&fl->fl6_dst,
sk ? inet6_sk(sk)->srcprefs : 0,
if (err)
goto out_err_release;
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/Kconfig linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/Kconfig
---- linux-2.6.36.2/net/ipv6/Kconfig 2010-08-02 16:52:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/Kconfig 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/Kconfig linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/Kconfig
+--- linux-2.6.37/net/ipv6/Kconfig 2010-08-02 16:52:59.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/Kconfig 2010-11-23 02:09:41.000000000 +0100
@@ -4,8 +4,8 @@
# IPv6 as module will cause a CRASH if you try to unload it
---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.36.2/net/ipv6/ndisc.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/ndisc.c
---- linux-2.6.36.2/net/ipv6/ndisc.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/ndisc.c 2010-10-21 13:09:36.000000000 +0200
-@@ -591,7 +591,7 @@ static void ndisc_send_na(struct net_dev
+diff -NurpP --minimal linux-2.6.37/net/ipv6/ndisc.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/ndisc.c
+--- linux-2.6.37/net/ipv6/ndisc.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/ndisc.c 2010-11-23 02:09:41.000000000 +0100
+@@ -595,7 +595,7 @@ static void ndisc_send_na(struct net_dev
} else {
if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs,
return;
src_addr = &tmpaddr;
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/raw.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/raw.c
---- linux-2.6.36.2/net/ipv6/raw.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/raw.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/raw.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/raw.c
+--- linux-2.6.37/net/ipv6/raw.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/raw.c 2010-11-23 02:09:41.000000000 +0100
@@ -30,6 +30,7 @@
#include <linux/icmpv6.h>
#include <linux/netfilter.h>
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/route.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/route.c
---- linux-2.6.36.2/net/ipv6/route.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/route.c 2010-10-21 13:09:36.000000000 +0200
-@@ -2272,7 +2272,8 @@ static int rt6_fill_node(struct net *net
+diff -NurpP --minimal linux-2.6.37/net/ipv6/route.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/route.c
+--- linux-2.6.37/net/ipv6/route.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/route.c 2011-01-05 22:30:43.000000000 +0100
+@@ -2290,7 +2290,8 @@ static int rt6_fill_node(struct net *net
struct inet6_dev *idev = ip6_dst_idev(&rt->dst);
struct in6_addr saddr_buf;
if (ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,
NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
}
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/tcp_ipv6.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/tcp_ipv6.c
---- linux-2.6.36.2/net/ipv6/tcp_ipv6.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/tcp_ipv6.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/tcp_ipv6.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/tcp_ipv6.c
+--- linux-2.6.37/net/ipv6/tcp_ipv6.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/tcp_ipv6.c 2010-11-23 02:09:41.000000000 +0100
@@ -69,6 +69,7 @@
#include <linux/crypto.h>
addr_type = ipv6_addr_type(&usin->sin6_addr);
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/udp.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/udp.c
---- linux-2.6.36.2/net/ipv6/udp.c 2010-10-21 13:07:59.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/udp.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/udp.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/udp.c
+--- linux-2.6.37/net/ipv6/udp.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/udp.c 2011-01-05 22:30:43.000000000 +0100
@@ -48,13 +48,14 @@
#include <linux/proc_fs.h>
}
if (!ipv6_addr_any(&np->daddr)) {
if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-2.6.36.2/net/ipv6/xfrm6_policy.c linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/xfrm6_policy.c
---- linux-2.6.36.2/net/ipv6/xfrm6_policy.c 2010-08-02 16:53:00.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/ipv6/xfrm6_policy.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/ipv6/xfrm6_policy.c linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/xfrm6_policy.c
+--- linux-2.6.37/net/ipv6/xfrm6_policy.c 2011-01-05 21:50:42.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/ipv6/xfrm6_policy.c 2010-11-23 02:09:41.000000000 +0100
@@ -62,7 +62,7 @@ static int xfrm6_get_saddr(struct net *n
dev = ip6_dst_idev(dst)->dev;
ipv6_dev_get_saddr(dev_net(dev), dev,
dst_release(dst);
return 0;
}
-diff -NurpP --minimal linux-2.6.36.2/net/netlink/af_netlink.c linux-2.6.36.2-vs2.3.0.36.38.2/net/netlink/af_netlink.c
---- linux-2.6.36.2/net/netlink/af_netlink.c 2010-10-21 13:08:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/netlink/af_netlink.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/netfilter/ipvs/ip_vs_xmit.c linux-2.6.37-vs2.3.0.37-rc1/net/netfilter/ipvs/ip_vs_xmit.c
+--- linux-2.6.37/net/netfilter/ipvs/ip_vs_xmit.c 2011-01-05 21:50:43.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/netfilter/ipvs/ip_vs_xmit.c 2011-01-06 00:35:16.000000000 +0100
+@@ -231,7 +231,7 @@ __ip_vs_route_output_v6(struct net *net,
+ return dst;
+ if (ipv6_addr_any(&fl.fl6_src) &&
+ ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev,
+- &fl.fl6_dst, 0, &fl.fl6_src) < 0)
++ &fl.fl6_dst, 0, &fl.fl6_src, NULL) < 0)
+ goto out_err;
+ if (do_xfrm && xfrm_lookup(net, &dst, &fl, NULL, 0) < 0)
+ goto out_err;
+diff -NurpP --minimal linux-2.6.37/net/netlink/af_netlink.c linux-2.6.37-vs2.3.0.37-rc1/net/netlink/af_netlink.c
+--- linux-2.6.37/net/netlink/af_netlink.c 2011-01-05 21:50:43.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/netlink/af_netlink.c 2010-11-23 02:09:41.000000000 +0100
@@ -55,6 +55,9 @@
#include <linux/types.h>
#include <linux/audit.h>
#include <net/net_namespace.h>
#include <net/sock.h>
-@@ -1928,6 +1931,8 @@ static struct sock *netlink_seq_socket_i
+@@ -1912,6 +1915,8 @@ static struct sock *netlink_seq_socket_i
sk_for_each(s, node, &hash->table[j]) {
if (sock_net(s) != seq_file_net(seq))
continue;
if (off == pos) {
iter->link = i;
iter->hash_idx = j;
-@@ -1962,7 +1967,8 @@ static void *netlink_seq_next(struct seq
+@@ -1946,7 +1951,8 @@ static void *netlink_seq_next(struct seq
s = v;
do {
s = sk_next(s);
if (s)
return s;
-@@ -1974,7 +1980,8 @@ static void *netlink_seq_next(struct seq
+@@ -1958,7 +1964,8 @@ static void *netlink_seq_next(struct seq
for (; j <= hash->mask; j++) {
s = sk_head(&hash->table[j]);
s = sk_next(s);
if (s) {
iter->link = i;
-diff -NurpP --minimal linux-2.6.36.2/net/sctp/ipv6.c linux-2.6.36.2-vs2.3.0.36.38.2/net/sctp/ipv6.c
---- linux-2.6.36.2/net/sctp/ipv6.c 2010-08-02 16:53:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/sctp/ipv6.c 2010-10-21 13:09:36.000000000 +0200
-@@ -304,7 +304,8 @@ static void sctp_v6_get_saddr(struct sct
+diff -NurpP --minimal linux-2.6.37/net/sctp/ipv6.c linux-2.6.37-vs2.3.0.37-rc1/net/sctp/ipv6.c
+--- linux-2.6.37/net/sctp/ipv6.c 2011-01-05 21:50:45.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/sctp/ipv6.c 2010-11-23 02:09:41.000000000 +0100
+@@ -306,7 +306,8 @@ static void sctp_v6_get_saddr(struct sct
dst ? ip6_dst_idev(dst)->dev : NULL,
&daddr->v6.sin6_addr,
inet6_sk(&sk->inet.sk)->srcprefs,
SCTP_DEBUG_PRINTK("saddr from ipv6_get_saddr: %pI6\n",
&saddr->v6.sin6_addr);
return;
-diff -NurpP --minimal linux-2.6.36.2/net/socket.c linux-2.6.36.2-vs2.3.0.36.38.2/net/socket.c
---- linux-2.6.36.2/net/socket.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/socket.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/net/socket.c linux-2.6.37-vs2.3.0.37-rc1/net/socket.c
+--- linux-2.6.37/net/socket.c 2011-01-05 21:50:45.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/socket.c 2011-01-05 22:30:44.000000000 +0100
@@ -98,6 +98,10 @@
#include <net/sock.h>
#include <linux/if_tun.h>
#include <linux/ipv6_route.h>
-@@ -551,7 +555,7 @@ static inline int __sock_sendmsg(struct
+@@ -550,7 +554,7 @@ static inline int __sock_sendmsg(struct
struct msghdr *msg, size_t size)
{
struct sock_iocb *si = kiocb_to_siocb(iocb);
sock_update_classid(sock->sk);
-@@ -564,7 +568,22 @@ static inline int __sock_sendmsg(struct
+@@ -563,7 +567,22 @@ static inline int __sock_sendmsg(struct
if (err)
return err;
}
static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-@@ -1159,6 +1190,13 @@ static int __sock_create(struct net *net
+@@ -1174,6 +1205,13 @@ int __sock_create(struct net *net, int f
if (type < 0 || type >= SOCK_MAX)
return -EINVAL;
/* Compatibility.
This uglymoron is moved from INET layer to here to avoid
-@@ -1293,6 +1331,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1309,6 +1347,7 @@ SYSCALL_DEFINE3(socket, int, family, int
if (retval < 0)
goto out;
retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
if (retval < 0)
goto out_release;
-@@ -1334,10 +1373,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1350,10 +1389,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
err = sock_create(family, type, protocol, &sock1);
if (err < 0)
goto out;
err = sock1->ops->socketpair(sock1, sock2);
if (err < 0)
-diff -NurpP --minimal linux-2.6.36.2/net/sunrpc/auth.c linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/auth.c
---- linux-2.6.36.2/net/sunrpc/auth.c 2010-10-21 13:08:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/auth.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/sunrpc/auth.c linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/auth.c
+--- linux-2.6.37/net/sunrpc/auth.c 2011-01-05 21:50:45.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/auth.c 2010-11-23 02:09:41.000000000 +0100
@@ -14,6 +14,7 @@
#include <linux/hash.h>
#include <linux/sunrpc/clnt.h>
};
dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-2.6.36.2/net/sunrpc/auth_unix.c linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/auth_unix.c
---- linux-2.6.36.2/net/sunrpc/auth_unix.c 2010-10-21 13:08:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/auth_unix.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/sunrpc/auth_unix.c linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/auth_unix.c
+--- linux-2.6.37/net/sunrpc/auth_unix.c 2010-10-21 13:08:01.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/auth_unix.c 2010-11-23 02:09:41.000000000 +0100
@@ -12,12 +12,14 @@
#include <linux/module.h>
#include <linux/sunrpc/clnt.h>
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.36.2/net/sunrpc/clnt.c linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/clnt.c
---- linux-2.6.36.2/net/sunrpc/clnt.c 2010-12-13 22:08:59.000000000 +0100
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/sunrpc/clnt.c 2010-12-13 22:09:27.000000000 +0100
+diff -NurpP --minimal linux-2.6.37/net/sunrpc/clnt.c linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/clnt.c
+--- linux-2.6.37/net/sunrpc/clnt.c 2011-01-05 21:50:45.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/sunrpc/clnt.c 2011-01-05 22:30:44.000000000 +0100
@@ -33,6 +33,7 @@
#include <linux/utsname.h>
#include <linux/workqueue.h>
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/rpc_pipe_fs.h>
-@@ -358,6 +359,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
+@@ -359,6 +360,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
if (!(args->flags & RPC_CLNT_CREATE_QUIET))
clnt->cl_chatty = 1;
return clnt;
}
EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-2.6.36.2/net/unix/af_unix.c linux-2.6.36.2-vs2.3.0.36.38.2/net/unix/af_unix.c
---- linux-2.6.36.2/net/unix/af_unix.c 2010-10-21 13:08:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/net/unix/af_unix.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/net/unix/af_unix.c linux-2.6.37-vs2.3.0.37-rc1/net/unix/af_unix.c
+--- linux-2.6.37/net/unix/af_unix.c 2011-01-05 21:50:46.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/net/unix/af_unix.c 2011-01-05 22:30:44.000000000 +0100
@@ -114,6 +114,8 @@
#include <linux/mount.h>
#include <net/checksum.h>
if (u->addr->len == len &&
!memcmp(u->addr->name, sunname, len))
goto found;
-@@ -2148,6 +2152,8 @@ static struct sock *unix_seq_idx(struct
+@@ -2179,6 +2183,8 @@ static struct sock *unix_seq_idx(struct
for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) {
if (sock_net(s) != seq_file_net(seq))
continue;
if (off == pos)
return s;
++off;
-@@ -2172,7 +2178,8 @@ static void *unix_seq_next(struct seq_fi
+@@ -2203,7 +2209,8 @@ static void *unix_seq_next(struct seq_fi
sk = first_unix_socket(&iter->i);
else
sk = next_unix_socket(&iter->i, sk);
sk = next_unix_socket(&iter->i, sk);
return sk;
}
-diff -NurpP --minimal linux-2.6.36.2/scripts/checksyscalls.sh linux-2.6.36.2-vs2.3.0.36.38.2/scripts/checksyscalls.sh
---- linux-2.6.36.2/scripts/checksyscalls.sh 2010-10-21 13:08:01.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/scripts/checksyscalls.sh 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/scripts/checksyscalls.sh linux-2.6.37-vs2.3.0.37-rc1/scripts/checksyscalls.sh
+--- linux-2.6.37/scripts/checksyscalls.sh 2010-10-21 13:08:01.000000000 +0200
++++ linux-2.6.37-vs2.3.0.37-rc1/scripts/checksyscalls.sh 2010-11-23 02:09:41.000000000 +0100
@@ -193,7 +193,6 @@ cat << EOF
#define __IGNORE_afs_syscall
#define __IGNORE_getpmsg
EOF
}
-diff -NurpP --minimal linux-2.6.36.2/security/commoncap.c linux-2.6.36.2-vs2.3.0.36.38.2/security/commoncap.c
---- linux-2.6.36.2/security/commoncap.c 2010-10-21 13:08:02.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/security/commoncap.c 2010-10-21 13:09:36.000000000 +0200
-@@ -28,6 +28,7 @@
+diff -NurpP --minimal linux-2.6.37/security/commoncap.c linux-2.6.37-vs2.3.0.37-rc1/security/commoncap.c
+--- linux-2.6.37/security/commoncap.c 2011-01-05 21:50:47.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/security/commoncap.c 2010-11-23 02:21:20.000000000 +0100
+@@ -27,6 +27,7 @@
+ #include <linux/sched.h>
#include <linux/prctl.h>
#include <linux/securebits.h>
- #include <linux/syslog.h>
-+#include <linux/vs_context.h>
++// #include <linux/vs_context.h>
/*
* If a non-root user executes a setuid-root binary in
-@@ -53,7 +54,7 @@ static void warn_setuid_and_fcaps_mixed(
+@@ -52,7 +53,7 @@ static void warn_setuid_and_fcaps_mixed(
int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
{
return 0;
}
-@@ -63,6 +64,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;
}
EXPORT_SYMBOL(cap_netlink_recv);
/**
-@@ -83,7 +85,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)
{
}
/**
-@@ -571,7 +588,7 @@ int cap_inode_setxattr(struct dentry *de
+@@ -570,7 +587,7 @@ int cap_inode_setxattr(struct dentry *de
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
return -EPERM;
return 0;
}
-@@ -597,7 +614,7 @@ int cap_inode_removexattr(struct dentry
+@@ -596,7 +613,7 @@ int cap_inode_removexattr(struct dentry
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
return -EPERM;
return 0;
}
-@@ -899,7 +916,8 @@ int cap_syslog(int type, bool from_file)
- if (type != SYSLOG_ACTION_OPEN && from_file)
- return 0;
- if ((type != SYSLOG_ACTION_READ_ALL &&
-- type != SYSLOG_ACTION_SIZE_BUFFER) && !capable(CAP_SYS_ADMIN))
-+ type != SYSLOG_ACTION_SIZE_BUFFER) &&
-+ !vx_capable(CAP_SYS_ADMIN, VXC_SYSLOG))
- return -EPERM;
- return 0;
- }
-@@ -951,3 +969,4 @@ int cap_file_mmap(struct file *file, uns
+@@ -929,3 +946,4 @@ int cap_file_mmap(struct file *file, uns
}
return ret;
}
+
-diff -NurpP --minimal linux-2.6.36.2/security/selinux/hooks.c linux-2.6.36.2-vs2.3.0.36.38.2/security/selinux/hooks.c
---- linux-2.6.36.2/security/selinux/hooks.c 2010-10-21 13:08:02.000000000 +0200
-+++ linux-2.6.36.2-vs2.3.0.36.38.2/security/selinux/hooks.c 2010-10-21 13:09:36.000000000 +0200
+diff -NurpP --minimal linux-2.6.37/security/selinux/hooks.c linux-2.6.37-vs2.3.0.37-rc1/security/selinux/hooks.c
+--- linux-2.6.37/security/selinux/hooks.c 2011-01-05 21:50:47.000000000 +0100
++++ linux-2.6.37-vs2.3.0.37-rc1/security/selinux/hooks.c 2010-11-23 02:09:41.000000000 +0100
@@ -64,7 +64,6 @@
#include <linux/dccp.h>
#include <linux/quota.h>