-diff -NurpP --minimal linux-4.9.82/Documentation/vserver/debug.txt linux-4.9.82-vs2.3.9.7/Documentation/vserver/debug.txt
---- linux-4.9.82/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/Documentation/vserver/debug.txt 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/Documentation/vserver/debug.txt linux-4.9/Documentation/vserver/debug.txt
+--- linux-4.9/Documentation/vserver/debug.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/Documentation/vserver/debug.txt 2021-02-24 15:47:45.047741532 +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-4.9.82/arch/alpha/Kconfig linux-4.9.82-vs2.3.9.7/arch/alpha/Kconfig
---- linux-4.9.82/arch/alpha/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/alpha/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/alpha/Kconfig linux-4.9/arch/alpha/Kconfig
+--- linux-4.9/arch/alpha/Kconfig 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/alpha/Kconfig 2021-02-24 15:47:45.037741219 +0100
@@ -743,6 +743,8 @@ config DUMMY_CONSOLE
depends on VGA_HOSE
default y
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/alpha/kernel/systbls.S linux-4.9.82-vs2.3.9.7/arch/alpha/kernel/systbls.S
---- linux-4.9.82/arch/alpha/kernel/systbls.S 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/alpha/kernel/systbls.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/alpha/kernel/systbls.S linux-4.9/arch/alpha/kernel/systbls.S
+--- linux-4.9/arch/alpha/kernel/systbls.S 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/alpha/kernel/systbls.S 2021-02-24 15:47:45.037741219 +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-4.9.82/arch/alpha/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/alpha/kernel/traps.c
---- linux-4.9.82/arch/alpha/kernel/traps.c 2018-02-22 21:18:14.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/alpha/kernel/traps.c 2018-02-22 21:31:39.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/alpha/kernel/traps.c linux-4.9/arch/alpha/kernel/traps.c
+--- linux-4.9/arch/alpha/kernel/traps.c 2021-02-24 15:47:30.747294162 +0100
++++ linux-4.9/arch/alpha/kernel/traps.c 2021-02-24 15:47:45.037741219 +0100
@@ -179,7 +179,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, LOCKDEP_NOW_UNRELIABLE);
dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-4.9.82/arch/arm/Kconfig linux-4.9.82-vs2.3.9.7/arch/arm/Kconfig
---- linux-4.9.82/arch/arm/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/arm/Kconfig 2018-01-10 02:50:49.000000000 +0000
-@@ -2199,6 +2199,8 @@ source "fs/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/arm/Kconfig linux-4.9/arch/arm/Kconfig
+--- linux-4.9/arch/arm/Kconfig 2021-02-24 15:47:30.757294474 +0100
++++ linux-4.9/arch/arm/Kconfig 2021-02-24 15:47:45.041074656 +0100
+@@ -2202,6 +2202,8 @@ source "fs/Kconfig"
source "arch/arm/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/arm/kernel/calls.S linux-4.9.82-vs2.3.9.7/arch/arm/kernel/calls.S
---- linux-4.9.82/arch/arm/kernel/calls.S 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/arm/kernel/calls.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/arm/kernel/calls.S linux-4.9/arch/arm/kernel/calls.S
+--- linux-4.9/arch/arm/kernel/calls.S 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/arm/kernel/calls.S 2021-02-24 15:47:45.041074656 +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-4.9.82/arch/arm/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/arm/kernel/traps.c
---- linux-4.9.82/arch/arm/kernel/traps.c 2018-02-22 21:18:14.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/arm/kernel/traps.c 2018-01-10 02:50:49.000000000 +0000
-@@ -278,8 +278,8 @@ static int __die(const char *str, int er
+diff -urNp -x '*.orig' linux-4.9/arch/arm/kernel/traps.c linux-4.9/arch/arm/kernel/traps.c
+--- linux-4.9/arch/arm/kernel/traps.c 2021-02-24 15:47:30.797295726 +0100
++++ linux-4.9/arch/arm/kernel/traps.c 2021-02-24 15:47:45.041074656 +0100
+@@ -279,8 +279,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-4.9.82/arch/cris/Kconfig linux-4.9.82-vs2.3.9.7/arch/cris/Kconfig
---- linux-4.9.82/arch/cris/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/cris/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/cris/Kconfig linux-4.9/arch/cris/Kconfig
+--- linux-4.9/arch/cris/Kconfig 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/cris/Kconfig 2021-02-24 15:47:45.041074656 +0100
@@ -583,6 +583,8 @@ source "fs/Kconfig"
source "arch/cris/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/ia64/Kconfig linux-4.9.82-vs2.3.9.7/arch/ia64/Kconfig
---- linux-4.9.82/arch/ia64/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/ia64/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/ia64/Kconfig linux-4.9/arch/ia64/Kconfig
+--- linux-4.9/arch/ia64/Kconfig 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/ia64/Kconfig 2021-02-24 15:47:45.041074656 +0100
@@ -602,6 +602,8 @@ source "fs/Kconfig"
source "arch/ia64/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/ia64/kernel/entry.S linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/entry.S
---- linux-4.9.82/arch/ia64/kernel/entry.S 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/entry.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/ia64/kernel/entry.S linux-4.9/arch/ia64/kernel/entry.S
+--- linux-4.9/arch/ia64/kernel/entry.S 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/ia64/kernel/entry.S 2021-02-24 15:47:45.041074656 +0100
@@ -1697,7 +1697,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-4.9.82/arch/ia64/kernel/ptrace.c linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/ptrace.c
---- linux-4.9.82/arch/ia64/kernel/ptrace.c 2018-02-22 21:18:15.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/ptrace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/ia64/kernel/ptrace.c linux-4.9/arch/ia64/kernel/ptrace.c
+--- linux-4.9/arch/ia64/kernel/ptrace.c 2021-02-24 15:47:30.857297603 +0100
++++ linux-4.9/arch/ia64/kernel/ptrace.c 2021-02-24 15:47:45.041074656 +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-4.9.82/arch/ia64/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/traps.c
---- linux-4.9.82/arch/ia64/kernel/traps.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/ia64/kernel/traps.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/ia64/kernel/traps.c linux-4.9/arch/ia64/kernel/traps.c
+--- linux-4.9/arch/ia64/kernel/traps.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/ia64/kernel/traps.c 2021-02-24 15:47:45.041074656 +0100
@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
put_cpu();
}
}
}
-diff -NurpP --minimal linux-4.9.82/arch/m32r/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/m32r/kernel/traps.c
---- linux-4.9.82/arch/m32r/kernel/traps.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/m32r/kernel/traps.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/m32r/kernel/traps.c linux-4.9/arch/m32r/kernel/traps.c
+--- linux-4.9/arch/m32r/kernel/traps.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/m32r/kernel/traps.c 2021-02-24 15:47:45.041074656 +0100
@@ -184,8 +184,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-4.9.82/arch/m68k/Kconfig linux-4.9.82-vs2.3.9.7/arch/m68k/Kconfig
---- linux-4.9.82/arch/m68k/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/m68k/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/m68k/Kconfig linux-4.9/arch/m68k/Kconfig
+--- linux-4.9/arch/m68k/Kconfig 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/m68k/Kconfig 2021-02-24 15:47:45.041074656 +0100
@@ -163,6 +163,8 @@ source "fs/Kconfig"
source "arch/m68k/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/mips/Kconfig linux-4.9.82-vs2.3.9.7/arch/mips/Kconfig
---- linux-4.9.82/arch/mips/Kconfig 2018-02-22 21:18:15.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/Kconfig 2018-01-10 02:50:49.000000000 +0000
-@@ -3189,6 +3189,8 @@ source "fs/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/mips/Kconfig linux-4.9/arch/mips/Kconfig
+--- linux-4.9/arch/mips/Kconfig 2021-02-24 15:47:30.863964478 +0100
++++ linux-4.9/arch/mips/Kconfig 2021-02-24 15:47:45.044408094 +0100
+@@ -3194,6 +3194,8 @@ source "fs/Kconfig"
source "arch/mips/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/mips/kernel/ptrace.c linux-4.9.82-vs2.3.9.7/arch/mips/kernel/ptrace.c
---- linux-4.9.82/arch/mips/kernel/ptrace.c 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/ptrace.c 2018-01-25 00:21:31.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/ptrace.c linux-4.9/arch/mips/kernel/ptrace.c
+--- linux-4.9/arch/mips/kernel/ptrace.c 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/ptrace.c 2021-02-24 15:47:45.044408094 +0100
@@ -30,6 +30,7 @@
#include <linux/audit.h>
#include <linux/seccomp.h>
#include <asm/byteorder.h>
#include <asm/cpu.h>
-@@ -784,6 +785,9 @@ long arch_ptrace(struct task_struct *chi
+@@ -798,6 +799,9 @@ long arch_ptrace(struct task_struct *chi
void __user *datavp = (void __user *) data;
unsigned long __user *datalp = (void __user *) data;
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-4.9.82/arch/mips/kernel/scall32-o32.S linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall32-o32.S
---- linux-4.9.82/arch/mips/kernel/scall32-o32.S 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall32-o32.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/scall32-o32.S linux-4.9/arch/mips/kernel/scall32-o32.S
+--- linux-4.9/arch/mips/kernel/scall32-o32.S 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/scall32-o32.S 2021-02-24 15:47:45.044408094 +0100
@@ -511,7 +511,7 @@ EXPORT(sys_call_table)
PTR sys_mq_timedreceive
PTR sys_mq_notify /* 4275 */
PTR sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */
-diff -NurpP --minimal linux-4.9.82/arch/mips/kernel/scall64-64.S linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-64.S
---- linux-4.9.82/arch/mips/kernel/scall64-64.S 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-64.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/scall64-64.S linux-4.9/arch/mips/kernel/scall64-64.S
+--- linux-4.9/arch/mips/kernel/scall64-64.S 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/scall64-64.S 2021-02-24 15:47:45.044408094 +0100
@@ -348,7 +348,7 @@ EXPORT(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-4.9.82/arch/mips/kernel/scall64-n32.S linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-n32.S
---- linux-4.9.82/arch/mips/kernel/scall64-n32.S 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-n32.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/scall64-n32.S linux-4.9/arch/mips/kernel/scall64-n32.S
+--- linux-4.9/arch/mips/kernel/scall64-n32.S 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/scall64-n32.S 2021-02-24 15:47:45.044408094 +0100
@@ -343,7 +343,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-4.9.82/arch/mips/kernel/scall64-o32.S linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-o32.S
---- linux-4.9.82/arch/mips/kernel/scall64-o32.S 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/scall64-o32.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/scall64-o32.S linux-4.9/arch/mips/kernel/scall64-o32.S
+--- linux-4.9/arch/mips/kernel/scall64-o32.S 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/scall64-o32.S 2021-02-24 15:47:45.044408094 +0100
@@ -499,7 +499,7 @@ EXPORT(sys32_call_table)
PTR compat_sys_mq_timedreceive
PTR compat_sys_mq_notify /* 4275 */
PTR compat_sys_waitid
PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */
-diff -NurpP --minimal linux-4.9.82/arch/mips/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/mips/kernel/traps.c
---- linux-4.9.82/arch/mips/kernel/traps.c 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/mips/kernel/traps.c 2018-01-10 02:50:49.000000000 +0000
-@@ -360,9 +360,10 @@ void show_registers(struct pt_regs *regs
+diff -urNp -x '*.orig' linux-4.9/arch/mips/kernel/traps.c linux-4.9/arch/mips/kernel/traps.c
+--- linux-4.9/arch/mips/kernel/traps.c 2021-02-24 15:47:30.880631666 +0100
++++ linux-4.9/arch/mips/kernel/traps.c 2021-02-24 15:47:45.044408094 +0100
+@@ -361,9 +361,10 @@ void show_registers(struct pt_regs *regs
__show_regs(regs);
print_modules();
if (cpu_has_userlocal) {
unsigned long tls;
-diff -NurpP --minimal linux-4.9.82/arch/parisc/Kconfig linux-4.9.82-vs2.3.9.7/arch/parisc/Kconfig
---- linux-4.9.82/arch/parisc/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/parisc/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/parisc/Kconfig linux-4.9/arch/parisc/Kconfig
+--- linux-4.9/arch/parisc/Kconfig 2021-02-24 15:47:30.893965417 +0100
++++ linux-4.9/arch/parisc/Kconfig 2021-02-24 15:47:45.044408094 +0100
@@ -348,6 +348,8 @@ config SECCOMP
If unsure, say Y. Only embedded should say N here.
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/parisc/kernel/syscall_table.S linux-4.9.82-vs2.3.9.7/arch/parisc/kernel/syscall_table.S
---- linux-4.9.82/arch/parisc/kernel/syscall_table.S 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/parisc/kernel/syscall_table.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/parisc/kernel/syscall_table.S linux-4.9/arch/parisc/kernel/syscall_table.S
+--- linux-4.9/arch/parisc/kernel/syscall_table.S 2021-02-24 15:47:30.897298854 +0100
++++ linux-4.9/arch/parisc/kernel/syscall_table.S 2021-02-24 15:47:45.044408094 +0100
@@ -358,7 +358,7 @@
ENTRY_COMP(mbind) /* 260 */
ENTRY_COMP(get_mempolicy)
ENTRY_SAME(add_key)
ENTRY_SAME(request_key) /* 265 */
ENTRY_COMP(keyctl)
-diff -NurpP --minimal linux-4.9.82/arch/parisc/kernel/traps.c linux-4.9.82-vs2.3.9.7/arch/parisc/kernel/traps.c
---- linux-4.9.82/arch/parisc/kernel/traps.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/parisc/kernel/traps.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/parisc/kernel/traps.c linux-4.9/arch/parisc/kernel/traps.c
+--- linux-4.9/arch/parisc/kernel/traps.c 2021-02-24 15:47:30.897298854 +0100
++++ linux-4.9/arch/parisc/kernel/traps.c 2021-02-24 15:47:45.044408094 +0100
@@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_
return; /* STFU */
/* Wot's wrong wif bein' racy? */
if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-4.9.82/arch/powerpc/Kconfig linux-4.9.82-vs2.3.9.7/arch/powerpc/Kconfig
---- linux-4.9.82/arch/powerpc/Kconfig 2018-02-22 21:18:16.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/powerpc/Kconfig 2018-02-22 21:31:39.000000000 +0000
-@@ -1086,6 +1086,8 @@ source "lib/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/powerpc/Kconfig linux-4.9/arch/powerpc/Kconfig
+--- linux-4.9/arch/powerpc/Kconfig 2021-02-24 15:47:30.900632291 +0100
++++ linux-4.9/arch/powerpc/Kconfig 2021-02-24 15:47:45.044408094 +0100
+@@ -1092,6 +1092,8 @@ source "lib/Kconfig"
source "arch/powerpc/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/powerpc/include/uapi/asm/unistd.h linux-4.9.82-vs2.3.9.7/arch/powerpc/include/uapi/asm/unistd.h
---- linux-4.9.82/arch/powerpc/include/uapi/asm/unistd.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/powerpc/include/uapi/asm/unistd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/powerpc/include/uapi/asm/unistd.h linux-4.9/arch/powerpc/include/uapi/asm/unistd.h
+--- linux-4.9/arch/powerpc/include/uapi/asm/unistd.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/powerpc/include/uapi/asm/unistd.h 2021-02-24 15:47:45.044408094 +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-4.9.82/arch/s390/Kconfig linux-4.9.82-vs2.3.9.7/arch/s390/Kconfig
---- linux-4.9.82/arch/s390/Kconfig 2018-02-22 21:18:17.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/s390/Kconfig 2018-01-10 02:50:49.000000000 +0000
-@@ -729,6 +729,8 @@ source "fs/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/s390/Kconfig linux-4.9/arch/s390/Kconfig
+--- linux-4.9/arch/s390/Kconfig 2021-02-24 15:47:30.947300418 +0100
++++ linux-4.9/arch/s390/Kconfig 2021-02-24 15:47:45.044408094 +0100
+@@ -775,6 +775,8 @@ source "fs/Kconfig"
source "arch/s390/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/s390/include/asm/tlb.h linux-4.9.82-vs2.3.9.7/arch/s390/include/asm/tlb.h
---- linux-4.9.82/arch/s390/include/asm/tlb.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/s390/include/asm/tlb.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/s390/include/asm/tlb.h linux-4.9/arch/s390/include/asm/tlb.h
+--- linux-4.9/arch/s390/include/asm/tlb.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/s390/include/asm/tlb.h 2021-02-24 15:47:45.044408094 +0100
@@ -24,6 +24,7 @@
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <asm/processor.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-diff -NurpP --minimal linux-4.9.82/arch/s390/include/uapi/asm/unistd.h linux-4.9.82-vs2.3.9.7/arch/s390/include/uapi/asm/unistd.h
---- linux-4.9.82/arch/s390/include/uapi/asm/unistd.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/s390/include/uapi/asm/unistd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/s390/include/uapi/asm/unistd.h linux-4.9/arch/s390/include/uapi/asm/unistd.h
+--- linux-4.9/arch/s390/include/uapi/asm/unistd.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/s390/include/uapi/asm/unistd.h 2021-02-24 15:47:45.044408094 +0100
@@ -200,7 +200,7 @@
#define __NR_clock_gettime 260
#define __NR_clock_getres 261
#define __NR_statfs64 265
#define __NR_fstatfs64 266
#define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-4.9.82/arch/s390/kernel/ptrace.c linux-4.9.82-vs2.3.9.7/arch/s390/kernel/ptrace.c
---- linux-4.9.82/arch/s390/kernel/ptrace.c 2018-02-22 21:18:17.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/s390/kernel/ptrace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/s390/kernel/ptrace.c linux-4.9/arch/s390/kernel/ptrace.c
+--- linux-4.9/arch/s390/kernel/ptrace.c 2021-02-24 15:47:30.957300731 +0100
++++ linux-4.9/arch/s390/kernel/ptrace.c 2021-02-24 15:47:45.047741532 +0100
@@ -21,6 +21,7 @@
#include <linux/tracehook.h>
#include <linux/seccomp.h>
#include <trace/syscall.h>
#include <asm/segment.h>
#include <asm/page.h>
-diff -NurpP --minimal linux-4.9.82/arch/s390/kernel/syscalls.S linux-4.9.82-vs2.3.9.7/arch/s390/kernel/syscalls.S
---- linux-4.9.82/arch/s390/kernel/syscalls.S 2018-02-22 21:18:17.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/s390/kernel/syscalls.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/s390/kernel/syscalls.S linux-4.9/arch/s390/kernel/syscalls.S
+--- linux-4.9/arch/s390/kernel/syscalls.S 2021-02-24 15:47:30.960634169 +0100
++++ linux-4.9/arch/s390/kernel/syscalls.S 2021-02-24 15:47:45.047741532 +0100
@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,compat_sys_clo
SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */
SYSCALL(sys_clock_getres,compat_sys_clock_getres)
SYSCALL(sys_ni_syscall,compat_sys_s390_fadvise64_64)
SYSCALL(sys_statfs64,compat_sys_statfs64)
SYSCALL(sys_fstatfs64,compat_sys_fstatfs64)
-diff -NurpP --minimal linux-4.9.82/arch/sh/Kconfig linux-4.9.82-vs2.3.9.7/arch/sh/Kconfig
---- linux-4.9.82/arch/sh/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sh/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/sh/Kconfig linux-4.9/arch/sh/Kconfig
+--- linux-4.9/arch/sh/Kconfig 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/sh/Kconfig 2021-02-24 15:47:45.047741532 +0100
@@ -904,6 +904,8 @@ source "fs/Kconfig"
source "arch/sh/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/sh/kernel/irq.c linux-4.9.82-vs2.3.9.7/arch/sh/kernel/irq.c
---- linux-4.9.82/arch/sh/kernel/irq.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sh/kernel/irq.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/sh/kernel/irq.c linux-4.9/arch/sh/kernel/irq.c
+--- linux-4.9/arch/sh/kernel/irq.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/sh/kernel/irq.c 2021-02-24 15:47:45.047741532 +0100
@@ -14,6 +14,7 @@
#include <linux/ftrace.h>
#include <linux/delay.h>
#include <asm/processor.h>
#include <asm/machvec.h>
#include <asm/uaccess.h>
-diff -NurpP --minimal linux-4.9.82/arch/sparc/Kconfig linux-4.9.82-vs2.3.9.7/arch/sparc/Kconfig
---- linux-4.9.82/arch/sparc/Kconfig 2018-02-22 21:18:17.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sparc/Kconfig 2018-01-10 02:50:49.000000000 +0000
-@@ -580,6 +580,8 @@ source "fs/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/sparc/Kconfig linux-4.9/arch/sparc/Kconfig
+--- linux-4.9/arch/sparc/Kconfig 2021-02-24 15:47:30.967301044 +0100
++++ linux-4.9/arch/sparc/Kconfig 2021-02-24 15:47:45.047741532 +0100
+@@ -584,6 +584,8 @@ source "fs/Kconfig"
source "arch/sparc/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/sparc/include/uapi/asm/unistd.h linux-4.9.82-vs2.3.9.7/arch/sparc/include/uapi/asm/unistd.h
---- linux-4.9.82/arch/sparc/include/uapi/asm/unistd.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sparc/include/uapi/asm/unistd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/sparc/include/uapi/asm/unistd.h linux-4.9/arch/sparc/include/uapi/asm/unistd.h
+--- linux-4.9/arch/sparc/include/uapi/asm/unistd.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/sparc/include/uapi/asm/unistd.h 2021-02-24 15:47:45.047741532 +0100
@@ -332,7 +332,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-4.9.82/arch/sparc/kernel/systbls_32.S linux-4.9.82-vs2.3.9.7/arch/sparc/kernel/systbls_32.S
---- linux-4.9.82/arch/sparc/kernel/systbls_32.S 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sparc/kernel/systbls_32.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/sparc/kernel/systbls_32.S linux-4.9/arch/sparc/kernel/systbls_32.S
+--- linux-4.9/arch/sparc/kernel/systbls_32.S 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/sparc/kernel/systbls_32.S 2021-02-24 15:47:45.047741532 +0100
@@ -70,7 +70,7 @@ sys_call_table:
/*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall
/*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
/*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-4.9.82/arch/sparc/kernel/systbls_64.S linux-4.9.82-vs2.3.9.7/arch/sparc/kernel/systbls_64.S
---- linux-4.9.82/arch/sparc/kernel/systbls_64.S 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/sparc/kernel/systbls_64.S 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/sparc/kernel/systbls_64.S linux-4.9/arch/sparc/kernel/systbls_64.S
+--- linux-4.9/arch/sparc/kernel/systbls_64.S 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/sparc/kernel/systbls_64.S 2021-02-24 15:47:45.047741532 +0100
@@ -71,7 +71,7 @@ sys_call_table32:
/*250*/ .word sys_mremap, compat_sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
.word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
/*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-4.9.82/arch/um/Kconfig.rest linux-4.9.82-vs2.3.9.7/arch/um/Kconfig.rest
---- linux-4.9.82/arch/um/Kconfig.rest 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/um/Kconfig.rest 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/um/Kconfig.rest linux-4.9/arch/um/Kconfig.rest
+--- linux-4.9/arch/um/Kconfig.rest 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/um/Kconfig.rest 2021-02-24 15:47:45.047741532 +0100
@@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
source "fs/Kconfig"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/x86/Kconfig linux-4.9.82-vs2.3.9.7/arch/x86/Kconfig
---- linux-4.9.82/arch/x86/Kconfig 2018-02-22 21:18:17.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/x86/Kconfig 2018-01-25 00:21:31.000000000 +0000
-@@ -2777,6 +2777,8 @@ source "fs/Kconfig"
+diff -urNp -x '*.orig' linux-4.9/arch/x86/Kconfig linux-4.9/arch/x86/Kconfig
+--- linux-4.9/arch/x86/Kconfig 2021-02-24 15:47:30.980634795 +0100
++++ linux-4.9/arch/x86/Kconfig 2021-02-24 15:47:45.047741532 +0100
+@@ -2810,6 +2810,8 @@ source "fs/Kconfig"
source "arch/x86/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
-diff -NurpP --minimal linux-4.9.82/arch/x86/entry/syscalls/syscall_32.tbl linux-4.9.82-vs2.3.9.7/arch/x86/entry/syscalls/syscall_32.tbl
---- linux-4.9.82/arch/x86/entry/syscalls/syscall_32.tbl 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/x86/entry/syscalls/syscall_32.tbl 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/x86/entry/syscalls/syscall_32.tbl linux-4.9/arch/x86/entry/syscalls/syscall_32.tbl
+--- linux-4.9/arch/x86/entry/syscalls/syscall_32.tbl 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/x86/entry/syscalls/syscall_32.tbl 2021-02-24 15:47:45.047741532 +0100
@@ -279,7 +279,7 @@
270 i386 tgkill sys_tgkill
271 i386 utimes sys_utimes compat_sys_utimes
274 i386 mbind sys_mbind
275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
276 i386 set_mempolicy sys_set_mempolicy
-diff -NurpP --minimal linux-4.9.82/arch/x86/entry/syscalls/syscall_64.tbl linux-4.9.82-vs2.3.9.7/arch/x86/entry/syscalls/syscall_64.tbl
---- linux-4.9.82/arch/x86/entry/syscalls/syscall_64.tbl 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/arch/x86/entry/syscalls/syscall_64.tbl 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/arch/x86/entry/syscalls/syscall_64.tbl linux-4.9/arch/x86/entry/syscalls/syscall_64.tbl
+--- linux-4.9/arch/x86/entry/syscalls/syscall_64.tbl 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/arch/x86/entry/syscalls/syscall_64.tbl 2021-02-24 15:47:45.047741532 +0100
@@ -242,7 +242,7 @@
233 common epoll_ctl sys_epoll_ctl
234 common tgkill sys_tgkill
237 common mbind sys_mbind
238 common set_mempolicy sys_set_mempolicy
239 common get_mempolicy sys_get_mempolicy
-diff -NurpP --minimal linux-4.9.82/block/ioprio.c linux-4.9.82-vs2.3.9.7/block/ioprio.c
---- linux-4.9.82/block/ioprio.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/block/ioprio.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/block/ioprio.c linux-4.9/block/ioprio.c
+--- linux-4.9/block/ioprio.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/block/ioprio.c 2021-02-24 15:47:45.047741532 +0100
@@ -28,6 +28,7 @@
#include <linux/syscalls.h>
#include <linux/security.h>
tmpio = get_task_ioprio(p);
if (tmpio < 0)
continue;
-diff -NurpP --minimal linux-4.9.82/drivers/block/Kconfig linux-4.9.82-vs2.3.9.7/drivers/block/Kconfig
---- linux-4.9.82/drivers/block/Kconfig 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/block/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/block/Kconfig linux-4.9/drivers/block/Kconfig
+--- linux-4.9/drivers/block/Kconfig 2021-02-24 15:47:31.113972298 +0100
++++ linux-4.9/drivers/block/Kconfig 2021-02-24 15:47:45.047741532 +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-4.9.82/drivers/block/Makefile linux-4.9.82-vs2.3.9.7/drivers/block/Makefile
---- linux-4.9.82/drivers/block/Makefile 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/block/Makefile 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/block/Makefile linux-4.9/drivers/block/Makefile
+--- linux-4.9/drivers/block/Makefile 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/drivers/block/Makefile 2021-02-24 15:47:45.051074969 +0100
@@ -31,6 +31,7 @@ obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
-diff -NurpP --minimal linux-4.9.82/drivers/block/loop.c linux-4.9.82-vs2.3.9.7/drivers/block/loop.c
---- linux-4.9.82/drivers/block/loop.c 2018-02-22 21:18:20.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/block/loop.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/block/loop.c linux-4.9/drivers/block/loop.c
+--- linux-4.9/drivers/block/loop.c 2021-02-24 15:47:31.117305737 +0100
++++ linux-4.9/drivers/block/loop.c 2021-02-24 15:47:45.051074969 +0100
@@ -76,6 +76,7 @@
#include <linux/miscdevice.h>
#include <linux/falloc.h>
#include "loop.h"
#include <asm/uaccess.h>
-@@ -924,6 +925,7 @@ static int loop_set_fd(struct loop_devic
+@@ -936,6 +937,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 = NULL;
lo->ioctl = NULL;
-@@ -1044,6 +1046,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1056,6 +1058,7 @@ static int loop_clr_fd(struct loop_devic
lo->lo_offset = 0;
lo->lo_sizelimit = 0;
lo->lo_encrypt_key_size = 0;
memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
memset(lo->lo_file_name, 0, LO_NAME_SIZE);
-@@ -1090,7 +1093,7 @@ loop_set_status(struct loop_device *lo,
+@@ -1102,7 +1105,7 @@ loop_set_status(struct loop_device *lo,
if (lo->lo_encrypt_key_size &&
!uid_eq(lo->lo_key_owner, uid) &&
return -EPERM;
if (lo->lo_state != Lo_bound)
return -ENXIO;
-@@ -1191,7 +1194,8 @@ loop_get_status(struct loop_device *lo,
+@@ -1207,7 +1210,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);
-@@ -1552,6 +1556,11 @@ static int lo_open(struct block_device *
+@@ -1569,6 +1573,11 @@ static int lo_open(struct block_device *
goto out;
}
atomic_inc(&lo->lo_refcnt);
out:
mutex_unlock(&loop_index_mutex);
-diff -NurpP --minimal linux-4.9.82/drivers/block/loop.h linux-4.9.82-vs2.3.9.7/drivers/block/loop.h
---- linux-4.9.82/drivers/block/loop.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/block/loop.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/block/loop.h linux-4.9/drivers/block/loop.h
+--- linux-4.9/drivers/block/loop.h 2021-02-24 15:47:31.117305737 +0100
++++ linux-4.9/drivers/block/loop.h 2021-02-24 15:47:45.051074969 +0100
@@ -43,6 +43,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-4.9.82/drivers/block/vroot.c linux-4.9.82-vs2.3.9.7/drivers/block/vroot.c
---- linux-4.9.82/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/block/vroot.c 2018-01-13 22:00:41.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/block/vroot.c linux-4.9/drivers/block/vroot.c
+--- linux-4.9/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/drivers/block/vroot.c 2021-02-24 15:47:45.051074969 +0100
@@ -0,0 +1,291 @@
+/*
+ * linux/drivers/block/vroot.c
+
+#endif
+
-diff -NurpP --minimal linux-4.9.82/drivers/md/dm-core.h linux-4.9.82-vs2.3.9.7/drivers/md/dm-core.h
---- linux-4.9.82/drivers/md/dm-core.h 2018-02-22 21:18:28.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/md/dm-core.h 2018-01-10 08:35:10.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/md/dm-core.h linux-4.9/drivers/md/dm-core.h
+--- linux-4.9/drivers/md/dm-core.h 2021-02-24 15:47:31.450649498 +0100
++++ linux-4.9/drivers/md/dm-core.h 2021-02-24 15:47:45.051074969 +0100
@@ -52,6 +52,7 @@ struct mapped_device {
atomic_t holders;
struct dm_target *immutable_target;
struct target_type *immutable_target_type;
-diff -NurpP --minimal linux-4.9.82/drivers/md/dm-ioctl.c linux-4.9.82-vs2.3.9.7/drivers/md/dm-ioctl.c
---- linux-4.9.82/drivers/md/dm-ioctl.c 2018-02-22 21:18:28.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/md/dm-ioctl.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/md/dm-ioctl.c linux-4.9/drivers/md/dm-ioctl.c
+--- linux-4.9/drivers/md/dm-ioctl.c 2021-02-24 15:47:31.450649498 +0100
++++ linux-4.9/drivers/md/dm-ioctl.c 2021-02-24 15:47:45.051074969 +0100
@@ -16,6 +16,7 @@
#include <linux/dm-ioctl.h>
#include <linux/hdreg.h>
if (old_nl)
old_nl->next = (uint32_t) ((void *) nl -
(void *) old_nl);
-@@ -1805,8 +1817,8 @@ static int ctl_ioctl(uint command, struc
+@@ -1800,8 +1812,8 @@ static int ctl_ioctl(uint command, struc
size_t input_param_size;
struct dm_ioctl param_kernel;
return -EACCES;
if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-4.9.82/drivers/md/dm.c linux-4.9.82-vs2.3.9.7/drivers/md/dm.c
---- linux-4.9.82/drivers/md/dm.c 2018-02-22 21:18:28.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/md/dm.c 2018-01-10 08:32:35.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/md/dm.c linux-4.9/drivers/md/dm.c
+--- linux-4.9/drivers/md/dm.c 2021-02-24 15:47:31.457316373 +0100
++++ linux-4.9/drivers/md/dm.c 2021-02-24 15:47:45.051074969 +0100
@@ -22,6 +22,7 @@
#include <linux/wait.h>
#include <linux/pr.h>
/*-----------------------------------------------------------------
* CRUD START:
* A more elegant soln is in the works that uses the queue
-@@ -1548,6 +1560,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1549,6 +1561,7 @@ static struct mapped_device *alloc_dev(i
INIT_LIST_HEAD(&md->uevent_list);
INIT_LIST_HEAD(&md->table_devices);
spin_lock_init(&md->uevent_lock);
md->queue = blk_alloc_queue_node(GFP_KERNEL, numa_node_id);
if (!md->queue)
-diff -NurpP --minimal linux-4.9.82/drivers/md/dm.h linux-4.9.82-vs2.3.9.7/drivers/md/dm.h
---- linux-4.9.82/drivers/md/dm.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/md/dm.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/md/dm.h linux-4.9/drivers/md/dm.h
+--- linux-4.9/drivers/md/dm.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/drivers/md/dm.h 2021-02-24 15:47:45.051074969 +0100
@@ -45,6 +45,8 @@ struct dm_dev_internal {
struct dm_table;
struct dm_md_mempools;
/*-----------------------------------------------------------------
* Internal table functions.
*---------------------------------------------------------------*/
-diff -NurpP --minimal linux-4.9.82/drivers/net/tun.c linux-4.9.82-vs2.3.9.7/drivers/net/tun.c
---- linux-4.9.82/drivers/net/tun.c 2018-02-22 21:18:32.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/net/tun.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/net/tun.c linux-4.9/drivers/net/tun.c
+--- linux-4.9/drivers/net/tun.c 2021-02-24 15:47:31.743992008 +0100
++++ linux-4.9/drivers/net/tun.c 2021-02-24 15:47:45.051074969 +0100
@@ -65,6 +65,7 @@
#include <linux/nsproxy.h>
#include <linux/virtio_net.h>
}
static void tun_set_real_num_queues(struct tun_struct *tun)
-@@ -1558,6 +1561,7 @@ static void tun_setup(struct net_device
+@@ -1569,6 +1572,7 @@ static void tun_setup(struct net_device
tun->owner = INVALID_UID;
tun->group = INVALID_GID;
dev->ethtool_ops = &tun_ethtool_ops;
dev->destructor = tun_free_netdev;
-@@ -1769,7 +1773,7 @@ static int tun_set_iff(struct net *net,
+@@ -1782,7 +1786,7 @@ static int tun_set_iff(struct net *net,
int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ?
MAX_TAP_QUEUES : 1;
return -EPERM;
err = security_tun_dev_create();
if (err < 0)
-@@ -2134,6 +2138,16 @@ static long __tun_chr_ioctl(struct file
+@@ -2151,6 +2155,16 @@ static long __tun_chr_ioctl(struct file
from_kgid(&init_user_ns, tun->group));
break;
case TUNSETLINK:
/* Only allow setting the type when the interface is down */
if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-4.9.82/drivers/scsi/cxgbi/libcxgbi.c linux-4.9.82-vs2.3.9.7/drivers/scsi/cxgbi/libcxgbi.c
---- linux-4.9.82/drivers/scsi/cxgbi/libcxgbi.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/scsi/cxgbi/libcxgbi.c 2018-01-10 02:50:49.000000000 +0000
-@@ -772,7 +772,8 @@ static struct cxgbi_sock *cxgbi_check_ro
+diff -urNp -x '*.orig' linux-4.9/drivers/scsi/cxgbi/libcxgbi.c linux-4.9/drivers/scsi/cxgbi/libcxgbi.c
+--- linux-4.9/drivers/scsi/cxgbi/libcxgbi.c 2021-02-24 15:47:31.947331702 +0100
++++ linux-4.9/drivers/scsi/cxgbi/libcxgbi.c 2021-02-24 15:47:45.051074969 +0100
+@@ -777,7 +777,8 @@ static struct cxgbi_sock *cxgbi_check_ro
struct inet6_dev *idev = ip6_dst_idev((struct dst_entry *)rt);
err = ipv6_dev_get_saddr(&init_net, idev ? idev->dev : NULL,
if (err) {
pr_info("failed to get source address to reach %pI6\n",
&daddr6->sin6_addr);
-diff -NurpP --minimal linux-4.9.82/drivers/tty/sysrq.c linux-4.9.82-vs2.3.9.7/drivers/tty/sysrq.c
---- linux-4.9.82/drivers/tty/sysrq.c 2018-02-22 21:18:37.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/tty/sysrq.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/tty/sysrq.c linux-4.9/drivers/tty/sysrq.c
+--- linux-4.9/drivers/tty/sysrq.c 2021-02-24 15:47:32.084002644 +0100
++++ linux-4.9/drivers/tty/sysrq.c 2021-02-24 15:47:45.051074969 +0100
@@ -47,6 +47,7 @@
#include <linux/syscalls.h>
#include <linux/of.h>
else
retval = -1;
return retval;
-diff -NurpP --minimal linux-4.9.82/drivers/tty/tty_io.c linux-4.9.82-vs2.3.9.7/drivers/tty/tty_io.c
---- linux-4.9.82/drivers/tty/tty_io.c 2018-02-22 21:18:37.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/drivers/tty/tty_io.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/drivers/tty/tty_io.c linux-4.9/drivers/tty/tty_io.c
+--- linux-4.9/drivers/tty/tty_io.c 2021-02-24 15:47:32.084002644 +0100
++++ linux-4.9/drivers/tty/tty_io.c 2021-02-24 15:47:45.054408406 +0100
@@ -104,6 +104,7 @@
#include <linux/kmod.h>
#undef TTY_DEBUG_HANGUP
#ifdef TTY_DEBUG_HANGUP
-@@ -2292,7 +2293,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2321,7 +2322,8 @@ static int tiocsti(struct tty_struct *tt
char ch, mbz = 0;
struct tty_ldisc *ld;
return -EPERM;
if (get_user(ch, p))
return -EFAULT;
-@@ -2607,6 +2609,7 @@ static int tiocspgrp(struct tty_struct *
- return -ENOTTY;
+@@ -2634,6 +2636,7 @@ static int tiocspgrp(struct tty_struct *
+
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-4.9.82/fs/attr.c linux-4.9.82-vs2.3.9.7/fs/attr.c
---- linux-4.9.82/fs/attr.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/attr.c 2018-01-10 02:50:49.000000000 +0000
+
+diff -urNp -x '*.orig' linux-4.9/fs/attr.c linux-4.9/fs/attr.c
+--- linux-4.9/fs/attr.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/attr.c 2021-02-24 15:47:45.054408406 +0100
@@ -15,6 +15,9 @@
#include <linux/security.h>
#include <linux/evm.h>
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
return -EPERM;
}
-diff -NurpP --minimal linux-4.9.82/fs/block_dev.c linux-4.9.82-vs2.3.9.7/fs/block_dev.c
---- linux-4.9.82/fs/block_dev.c 2018-02-22 21:18:42.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/block_dev.c 2018-01-13 00:48:31.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/block_dev.c linux-4.9/fs/block_dev.c
+--- linux-4.9/fs/block_dev.c 2021-02-24 15:47:32.207339836 +0100
++++ linux-4.9/fs/block_dev.c 2021-02-24 15:47:45.054408406 +0100
@@ -31,6 +31,7 @@
#include <linux/dax.h>
#include <linux/badblocks.h>
#include <asm/uaccess.h>
#include "internal.h"
-@@ -720,6 +721,7 @@ struct block_device *bdget(dev_t dev)
+@@ -734,6 +735,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);
-@@ -766,6 +768,11 @@ EXPORT_SYMBOL(bdput);
+@@ -780,6 +782,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;
-@@ -776,7 +783,7 @@ static struct block_device *bd_acquire(s
+@@ -790,7 +797,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-4.9.82/fs/btrfs/ctree.h linux-4.9.82-vs2.3.9.7/fs/btrfs/ctree.h
---- linux-4.9.82/fs/btrfs/ctree.h 2018-02-22 21:18:43.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/btrfs/ctree.h 2018-01-10 02:50:49.000000000 +0000
-@@ -1321,6 +1321,8 @@ static inline u32 BTRFS_MAX_XATTR_SIZE(c
+diff -urNp -x '*.orig' linux-4.9/fs/btrfs/ctree.h linux-4.9/fs/btrfs/ctree.h
+--- linux-4.9/fs/btrfs/ctree.h 2021-02-24 15:47:32.210673274 +0100
++++ linux-4.9/fs/btrfs/ctree.h 2021-02-24 15:47:45.054408406 +0100
+@@ -1319,6 +1319,8 @@ static inline u32 BTRFS_MAX_XATTR_SIZE(c
#define BTRFS_DEFAULT_COMMIT_INTERVAL (30)
#define BTRFS_DEFAULT_MAX_INLINE (2048)
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
#define btrfs_raw_test_opt(o, opt) ((o) & BTRFS_MOUNT_##opt)
-@@ -1668,6 +1670,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -1669,6 +1671,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);
-@@ -1715,6 +1718,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
+@@ -1716,6 +1719,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);
-@@ -3197,6 +3204,7 @@ int btrfs_ioctl_get_supported_features(v
+@@ -3199,6 +3206,7 @@ int btrfs_ioctl_get_supported_features(v
void btrfs_update_iflags(struct inode *inode);
void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
int btrfs_is_empty_uuid(u8 *uuid);
int btrfs_defrag_file(struct inode *inode, struct file *file,
struct btrfs_ioctl_defrag_range_args *range,
u64 newer_than, unsigned long max_pages);
-diff -NurpP --minimal linux-4.9.82/fs/btrfs/disk-io.c linux-4.9.82-vs2.3.9.7/fs/btrfs/disk-io.c
---- linux-4.9.82/fs/btrfs/disk-io.c 2018-02-22 21:18:43.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/btrfs/disk-io.c 2018-01-13 05:55:56.000000000 +0000
-@@ -2850,6 +2850,9 @@ int open_ctree(struct super_block *sb,
+diff -urNp -x '*.orig' linux-4.9/fs/btrfs/disk-io.c linux-4.9/fs/btrfs/disk-io.c
+--- linux-4.9/fs/btrfs/disk-io.c 2021-02-24 15:47:32.210673274 +0100
++++ linux-4.9/fs/btrfs/disk-io.c 2021-02-24 15:47:45.054408406 +0100
+@@ -2712,6 +2712,9 @@ int open_ctree(struct super_block *sb,
goto fail_alloc;
}
features = btrfs_super_incompat_flags(disk_super) &
~BTRFS_FEATURE_INCOMPAT_SUPP;
if (features) {
-diff -NurpP --minimal linux-4.9.82/fs/btrfs/inode.c linux-4.9.82-vs2.3.9.7/fs/btrfs/inode.c
---- linux-4.9.82/fs/btrfs/inode.c 2018-02-22 21:18:43.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/btrfs/inode.c 2018-02-22 21:31:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/btrfs/inode.c linux-4.9/fs/btrfs/inode.c
+--- linux-4.9/fs/btrfs/inode.c 2021-02-24 15:47:32.217340149 +0100
++++ linux-4.9/fs/btrfs/inode.c 2021-02-24 15:47:45.057741845 +0100
@@ -43,6 +43,7 @@
#include <linux/blkdev.h>
#include <linux/posix_acl_xattr.h>
#include "ctree.h"
#include "disk-io.h"
#include "transaction.h"
-@@ -3669,6 +3670,9 @@ static int btrfs_read_locked_inode(struc
+@@ -3717,6 +3718,9 @@ static int btrfs_read_locked_inode(struc
unsigned long ptr;
int maybe_acls;
u32 rdev;
int ret;
bool filled = false;
int first_xattr_slot;
-@@ -3701,8 +3705,14 @@ static int btrfs_read_locked_inode(struc
+@@ -3749,8 +3753,14 @@ static int btrfs_read_locked_inode(struc
struct btrfs_inode_item);
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
set_nlink(inode, btrfs_inode_nlink(leaf, inode_item));
btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
inode->i_atime.tv_sec = btrfs_timespec_sec(leaf, &inode_item->atime);
-@@ -3857,11 +3867,18 @@ static void fill_inode_item(struct btrfs
+@@ -3905,11 +3915,18 @@ static void fill_inode_item(struct btrfs
struct inode *inode)
{
struct btrfs_map_token token;
btrfs_set_token_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size,
&token);
btrfs_set_token_inode_mode(leaf, item, inode->i_mode, &token);
-@@ -10620,6 +10637,7 @@ static const struct inode_operations btr
+@@ -10687,6 +10704,7 @@ static const struct inode_operations btr
.mknod = btrfs_mknod,
.listxattr = btrfs_listxattr,
.permission = btrfs_permission,
.get_acl = btrfs_get_acl,
.set_acl = btrfs_set_acl,
.update_time = btrfs_update_time,
-@@ -10628,6 +10646,7 @@ static const struct inode_operations btr
+@@ -10695,6 +10713,7 @@ static const struct inode_operations btr
static const struct inode_operations btrfs_dir_ro_inode_operations = {
.lookup = btrfs_lookup,
.permission = btrfs_permission,
.update_time = btrfs_update_time,
};
-@@ -10693,6 +10712,7 @@ static const struct inode_operations btr
+@@ -10760,6 +10779,7 @@ static const struct inode_operations btr
.listxattr = btrfs_listxattr,
.permission = btrfs_permission,
.fiemap = btrfs_fiemap,
.get_acl = btrfs_get_acl,
.set_acl = btrfs_set_acl,
.update_time = btrfs_update_time,
-diff -NurpP --minimal linux-4.9.82/fs/btrfs/ioctl.c linux-4.9.82-vs2.3.9.7/fs/btrfs/ioctl.c
---- linux-4.9.82/fs/btrfs/ioctl.c 2018-02-22 21:18:43.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/btrfs/ioctl.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/btrfs/ioctl.c linux-4.9/fs/btrfs/ioctl.c
+--- linux-4.9/fs/btrfs/ioctl.c 2021-02-24 15:47:32.217340149 +0100
++++ linux-4.9/fs/btrfs/ioctl.c 2021-02-24 15:47:45.057741845 +0100
@@ -110,10 +110,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-4.9.82/fs/btrfs/super.c linux-4.9.82-vs2.3.9.7/fs/btrfs/super.c
---- linux-4.9.82/fs/btrfs/super.c 2018-02-22 21:18:43.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/btrfs/super.c 2018-01-13 05:51:52.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/btrfs/super.c linux-4.9/fs/btrfs/super.c
+--- linux-4.9/fs/btrfs/super.c 2021-02-24 15:47:32.224007024 +0100
++++ linux-4.9/fs/btrfs/super.c 2021-02-24 15:47:45.057741845 +0100
@@ -327,7 +327,7 @@ enum {
#ifdef CONFIG_BTRFS_DEBUG
Opt_fragment_data, Opt_fragment_metadata, Opt_fragment_all,
case Opt_err:
btrfs_info(root->fs_info,
"unrecognized mount option '%s'", p);
-@@ -1754,6 +1773,12 @@ static int btrfs_remount(struct super_bl
+@@ -1760,6 +1779,12 @@ static int btrfs_remount(struct super_bl
btrfs_resize_thread_pool(fs_info,
fs_info->thread_pool_size, old_thread_pool_size);
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
goto out;
-diff -NurpP --minimal linux-4.9.82/fs/char_dev.c linux-4.9.82-vs2.3.9.7/fs/char_dev.c
---- linux-4.9.82/fs/char_dev.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/char_dev.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/char_dev.c linux-4.9/fs/char_dev.c
+--- linux-4.9/fs/char_dev.c 2021-02-24 15:47:32.230673899 +0100
++++ linux-4.9/fs/char_dev.c 2021-02-24 15:47:45.057741845 +0100
@@ -21,6 +21,8 @@
#include <linux/mutex.h>
#include <linux/backing-dev.h>
#include "internal.h"
-@@ -354,14 +356,21 @@ static int chrdev_open(struct inode *ino
+@@ -360,14 +362,21 @@ static int chrdev_open(struct inode *ino
struct cdev *p;
struct cdev *new = NULL;
int ret = 0;
if (!kobj)
return -ENXIO;
new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-4.9.82/fs/dcache.c linux-4.9.82-vs2.3.9.7/fs/dcache.c
---- linux-4.9.82/fs/dcache.c 2018-02-22 21:18:45.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/dcache.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/dcache.c linux-4.9/fs/dcache.c
+--- linux-4.9/fs/dcache.c 2021-02-24 15:47:32.247341088 +0100
++++ linux-4.9/fs/dcache.c 2021-02-24 15:47:45.061075282 +0100
@@ -39,6 +39,7 @@
#include <linux/ratelimit.h>
#include <linux/list_lru.h>
#include "internal.h"
#include "mount.h"
-@@ -680,6 +681,7 @@ static inline bool fast_dput(struct dent
+@@ -690,6 +691,7 @@ static inline bool fast_dput(struct dent
spin_lock(&dentry->d_lock);
if (dentry->d_lockref.count > 1) {
dentry->d_lockref.count--;
spin_unlock(&dentry->d_lock);
return 1;
}
-@@ -811,6 +813,7 @@ repeat:
+@@ -821,6 +823,7 @@ repeat:
dentry_lru_add(dentry);
dentry->d_lockref.count--;
spin_unlock(&dentry->d_lock);
return;
-@@ -828,6 +831,7 @@ EXPORT_SYMBOL(dput);
+@@ -838,6 +841,7 @@ EXPORT_SYMBOL(dput);
static inline void __dget_dlock(struct dentry *dentry)
{
dentry->d_lockref.count++;
}
static inline void __dget(struct dentry *dentry)
-@@ -840,6 +844,8 @@ struct dentry *dget_parent(struct dentry
+@@ -850,6 +854,8 @@ struct dentry *dget_parent(struct dentry
int gotref;
struct dentry *ret;
/*
* Do optimistic parent lookup without any
* locking.
-@@ -870,6 +876,7 @@ repeat:
+@@ -880,6 +886,7 @@ repeat:
rcu_read_unlock();
BUG_ON(!ret->d_lockref.count);
ret->d_lockref.count++;
spin_unlock(&ret->d_lock);
return ret;
}
-@@ -1024,6 +1031,7 @@ static void shrink_dentry_list(struct li
+@@ -1034,6 +1041,7 @@ static void shrink_dentry_list(struct li
parent = lock_parent(dentry);
if (dentry->d_lockref.count != 1) {
dentry->d_lockref.count--;
spin_unlock(&dentry->d_lock);
if (parent)
spin_unlock(&parent->d_lock);
-@@ -1590,6 +1598,9 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1594,6 +1602,9 @@ struct dentry *__d_alloc(struct super_bl
char *dname;
int err;
dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
if (!dentry)
return NULL;
-@@ -1633,6 +1644,7 @@ struct dentry *__d_alloc(struct super_bl
+@@ -1637,6 +1648,7 @@ struct dentry *__d_alloc(struct super_bl
dentry->d_lockref.count = 1;
dentry->d_flags = 0;
spin_lock_init(&dentry->d_lock);
seqcount_init(&dentry->d_seq);
dentry->d_inode = NULL;
-@@ -2282,6 +2294,7 @@ struct dentry *__d_lookup(const struct d
+@@ -2310,6 +2322,7 @@ struct dentry *__d_lookup(const struct d
goto next;
dentry->d_lockref.count++;
found = dentry;
spin_unlock(&dentry->d_lock);
break;
-@@ -3532,6 +3545,7 @@ static enum d_walk_ret d_genocide_kill(v
+@@ -3568,6 +3581,7 @@ static enum d_walk_ret d_genocide_kill(v
if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
dentry->d_flags |= DCACHE_GENOCIDE;
dentry->d_lockref.count--;
}
}
return D_WALK_CONTINUE;
-diff -NurpP --minimal linux-4.9.82/fs/devpts/inode.c linux-4.9.82-vs2.3.9.7/fs/devpts/inode.c
---- linux-4.9.82/fs/devpts/inode.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/devpts/inode.c 2018-01-13 01:06:29.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/devpts/inode.c linux-4.9/fs/devpts/inode.c
+--- linux-4.9/fs/devpts/inode.c 2021-02-24 15:47:32.247341088 +0100
++++ linux-4.9/fs/devpts/inode.c 2021-02-24 15:47:45.061075282 +0100
@@ -27,6 +27,7 @@
#include <linux/parser.h>
#include <linux/fsnotify.h>
static const struct super_operations devpts_sops = {
.statfs = simple_statfs,
.remount_fs = devpts_remount,
-@@ -415,8 +459,10 @@ devpts_fill_super(struct super_block *s,
+@@ -416,8 +460,10 @@ devpts_fill_super(struct super_block *s,
inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
inode->i_op = &simple_dir_inode_operations;
s->s_root = d_make_root(inode);
if (!s->s_root) {
-@@ -542,6 +588,9 @@ struct dentry *devpts_pty_new(struct pts
+@@ -543,6 +589,9 @@ struct dentry *devpts_pty_new(struct pts
inode->i_gid = opts->setgid ? opts->gid : current_fsgid();
inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
init_special_inode(inode, S_IFCHR|opts->mode, MKDEV(UNIX98_PTY_SLAVE_MAJOR, index));
sprintf(s, "%d", index);
-diff -NurpP --minimal linux-4.9.82/fs/ext2/balloc.c linux-4.9.82-vs2.3.9.7/fs/ext2/balloc.c
---- linux-4.9.82/fs/ext2/balloc.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/balloc.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/balloc.c linux-4.9/fs/ext2/balloc.c
+--- linux-4.9/fs/ext2/balloc.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ext2/balloc.c 2021-02-24 15:47:45.061075282 +0100
@@ -693,7 +693,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-4.9.82/fs/ext2/ext2.h linux-4.9.82-vs2.3.9.7/fs/ext2/ext2.h
---- linux-4.9.82/fs/ext2/ext2.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/ext2.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/ext2.h linux-4.9/fs/ext2/ext2.h
+--- linux-4.9/fs/ext2/ext2.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ext2/ext2.h 2021-02-24 15:47:45.061075282 +0100
@@ -247,8 +247,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) */
/* ioctl.c */
extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-4.9.82/fs/ext2/file.c linux-4.9.82-vs2.3.9.7/fs/ext2/file.c
---- linux-4.9.82/fs/ext2/file.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/file.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/file.c linux-4.9/fs/ext2/file.c
+--- linux-4.9/fs/ext2/file.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ext2/file.c 2021-02-24 15:47:45.061075282 +0100
@@ -247,4 +247,5 @@ const struct inode_operations ext2_file_
.get_acl = ext2_get_acl,
.set_acl = ext2_set_acl,
.fiemap = ext2_fiemap,
+ .sync_flags = ext2_sync_flags,
};
-diff -NurpP --minimal linux-4.9.82/fs/ext2/ialloc.c linux-4.9.82-vs2.3.9.7/fs/ext2/ialloc.c
---- linux-4.9.82/fs/ext2/ialloc.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/ialloc.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/ialloc.c linux-4.9/fs/ext2/ialloc.c
+--- linux-4.9/fs/ext2/ialloc.c 2021-02-24 15:47:32.254007963 +0100
++++ linux-4.9/fs/ext2/ialloc.c 2021-02-24 15:47:45.061075282 +0100
@@ -17,6 +17,7 @@
#include <linux/backing-dev.h>
#include <linux/buffer_head.h>
#include "ext2.h"
#include "xattr.h"
#include "acl.h"
-@@ -551,6 +552,7 @@ got:
+@@ -552,6 +553,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-4.9.82/fs/ext2/inode.c linux-4.9.82-vs2.3.9.7/fs/ext2/inode.c
---- linux-4.9.82/fs/ext2/inode.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/inode.c 2018-01-13 01:19:54.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/inode.c linux-4.9/fs/ext2/inode.c
+--- linux-4.9/fs/ext2/inode.c 2021-02-24 15:47:32.254007963 +0100
++++ linux-4.9/fs/ext2/inode.c 2021-02-24 15:47:45.061075282 +0100
@@ -35,6 +35,7 @@
#include <linux/iomap.h>
#include <linux/namei.h>
#include "ext2.h"
#include "acl.h"
#include "xattr.h"
-@@ -1367,39 +1368,61 @@ void ext2_set_inode_flags(struct inode *
+@@ -1360,39 +1361,61 @@ void ext2_set_inode_flags(struct inode *
{
unsigned int flags = EXT2_I(inode)->i_flags;
}
struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
-@@ -1435,8 +1458,10 @@ struct inode *ext2_iget (struct super_bl
+@@ -1428,8 +1451,10 @@ struct inode *ext2_iget (struct super_bl
i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
}
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
inode->i_size = le32_to_cpu(raw_inode->i_size);
inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
-@@ -1543,8 +1568,10 @@ static int __ext2_write_inode(struct ino
+@@ -1536,8 +1561,10 @@ static int __ext2_write_inode(struct ino
struct ext2_inode_info *ei = EXT2_I(inode);
struct super_block *sb = inode->i_sb;
ino_t ino = inode->i_ino;
struct buffer_head * bh;
struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
int n;
-@@ -1580,6 +1607,9 @@ static int __ext2_write_inode(struct ino
+@@ -1573,6 +1600,9 @@ static int __ext2_write_inode(struct ino
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
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);
-@@ -1663,7 +1693,8 @@ int ext2_setattr(struct dentry *dentry,
+@@ -1656,7 +1686,8 @@ int ext2_setattr(struct dentry *dentry,
return error;
}
if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
error = dquot_transfer(inode, iattr);
if (error)
return error;
-diff -NurpP --minimal linux-4.9.82/fs/ext2/ioctl.c linux-4.9.82-vs2.3.9.7/fs/ext2/ioctl.c
---- linux-4.9.82/fs/ext2/ioctl.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/ioctl.c 2018-01-13 01:20:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/ioctl.c linux-4.9/fs/ext2/ioctl.c
+--- linux-4.9/fs/ext2/ioctl.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ext2/ioctl.c 2021-02-24 15:47:45.061075282 +0100
@@ -17,6 +17,16 @@
#include <asm/uaccess.h>
flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
ei->i_flags = flags;
-diff -NurpP --minimal linux-4.9.82/fs/ext2/namei.c linux-4.9.82-vs2.3.9.7/fs/ext2/namei.c
---- linux-4.9.82/fs/ext2/namei.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/namei.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/namei.c linux-4.9/fs/ext2/namei.c
+--- linux-4.9/fs/ext2/namei.c 2021-02-24 15:47:32.254007963 +0100
++++ linux-4.9/fs/ext2/namei.c 2021-02-24 15:47:45.061075282 +0100
@@ -32,6 +32,7 @@
#include <linux/pagemap.h>
#include "ext2.h"
#include "xattr.h"
#include "acl.h"
-@@ -72,6 +73,7 @@ static struct dentry *ext2_lookup(struct
+@@ -71,6 +72,7 @@ static struct dentry *ext2_lookup(struct
(unsigned long) ino);
return ERR_PTR(-EIO);
}
}
return d_splice_alias(inode, dentry);
}
-@@ -445,6 +447,7 @@ const struct inode_operations ext2_speci
+@@ -443,6 +445,7 @@ const struct inode_operations ext2_speci
.listxattr = ext2_listxattr,
#endif
.setattr = ext2_setattr,
.get_acl = ext2_get_acl,
.set_acl = ext2_set_acl,
};
-diff -NurpP --minimal linux-4.9.82/fs/ext2/super.c linux-4.9.82-vs2.3.9.7/fs/ext2/super.c
---- linux-4.9.82/fs/ext2/super.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext2/super.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext2/super.c linux-4.9/fs/ext2/super.c
+--- linux-4.9/fs/ext2/super.c 2021-02-24 15:47:32.254007963 +0100
++++ linux-4.9/fs/ext2/super.c 2021-02-24 15:47:45.061075282 +0100
@@ -411,7 +411,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;
-@@ -887,6 +905,8 @@ static int ext2_fill_super(struct super_
+@@ -898,6 +916,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);
-@@ -1300,6 +1320,14 @@ static int ext2_remount (struct super_bl
+@@ -1311,6 +1331,14 @@ static int ext2_remount (struct super_bl
err = -EINVAL;
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-4.9.82/fs/ext4/ext4.h linux-4.9.82-vs2.3.9.7/fs/ext4/ext4.h
---- linux-4.9.82/fs/ext4/ext4.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/ext4.h 2018-01-13 02:00:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/ext4.h linux-4.9/fs/ext4/ext4.h
+--- linux-4.9/fs/ext4/ext4.h 2021-02-24 15:47:32.254007963 +0100
++++ linux-4.9/fs/ext4/ext4.h 2021-02-24 15:47:45.064408719 +0100
@@ -392,8 +392,11 @@ struct flex_groups {
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
#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 */
-@@ -2497,6 +2502,7 @@ extern int ext4_punch_hole(struct inode
+@@ -2527,6 +2532,7 @@ extern int ext4_punch_hole(struct inode
extern int ext4_truncate_restart_trans(handle_t *, struct inode *, int nblocks);
extern void ext4_set_inode_flags(struct inode *);
extern void ext4_get_inode_flags(struct ext4_inode_info *);
extern int ext4_alloc_da_blocks(struct inode *inode);
extern void ext4_set_aops(struct inode *inode);
extern int ext4_writepage_trans_blocks(struct inode *);
-diff -NurpP --minimal linux-4.9.82/fs/ext4/file.c linux-4.9.82-vs2.3.9.7/fs/ext4/file.c
---- linux-4.9.82/fs/ext4/file.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/file.c 2018-01-10 02:50:49.000000000 +0000
-@@ -691,5 +691,6 @@ const struct inode_operations ext4_file_
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/file.c linux-4.9/fs/ext4/file.c
+--- linux-4.9/fs/ext4/file.c 2021-02-24 15:47:32.257341400 +0100
++++ linux-4.9/fs/ext4/file.c 2021-02-24 15:47:45.064408719 +0100
+@@ -698,5 +698,6 @@ const struct inode_operations ext4_file_
.get_acl = ext4_get_acl,
.set_acl = ext4_set_acl,
.fiemap = ext4_fiemap,
+ .sync_flags = ext4_sync_flags,
};
-diff -NurpP --minimal linux-4.9.82/fs/ext4/ialloc.c linux-4.9.82-vs2.3.9.7/fs/ext4/ialloc.c
---- linux-4.9.82/fs/ext4/ialloc.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/ialloc.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/ialloc.c linux-4.9/fs/ext4/ialloc.c
+--- linux-4.9/fs/ext4/ialloc.c 2021-02-24 15:47:32.257341400 +0100
++++ linux-4.9/fs/ext4/ialloc.c 2021-02-24 15:47:45.064408719 +0100
@@ -21,6 +21,7 @@
#include <linux/random.h>
#include <linux/bitops.h>
#include <asm/byteorder.h>
#include "ext4.h"
-@@ -799,6 +800,7 @@ struct inode *__ext4_new_inode(handle_t
+@@ -780,6 +781,7 @@ struct inode *__ext4_new_inode(handle_t
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-4.9.82/fs/ext4/inode.c linux-4.9.82-vs2.3.9.7/fs/ext4/inode.c
---- linux-4.9.82/fs/ext4/inode.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/inode.c 2018-01-13 02:02:12.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/inode.c linux-4.9/fs/ext4/inode.c
+--- linux-4.9/fs/ext4/inode.c 2021-02-24 15:47:32.260674838 +0100
++++ linux-4.9/fs/ext4/inode.c 2021-02-24 15:47:45.064408719 +0100
@@ -37,6 +37,7 @@
#include <linux/printk.h>
#include <linux/slab.h>
#include "ext4_jbd2.h"
#include "xattr.h"
-@@ -4374,12 +4375,15 @@ void ext4_set_inode_flags(struct inode *
+@@ -4399,12 +4400,15 @@ void ext4_set_inode_flags(struct inode *
unsigned int flags = EXT4_I(inode)->i_flags;
unsigned int new_fl = 0;
if (flags & EXT4_NOATIME_FL)
new_fl |= S_NOATIME;
if (flags & EXT4_DIRSYNC_FL)
-@@ -4387,31 +4391,52 @@ void ext4_set_inode_flags(struct inode *
+@@ -4412,31 +4416,52 @@ void ext4_set_inode_flags(struct inode *
if (test_opt(inode->i_sb, DAX) && S_ISREG(inode->i_mode))
new_fl |= S_DAX;
inode_set_flags(inode, new_fl,
} while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
}
-@@ -4531,8 +4556,10 @@ struct inode *ext4_iget(struct super_blo
+@@ -4584,8 +4609,10 @@ struct inode *__ext4_iget(struct super_b
i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
}
ei->i_projid = make_kprojid(&init_user_ns, i_projid);
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
-@@ -4848,8 +4875,10 @@ static int ext4_do_update_inode(handle_t
+@@ -4909,8 +4936,10 @@ static int ext4_do_update_inode(handle_t
ext4_get_inode_flags(ei);
raw_inode->i_mode = cpu_to_le16(inode->i_mode);
i_projid = from_kprojid(&init_user_ns, ei->i_projid);
if (!(test_opt(inode->i_sb, NO_UID32))) {
raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
-@@ -4873,6 +4902,9 @@ static int ext4_do_update_inode(handle_t
+@@ -4934,6 +4963,9 @@ static int ext4_do_update_inode(handle_t
raw_inode->i_uid_high = 0;
raw_inode->i_gid_high = 0;
}
raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -5126,7 +5158,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -5191,7 +5223,8 @@ int ext4_setattr(struct dentry *dentry,
return error;
}
if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
handle_t *handle;
/* (user+group)*(old+new) structure, inode write (sb,
-@@ -5149,6 +5182,8 @@ int ext4_setattr(struct dentry *dentry,
+@@ -5214,6 +5247,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-4.9.82/fs/ext4/ioctl.c linux-4.9.82-vs2.3.9.7/fs/ext4/ioctl.c
---- linux-4.9.82/fs/ext4/ioctl.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/ioctl.c 2018-01-13 02:03:59.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/ioctl.c linux-4.9/fs/ext4/ioctl.c
+--- linux-4.9/fs/ext4/ioctl.c 2021-02-24 15:47:32.260674838 +0100
++++ linux-4.9/fs/ext4/ioctl.c 2021-02-24 15:47:45.064408719 +0100
@@ -15,6 +15,7 @@
#include <linux/file.h>
#include <linux/quotaops.h>
if (!capable(CAP_LINUX_IMMUTABLE))
goto flags_out;
}
-@@ -430,6 +433,33 @@ static inline unsigned long ext4_xflags_
+@@ -432,6 +435,33 @@ static inline unsigned long ext4_xflags_
return iflags;
}
long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = file_inode(filp);
-@@ -459,6 +489,11 @@ long ext4_ioctl(struct file *filp, unsig
+@@ -461,6 +491,11 @@ long ext4_ioctl(struct file *filp, unsig
flags = ext4_mask_flags(inode->i_mode, flags);
inode_lock(inode);
err = ext4_ioctl_setflags(inode, flags);
inode_unlock(inode);
-diff -NurpP --minimal linux-4.9.82/fs/ext4/namei.c linux-4.9.82-vs2.3.9.7/fs/ext4/namei.c
---- linux-4.9.82/fs/ext4/namei.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/namei.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/namei.c linux-4.9/fs/ext4/namei.c
+--- linux-4.9/fs/ext4/namei.c 2021-02-24 15:47:32.260674838 +0100
++++ linux-4.9/fs/ext4/namei.c 2021-02-24 15:47:45.064408719 +0100
@@ -33,6 +33,7 @@
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
#include "ext4.h"
#include "ext4_jbd2.h"
-@@ -1459,6 +1460,7 @@ restart:
+@@ -1457,6 +1458,7 @@ restart:
REQ_META | REQ_PRIO,
1, &bh);
}
}
if ((bh = bh_use[ra_ptr++]) == NULL)
goto next;
-@@ -3906,6 +3908,7 @@ const struct inode_operations ext4_dir_i
+@@ -3935,6 +3937,7 @@ const struct inode_operations ext4_dir_i
.get_acl = ext4_get_acl,
.set_acl = ext4_set_acl,
.fiemap = ext4_fiemap,
};
const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-4.9.82/fs/ext4/super.c linux-4.9.82-vs2.3.9.7/fs/ext4/super.c
---- linux-4.9.82/fs/ext4/super.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ext4/super.c 2018-01-10 02:50:49.000000000 +0000
-@@ -1280,6 +1280,7 @@ enum {
+diff -urNp -x '*.orig' linux-4.9/fs/ext4/super.c linux-4.9/fs/ext4/super.c
+--- linux-4.9/fs/ext4/super.c 2021-02-24 15:47:32.264008276 +0100
++++ linux-4.9/fs/ext4/super.c 2021-02-24 15:47:45.067742158 +0100
+@@ -1294,6 +1294,7 @@ enum {
Opt_dioread_nolock, Opt_dioread_lock,
Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
Opt_max_dir_size_kb, Opt_nojournal_checksum,
};
static const match_table_t tokens = {
-@@ -1366,6 +1367,9 @@ static const match_table_t tokens = {
+@@ -1380,6 +1381,9 @@ static const match_table_t tokens = {
{Opt_removed, "reservation"}, /* mount option from ext2/3 */
{Opt_removed, "noreservation"}, /* mount option from ext2/3 */
{Opt_removed, "journal=%u"}, /* mount option from ext2/3 */
{Opt_err, NULL},
};
-@@ -1611,6 +1615,20 @@ static int handle_mount_opt(struct super
+@@ -1625,6 +1629,20 @@ static int handle_mount_opt(struct super
case Opt_nolazytime:
sb->s_flags &= ~MS_LAZYTIME;
return 1;
}
for (m = ext4_mount_opts; m->token != Opt_err; m++)
-@@ -3550,6 +3568,9 @@ static int ext4_fill_super(struct super_
+@@ -3645,6 +3663,9 @@ static int ext4_fill_super(struct super_
sb->s_iflags |= SB_I_CGROUPWB;
}
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
-@@ -4917,6 +4938,14 @@ static int ext4_remount(struct super_blo
+@@ -5032,6 +5053,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-4.9.82/fs/fcntl.c linux-4.9.82-vs2.3.9.7/fs/fcntl.c
---- linux-4.9.82/fs/fcntl.c 2018-02-22 21:18:46.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/fcntl.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/fcntl.c linux-4.9/fs/fcntl.c
+--- linux-4.9/fs/fcntl.c 2021-02-24 15:47:32.270675151 +0100
++++ linux-4.9/fs/fcntl.c 2021-02-24 15:47:45.067742158 +0100
@@ -22,6 +22,7 @@
#include <linux/pid_namespace.h>
#include <linux/user_namespace.h>
if (unlikely(f.file->f_mode & FMODE_PATH)) {
if (!check_fcntl_cmd(cmd))
-diff -NurpP --minimal linux-4.9.82/fs/file.c linux-4.9.82-vs2.3.9.7/fs/file.c
---- linux-4.9.82/fs/file.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/file.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/file.c linux-4.9/fs/file.c
+--- linux-4.9/fs/file.c 2021-02-24 15:47:32.270675151 +0100
++++ linux-4.9/fs/file.c 2021-02-24 15:47:45.067742158 +0100
@@ -22,6 +22,7 @@
#include <linux/spinlock.h>
#include <linux/rcupdate.h>
}
}
-@@ -539,6 +544,7 @@ repeat:
+@@ -540,6 +545,7 @@ repeat:
else
__clear_close_on_exec(fd, fdt);
error = fd;
#if 1
/* Sanity check */
if (rcu_access_pointer(fdt->fd[fd]) != NULL) {
-@@ -569,6 +575,7 @@ static void __put_unused_fd(struct files
+@@ -570,6 +576,7 @@ static void __put_unused_fd(struct files
__clear_open_fd(fd, fdt);
if (fd < files->next_fd)
files->next_fd = fd;
}
void put_unused_fd(unsigned int fd)
-@@ -856,6 +863,8 @@ __releases(&files->file_lock)
+@@ -857,6 +864,8 @@ __releases(&files->file_lock)
if (tofree)
filp_close(tofree, files);
return fd;
-diff -NurpP --minimal linux-4.9.82/fs/file_table.c linux-4.9.82-vs2.3.9.7/fs/file_table.c
---- linux-4.9.82/fs/file_table.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/file_table.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/file_table.c linux-4.9/fs/file_table.c
+--- linux-4.9/fs/file_table.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/file_table.c 2021-02-24 15:47:45.067742158 +0100
@@ -26,6 +26,8 @@
#include <linux/task_work.h>
#include <linux/ima.h>
file_free(file);
}
}
-diff -NurpP --minimal linux-4.9.82/fs/fs_struct.c linux-4.9.82-vs2.3.9.7/fs/fs_struct.c
---- linux-4.9.82/fs/fs_struct.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/fs_struct.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/fs_struct.c linux-4.9/fs/fs_struct.c
+--- linux-4.9/fs/fs_struct.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/fs_struct.c 2021-02-24 15:47:45.067742158 +0100
@@ -4,6 +4,7 @@
#include <linux/path.h>
#include <linux/slab.h>
}
return fs;
}
-diff -NurpP --minimal linux-4.9.82/fs/gfs2/file.c linux-4.9.82-vs2.3.9.7/fs/gfs2/file.c
---- linux-4.9.82/fs/gfs2/file.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/gfs2/file.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/gfs2/file.c linux-4.9/fs/gfs2/file.c
+--- linux-4.9/fs/gfs2/file.c 2021-02-24 15:47:32.277342026 +0100
++++ linux-4.9/fs/gfs2/file.c 2021-02-24 15:47:45.067742158 +0100
@@ -137,6 +137,9 @@ static const u32 fsflags_to_gfs2[32] = {
[12] = GFS2_DIF_EXHASH,
[14] = GFS2_DIF_INHERIT_JDATA,
static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch(cmd) {
-diff -NurpP --minimal linux-4.9.82/fs/gfs2/inode.h linux-4.9.82-vs2.3.9.7/fs/gfs2/inode.h
---- linux-4.9.82/fs/gfs2/inode.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/gfs2/inode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/gfs2/inode.h linux-4.9/fs/gfs2/inode.h
+--- linux-4.9/fs/gfs2/inode.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/gfs2/inode.h 2021-02-24 15:47:45.067742158 +0100
@@ -117,6 +117,7 @@ extern const struct file_operations gfs2
extern const struct file_operations gfs2_dir_fops_nolock;
#ifdef CONFIG_GFS2_FS_LOCKING_DLM
extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-4.9.82/fs/hostfs/hostfs.h linux-4.9.82-vs2.3.9.7/fs/hostfs/hostfs.h
---- linux-4.9.82/fs/hostfs/hostfs.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/hostfs/hostfs.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/hostfs/hostfs.h linux-4.9/fs/hostfs/hostfs.h
+--- linux-4.9/fs/hostfs/hostfs.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/hostfs/hostfs.h 2021-02-24 15:47:45.067742158 +0100
@@ -42,6 +42,7 @@ struct hostfs_iattr {
unsigned short ia_mode;
uid_t ia_uid;
loff_t ia_size;
struct timespec ia_atime;
struct timespec ia_mtime;
-diff -NurpP --minimal linux-4.9.82/fs/inode.c linux-4.9.82-vs2.3.9.7/fs/inode.c
---- linux-4.9.82/fs/inode.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/inode.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/inode.c linux-4.9/fs/inode.c
+--- linux-4.9/fs/inode.c 2021-02-24 15:47:32.280675463 +0100
++++ linux-4.9/fs/inode.c 2021-02-24 15:47:45.067742158 +0100
@@ -18,6 +18,7 @@
#include <linux/buffer_head.h> /* for inode_has_buffers */
#include <linux/ratelimit.h>
+ /* essential because of inode slab reuse */
inode->i_blkbits = sb->s_blocksize_bits;
inode->i_flags = 0;
- atomic_set(&inode->i_count, 1);
-@@ -144,6 +147,7 @@ int inode_init_always(struct super_block
+ atomic64_set(&inode->i_sequence, 0);
+@@ -145,6 +148,7 @@ int inode_init_always(struct super_block
inode->i_opflags |= IOP_XATTR;
i_uid_write(inode, 0);
i_gid_write(inode, 0);
atomic_set(&inode->i_writecount, 0);
inode->i_size = 0;
inode->i_blocks = 0;
-@@ -155,6 +159,7 @@ int inode_init_always(struct super_block
+@@ -156,6 +160,7 @@ int inode_init_always(struct super_block
inode->i_link = NULL;
inode->i_dir_seq = 0;
inode->i_rdev = 0;
inode->dirtied_when = 0;
#ifdef CONFIG_CGROUP_WRITEBACK
-@@ -479,6 +484,8 @@ void __insert_inode_hash(struct inode *i
+@@ -480,6 +485,8 @@ void __insert_inode_hash(struct inode *i
}
EXPORT_SYMBOL(__insert_inode_hash);
/**
* __remove_inode_hash - remove an inode from the hash
* @inode: inode to unhash
-@@ -1977,9 +1984,11 @@ void init_special_inode(struct inode *in
+@@ -1983,9 +1990,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 = &pipefifo_fops;
else if (S_ISSOCK(mode))
-@@ -2008,6 +2017,7 @@ void inode_init_owner(struct inode *inod
+@@ -2020,6 +2029,7 @@ void inode_init_owner(struct inode *inod
} else
inode->i_gid = current_fsgid();
inode->i_mode = mode;
}
EXPORT_SYMBOL(inode_init_owner);
-diff -NurpP --minimal linux-4.9.82/fs/ioctl.c linux-4.9.82-vs2.3.9.7/fs/ioctl.c
---- linux-4.9.82/fs/ioctl.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ioctl.c 2018-01-13 01:03:36.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ioctl.c linux-4.9/fs/ioctl.c
+--- linux-4.9/fs/ioctl.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ioctl.c 2021-02-24 15:47:45.067742158 +0100
@@ -15,6 +15,9 @@
#include <linux/writeback.h>
#include <linux/buffer_head.h>
#include "internal.h"
#include <asm/ioctls.h>
-diff -NurpP --minimal linux-4.9.82/fs/jfs/file.c linux-4.9.82-vs2.3.9.7/fs/jfs/file.c
---- linux-4.9.82/fs/jfs/file.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/file.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/file.c linux-4.9/fs/jfs/file.c
+--- linux-4.9/fs/jfs/file.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/file.c 2021-02-24 15:47:45.067742158 +0100
@@ -113,7 +113,8 @@ int jfs_setattr(struct dentry *dentry, s
return rc;
}
};
const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-4.9.82/fs/jfs/ioctl.c linux-4.9.82-vs2.3.9.7/fs/jfs/ioctl.c
---- linux-4.9.82/fs/jfs/ioctl.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/ioctl.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/ioctl.c linux-4.9/fs/jfs/ioctl.c
+--- linux-4.9/fs/jfs/ioctl.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/ioctl.c 2021-02-24 15:47:45.067742158 +0100
@@ -12,6 +12,7 @@
#include <linux/time.h>
#include <linux/sched.h>
flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
jfs_inode->mode2 = flags;
-diff -NurpP --minimal linux-4.9.82/fs/jfs/jfs_dinode.h linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_dinode.h
---- linux-4.9.82/fs/jfs/jfs_dinode.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_dinode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/jfs_dinode.h linux-4.9/fs/jfs/jfs_dinode.h
+--- linux-4.9/fs/jfs/jfs_dinode.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/jfs_dinode.h 2021-02-24 15:47:45.067742158 +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-4.9.82/fs/jfs/jfs_filsys.h linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_filsys.h
---- linux-4.9.82/fs/jfs/jfs_filsys.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_filsys.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/jfs_filsys.h linux-4.9/fs/jfs/jfs_filsys.h
+--- linux-4.9/fs/jfs/jfs_filsys.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/jfs_filsys.h 2021-02-24 15:47:45.067742158 +0100
@@ -266,6 +266,7 @@
#define JFS_NAME_MAX 255
#define JFS_PATH_MAX BPSIZE
/*
* file system state (superblock state)
-diff -NurpP --minimal linux-4.9.82/fs/jfs/jfs_imap.c linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_imap.c
---- linux-4.9.82/fs/jfs/jfs_imap.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_imap.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/jfs_imap.c linux-4.9/fs/jfs/jfs_imap.c
+--- linux-4.9/fs/jfs/jfs_imap.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/jfs_imap.c 2021-02-24 15:47:45.071075595 +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-4.9.82/fs/jfs/jfs_inode.c linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_inode.c
---- linux-4.9.82/fs/jfs/jfs_inode.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_inode.c 2018-01-14 06:01:31.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/jfs_inode.c linux-4.9/fs/jfs/jfs_inode.c
+--- linux-4.9/fs/jfs/jfs_inode.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/jfs_inode.c 2021-02-24 15:47:45.071075595 +0100
@@ -18,6 +18,7 @@
#include <linux/fs.h>
}
/*
-diff -NurpP --minimal linux-4.9.82/fs/jfs/jfs_inode.h linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_inode.h
---- linux-4.9.82/fs/jfs/jfs_inode.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/jfs_inode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/jfs_inode.h linux-4.9/fs/jfs/jfs_inode.h
+--- linux-4.9/fs/jfs/jfs_inode.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/jfs/jfs_inode.h 2021-02-24 15:47:45.071075595 +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-4.9.82/fs/jfs/namei.c linux-4.9.82-vs2.3.9.7/fs/jfs/namei.c
---- linux-4.9.82/fs/jfs/namei.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/namei.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/namei.c linux-4.9/fs/jfs/namei.c
+--- linux-4.9/fs/jfs/namei.c 2021-02-24 15:47:32.287342339 +0100
++++ linux-4.9/fs/jfs/namei.c 2021-02-24 15:47:45.071075595 +0100
@@ -22,6 +22,7 @@
#include <linux/ctype.h>
#include <linux/quotaops.h>
#include "jfs_incore.h"
#include "jfs_superblock.h"
#include "jfs_inode.h"
-@@ -1484,6 +1485,7 @@ static struct dentry *jfs_lookup(struct
+@@ -1480,6 +1481,7 @@ static struct dentry *jfs_lookup(struct
jfs_err("jfs_lookup: iget failed on inum %d", (uint)inum);
}
return d_splice_alias(ip, dentry);
}
-@@ -1546,6 +1548,7 @@ const struct inode_operations jfs_dir_in
+@@ -1542,6 +1544,7 @@ const struct inode_operations jfs_dir_in
.get_acl = jfs_get_acl,
.set_acl = jfs_set_acl,
#endif
};
const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-4.9.82/fs/jfs/super.c linux-4.9.82-vs2.3.9.7/fs/jfs/super.c
---- linux-4.9.82/fs/jfs/super.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/jfs/super.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/jfs/super.c linux-4.9/fs/jfs/super.c
+--- linux-4.9/fs/jfs/super.c 2021-02-24 15:47:32.287342339 +0100
++++ linux-4.9/fs/jfs/super.c 2021-02-24 15:47:45.071075595 +0100
@@ -206,7 +206,8 @@ enum {
Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
if (newLVSize) {
pr_err("resize option for remount only\n");
-diff -NurpP --minimal linux-4.9.82/fs/libfs.c linux-4.9.82-vs2.3.9.7/fs/libfs.c
---- linux-4.9.82/fs/libfs.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/libfs.c 2018-01-13 01:03:09.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/libfs.c linux-4.9/fs/libfs.c
+--- linux-4.9/fs/libfs.c 2021-02-24 15:47:32.287342339 +0100
++++ linux-4.9/fs/libfs.c 2021-02-24 15:47:45.071075595 +0100
@@ -180,7 +180,8 @@ static inline unsigned char dt_type(stru
* both impossible due to the lock on directory.
*/
{
struct dentry *dentry = file->f_path.dentry;
struct dentry *cursor = file->private_data;
-@@ -194,9 +195,10 @@ int dcache_readdir(struct file *file, st
- if (ctx->pos == 2)
- p = &dentry->d_subdirs;
- while ((next = next_positive(dentry, p, 1)) != NULL) {
+@@ -197,9 +198,10 @@ int dcache_readdir(struct file *file, st
+ p = &cursor->d_child;
+
+ while ((p = scan_positives(cursor, p, 1, &next)) != anchor) {
- if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
+ if (!filter || filter(next))
+ if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
d_inode(next)->i_ino, dt_type(d_inode(next))))
- break;
+ break;
- moved = true;
- p = &next->d_child;
ctx->pos++;
-@@ -205,8 +207,22 @@ int dcache_readdir(struct file *file, st
- move_cursor(cursor, p);
+ }
+ spin_lock(&dentry->d_lock);
+@@ -209,8 +211,22 @@ int dcache_readdir(struct file *file, st
+
return 0;
}
+
ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
{
return -EISDIR;
-diff -NurpP --minimal linux-4.9.82/fs/locks.c linux-4.9.82-vs2.3.9.7/fs/locks.c
---- linux-4.9.82/fs/locks.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/locks.c 2018-01-13 01:28:30.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/locks.c linux-4.9/fs/locks.c
+--- linux-4.9/fs/locks.c 2021-02-24 15:47:32.287342339 +0100
++++ linux-4.9/fs/locks.c 2021-02-24 15:47:45.071075595 +0100
@@ -127,6 +127,8 @@
#include <linux/pid_namespace.h>
#include <linux/hashtable.h>
return 0;
}
-diff -NurpP --minimal linux-4.9.82/fs/mount.h linux-4.9.82-vs2.3.9.7/fs/mount.h
---- linux-4.9.82/fs/mount.h 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/mount.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/mount.h linux-4.9/fs/mount.h
+--- linux-4.9/fs/mount.h 2021-02-24 15:47:32.287342339 +0100
++++ linux-4.9/fs/mount.h 2021-02-24 15:47:45.071075595 +0100
@@ -69,6 +69,7 @@ struct mount {
struct hlist_head mnt_pins;
struct fs_pin mnt_umount;
};
#define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
-diff -NurpP --minimal linux-4.9.82/fs/namei.c linux-4.9.82-vs2.3.9.7/fs/namei.c
---- linux-4.9.82/fs/namei.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/namei.c 2018-01-13 05:43:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/namei.c linux-4.9/fs/namei.c
+--- linux-4.9/fs/namei.c 2021-02-24 15:47:32.290675776 +0100
++++ linux-4.9/fs/namei.c 2021-02-24 15:47:45.071075595 +0100
@@ -37,9 +37,19 @@
#include <linux/hash.h>
#include <linux/bitops.h>
#include "mount.h"
/* [Feb-1997 T. Schoebel-Theuer]
-@@ -285,6 +295,93 @@ static int check_acl(struct inode *inode
+@@ -286,6 +296,93 @@ static int check_acl(struct inode *inode
return -EAGAIN;
}
/*
* This does the basic permission checking
*/
-@@ -409,7 +506,7 @@ int __inode_permission(struct inode *ino
+@@ -410,7 +507,7 @@ int __inode_permission(struct inode *ino
/*
* Nobody gets write access to an immutable file.
*/
return -EPERM;
/*
-@@ -421,6 +518,10 @@ int __inode_permission(struct inode *ino
+@@ -422,6 +519,10 @@ int __inode_permission(struct inode *ino
return -EACCES;
}
retval = do_inode_permission(inode, mask);
if (retval)
return retval;
-@@ -2781,7 +2882,7 @@ static int may_delete(struct inode *dir,
+@@ -2825,7 +2926,7 @@ static int may_delete(struct inode *dir,
return -EPERM;
if (check_sticky(dir, inode) || IS_APPEND(inode) ||
return -EPERM;
if (isdir) {
if (!d_is_dir(victim))
-@@ -2869,19 +2970,25 @@ int vfs_create(struct inode *dir, struct
+@@ -2913,19 +3014,25 @@ int vfs_create(struct inode *dir, struct
bool want_excl)
{
int error = may_create(dir, dentry);
return error;
}
EXPORT_SYMBOL(vfs_create);
-@@ -2919,6 +3026,15 @@ static int may_open(struct path *path, i
+@@ -2963,6 +3070,15 @@ static int may_open(struct path *path, i
break;
}
error = inode_permission(inode, MAY_OPEN | acc_mode);
if (error)
return error;
-@@ -3371,6 +3487,16 @@ finish_open:
+@@ -3423,6 +3539,16 @@ finish_open:
}
finish_open_created:
error = may_open(&nd->path, acc_mode, open_flag);
if (error)
goto out;
BUG_ON(*opened & FILE_OPENED); /* once it's opened, it's opened */
-@@ -3474,6 +3600,9 @@ static struct file *path_openat(struct n
+@@ -3526,6 +3652,9 @@ static struct file *path_openat(struct n
int opened = 0;
int error;
file = get_empty_filp();
if (IS_ERR(file))
return file;
-@@ -3507,6 +3636,12 @@ static struct file *path_openat(struct n
+@@ -3559,6 +3688,12 @@ static struct file *path_openat(struct n
}
}
terminate_walk(nd);
out2:
if (!(opened & FILE_OPENED)) {
BUG_ON(!error);
-@@ -3627,6 +3762,11 @@ static struct dentry *filename_create(in
+@@ -3679,6 +3814,11 @@ static struct dentry *filename_create(in
goto fail;
}
putname(name);
return dentry;
fail:
dput(dentry);
-@@ -3745,6 +3885,7 @@ retry:
+@@ -3797,6 +3937,7 @@ retry:
error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
break;
}
out:
done_path_create(&path, dentry);
if (retry_estale(error, lookup_flags)) {
-@@ -4166,7 +4307,7 @@ int vfs_link(struct dentry *old_dentry,
+@@ -4218,7 +4359,7 @@ int vfs_link(struct dentry *old_dentry,
/*
* A link to an append-only or immutable file cannot be created.
*/
return -EPERM;
/*
* Updating the link count will likely cause i_uid and i_gid to
-@@ -4696,6 +4837,326 @@ const char *vfs_get_link(struct dentry *
+@@ -4748,6 +4889,326 @@ const char *vfs_get_link(struct dentry *
}
EXPORT_SYMBOL(vfs_get_link);
/* get the link contents into pagecache */
const char *page_get_link(struct dentry *dentry, struct inode *inode,
struct delayed_call *callback)
-diff -NurpP --minimal linux-4.9.82/fs/namespace.c linux-4.9.82-vs2.3.9.7/fs/namespace.c
---- linux-4.9.82/fs/namespace.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/namespace.c 2018-01-13 01:17:24.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/namespace.c linux-4.9/fs/namespace.c
+--- linux-4.9/fs/namespace.c 2021-02-24 15:47:32.290675776 +0100
++++ linux-4.9/fs/namespace.c 2021-02-24 15:47:45.074409033 +0100
@@ -24,6 +24,11 @@
#include <linux/magic.h>
#include <linux/bootmem.h>
#include "pnode.h"
#include "internal.h"
-@@ -971,6 +976,10 @@ vfs_kern_mount(struct file_system_type *
+@@ -980,6 +985,10 @@ vfs_kern_mount(struct file_system_type *
if (!type)
return ERR_PTR(-ENODEV);
mnt = alloc_vfsmnt(name);
if (!mnt)
return ERR_PTR(-ENOMEM);
-@@ -1061,6 +1070,7 @@ static struct mount *clone_mnt(struct mo
+@@ -1071,6 +1080,7 @@ static struct mount *clone_mnt(struct mo
mnt->mnt.mnt_root = dget(root);
mnt->mnt_mountpoint = mnt->mnt.mnt_root;
mnt->mnt_parent = mnt;
lock_mount_hash();
list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
unlock_mount_hash();
-@@ -1635,7 +1645,8 @@ out_unlock:
+@@ -1666,7 +1676,8 @@ out_unlock:
*/
static inline bool may_mount(void)
{
}
static inline bool may_mandlock(void)
-@@ -2144,6 +2155,7 @@ static int do_change_type(struct path *p
+@@ -2181,6 +2192,7 @@ static int do_change_type(struct path *p
if (err)
goto out_unlock;
}
lock_mount_hash();
for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
-@@ -2172,12 +2184,14 @@ static bool has_locked_children(struct m
+@@ -2209,12 +2221,14 @@ static bool has_locked_children(struct m
* do loopback mount.
*/
static int do_loopback(struct path *path, const char *old_name,
if (!old_name || !*old_name)
return -EINVAL;
err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path);
-@@ -2257,7 +2271,7 @@ static int change_mount_flags(struct vfs
+@@ -2294,7 +2308,7 @@ static int change_mount_flags(struct vfs
* on it - tough luck.
*/
static int do_remount(struct path *path, int flags, int mnt_flags,
{
int err;
struct super_block *sb = path->mnt->mnt_sb;
-@@ -2742,6 +2756,7 @@ long do_mount(const char *dev_name, cons
+@@ -2779,6 +2793,7 @@ long do_mount(const char *dev_name, cons
struct path path;
int retval = 0;
int mnt_flags = 0;
/* Discard magic */
if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2769,6 +2784,12 @@ long do_mount(const char *dev_name, cons
+@@ -2806,6 +2821,12 @@ long do_mount(const char *dev_name, cons
if (!(flags & MS_NOATIME))
mnt_flags |= MNT_RELATIME;
/* Separate the per-mountpoint flags */
if (flags & MS_NOSUID)
mnt_flags |= MNT_NOSUID;
-@@ -2793,15 +2814,18 @@ long do_mount(const char *dev_name, cons
+@@ -2830,15 +2851,18 @@ long do_mount(const char *dev_name, cons
mnt_flags |= path.mnt->mnt_flags & MNT_ATIME_MASK;
}
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
retval = do_change_type(&path, flags);
else if (flags & MS_MOVE)
-@@ -2942,6 +2966,7 @@ struct mnt_namespace *copy_mnt_ns(unsign
+@@ -2979,6 +3003,7 @@ struct mnt_namespace *copy_mnt_ns(unsign
p = next_mnt(p, old);
}
namespace_unlock();
if (rootmnt)
mntput(rootmnt);
-@@ -3117,9 +3142,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
+@@ -3154,9 +3179,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
new_mnt = real_mount(new.mnt);
root_mnt = real_mount(root.mnt);
old_mnt = real_mount(old.mnt);
goto out4;
if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
goto out4;
-@@ -3257,6 +3283,7 @@ void put_mnt_ns(struct mnt_namespace *ns
+@@ -3294,6 +3320,7 @@ void put_mnt_ns(struct mnt_namespace *ns
if (!atomic_dec_and_test(&ns->count))
return;
drop_collected_mounts(&ns->root->mnt);
free_mnt_ns(ns);
}
-diff -NurpP --minimal linux-4.9.82/fs/nfs/client.c linux-4.9.82-vs2.3.9.7/fs/nfs/client.c
---- linux-4.9.82/fs/nfs/client.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfs/client.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfs/client.c linux-4.9/fs/nfs/client.c
+--- linux-4.9/fs/nfs/client.c 2021-02-24 15:47:32.290675776 +0100
++++ linux-4.9/fs/nfs/client.c 2021-02-24 15:47:45.074409033 +0100
@@ -586,6 +586,9 @@ int nfs_init_server_rpcclient(struct nfs
if (server->flags & NFS_MOUNT_SOFT)
server->client->cl_softrtry = 1;
server->maxfilesize = fsinfo->maxfilesize;
server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-4.9.82/fs/nfs/dir.c linux-4.9.82-vs2.3.9.7/fs/nfs/dir.c
---- linux-4.9.82/fs/nfs/dir.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfs/dir.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfs/dir.c linux-4.9/fs/nfs/dir.c
+--- linux-4.9/fs/nfs/dir.c 2021-02-24 15:47:32.294009214 +0100
++++ linux-4.9/fs/nfs/dir.c 2021-02-24 15:47:45.074409033 +0100
@@ -37,6 +37,7 @@
#include <linux/sched.h>
#include <linux/kmemleak.h>
#include "delegation.h"
#include "iostat.h"
-@@ -1420,6 +1421,7 @@ struct dentry *nfs_lookup(struct inode *
+@@ -1431,6 +1432,7 @@ struct dentry *nfs_lookup(struct inode *
/* Success: notify readdir to use READDIRPLUS */
nfs_advise_use_readdirplus(dir);
no_entry:
res = d_splice_alias(inode, dentry);
if (res != NULL) {
-diff -NurpP --minimal linux-4.9.82/fs/nfs/inode.c linux-4.9.82-vs2.3.9.7/fs/nfs/inode.c
---- linux-4.9.82/fs/nfs/inode.c 2018-02-22 21:18:47.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfs/inode.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfs/inode.c linux-4.9/fs/nfs/inode.c
+--- linux-4.9/fs/nfs/inode.c 2021-02-24 15:47:32.294009214 +0100
++++ linux-4.9/fs/nfs/inode.c 2021-02-24 15:47:45.074409033 +0100
@@ -38,6 +38,7 @@
#include <linux/slab.h>
#include <linux/compat.h>
nfs_set_cache_invalid(inode, NFS_INO_INVALID_ACCESS
| NFS_INO_INVALID_ACL);
}
-@@ -1272,7 +1281,9 @@ static int nfs_check_inode_attributes(st
+@@ -1273,7 +1282,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;
if (nfs_have_delegated_attributes(inode))
return 0;
-@@ -1301,13 +1312,18 @@ static int nfs_check_inode_attributes(st
+@@ -1302,13 +1313,18 @@ static int nfs_check_inode_attributes(st
}
}
/* Has the link count changed? */
if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1666,6 +1682,9 @@ static int nfs_update_inode(struct inode
+@@ -1667,6 +1683,9 @@ static int nfs_update_inode(struct inode
unsigned long save_cache_validity;
bool have_writers = nfs_file_has_buffered_writers(nfsi);
bool cache_revalidated = true;
dfprintk(VFS, "NFS: %s(%s/%lu fh_crc=0x%08x ct=%d info=0x%x)\n",
__func__, inode->i_sb->s_id, inode->i_ino,
-@@ -1785,6 +1804,9 @@ static int nfs_update_inode(struct inode
+@@ -1786,6 +1805,9 @@ static int nfs_update_inode(struct inode
cache_revalidated = false;
}
if (fattr->valid & NFS_ATTR_FATTR_ATIME)
memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1839,6 +1861,10 @@ static int nfs_update_inode(struct inode
+@@ -1840,6 +1862,10 @@ static int nfs_update_inode(struct inode
cache_revalidated = false;
}
if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
if (inode->i_nlink != fattr->nlink) {
invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-4.9.82/fs/nfs/nfs3xdr.c linux-4.9.82-vs2.3.9.7/fs/nfs/nfs3xdr.c
---- linux-4.9.82/fs/nfs/nfs3xdr.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfs/nfs3xdr.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfs/nfs3xdr.c linux-4.9/fs/nfs/nfs3xdr.c
+--- linux-4.9/fs/nfs/nfs3xdr.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/nfs/nfs3xdr.c 2021-02-24 15:47:45.074409033 +0100
@@ -20,6 +20,7 @@
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
}
/*
-diff -NurpP --minimal linux-4.9.82/fs/nfs/super.c linux-4.9.82-vs2.3.9.7/fs/nfs/super.c
---- linux-4.9.82/fs/nfs/super.c 2018-02-22 21:18:48.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfs/super.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfs/super.c linux-4.9/fs/nfs/super.c
+--- linux-4.9/fs/nfs/super.c 2021-02-24 15:47:32.300676089 +0100
++++ linux-4.9/fs/nfs/super.c 2021-02-24 15:47:45.074409033 +0100
@@ -54,6 +54,7 @@
#include <linux/parser.h>
#include <linux/nsproxy.h>
/*
* options that take text values
-diff -NurpP --minimal linux-4.9.82/fs/nfsd/auth.c linux-4.9.82-vs2.3.9.7/fs/nfsd/auth.c
---- linux-4.9.82/fs/nfsd/auth.c 2018-02-22 21:18:48.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfsd/auth.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfsd/auth.c linux-4.9/fs/nfsd/auth.c
+--- linux-4.9/fs/nfsd/auth.c 2021-02-24 15:47:32.300676089 +0100
++++ linux-4.9/fs/nfsd/auth.c 2021-02-24 15:47:45.074409033 +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-4.9.82/fs/nfsd/nfs3xdr.c linux-4.9.82-vs2.3.9.7/fs/nfsd/nfs3xdr.c
---- linux-4.9.82/fs/nfsd/nfs3xdr.c 2018-02-22 21:18:48.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfsd/nfs3xdr.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfsd/nfs3xdr.c linux-4.9/fs/nfsd/nfs3xdr.c
+--- linux-4.9/fs/nfsd/nfs3xdr.c 2021-02-24 15:47:32.300676089 +0100
++++ linux-4.9/fs/nfsd/nfs3xdr.c 2021-02-24 15:47:45.077742470 +0100
@@ -8,6 +8,7 @@
#include <linux/namei.h>
if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
} else {
-diff -NurpP --minimal linux-4.9.82/fs/nfsd/nfs4xdr.c linux-4.9.82-vs2.3.9.7/fs/nfsd/nfs4xdr.c
---- linux-4.9.82/fs/nfsd/nfs4xdr.c 2018-02-22 21:18:48.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfsd/nfs4xdr.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfsd/nfs4xdr.c linux-4.9/fs/nfsd/nfs4xdr.c
+--- linux-4.9/fs/nfsd/nfs4xdr.c 2021-02-24 15:47:32.304009527 +0100
++++ linux-4.9/fs/nfsd/nfs4xdr.c 2021-02-24 15:47:45.077742470 +0100
@@ -40,6 +40,7 @@
#include <linux/utsname.h>
#include <linux/pagemap.h>
#include "idmap.h"
#include "acl.h"
-@@ -2677,12 +2678,16 @@ out_acl:
+@@ -2679,12 +2680,16 @@ out_acl:
*p++ = cpu_to_be32(stat.nlink);
}
if (bmval1 & FATTR4_WORD1_OWNER) {
if (status)
goto out;
}
-diff -NurpP --minimal linux-4.9.82/fs/nfsd/nfsxdr.c linux-4.9.82-vs2.3.9.7/fs/nfsd/nfsxdr.c
---- linux-4.9.82/fs/nfsd/nfsxdr.c 2018-02-22 21:18:48.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/nfsd/nfsxdr.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/nfsd/nfsxdr.c linux-4.9/fs/nfsd/nfsxdr.c
+--- linux-4.9/fs/nfsd/nfsxdr.c 2021-02-24 15:47:32.307342964 +0100
++++ linux-4.9/fs/nfsd/nfsxdr.c 2021-02-24 15:47:45.077742470 +0100
@@ -7,6 +7,7 @@
#include "vfs.h"
#include "xdr.h"
if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
*p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/dlmglue.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/dlmglue.c
---- linux-4.9.82/fs/ocfs2/dlmglue.c 2018-02-22 21:18:49.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/dlmglue.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/dlmglue.c linux-4.9/fs/ocfs2/dlmglue.c
+--- linux-4.9/fs/ocfs2/dlmglue.c 2021-02-24 15:47:32.314009840 +0100
++++ linux-4.9/fs/ocfs2/dlmglue.c 2021-02-24 15:47:45.077742470 +0100
@@ -2120,6 +2120,7 @@ static void __ocfs2_stuff_meta_lvb(struc
lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters);
lvb->lvb_iuid = cpu_to_be32(i_uid_read(inode));
inode->i_mode = be16_to_cpu(lvb->lvb_imode);
set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));
ocfs2_unpack_timespec(&inode->i_atime,
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/dlmglue.h linux-4.9.82-vs2.3.9.7/fs/ocfs2/dlmglue.h
---- linux-4.9.82/fs/ocfs2/dlmglue.h 2018-02-22 21:18:49.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/dlmglue.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/dlmglue.h linux-4.9/fs/ocfs2/dlmglue.h
+--- linux-4.9/fs/ocfs2/dlmglue.h 2021-02-24 15:47:32.314009840 +0100
++++ linux-4.9/fs/ocfs2/dlmglue.h 2021-02-24 15:47:45.077742470 +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-4.9.82/fs/ocfs2/file.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/file.c
---- linux-4.9.82/fs/ocfs2/file.c 2018-02-22 21:18:49.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/file.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/file.c linux-4.9/fs/ocfs2/file.c
+--- linux-4.9/fs/ocfs2/file.c 2021-02-24 15:47:32.314009840 +0100
++++ linux-4.9/fs/ocfs2/file.c 2021-02-24 15:47:45.077742470 +0100
@@ -1151,7 +1151,7 @@ int ocfs2_setattr(struct dentry *dentry,
attr->ia_valid &= ~ATTR_SIZE;
if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
return 0;
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/inode.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/inode.c
---- linux-4.9.82/fs/ocfs2/inode.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/inode.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/inode.c linux-4.9/fs/ocfs2/inode.c
+--- linux-4.9/fs/ocfs2/inode.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ocfs2/inode.c 2021-02-24 15:47:45.077742470 +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-4.9.82/fs/ocfs2/inode.h linux-4.9.82-vs2.3.9.7/fs/ocfs2/inode.h
---- linux-4.9.82/fs/ocfs2/inode.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/inode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/inode.h linux-4.9/fs/ocfs2/inode.h
+--- linux-4.9/fs/ocfs2/inode.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ocfs2/inode.h 2021-02-24 15:47:45.077742470 +0100
@@ -155,6 +155,7 @@ int ocfs2_mark_inode_dirty(handle_t *han
void ocfs2_set_inode_flags(struct inode *inode);
static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
{
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/ioctl.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/ioctl.c
---- linux-4.9.82/fs/ocfs2/ioctl.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/ioctl.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/ioctl.c linux-4.9/fs/ocfs2/ioctl.c
+--- linux-4.9/fs/ocfs2/ioctl.c 2021-02-24 15:47:32.314009840 +0100
++++ linux-4.9/fs/ocfs2/ioctl.c 2021-02-24 15:47:45.077742470 +0100
@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
return status;
}
long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct inode *inode = file_inode(filp);
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/namei.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/namei.c
---- linux-4.9.82/fs/ocfs2/namei.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/namei.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/namei.c linux-4.9/fs/ocfs2/namei.c
+--- linux-4.9/fs/ocfs2/namei.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/ocfs2/namei.c 2021-02-24 15:47:45.081075908 +0100
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/highmem.h>
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-4.9.82/fs/ocfs2/ocfs2.h linux-4.9.82-vs2.3.9.7/fs/ocfs2/ocfs2.h
---- linux-4.9.82/fs/ocfs2/ocfs2.h 2018-02-22 21:18:49.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/ocfs2.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/ocfs2.h linux-4.9/fs/ocfs2/ocfs2.h
+--- linux-4.9/fs/ocfs2/ocfs2.h 2021-02-24 15:47:32.317343277 +0100
++++ linux-4.9/fs/ocfs2/ocfs2.h 2021-02-24 15:47:45.081075908 +0100
@@ -289,6 +289,7 @@ enum ocfs2_mount_options
OCFS2_MOUNT_JOURNAL_ASYNC_COMMIT = 1 << 15, /* Journal Async Commit */
OCFS2_MOUNT_ERRORS_CONT = 1 << 16, /* Return EIO to the calling process on error */
};
#define OCFS2_OSB_SOFT_RO 0x0001
-diff -NurpP --minimal linux-4.9.82/fs/ocfs2/ocfs2_fs.h linux-4.9.82-vs2.3.9.7/fs/ocfs2/ocfs2_fs.h
---- linux-4.9.82/fs/ocfs2/ocfs2_fs.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/ocfs2_fs.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/ocfs2_fs.h linux-4.9/fs/ocfs2/ocfs2_fs.h
+--- linux-4.9/fs/ocfs2/ocfs2_fs.h 2021-02-24 15:47:32.317343277 +0100
++++ linux-4.9/fs/ocfs2/ocfs2_fs.h 2021-02-24 15:47:45.081075908 +0100
@@ -275,6 +275,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-4.9.82/fs/ocfs2/super.c linux-4.9.82-vs2.3.9.7/fs/ocfs2/super.c
---- linux-4.9.82/fs/ocfs2/super.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/ocfs2/super.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/ocfs2/super.c linux-4.9/fs/ocfs2/super.c
+--- linux-4.9/fs/ocfs2/super.c 2021-02-24 15:47:32.317343277 +0100
++++ linux-4.9/fs/ocfs2/super.c 2021-02-24 15:47:45.081075908 +0100
@@ -188,6 +188,7 @@ enum {
Opt_dir_resv_level,
Opt_journal_async_commit,
{Opt_err, NULL}
};
-@@ -673,6 +677,13 @@ static int ocfs2_remount(struct super_bl
+@@ -672,6 +676,13 @@ static int ocfs2_remount(struct super_bl
goto out;
}
/* We're going to/from readonly mode. */
if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
/* Disable quota accounting before remounting RO */
-@@ -1162,6 +1173,9 @@ static int ocfs2_fill_super(struct super
+@@ -1161,6 +1172,9 @@ static int ocfs2_fill_super(struct super
ocfs2_complete_mount_recovery(osb);
if (ocfs2_mount_local(osb))
snprintf(nodestr, sizeof(nodestr), "local");
else
-@@ -1481,6 +1495,20 @@ static int ocfs2_parse_options(struct su
+@@ -1480,6 +1494,20 @@ static int ocfs2_parse_options(struct su
case Opt_journal_async_commit:
mopt->mount_opt |= OCFS2_MOUNT_JOURNAL_ASYNC_COMMIT;
break;
default:
mlog(ML_ERROR,
"Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-4.9.82/fs/open.c linux-4.9.82-vs2.3.9.7/fs/open.c
---- linux-4.9.82/fs/open.c 2018-02-22 21:18:49.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/open.c 2018-01-13 22:17:33.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/open.c linux-4.9/fs/open.c
+--- linux-4.9/fs/open.c 2021-02-24 15:47:32.320676715 +0100
++++ linux-4.9/fs/open.c 2021-02-24 15:47:45.081075908 +0100
@@ -31,6 +31,11 @@
#include <linux/ima.h>
#include <linux/dnotify.h>
inode = path->dentry->d_inode;
/* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -565,6 +575,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+@@ -584,6 +594,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
unsigned int lookup_flags = LOOKUP_FOLLOW;
retry:
error = user_path_at(dfd, filename, lookup_flags, &path);
if (!error) {
error = chmod_common(&path, mode);
path_put(&path);
-@@ -599,13 +616,15 @@ retry_deleg:
+@@ -618,13 +635,15 @@ retry_deleg:
if (!uid_valid(uid))
return -EINVAL;
newattrs.ia_valid |= ATTR_UID;
}
if (!S_ISDIR(inode->i_mode))
newattrs.ia_valid |=
-@@ -643,6 +662,10 @@ retry:
+@@ -662,6 +681,10 @@ retry:
error = mnt_want_write(path.mnt);
if (error)
goto out_release;
error = chown_common(&path, user, group);
mnt_drop_write(path.mnt);
out_release:
-diff -NurpP --minimal linux-4.9.82/fs/proc/array.c linux-4.9.82-vs2.3.9.7/fs/proc/array.c
---- linux-4.9.82/fs/proc/array.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/array.c 2018-01-25 00:21:32.000000000 +0000
-@@ -85,6 +85,8 @@
+diff -urNp -x '*.orig' linux-4.9/fs/proc/array.c linux-4.9/fs/proc/array.c
+--- linux-4.9/fs/proc/array.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/array.c 2021-02-24 15:47:45.081075908 +0100
+@@ -86,6 +86,8 @@
#include <linux/string_helpers.h>
#include <linux/user_namespace.h>
#include <linux/fs_struct.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
-@@ -169,6 +171,9 @@ static inline void task_state(struct seq
+@@ -170,6 +172,9 @@ static inline void task_state(struct seq
ppid = pid_alive(p) ?
task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
tracer = ptrace_parent(p);
if (tracer)
tpid = task_pid_nr_ns(tracer, ns);
-@@ -306,8 +311,8 @@ static inline void task_sig(struct seq_f
+@@ -307,8 +312,8 @@ static inline void task_sig(struct seq_f
render_sigset_t(m, "SigCgt:\t", &caught);
}
{
unsigned __capi;
-@@ -334,11 +339,12 @@ static inline void task_cap(struct seq_f
+@@ -335,11 +340,12 @@ static inline void task_cap(struct seq_f
cap_ambient = cred->cap_ambient;
rcu_read_unlock();
}
static inline void task_seccomp(struct seq_file *m, struct task_struct *p)
-@@ -365,6 +371,43 @@ static void task_cpus_allowed(struct seq
+@@ -391,6 +397,43 @@ static void task_cpus_allowed(struct seq
cpumask_pr_args(&task->cpus_allowed));
}
int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
-@@ -382,6 +425,7 @@ int proc_pid_status(struct seq_file *m,
+@@ -408,6 +451,7 @@ int proc_pid_status(struct seq_file *m,
task_seccomp(m, task);
task_cpus_allowed(m, task);
cpuset_task_status_allowed(m, task);
task_context_switch_counts(m, task);
return 0;
}
-@@ -497,6 +541,17 @@ static int do_task_stat(struct seq_file
+@@ -523,6 +567,17 @@ static int do_task_stat(struct seq_file
/* convert nsec -> ticks */
start_time = nsec_to_clock_t(task->real_start_time);
seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state);
seq_put_decimal_ll(m, " ", ppid);
seq_put_decimal_ll(m, " ", pgid);
-diff -NurpP --minimal linux-4.9.82/fs/proc/base.c linux-4.9.82-vs2.3.9.7/fs/proc/base.c
---- linux-4.9.82/fs/proc/base.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/base.c 2018-01-13 01:59:11.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/base.c linux-4.9/fs/proc/base.c
+--- linux-4.9/fs/proc/base.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/base.c 2021-02-24 15:47:45.081075908 +0100
@@ -87,6 +87,8 @@
#include <linux/slab.h>
#include <linux/flex_array.h>
#ifdef CONFIG_HARDWALL
#include <asm/hardwall.h>
#endif
-@@ -1063,10 +1065,15 @@ static int __set_oom_adj(struct file *fi
+@@ -1079,10 +1081,15 @@ static int __set_oom_adj(struct file *fi
mutex_lock(&oom_adj_mutex);
if (legacy) {
if (oom_adj < task->signal->oom_score_adj &&
/*
* /proc/pid/oom_adj is provided for legacy purposes, ask users to use
* /proc/pid/oom_score_adj instead.
-@@ -1696,6 +1703,8 @@ struct inode *proc_pid_make_inode(struct
+@@ -1708,6 +1715,8 @@ struct inode *proc_pid_make_inode(struct
inode->i_gid = cred->egid;
rcu_read_unlock();
}
security_task_to_inode(task, inode);
out:
-@@ -1741,6 +1750,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1753,6 +1762,8 @@ int pid_getattr(struct vfsmount *mnt, st
/* dentry stuff */
/*
* Exceptional case: normally we are not allowed to unhash a busy
* directory. In this case, however, we can do it - no aliasing problems
-@@ -1769,6 +1780,19 @@ int pid_revalidate(struct dentry *dentry
+@@ -1781,6 +1792,19 @@ int pid_revalidate(struct dentry *dentry
task = get_proc_task(inode);
if (task) {
if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
task_dumpable(task)) {
rcu_read_lock();
-@@ -2408,6 +2432,13 @@ static struct dentry *proc_pident_lookup
+@@ -2445,6 +2469,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.
-@@ -2847,6 +2878,11 @@ static int proc_pid_personality(struct s
+@@ -2884,6 +2915,11 @@ 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),
-@@ -2911,6 +2947,8 @@ static const struct pid_entry tgid_base_
+@@ -2948,6 +2984,8 @@ static const struct pid_entry tgid_base_
#ifdef CONFIG_CGROUPS
ONE("cgroup", S_IRUGO, proc_cgroup_show),
#endif
ONE("oom_score", S_IRUGO, proc_oom_score),
REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adj_operations),
REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -3126,7 +3164,7 @@ retry:
+@@ -3163,7 +3201,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
-@@ -3186,8 +3224,10 @@ int proc_pid_readdir(struct file *file,
+@@ -3223,8 +3261,10 @@ int proc_pid_readdir(struct file *file,
if (!has_pid_permissions(ns, iter.task, 2))
continue;
if (!proc_fill_cache(file, ctx, name, len,
proc_pid_instantiate, iter.task, NULL)) {
put_task_struct(iter.task);
-@@ -3324,6 +3364,7 @@ static const struct pid_entry tid_base_s
+@@ -3361,6 +3401,7 @@ static const struct pid_entry tid_base_s
REG("projid_map", S_IRUGO|S_IWUSR, proc_projid_map_operations),
REG("setgroups", S_IRUGO|S_IWUSR, proc_setgroups_operations),
#endif
};
static int proc_tid_base_readdir(struct file *file, struct dir_context *ctx)
-@@ -3390,6 +3431,8 @@ static struct dentry *proc_task_lookup(s
+@@ -3427,6 +3468,8 @@ static struct dentry *proc_task_lookup(s
tid = name_to_int(&dentry->d_name);
if (tid == ~0U)
goto out;
ns = dentry->d_sb->s_fs_info;
rcu_read_lock();
-diff -NurpP --minimal linux-4.9.82/fs/proc/generic.c linux-4.9.82-vs2.3.9.7/fs/proc/generic.c
---- linux-4.9.82/fs/proc/generic.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/generic.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/generic.c linux-4.9/fs/proc/generic.c
+--- linux-4.9/fs/proc/generic.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/generic.c 2021-02-24 15:47:45.081075908 +0100
@@ -22,6 +22,7 @@
#include <linux/bitops.h>
#include <linux/spinlock.h>
} else {
kfree(ent);
ent = NULL;
-diff -NurpP --minimal linux-4.9.82/fs/proc/inode.c linux-4.9.82-vs2.3.9.7/fs/proc/inode.c
---- linux-4.9.82/fs/proc/inode.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/inode.c 2018-01-10 02:50:49.000000000 +0000
-@@ -432,6 +432,8 @@ struct inode *proc_get_inode(struct supe
+diff -urNp -x '*.orig' linux-4.9/fs/proc/inode.c linux-4.9/fs/proc/inode.c
+--- linux-4.9/fs/proc/inode.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/inode.c 2021-02-24 15:47:45.081075908 +0100
+@@ -433,6 +433,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-4.9.82/fs/proc/internal.h linux-4.9.82-vs2.3.9.7/fs/proc/internal.h
---- linux-4.9.82/fs/proc/internal.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/internal.h 2018-01-13 01:48:13.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/internal.h linux-4.9/fs/proc/internal.h
+--- linux-4.9/fs/proc/internal.h 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/internal.h 2021-02-24 15:47:45.084409345 +0100
@@ -14,6 +14,7 @@
#include <linux/spinlock.h>
#include <linux/atomic.h>
unsigned int fd;
union proc_op op;
struct proc_dir_entry *pde;
-@@ -92,11 +101,16 @@ static inline struct pid *proc_pid(struc
+@@ -93,11 +102,16 @@ static inline struct pid *proc_pid(struc
return PROC_I(inode)->pid;
}
static inline int task_dumpable(struct task_struct *task)
{
int dumpable = 0;
-@@ -155,6 +169,8 @@ extern int proc_pid_status(struct seq_fi
+@@ -156,6 +170,8 @@ extern int proc_pid_status(struct seq_fi
struct pid *, struct task_struct *);
extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
struct pid *, struct task_struct *);
/*
* base.c
-diff -NurpP --minimal linux-4.9.82/fs/proc/loadavg.c linux-4.9.82-vs2.3.9.7/fs/proc/loadavg.c
---- linux-4.9.82/fs/proc/loadavg.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/loadavg.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/loadavg.c linux-4.9/fs/proc/loadavg.c
+--- linux-4.9/fs/proc/loadavg.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/proc/loadavg.c 2021-02-24 15:47:45.084409345 +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-4.9.82/fs/proc/meminfo.c linux-4.9.82-vs2.3.9.7/fs/proc/meminfo.c
---- linux-4.9.82/fs/proc/meminfo.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/meminfo.c 2018-01-13 01:55:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/meminfo.c linux-4.9/fs/proc/meminfo.c
+--- linux-4.9/fs/proc/meminfo.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/proc/meminfo.c 2021-02-24 15:47:45.084409345 +0100
@@ -55,7 +55,8 @@ static int meminfo_proc_show(struct seq_
si_swapinfo(&i);
committed = percpu_counter_read_positive(&vm_committed_as);
total_swapcache_pages() - i.bufferram;
if (cached < 0)
cached = 0;
-diff -NurpP --minimal linux-4.9.82/fs/proc/root.c linux-4.9.82-vs2.3.9.7/fs/proc/root.c
---- linux-4.9.82/fs/proc/root.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/root.c 2018-01-13 01:48:57.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/root.c linux-4.9/fs/proc/root.c
+--- linux-4.9/fs/proc/root.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/proc/root.c 2021-02-24 15:47:45.084409345 +0100
@@ -20,9 +20,14 @@
#include <linux/mount.h>
#include <linux/pid_namespace.h>
.subdir = RB_ROOT,
.name = "/proc",
};
-diff -NurpP --minimal linux-4.9.82/fs/proc/self.c linux-4.9.82-vs2.3.9.7/fs/proc/self.c
---- linux-4.9.82/fs/proc/self.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/self.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/self.c linux-4.9/fs/proc/self.c
+--- linux-4.9/fs/proc/self.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/self.c 2021-02-24 15:47:45.084409345 +0100
@@ -1,6 +1,7 @@
#include <linux/sched.h>
#include <linux/slab.h>
#include "internal.h"
/*
-@@ -54,6 +55,8 @@ int proc_setup_self(struct super_block *
+@@ -61,6 +62,8 @@ int proc_setup_self(struct super_block *
self = d_alloc_name(s->s_root, "self");
if (self) {
- struct inode *inode = new_inode_pseudo(s);
+ struct inode *inode = new_inode(s);
+
+ // self->vx_flags = IATTR_PROC_SYMLINK;
if (inode) {
inode->i_ino = self_inum;
inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
-diff -NurpP --minimal linux-4.9.82/fs/proc/stat.c linux-4.9.82-vs2.3.9.7/fs/proc/stat.c
---- linux-4.9.82/fs/proc/stat.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/stat.c 2018-01-16 00:55:05.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/stat.c linux-4.9/fs/proc/stat.c
+--- linux-4.9/fs/proc/stat.c 2021-02-24 15:47:32.324010153 +0100
++++ linux-4.9/fs/proc/stat.c 2021-02-24 15:47:45.084409345 +0100
@@ -9,8 +9,10 @@
#include <linux/slab.h>
#include <linux/time.h>
#ifndef arch_irq_stat_cpu
#define arch_irq_stat_cpu(cpu) 0
-@@ -86,13 +88,24 @@ static int show_stat(struct seq_file *p,
+@@ -86,13 +88,21 @@ static int show_stat(struct seq_file *p,
u64 sum_softirq = 0;
unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
struct timespec64 boottime;
guest = guest_nice = 0;
getboottime64(&boottime);
-+ if (vx_flags(VXF_VIRT_UPTIME, 0))
-+ vx_vsi_boottime64(&boottime);
-+
+ if (virt_cpu)
+ cpuset_cpus_allowed(current, cpus_allowed);
+
user += kcpustat_cpu(i).cpustat[CPUTIME_USER];
nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
-@@ -128,6 +141,9 @@ static int show_stat(struct seq_file *p,
+@@ -128,6 +138,9 @@ static int show_stat(struct seq_file *p,
seq_putc(p, '\n');
for_each_online_cpu(i) {
/* Copy values here to work around gcc-2.95.3, gcc-2.96 */
user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
-diff -NurpP --minimal linux-4.9.82/fs/proc/uptime.c linux-4.9.82-vs2.3.9.7/fs/proc/uptime.c
---- linux-4.9.82/fs/proc/uptime.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc/uptime.c 2018-01-16 00:56:48.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc/uptime.c linux-4.9/fs/proc/uptime.c
+--- linux-4.9/fs/proc/uptime.c 2021-02-24 15:47:32.327343590 +0100
++++ linux-4.9/fs/proc/uptime.c 2021-02-24 15:47:45.084409345 +0100
@@ -5,6 +5,7 @@
#include <linux/seq_file.h>
#include <linux/time.h>
#include <linux/kernel_stat.h>
+#include <linux/vserver/cvirt.h>
- #include <linux/cputime.h>
static int uptime_proc_show(struct seq_file *m, void *v)
-@@ -24,6 +25,10 @@ static int uptime_proc_show(struct seq_f
- nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC;
+ {
+@@ -21,6 +22,7 @@ static int uptime_proc_show(struct seq_f
+ get_monotonic_boottime(&uptime);
idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
idle.tv_nsec = rem;
-+
-+ if (vx_flags(VXF_VIRT_UPTIME, 0))
-+ vx_vsi_uptime(&uptime, &idle);
+
seq_printf(m, "%lu.%02lu %lu.%02lu\n",
(unsigned long) uptime.tv_sec,
(uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-diff -NurpP --minimal linux-4.9.82/fs/proc_namespace.c linux-4.9.82-vs2.3.9.7/fs/proc_namespace.c
---- linux-4.9.82/fs/proc_namespace.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/proc_namespace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/proc_namespace.c linux-4.9/fs/proc_namespace.c
+--- linux-4.9/fs/proc_namespace.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/proc_namespace.c 2021-02-24 15:47:45.084409345 +0100
@@ -46,6 +46,8 @@ static int show_sb_opts(struct seq_file
{ MS_DIRSYNC, ",dirsync" },
{ MS_MANDLOCK, ",mand" },
/* file system type */
seq_puts(m, "with fstype ");
show_type(m, sb);
-diff -NurpP --minimal linux-4.9.82/fs/quota/dquot.c linux-4.9.82-vs2.3.9.7/fs/quota/dquot.c
---- linux-4.9.82/fs/quota/dquot.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/quota/dquot.c 2018-02-10 15:15:43.000000000 +0000
-@@ -1658,6 +1658,9 @@ int __dquot_alloc_space(struct inode *in
+diff -urNp -x '*.orig' linux-4.9/fs/quota/dquot.c linux-4.9/fs/quota/dquot.c
+--- linux-4.9/fs/quota/dquot.c 2021-02-24 15:47:32.327343590 +0100
++++ linux-4.9/fs/quota/dquot.c 2021-02-24 15:47:45.084409345 +0100
+@@ -1659,6 +1659,9 @@ int __dquot_alloc_space(struct inode *in
int reserve = flags & DQUOT_SPACE_RESERVE;
struct dquot **dquots;
if (!dquot_active(inode)) {
inode_incr_space(inode, number, reserve);
goto out;
-@@ -1710,6 +1713,9 @@ int dquot_alloc_inode(struct inode *inod
+@@ -1711,6 +1714,9 @@ int dquot_alloc_inode(struct inode *inod
struct dquot_warn warn[MAXQUOTAS];
struct dquot * const *dquots;
if (!dquot_active(inode))
return 0;
for (cnt = 0; cnt < MAXQUOTAS; cnt++)
-@@ -1812,6 +1818,8 @@ void __dquot_free_space(struct inode *in
+@@ -1813,6 +1819,8 @@ void __dquot_free_space(struct inode *in
struct dquot **dquots;
int reserve = flags & DQUOT_SPACE_RESERVE, index;
if (!dquot_active(inode)) {
inode_decr_space(inode, number, reserve);
return;
-@@ -1856,6 +1864,8 @@ void dquot_free_inode(struct inode *inod
+@@ -1857,6 +1865,8 @@ void dquot_free_inode(struct inode *inod
struct dquot * const *dquots;
int index;
if (!dquot_active(inode))
return;
-diff -NurpP --minimal linux-4.9.82/fs/quota/quota.c linux-4.9.82-vs2.3.9.7/fs/quota/quota.c
---- linux-4.9.82/fs/quota/quota.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/quota/quota.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/quota/quota.c linux-4.9/fs/quota/quota.c
+--- linux-4.9/fs/quota/quota.c 2021-02-24 15:47:32.327343590 +0100
++++ linux-4.9/fs/quota/quota.c 2021-02-24 15:47:45.084409345 +0100
@@ -8,6 +8,7 @@
#include <linux/fs.h>
#include <linux/namei.h>
#include <asm/current.h>
#include <linux/uaccess.h>
#include <linux/kernel.h>
-@@ -38,7 +39,7 @@ static int check_quotactl_permission(str
+@@ -39,7 +40,7 @@ static int check_quotactl_permission(str
break;
/*FALLTHROUGH*/
default:
return -EPERM;
}
-@@ -768,6 +769,46 @@ static int do_quotactl(struct super_bloc
+@@ -770,6 +771,46 @@ static int do_quotactl(struct super_bloc
#ifdef CONFIG_BLOCK
/* Return 1 if 'cmd' will block on frozen filesystem */
static int quotactl_cmd_write(int cmd)
{
-@@ -809,6 +850,22 @@ static struct super_block *quotactl_bloc
+@@ -811,6 +852,22 @@ static struct super_block *quotactl_bloc
putname(tmp);
if (IS_ERR(bdev))
return ERR_CAST(bdev);
if (quotactl_cmd_write(cmd))
sb = get_super_thawed(bdev);
else
-diff -NurpP --minimal linux-4.9.82/fs/stat.c linux-4.9.82-vs2.3.9.7/fs/stat.c
---- linux-4.9.82/fs/stat.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/stat.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/stat.c linux-4.9/fs/stat.c
+--- linux-4.9/fs/stat.c 2021-02-24 15:47:32.334010466 +0100
++++ linux-4.9/fs/stat.c 2021-02-24 15:47:45.084409345 +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->size = i_size_read(inode);
stat->atime = inode->i_atime;
-diff -NurpP --minimal linux-4.9.82/fs/statfs.c linux-4.9.82-vs2.3.9.7/fs/statfs.c
---- linux-4.9.82/fs/statfs.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/statfs.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/statfs.c linux-4.9/fs/statfs.c
+--- linux-4.9/fs/statfs.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/statfs.c 2021-02-24 15:47:45.084409345 +0100
@@ -7,6 +7,8 @@
#include <linux/statfs.h>
#include <linux/security.h>
return retval;
}
-diff -NurpP --minimal linux-4.9.82/fs/super.c linux-4.9.82-vs2.3.9.7/fs/super.c
---- linux-4.9.82/fs/super.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/super.c 2018-01-13 01:53:26.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/super.c linux-4.9/fs/super.c
+--- linux-4.9/fs/super.c 2021-02-24 15:47:32.334010466 +0100
++++ linux-4.9/fs/super.c 2021-02-24 15:47:45.084409345 +0100
@@ -34,6 +34,8 @@
#include <linux/fsnotify.h>
#include <linux/lockdep.h>
#include "internal.h"
-@@ -981,7 +983,8 @@ struct dentry *mount_ns(struct file_syst
+@@ -482,7 +484,7 @@ struct super_block *sget_userns(struct f
+
+ if (!(flags & (MS_KERNMOUNT|MS_SUBMOUNT)) &&
+ !(type->fs_flags & FS_USERNS_MOUNT) &&
+- !capable(CAP_SYS_ADMIN))
++ !vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
+ return ERR_PTR(-EPERM);
+ retry:
+ spin_lock(&sb_lock);
+@@ -563,7 +565,8 @@ struct super_block *sget(struct file_sys
+ user_ns = &init_user_ns;
+
+ /* Ensure the requestor has permissions over the target filesystem */
+- if (!(flags & (MS_KERNMOUNT|MS_SUBMOUNT)) && !ns_capable(user_ns, CAP_SYS_ADMIN))
++ if (!(flags & (MS_KERNMOUNT|MS_SUBMOUNT)) &&
++ !vx_ns_capable(user_ns, CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
+ return ERR_PTR(-EPERM);
+
+ return sget_userns(type, test, set, flags, user_ns, data);
+@@ -995,7 +998,8 @@ struct dentry *mount_ns(struct file_syst
/* Don't allow mounting unless the caller has CAP_SYS_ADMIN
* over the namespace.
*/
return ERR_PTR(-EPERM);
sb = sget_userns(fs_type, ns_test_super, ns_set_super, flags,
-@@ -1191,6 +1194,13 @@ mount_fs(struct file_system_type *type,
- WARN_ON(!sb->s_bdi);
+@@ -1213,6 +1217,13 @@ mount_fs(struct file_system_type *type,
+ smp_wmb();
sb->s_flags |= MS_BORN;
+ error = -EPERM;
error = security_sb_kern_mount(sb, flags, secdata);
if (error)
goto out_sb;
-diff -NurpP --minimal linux-4.9.82/fs/utimes.c linux-4.9.82-vs2.3.9.7/fs/utimes.c
---- linux-4.9.82/fs/utimes.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/utimes.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/utimes.c linux-4.9/fs/utimes.c
+--- linux-4.9/fs/utimes.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/fs/utimes.c 2021-02-24 15:47:45.084409345 +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-4.9.82/fs/xattr.c linux-4.9.82-vs2.3.9.7/fs/xattr.c
---- linux-4.9.82/fs/xattr.c 2018-02-22 21:18:51.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/fs/xattr.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/fs/xattr.c linux-4.9/fs/xattr.c
+--- linux-4.9/fs/xattr.c 2021-02-24 15:47:32.340677341 +0100
++++ linux-4.9/fs/xattr.c 2021-02-24 15:47:45.084409345 +0100
@@ -21,6 +21,7 @@
#include <linux/audit.h>
#include <linux/vmalloc.h>
return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
return 0;
}
-diff -NurpP --minimal linux-4.9.82/include/linux/capability.h linux-4.9.82-vs2.3.9.7/include/linux/capability.h
---- linux-4.9.82/include/linux/capability.h 2018-02-22 21:18:53.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/capability.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/capability.h linux-4.9/include/linux/capability.h
+--- linux-4.9/include/linux/capability.h 2021-02-24 15:47:32.377345154 +0100
++++ linux-4.9/include/linux/capability.h 2021-02-24 15:47:45.084409345 +0100
@@ -78,7 +78,8 @@ extern const kernel_cap_t __cap_init_eff
#else /* HAND-CODED capability initializers */
# define CAP_EMPTY_SET ((kernel_cap_t){{ 0, 0 }})
# define CAP_FULL_SET ((kernel_cap_t){{ ~0, CAP_LAST_U32_VALID_MASK }})
-diff -NurpP --minimal linux-4.9.82/include/linux/cred.h linux-4.9.82-vs2.3.9.7/include/linux/cred.h
---- linux-4.9.82/include/linux/cred.h 2018-02-22 21:18:53.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/cred.h 2018-01-13 21:30:31.000000000 +0000
-@@ -152,6 +152,7 @@ extern void exit_creds(struct task_struc
+diff -urNp -x '*.orig' linux-4.9/include/linux/cred.h linux-4.9/include/linux/cred.h
+--- linux-4.9/include/linux/cred.h 2021-02-24 15:47:32.380678592 +0100
++++ linux-4.9/include/linux/cred.h 2021-02-24 15:47:45.087742783 +0100
+@@ -156,6 +156,7 @@ extern void exit_creds(struct task_struc
extern int copy_creds(struct task_struct *, unsigned long);
extern const struct cred *get_task_cred(struct task_struct *);
extern struct cred *cred_alloc_blank(void);
extern struct cred *prepare_creds(void);
extern struct cred *prepare_exec_creds(void);
extern int commit_creds(struct cred *);
-@@ -212,6 +213,31 @@ static inline bool cap_ambient_invariant
+@@ -216,6 +217,31 @@ static inline bool cap_ambient_invariant
cred->cap_inheritable));
}
/**
* get_new_cred - Get a reference on a new set of credentials
* @cred: The new credentials to reference
-diff -NurpP --minimal linux-4.9.82/include/linux/dcache.h linux-4.9.82-vs2.3.9.7/include/linux/dcache.h
---- linux-4.9.82/include/linux/dcache.h 2018-02-22 21:18:53.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/dcache.h 2018-01-10 02:50:49.000000000 +0000
-@@ -307,8 +307,10 @@ extern char *dentry_path(struct dentry *
+diff -urNp -x '*.orig' linux-4.9/include/linux/dcache.h linux-4.9/include/linux/dcache.h
+--- linux-4.9/include/linux/dcache.h 2021-02-24 15:47:32.380678592 +0100
++++ linux-4.9/include/linux/dcache.h 2021-02-24 15:47:45.087742783 +0100
+@@ -308,8 +308,10 @@ extern char *dentry_path(struct dentry *
*/
static inline struct dentry *dget_dlock(struct dentry *dentry)
{
return dentry;
}
-diff -NurpP --minimal linux-4.9.82/include/linux/devpts_fs.h linux-4.9.82-vs2.3.9.7/include/linux/devpts_fs.h
---- linux-4.9.82/include/linux/devpts_fs.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/devpts_fs.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/devpts_fs.h linux-4.9/include/linux/devpts_fs.h
+--- linux-4.9/include/linux/devpts_fs.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/devpts_fs.h 2021-02-24 15:47:45.087742783 +0100
@@ -34,5 +34,4 @@ void devpts_pty_kill(struct dentry *);
#endif
-
#endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/fs.h linux-4.9.82-vs2.3.9.7/include/linux/fs.h
---- linux-4.9.82/include/linux/fs.h 2018-02-22 21:18:53.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/fs.h 2018-01-13 22:18:13.000000000 +0000
-@@ -225,6 +225,7 @@ typedef int (dio_iodone_t)(struct kiocb
+diff -urNp -x '*.orig' linux-4.9/include/linux/fs.h linux-4.9/include/linux/fs.h
+--- linux-4.9/include/linux/fs.h 2021-02-24 15:47:32.384012030 +0100
++++ linux-4.9/include/linux/fs.h 2021-02-24 15:47:45.087742783 +0100
+@@ -231,6 +231,7 @@ typedef int (dio_iodone_t)(struct kiocb
#define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
#define ATTR_TIMES_SET (1 << 16)
#define ATTR_TOUCH (1 << 17)
/*
* Whiteout is represented by a char device. The following constants define the
-@@ -247,6 +248,7 @@ struct iattr {
+@@ -253,6 +254,7 @@ struct iattr {
umode_t ia_mode;
kuid_t ia_uid;
kgid_t ia_gid;
loff_t ia_size;
struct timespec ia_atime;
struct timespec ia_mtime;
-@@ -606,7 +608,9 @@ struct inode {
+@@ -612,7 +614,9 @@ struct inode {
unsigned short i_opflags;
kuid_t i_uid;
kgid_t i_gid;
#ifdef CONFIG_FS_POSIX_ACL
struct posix_acl *i_acl;
-@@ -635,6 +639,7 @@ struct inode {
+@@ -641,6 +645,7 @@ struct inode {
unsigned int __i_nlink;
};
dev_t i_rdev;
loff_t i_size;
struct timespec i_atime;
struct timespec i_mtime;
-@@ -839,14 +844,19 @@ static inline void i_size_write(struct i
+@@ -846,14 +851,19 @@ static inline void i_size_write(struct i
#endif
}
}
extern struct block_device *I_BDEV(struct inode *inode);
-@@ -903,6 +913,7 @@ struct file {
+@@ -910,6 +920,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;
-@@ -1037,6 +1048,7 @@ struct file_lock {
+@@ -1044,6 +1055,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 */
/* for lease breaks: */
-@@ -1469,6 +1481,11 @@ static inline gid_t i_gid_read(const str
+@@ -1477,6 +1489,11 @@ static inline gid_t i_gid_read(const str
return from_kgid(inode->i_sb->s_user_ns, inode->i_gid);
}
static inline void i_uid_write(struct inode *inode, uid_t uid)
{
inode->i_uid = make_kuid(inode->i_sb->s_user_ns, uid);
-@@ -1758,6 +1775,7 @@ struct inode_operations {
+@@ -1766,6 +1783,7 @@ struct inode_operations {
int (*setattr) (struct dentry *, struct iattr *);
int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
ssize_t (*listxattr) (struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
u64 len);
int (*update_time)(struct inode *, struct timespec *, int);
-@@ -1772,6 +1790,7 @@ ssize_t rw_copy_check_uvector(int type,
+@@ -1780,6 +1798,7 @@ ssize_t rw_copy_check_uvector(int type,
unsigned long nr_segs, unsigned long fast_segs,
struct iovec *fast_pointer,
struct iovec **ret_pointer);
extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *);
extern ssize_t __vfs_write(struct file *, const char __user *, size_t, loff_t *);
-@@ -1843,6 +1862,14 @@ struct super_operations {
+@@ -1851,6 +1870,14 @@ struct super_operations {
#else
#define S_DAX 0 /* Make all the DAX code disappear */
#endif
/*
* Note that nosuid etc flags are inode-specific: setting some file-system
-@@ -1867,10 +1894,13 @@ struct super_operations {
+@@ -1875,10 +1902,13 @@ struct super_operations {
#define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
#define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
#define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
-@@ -1890,6 +1920,16 @@ static inline bool HAS_UNMAPPED_ID(struc
+@@ -1898,6 +1928,16 @@ static inline bool HAS_UNMAPPED_ID(struc
return !uid_valid(inode->i_uid) || !gid_valid(inode->i_gid);
}
/*
* Inode state bits. Protected by inode->i_lock
*
-@@ -2155,6 +2195,9 @@ extern struct kobject *fs_kobj;
+@@ -2167,6 +2207,9 @@ extern struct kobject *fs_kobj;
extern int locks_mandatory_locked(struct file *);
extern int locks_mandatory_area(struct inode *, struct file *, loff_t, loff_t, unsigned char);
/*
* Candidates for mandatory locking have the setgid bit set
* but no group execute bit - an otherwise meaningless combination.
-@@ -2335,7 +2378,7 @@ struct filename {
+@@ -2347,7 +2390,7 @@ struct filename {
const char iname[];
};
extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs,
struct file *filp);
extern int vfs_fallocate(struct file *file, int mode, loff_t offset,
-@@ -2965,6 +3008,7 @@ extern int dcache_dir_open(struct inode
+@@ -2978,6 +3021,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 *, struct dir_context *);
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-4.9.82/include/linux/init_task.h linux-4.9.82-vs2.3.9.7/include/linux/init_task.h
---- linux-4.9.82/include/linux/init_task.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/init_task.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/init_task.h linux-4.9/include/linux/init_task.h
+--- linux-4.9/include/linux/init_task.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/init_task.h 2021-02-24 15:47:45.087742783 +0100
@@ -271,6 +271,10 @@ extern struct task_group root_task_group
INIT_VTIME(tsk) \
INIT_NUMA_BALANCING(tsk) \
}
-diff -NurpP --minimal linux-4.9.82/include/linux/ipc.h linux-4.9.82-vs2.3.9.7/include/linux/ipc.h
---- linux-4.9.82/include/linux/ipc.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/ipc.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/ipc.h linux-4.9/include/linux/ipc.h
+--- linux-4.9/include/linux/ipc.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/ipc.h 2021-02-24 15:47:45.087742783 +0100
@@ -16,6 +16,7 @@ struct kern_ipc_perm
key_t key;
kuid_t uid;
kuid_t cuid;
kgid_t cgid;
umode_t mode;
-diff -NurpP --minimal linux-4.9.82/include/linux/memcontrol.h linux-4.9.82-vs2.3.9.7/include/linux/memcontrol.h
---- linux-4.9.82/include/linux/memcontrol.h 2018-02-22 21:18:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/memcontrol.h 2018-01-25 00:07:15.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/memcontrol.h linux-4.9/include/linux/memcontrol.h
+--- linux-4.9/include/linux/memcontrol.h 2021-02-24 15:47:32.397345780 +0100
++++ linux-4.9/include/linux/memcontrol.h 2021-02-24 15:47:45.087742783 +0100
@@ -92,6 +92,7 @@ enum mem_cgroup_events_target {
MEM_CGROUP_NTARGETS,
};
static inline bool mm_match_cgroup(struct mm_struct *mm,
struct mem_cgroup *memcg)
{
-diff -NurpP --minimal linux-4.9.82/include/linux/mount.h linux-4.9.82-vs2.3.9.7/include/linux/mount.h
---- linux-4.9.82/include/linux/mount.h 2018-02-22 21:18:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/mount.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/mount.h linux-4.9/include/linux/mount.h
+--- linux-4.9/include/linux/mount.h 2021-02-24 15:47:32.400679218 +0100
++++ linux-4.9/include/linux/mount.h 2021-02-24 15:47:45.087742783 +0100
@@ -63,6 +63,9 @@ struct mnt_namespace;
#define MNT_MARKED 0x4000000
#define MNT_UMOUNT 0x8000000
struct vfsmount {
struct dentry *mnt_root; /* root of the mounted tree */
struct super_block *mnt_sb; /* pointer to superblock */
-diff -NurpP --minimal linux-4.9.82/include/linux/net.h linux-4.9.82-vs2.3.9.7/include/linux/net.h
---- linux-4.9.82/include/linux/net.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/net.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/net.h linux-4.9/include/linux/net.h
+--- linux-4.9/include/linux/net.h 2021-02-24 15:47:32.400679218 +0100
++++ linux-4.9/include/linux/net.h 2021-02-24 15:47:45.091076220 +0100
@@ -44,6 +44,7 @@ struct net;
#define SOCK_NOSPACE 2
#define SOCK_PASSCRED 3
#ifndef ARCH_HAS_SOCKET_TYPES
/**
-diff -NurpP --minimal linux-4.9.82/include/linux/netdevice.h linux-4.9.82-vs2.3.9.7/include/linux/netdevice.h
---- linux-4.9.82/include/linux/netdevice.h 2018-02-22 21:18:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/netdevice.h 2018-01-10 02:50:49.000000000 +0000
-@@ -2474,6 +2474,7 @@ static inline int dev_recursion_level(vo
+diff -urNp -x '*.orig' linux-4.9/include/linux/netdevice.h linux-4.9/include/linux/netdevice.h
+--- linux-4.9/include/linux/netdevice.h 2021-02-24 15:47:33.074033615 +0100
++++ linux-4.9/include/linux/netdevice.h 2021-02-24 15:47:45.087742783 +0100
+@@ -2489,6 +2489,7 @@ static inline int dev_recursion_level(vo
struct net_device *dev_get_by_index(struct net *net, int ifindex);
struct net_device *__dev_get_by_index(struct net *net, int ifindex);
struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
int netdev_get_name(struct net *net, char *name, int ifindex);
int dev_restart(struct net_device *dev);
-diff -NurpP --minimal linux-4.9.82/include/linux/nsproxy.h linux-4.9.82-vs2.3.9.7/include/linux/nsproxy.h
---- linux-4.9.82/include/linux/nsproxy.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/nsproxy.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/nsproxy.h linux-4.9/include/linux/nsproxy.h
+--- linux-4.9/include/linux/nsproxy.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/nsproxy.h 2021-02-24 15:47:45.091076220 +0100
@@ -3,6 +3,7 @@
#include <linux/spinlock.h>
}
#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/pid.h linux-4.9.82-vs2.3.9.7/include/linux/pid.h
---- linux-4.9.82/include/linux/pid.h 2018-02-22 21:18:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/pid.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/pid.h linux-4.9/include/linux/pid.h
+--- linux-4.9/include/linux/pid.h 2021-02-24 15:47:32.407346093 +0100
++++ linux-4.9/include/linux/pid.h 2021-02-24 15:47:45.091076220 +0100
@@ -10,7 +10,8 @@ enum pid_type
PIDTYPE_SID,
PIDTYPE_MAX,
pid_t pid_vnr(struct pid *pid);
#define do_each_pid_task(pid, type, task) \
-diff -NurpP --minimal linux-4.9.82/include/linux/quotaops.h linux-4.9.82-vs2.3.9.7/include/linux/quotaops.h
---- linux-4.9.82/include/linux/quotaops.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/quotaops.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/quotaops.h linux-4.9/include/linux/quotaops.h
+--- linux-4.9/include/linux/quotaops.h 2021-02-24 15:47:32.410679531 +0100
++++ linux-4.9/include/linux/quotaops.h 2021-02-24 15:47:45.091076220 +0100
@@ -8,6 +8,7 @@
#define _LINUX_QUOTAOPS_
#define DQUOT_SPACE_WARN 0x1
#define DQUOT_SPACE_RESERVE 0x2
-@@ -214,11 +215,12 @@ static inline void dquot_drop(struct ino
+@@ -224,11 +225,12 @@ static inline void dquot_drop(struct ino
static inline int dquot_alloc_inode(struct inode *inode)
{
}
static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
-@@ -229,6 +231,10 @@ static inline int dquot_transfer(struct
+@@ -239,6 +241,10 @@ static inline int dquot_transfer(struct
static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
int flags)
{
if (!(flags & DQUOT_SPACE_RESERVE))
inode_add_bytes(inode, number);
return 0;
-@@ -239,6 +245,7 @@ static inline void __dquot_free_space(st
+@@ -249,6 +255,7 @@ static inline void __dquot_free_space(st
{
if (!(flags & DQUOT_SPACE_RESERVE))
inode_sub_bytes(inode, number);
}
static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-4.9.82/include/linux/sched.h linux-4.9.82-vs2.3.9.7/include/linux/sched.h
---- linux-4.9.82/include/linux/sched.h 2018-02-22 21:18:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/sched.h 2018-01-10 02:50:49.000000000 +0000
-@@ -1717,6 +1717,14 @@ struct task_struct {
+diff -urNp -x '*.orig' linux-4.9/include/linux/sched.h linux-4.9/include/linux/sched.h
+--- linux-4.9/include/linux/sched.h 2021-02-24 15:47:32.414012968 +0100
++++ linux-4.9/include/linux/sched.h 2021-02-24 15:47:45.091076220 +0100
+@@ -1719,6 +1719,14 @@ struct task_struct {
#endif
struct seccomp seccomp;
+ vtag_t tag;
+
/* Thread group tracking */
- u32 parent_exec_id;
- u32 self_exec_id;
-@@ -2110,6 +2118,11 @@ struct pid_namespace;
+ u64 parent_exec_id;
+ u64 self_exec_id;
+@@ -2114,6 +2122,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;
-@@ -2123,7 +2136,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -2127,7 +2140,8 @@ static inline pid_t task_pid_nr_ns(struc
static inline pid_t task_pid_vnr(struct task_struct *tsk)
{
}
-diff -NurpP --minimal linux-4.9.82/include/linux/shmem_fs.h linux-4.9.82-vs2.3.9.7/include/linux/shmem_fs.h
---- linux-4.9.82/include/linux/shmem_fs.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/shmem_fs.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/shmem_fs.h linux-4.9/include/linux/shmem_fs.h
+--- linux-4.9/include/linux/shmem_fs.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/shmem_fs.h 2021-02-24 15:47:45.091076220 +0100
@@ -10,6 +10,9 @@
/* inode in-kernel data */
struct shmem_inode_info {
spinlock_t lock;
unsigned int seals; /* shmem seals */
-diff -NurpP --minimal linux-4.9.82/include/linux/stat.h linux-4.9.82-vs2.3.9.7/include/linux/stat.h
---- linux-4.9.82/include/linux/stat.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/stat.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/stat.h linux-4.9/include/linux/stat.h
+--- linux-4.9/include/linux/stat.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/stat.h 2021-02-24 15:47:45.091076220 +0100
@@ -25,6 +25,7 @@ struct kstat {
unsigned int nlink;
kuid_t uid;
dev_t rdev;
loff_t size;
struct timespec atime;
-diff -NurpP --minimal linux-4.9.82/include/linux/sunrpc/auth.h linux-4.9.82-vs2.3.9.7/include/linux/sunrpc/auth.h
---- linux-4.9.82/include/linux/sunrpc/auth.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/sunrpc/auth.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/sunrpc/auth.h linux-4.9/include/linux/sunrpc/auth.h
+--- linux-4.9/include/linux/sunrpc/auth.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/sunrpc/auth.h 2021-02-24 15:47:45.091076220 +0100
@@ -46,6 +46,7 @@ enum {
struct auth_cred {
kuid_t uid;
struct group_info *group_info;
const char *principal;
unsigned long ac_flags;
-diff -NurpP --minimal linux-4.9.82/include/linux/sunrpc/clnt.h linux-4.9.82-vs2.3.9.7/include/linux/sunrpc/clnt.h
---- linux-4.9.82/include/linux/sunrpc/clnt.h 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/sunrpc/clnt.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/sunrpc/clnt.h linux-4.9/include/linux/sunrpc/clnt.h
+--- linux-4.9/include/linux/sunrpc/clnt.h 2021-02-24 15:47:32.417346405 +0100
++++ linux-4.9/include/linux/sunrpc/clnt.h 2021-02-24 15:47:45.091076220 +0100
@@ -52,7 +52,8 @@ struct rpc_clnt {
cl_discrtry : 1,/* disconnect before retry */
cl_noretranstimeo: 1,/* No retransmit timeouts */
struct rpc_rtt * cl_rtt; /* RTO estimator data */
const struct rpc_timeout *cl_timeout; /* Timeout strategy */
-diff -NurpP --minimal linux-4.9.82/include/linux/types.h linux-4.9.82-vs2.3.9.7/include/linux/types.h
---- linux-4.9.82/include/linux/types.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/types.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/types.h linux-4.9/include/linux/types.h
+--- linux-4.9/include/linux/types.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/types.h 2021-02-24 15:47:45.091076220 +0100
@@ -32,6 +32,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-4.9.82/include/linux/uidgid.h linux-4.9.82-vs2.3.9.7/include/linux/uidgid.h
---- linux-4.9.82/include/linux/uidgid.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/uidgid.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/uidgid.h linux-4.9/include/linux/uidgid.h
+--- linux-4.9/include/linux/uidgid.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/linux/uidgid.h 2021-02-24 15:47:45.091076220 +0100
@@ -21,13 +21,17 @@ typedef struct {
uid_t val;
} kuid_t;
static inline uid_t from_kuid_munged(struct user_namespace *to, kuid_t kuid)
{
uid_t uid = from_kuid(to, kuid);
-diff -NurpP --minimal linux-4.9.82/include/linux/vroot.h linux-4.9.82-vs2.3.9.7/include/linux/vroot.h
---- linux-4.9.82/include/linux/vroot.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vroot.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vroot.h linux-4.9/include/linux/vroot.h
+--- linux-4.9/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vroot.h 2021-02-24 15:47:45.091076220 +0100
@@ -0,0 +1,51 @@
+
+/*
+#define VROOT_CLR_DEV 0x5601
+
+#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_base.h linux-4.9.82-vs2.3.9.7/include/linux/vs_base.h
---- linux-4.9.82/include/linux/vs_base.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_base.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_base.h linux-4.9/include/linux/vs_base.h
+--- linux-4.9/include/linux/vs_base.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_base.h 2021-02-24 15:47:45.091076220 +0100
@@ -0,0 +1,10 @@
+#ifndef _VS_BASE_H
+#define _VS_BASE_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_context.h linux-4.9.82-vs2.3.9.7/include/linux/vs_context.h
---- linux-4.9.82/include/linux/vs_context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_context.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_context.h linux-4.9/include/linux/vs_context.h
+--- linux-4.9/include/linux/vs_context.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_context.h 2021-02-24 15:47:45.091076220 +0100
@@ -0,0 +1,242 @@
+#ifndef _VS_CONTEXT_H
+#define _VS_CONTEXT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_cowbl.h linux-4.9.82-vs2.3.9.7/include/linux/vs_cowbl.h
---- linux-4.9.82/include/linux/vs_cowbl.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_cowbl.h 2018-01-13 22:17:14.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_cowbl.h linux-4.9/include/linux/vs_cowbl.h
+--- linux-4.9/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_cowbl.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,48 @@
+#ifndef _VS_COWBL_H
+#define _VS_COWBL_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_cvirt.h linux-4.9.82-vs2.3.9.7/include/linux/vs_cvirt.h
---- linux-4.9.82/include/linux/vs_cvirt.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_cvirt.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_cvirt.h linux-4.9/include/linux/vs_cvirt.h
+--- linux-4.9/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_cvirt.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,50 @@
+#ifndef _VS_CVIRT_H
+#define _VS_CVIRT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_device.h linux-4.9.82-vs2.3.9.7/include/linux/vs_device.h
---- linux-4.9.82/include/linux/vs_device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_device.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_device.h linux-4.9/include/linux/vs_device.h
+--- linux-4.9/include/linux/vs_device.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_device.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,45 @@
+#ifndef _VS_DEVICE_H
+#define _VS_DEVICE_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_dlimit.h linux-4.9.82-vs2.3.9.7/include/linux/vs_dlimit.h
---- linux-4.9.82/include/linux/vs_dlimit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_dlimit.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_dlimit.h linux-4.9/include/linux/vs_dlimit.h
+--- linux-4.9/include/linux/vs_dlimit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_dlimit.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,215 @@
+#ifndef _VS_DLIMIT_H
+#define _VS_DLIMIT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_inet.h linux-4.9.82-vs2.3.9.7/include/linux/vs_inet.h
---- linux-4.9.82/include/linux/vs_inet.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_inet.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_inet.h linux-4.9/include/linux/vs_inet.h
+--- linux-4.9/include/linux/vs_inet.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_inet.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,364 @@
+#ifndef _VS_INET_H
+#define _VS_INET_H
+#else
+// #warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_inet6.h linux-4.9.82-vs2.3.9.7/include/linux/vs_inet6.h
---- linux-4.9.82/include/linux/vs_inet6.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_inet6.h 2018-01-16 10:02:29.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_inet6.h linux-4.9/include/linux/vs_inet6.h
+--- linux-4.9/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_inet6.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,264 @@
+#ifndef _VS_INET6_H
+#define _VS_INET6_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_limit.h linux-4.9.82-vs2.3.9.7/include/linux/vs_limit.h
---- linux-4.9.82/include/linux/vs_limit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_limit.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_limit.h linux-4.9/include/linux/vs_limit.h
+--- linux-4.9/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_limit.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,140 @@
+#ifndef _VS_LIMIT_H
+#define _VS_LIMIT_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_network.h linux-4.9.82-vs2.3.9.7/include/linux/vs_network.h
---- linux-4.9.82/include/linux/vs_network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_network.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_network.h linux-4.9/include/linux/vs_network.h
+--- linux-4.9/include/linux/vs_network.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_network.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,169 @@
+#ifndef _NX_VS_NETWORK_H
+#define _NX_VS_NETWORK_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_pid.h linux-4.9.82-vs2.3.9.7/include/linux/vs_pid.h
---- linux-4.9.82/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_pid.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_pid.h linux-4.9/include/linux/vs_pid.h
+--- linux-4.9/include/linux/vs_pid.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_pid.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,50 @@
+#ifndef _VS_PID_H
+#define _VS_PID_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_sched.h linux-4.9.82-vs2.3.9.7/include/linux/vs_sched.h
---- linux-4.9.82/include/linux/vs_sched.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_sched.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_sched.h linux-4.9/include/linux/vs_sched.h
+--- linux-4.9/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_sched.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,40 @@
+#ifndef _VS_SCHED_H
+#define _VS_SCHED_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_socket.h linux-4.9.82-vs2.3.9.7/include/linux/vs_socket.h
---- linux-4.9.82/include/linux/vs_socket.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_socket.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_socket.h linux-4.9/include/linux/vs_socket.h
+--- linux-4.9/include/linux/vs_socket.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_socket.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,67 @@
+#ifndef _VS_SOCKET_H
+#define _VS_SOCKET_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_tag.h linux-4.9.82-vs2.3.9.7/include/linux/vs_tag.h
---- linux-4.9.82/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_tag.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_tag.h linux-4.9/include/linux/vs_tag.h
+--- linux-4.9/include/linux/vs_tag.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_tag.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,47 @@
+#ifndef _VS_TAG_H
+#define _VS_TAG_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vs_time.h linux-4.9.82-vs2.3.9.7/include/linux/vs_time.h
---- linux-4.9.82/include/linux/vs_time.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vs_time.h 2018-01-16 00:51:52.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vs_time.h linux-4.9/include/linux/vs_time.h
+--- linux-4.9/include/linux/vs_time.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vs_time.h 2021-02-24 15:47:45.101076533 +0100
@@ -0,0 +1,21 @@
+#ifndef _VS_TIME_H
+#define _VS_TIME_H
+#else
+#warning duplicate inclusion
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/base.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/base.h
---- linux-4.9.82/include/linux/vserver/base.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/base.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/base.h linux-4.9/include/linux/vserver/base.h
+--- linux-4.9/include/linux/vserver/base.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/base.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,184 @@
+#ifndef _VSERVER_BASE_H
+#define _VSERVER_BASE_H
+#define nx_info_state(n, m) (__nx_state(n) & (m))
+
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cacct.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct.h
---- linux-4.9.82/include/linux/vserver/cacct.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cacct.h linux-4.9/include/linux/vserver/cacct.h
+--- linux-4.9/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cacct.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,15 @@
+#ifndef _VSERVER_CACCT_H
+#define _VSERVER_CACCT_H
+};
+
+#endif /* _VSERVER_CACCT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cacct_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_cmd.h
---- linux-4.9.82/include/linux/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cacct_cmd.h linux-4.9/include/linux/vserver/cacct_cmd.h
+--- linux-4.9/include/linux/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cacct_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,10 @@
+#ifndef _VSERVER_CACCT_CMD_H
+#define _VSERVER_CACCT_CMD_H
+extern int vc_sock_stat(struct vx_info *, void __user *);
+
+#endif /* _VSERVER_CACCT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cacct_def.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_def.h
---- linux-4.9.82/include/linux/vserver/cacct_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_def.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cacct_def.h linux-4.9/include/linux/vserver/cacct_def.h
+--- linux-4.9/include/linux/vserver/cacct_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cacct_def.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,43 @@
+#ifndef _VSERVER_CACCT_DEF_H
+#define _VSERVER_CACCT_DEF_H
+#endif
+
+#endif /* _VSERVER_CACCT_DEF_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cacct_int.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_int.h
---- linux-4.9.82/include/linux/vserver/cacct_int.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cacct_int.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cacct_int.h linux-4.9/include/linux/vserver/cacct_int.h
+--- linux-4.9/include/linux/vserver/cacct_int.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cacct_int.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,17 @@
+#ifndef _VSERVER_CACCT_INT_H
+#define _VSERVER_CACCT_INT_H
+}
+
+#endif /* _VSERVER_CACCT_INT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/check.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/check.h
---- linux-4.9.82/include/linux/vserver/check.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/check.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/check.h linux-4.9/include/linux/vserver/check.h
+--- linux-4.9/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/check.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,89 @@
+#ifndef _VSERVER_CHECK_H
+#define _VSERVER_CHECK_H
+#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1)
+
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/context.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/context.h
---- linux-4.9.82/include/linux/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/context.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/context.h linux-4.9/include/linux/vserver/context.h
+--- linux-4.9/include/linux/vserver/context.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/context.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,110 @@
+#ifndef _VSERVER_CONTEXT_H
+#define _VSERVER_CONTEXT_H
+
+
+#endif /* _VSERVER_CONTEXT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/context_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/context_cmd.h
---- linux-4.9.82/include/linux/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/context_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/context_cmd.h linux-4.9/include/linux/vserver/context_cmd.h
+--- linux-4.9/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/context_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,33 @@
+#ifndef _VSERVER_CONTEXT_CMD_H
+#define _VSERVER_CONTEXT_CMD_H
+extern int vc_set_badness(struct vx_info *, void __user *);
+
+#endif /* _VSERVER_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cvirt.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt.h
---- linux-4.9.82/include/linux/vserver/cvirt.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt.h 2018-01-16 00:54:34.000000000 +0000
-@@ -0,0 +1,18 @@
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cvirt.h linux-4.9/include/linux/vserver/cvirt.h
+--- linux-4.9/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cvirt.h 2021-02-24 15:47:45.094409658 +0100
+@@ -0,0 +1,11 @@
+#ifndef _VSERVER_CVIRT_H
+#define _VSERVER_CVIRT_H
+
-+struct timespec;
-+
-+void vx_vsi_boottime64(struct timespec64 *);
-+
-+void vx_vsi_uptime(struct timespec *, struct timespec *);
-+
-+
+struct vx_info;
+
+void vx_update_load(struct vx_info *);
+int vx_do_syslog(int, char __user *, int);
+
+#endif /* _VSERVER_CVIRT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cvirt_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt_cmd.h
---- linux-4.9.82/include/linux/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cvirt_cmd.h linux-4.9/include/linux/vserver/cvirt_cmd.h
+--- linux-4.9/include/linux/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cvirt_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,13 @@
+#ifndef _VSERVER_CVIRT_CMD_H
+#define _VSERVER_CVIRT_CMD_H
+extern int vc_virt_stat(struct vx_info *, void __user *);
+
+#endif /* _VSERVER_CVIRT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/cvirt_def.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt_def.h
---- linux-4.9.82/include/linux/vserver/cvirt_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/cvirt_def.h 2018-01-10 10:07:41.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/cvirt_def.h linux-4.9/include/linux/vserver/cvirt_def.h
+--- linux-4.9/include/linux/vserver/cvirt_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/cvirt_def.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,80 @@
+#ifndef _VSERVER_CVIRT_DEF_H
+#define _VSERVER_CVIRT_DEF_H
+#endif
+
+#endif /* _VSERVER_CVIRT_DEF_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/debug.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/debug.h
---- linux-4.9.82/include/linux/vserver/debug.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/debug.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/debug.h linux-4.9/include/linux/vserver/debug.h
+--- linux-4.9/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/debug.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,146 @@
+#ifndef _VSERVER_DEBUG_H
+#define _VSERVER_DEBUG_H
+
+
+#endif /* _VSERVER_DEBUG_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/debug_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/debug_cmd.h
---- linux-4.9.82/include/linux/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/debug_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/debug_cmd.h linux-4.9/include/linux/vserver/debug_cmd.h
+--- linux-4.9/include/linux/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/debug_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,37 @@
+#ifndef _VSERVER_DEBUG_CMD_H
+#define _VSERVER_DEBUG_CMD_H
+#endif /* CONFIG_COMPAT */
+
+#endif /* _VSERVER_DEBUG_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/device.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/device.h
---- linux-4.9.82/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/device.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/device.h linux-4.9/include/linux/vserver/device.h
+--- linux-4.9/include/linux/vserver/device.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/device.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,9 @@
+#ifndef _VSERVER_DEVICE_H
+#define _VSERVER_DEVICE_H
+#else /* _VSERVER_DEVICE_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_DEVICE_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/device_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/device_cmd.h
---- linux-4.9.82/include/linux/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/device_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/device_cmd.h linux-4.9/include/linux/vserver/device_cmd.h
+--- linux-4.9/include/linux/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/device_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,31 @@
+#ifndef _VSERVER_DEVICE_CMD_H
+#define _VSERVER_DEVICE_CMD_H
+#endif /* CONFIG_COMPAT */
+
+#endif /* _VSERVER_DEVICE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/device_def.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/device_def.h
---- linux-4.9.82/include/linux/vserver/device_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/device_def.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/device_def.h linux-4.9/include/linux/vserver/device_def.h
+--- linux-4.9/include/linux/vserver/device_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/device_def.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,17 @@
+#ifndef _VSERVER_DEVICE_DEF_H
+#define _VSERVER_DEVICE_DEF_H
+};
+
+#endif /* _VSERVER_DEVICE_DEF_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/dlimit.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/dlimit.h
---- linux-4.9.82/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/dlimit.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/dlimit.h linux-4.9/include/linux/vserver/dlimit.h
+--- linux-4.9/include/linux/vserver/dlimit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/dlimit.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,54 @@
+#ifndef _VSERVER_DLIMIT_H
+#define _VSERVER_DLIMIT_H
+#else /* _VSERVER_DLIMIT_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_DLIMIT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/dlimit_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/dlimit_cmd.h
---- linux-4.9.82/include/linux/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/dlimit_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/dlimit_cmd.h linux-4.9/include/linux/vserver/dlimit_cmd.h
+--- linux-4.9/include/linux/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/dlimit_cmd.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,46 @@
+#ifndef _VSERVER_DLIMIT_CMD_H
+#define _VSERVER_DLIMIT_CMD_H
+#endif /* CONFIG_COMPAT */
+
+#endif /* _VSERVER_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/global.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/global.h
---- linux-4.9.82/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/global.h 2018-01-13 03:51:55.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/global.h linux-4.9/include/linux/vserver/global.h
+--- linux-4.9/include/linux/vserver/global.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/global.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,20 @@
+#ifndef _VSERVER_GLOBAL_H
+#define _VSERVER_GLOBAL_H
+
+
+#endif /* _VSERVER_GLOBAL_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/history.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/history.h
---- linux-4.9.82/include/linux/vserver/history.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/history.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/history.h linux-4.9/include/linux/vserver/history.h
+--- linux-4.9/include/linux/vserver/history.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/history.h 2021-02-24 15:47:45.094409658 +0100
@@ -0,0 +1,197 @@
+#ifndef _VSERVER_HISTORY_H
+#define _VSERVER_HISTORY_H
+#endif /* CONFIG_VSERVER_HISTORY */
+
+#endif /* _VSERVER_HISTORY_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/inode.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/inode.h
---- linux-4.9.82/include/linux/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/inode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/inode.h linux-4.9/include/linux/vserver/inode.h
+--- linux-4.9/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/inode.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,19 @@
+#ifndef _VSERVER_INODE_H
+#define _VSERVER_INODE_H
+#else /* _VSERVER_INODE_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_INODE_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/inode_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/inode_cmd.h
---- linux-4.9.82/include/linux/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/inode_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/inode_cmd.h linux-4.9/include/linux/vserver/inode_cmd.h
+--- linux-4.9/include/linux/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/inode_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,36 @@
+#ifndef _VSERVER_INODE_CMD_H
+#define _VSERVER_INODE_CMD_H
+#endif /* CONFIG_COMPAT */
+
+#endif /* _VSERVER_INODE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/limit.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit.h
---- linux-4.9.82/include/linux/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/limit.h linux-4.9/include/linux/vserver/limit.h
+--- linux-4.9/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/limit.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,67 @@
+#ifndef _VSERVER_LIMIT_H
+#define _VSERVER_LIMIT_H
+#define NUM_LIMITS 24
+
+#endif /* _VSERVER_LIMIT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/limit_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_cmd.h
---- linux-4.9.82/include/linux/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/limit_cmd.h linux-4.9/include/linux/vserver/limit_cmd.h
+--- linux-4.9/include/linux/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/limit_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,35 @@
+#ifndef _VSERVER_LIMIT_CMD_H
+#define _VSERVER_LIMIT_CMD_H
+#endif /* CONFIG_IA32_EMULATION */
+
+#endif /* _VSERVER_LIMIT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/limit_def.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_def.h
---- linux-4.9.82/include/linux/vserver/limit_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_def.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/limit_def.h linux-4.9/include/linux/vserver/limit_def.h
+--- linux-4.9/include/linux/vserver/limit_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/limit_def.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,47 @@
+#ifndef _VSERVER_LIMIT_DEF_H
+#define _VSERVER_LIMIT_DEF_H
+#endif
+
+#endif /* _VSERVER_LIMIT_DEF_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/limit_int.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_int.h
---- linux-4.9.82/include/linux/vserver/limit_int.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/limit_int.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/limit_int.h linux-4.9/include/linux/vserver/limit_int.h
+--- linux-4.9/include/linux/vserver/limit_int.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/limit_int.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,193 @@
+#ifndef _VSERVER_LIMIT_INT_H
+#define _VSERVER_LIMIT_INT_H
+
+
+#endif /* _VSERVER_LIMIT_INT_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/monitor.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/monitor.h
---- linux-4.9.82/include/linux/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/monitor.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/monitor.h linux-4.9/include/linux/vserver/monitor.h
+--- linux-4.9/include/linux/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/monitor.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,6 @@
+#ifndef _VSERVER_MONITOR_H
+#define _VSERVER_MONITOR_H
+#include <uapi/vserver/monitor.h>
+
+#endif /* _VSERVER_MONITOR_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/network.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/network.h
---- linux-4.9.82/include/linux/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/network.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/network.h linux-4.9/include/linux/vserver/network.h
+--- linux-4.9/include/linux/vserver/network.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/network.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,76 @@
+#ifndef _VSERVER_NETWORK_H
+#define _VSERVER_NETWORK_H
+#endif
+
+#endif /* _VSERVER_NETWORK_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/network_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/network_cmd.h
---- linux-4.9.82/include/linux/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/network_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/network_cmd.h linux-4.9/include/linux/vserver/network_cmd.h
+--- linux-4.9/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/network_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,37 @@
+#ifndef _VSERVER_NETWORK_CMD_H
+#define _VSERVER_NETWORK_CMD_H
+extern int vc_set_ncaps(struct nx_info *, void __user *);
+
+#endif /* _VSERVER_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/percpu.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/percpu.h
---- linux-4.9.82/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/percpu.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/percpu.h linux-4.9/include/linux/vserver/percpu.h
+--- linux-4.9/include/linux/vserver/percpu.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/percpu.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,14 @@
+#ifndef _VSERVER_PERCPU_H
+#define _VSERVER_PERCPU_H
+#define PERCPU_PERCTX (sizeof(struct _vx_percpu))
+
+#endif /* _VSERVER_PERCPU_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/pid.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/pid.h
---- linux-4.9.82/include/linux/vserver/pid.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/pid.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/pid.h linux-4.9/include/linux/vserver/pid.h
+--- linux-4.9/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/pid.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,51 @@
+#ifndef _VSERVER_PID_H
+#define _VSERVER_PID_H
+}
+
+#endif
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/sched.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched.h
---- linux-4.9.82/include/linux/vserver/sched.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/sched.h linux-4.9/include/linux/vserver/sched.h
+--- linux-4.9/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/sched.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,23 @@
+#ifndef _VSERVER_SCHED_H
+#define _VSERVER_SCHED_H
+#else /* _VSERVER_SCHED_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_SCHED_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/sched_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched_cmd.h
---- linux-4.9.82/include/linux/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/sched_cmd.h linux-4.9/include/linux/vserver/sched_cmd.h
+--- linux-4.9/include/linux/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/sched_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,11 @@
+#ifndef _VSERVER_SCHED_CMD_H
+#define _VSERVER_SCHED_CMD_H
+extern int vc_get_prio_bias(struct vx_info *, void __user *);
+
+#endif /* _VSERVER_SCHED_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/sched_def.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched_def.h
---- linux-4.9.82/include/linux/vserver/sched_def.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/sched_def.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/sched_def.h linux-4.9/include/linux/vserver/sched_def.h
+--- linux-4.9/include/linux/vserver/sched_def.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/sched_def.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,38 @@
+#ifndef _VSERVER_SCHED_DEF_H
+#define _VSERVER_SCHED_DEF_H
+#endif
+
+#endif /* _VSERVER_SCHED_DEF_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/signal.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/signal.h
---- linux-4.9.82/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/signal.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/signal.h linux-4.9/include/linux/vserver/signal.h
+--- linux-4.9/include/linux/vserver/signal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/signal.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,14 @@
+#ifndef _VSERVER_SIGNAL_H
+#define _VSERVER_SIGNAL_H
+#else /* _VSERVER_SIGNAL_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_SIGNAL_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/signal_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/signal_cmd.h
---- linux-4.9.82/include/linux/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/signal_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/signal_cmd.h linux-4.9/include/linux/vserver/signal_cmd.h
+--- linux-4.9/include/linux/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/signal_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,14 @@
+#ifndef _VSERVER_SIGNAL_CMD_H
+#define _VSERVER_SIGNAL_CMD_H
+extern int vc_set_pflags(uint32_t pid, void __user *);
+
+#endif /* _VSERVER_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/space.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/space.h
---- linux-4.9.82/include/linux/vserver/space.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/space.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/space.h linux-4.9/include/linux/vserver/space.h
+--- linux-4.9/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/space.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,12 @@
+#ifndef _VSERVER_SPACE_H
+#define _VSERVER_SPACE_H
+#else /* _VSERVER_SPACE_H */
+#warning duplicate inclusion
+#endif /* _VSERVER_SPACE_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/space_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/space_cmd.h
---- linux-4.9.82/include/linux/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/space_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/space_cmd.h linux-4.9/include/linux/vserver/space_cmd.h
+--- linux-4.9/include/linux/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/space_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,13 @@
+#ifndef _VSERVER_SPACE_CMD_H
+#define _VSERVER_SPACE_CMD_H
+extern int vc_get_space_mask(void __user *, int);
+
+#endif /* _VSERVER_SPACE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/switch.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/switch.h
---- linux-4.9.82/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/switch.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/switch.h linux-4.9/include/linux/vserver/switch.h
+--- linux-4.9/include/linux/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/switch.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,8 @@
+#ifndef _VSERVER_SWITCH_H
+#define _VSERVER_SWITCH_H
+#include <uapi/vserver/switch.h>
+
+#endif /* _VSERVER_SWITCH_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/tag.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/tag.h
---- linux-4.9.82/include/linux/vserver/tag.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/tag.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/tag.h linux-4.9/include/linux/vserver/tag.h
+--- linux-4.9/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/tag.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,160 @@
+#ifndef _DX_TAG_H
+#define _DX_TAG_H
+#endif
+
+#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-4.9.82/include/linux/vserver/tag_cmd.h linux-4.9.82-vs2.3.9.7/include/linux/vserver/tag_cmd.h
---- linux-4.9.82/include/linux/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/linux/vserver/tag_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/linux/vserver/tag_cmd.h linux-4.9/include/linux/vserver/tag_cmd.h
+--- linux-4.9/include/linux/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/linux/vserver/tag_cmd.h 2021-02-24 15:47:45.097743096 +0100
@@ -0,0 +1,10 @@
+#ifndef _VSERVER_TAG_CMD_H
+#define _VSERVER_TAG_CMD_H
+extern int vc_tag_migrate(uint32_t);
+
+#endif /* _VSERVER_TAG_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/net/addrconf.h linux-4.9.82-vs2.3.9.7/include/net/addrconf.h
---- linux-4.9.82/include/net/addrconf.h 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/addrconf.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/net/addrconf.h linux-4.9/include/net/addrconf.h
+--- linux-4.9/include/net/addrconf.h 2021-02-24 15:47:32.424013281 +0100
++++ linux-4.9/include/net/addrconf.h 2021-02-24 15:47:45.101076533 +0100
@@ -85,7 +85,7 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
int ipv6_dev_get_saddr(struct net *net, const struct net_device *dev,
int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
u32 banned_flags);
int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
-diff -NurpP --minimal linux-4.9.82/include/net/af_unix.h linux-4.9.82-vs2.3.9.7/include/net/af_unix.h
---- linux-4.9.82/include/net/af_unix.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/af_unix.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/net/af_unix.h linux-4.9/include/net/af_unix.h
+--- linux-4.9/include/net/af_unix.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/net/af_unix.h 2021-02-24 15:47:45.101076533 +0100
@@ -4,6 +4,7 @@
#include <linux/socket.h>
#include <linux/un.h>
#include <net/sock.h>
void unix_inflight(struct user_struct *user, struct file *fp);
-diff -NurpP --minimal linux-4.9.82/include/net/inet_timewait_sock.h linux-4.9.82-vs2.3.9.7/include/net/inet_timewait_sock.h
---- linux-4.9.82/include/net/inet_timewait_sock.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/inet_timewait_sock.h 2018-01-10 02:50:49.000000000 +0000
-@@ -71,6 +71,10 @@ struct inet_timewait_sock {
+diff -urNp -x '*.orig' linux-4.9/include/net/inet_timewait_sock.h linux-4.9/include/net/inet_timewait_sock.h
+--- linux-4.9/include/net/inet_timewait_sock.h 2021-02-24 15:47:32.427346719 +0100
++++ linux-4.9/include/net/inet_timewait_sock.h 2021-02-24 15:47:45.101076533 +0100
+@@ -72,6 +72,10 @@ struct inet_timewait_sock {
#define tw_num __tw_common.skc_num
#define tw_cookie __tw_common.skc_cookie
#define tw_dr __tw_common.skc_tw_dr
int tw_timeout;
volatile unsigned char tw_substate;
-diff -NurpP --minimal linux-4.9.82/include/net/ip6_route.h linux-4.9.82-vs2.3.9.7/include/net/ip6_route.h
---- linux-4.9.82/include/net/ip6_route.h 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/ip6_route.h 2018-01-13 06:10:51.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/net/ip6_route.h linux-4.9/include/net/ip6_route.h
+--- linux-4.9/include/net/ip6_route.h 2021-02-24 15:47:32.427346719 +0100
++++ linux-4.9/include/net/ip6_route.h 2021-02-24 15:47:45.101076533 +0100
@@ -26,6 +26,7 @@ struct route_info {
#include <linux/ip.h>
#include <linux/ipv6.h>
return err;
}
-diff -NurpP --minimal linux-4.9.82/include/net/route.h linux-4.9.82-vs2.3.9.7/include/net/route.h
---- linux-4.9.82/include/net/route.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/route.h 2018-01-10 07:57:27.000000000 +0000
-@@ -225,6 +225,9 @@ static inline void ip_rt_put(struct rtab
+diff -urNp -x '*.orig' linux-4.9/include/net/route.h linux-4.9/include/net/route.h
+--- linux-4.9/include/net/route.h 2021-02-24 15:47:32.434013594 +0100
++++ linux-4.9/include/net/route.h 2021-02-24 15:47:45.101076533 +0100
+@@ -226,6 +226,9 @@ static inline void ip_rt_put(struct rtab
dst_release(&rt->dst);
}
#define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
extern const __u8 ip_tos2prio[16];
-@@ -272,6 +275,9 @@ static inline void ip_route_connect_init
+@@ -273,6 +276,9 @@ static inline void ip_route_connect_init
protocol, flow_flags, dst, src, dport, sport);
}
static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
__be32 dst, __be32 src, u32 tos,
int oif, u8 protocol,
-@@ -280,11 +286,25 @@ static inline struct rtable *ip_route_co
+@@ -281,11 +287,25 @@ static inline struct rtable *ip_route_co
{
struct net *net = sock_net(sk);
struct rtable *rt;
rt = __ip_route_output_key(net, fl4);
if (IS_ERR(rt))
return rt;
-diff -NurpP --minimal linux-4.9.82/include/net/sock.h linux-4.9.82-vs2.3.9.7/include/net/sock.h
---- linux-4.9.82/include/net/sock.h 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/net/sock.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/net/sock.h linux-4.9/include/net/sock.h
+--- linux-4.9/include/net/sock.h 2021-02-24 15:47:32.434013594 +0100
++++ linux-4.9/include/net/sock.h 2021-02-24 15:47:45.101076533 +0100
@@ -187,6 +187,10 @@ struct sock_common {
struct in6_addr skc_v6_daddr;
struct in6_addr skc_v6_rcv_saddr;
atomic64_t skc_cookie;
-@@ -336,8 +340,12 @@ struct sock {
+@@ -337,8 +341,12 @@ struct sock {
#define sk_prot __sk_common.skc_prot
#define sk_net __sk_common.skc_net
#define sk_v6_daddr __sk_common.skc_v6_daddr
#define sk_incoming_cpu __sk_common.skc_incoming_cpu
#define sk_flags __sk_common.skc_flags
#define sk_rxhash __sk_common.skc_rxhash
-diff -NurpP --minimal linux-4.9.82/include/uapi/Kbuild linux-4.9.82-vs2.3.9.7/include/uapi/Kbuild
---- linux-4.9.82/include/uapi/Kbuild 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/Kbuild 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/Kbuild linux-4.9/include/uapi/Kbuild
+--- linux-4.9/include/uapi/Kbuild 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/Kbuild 2021-02-24 15:47:45.101076533 +0100
@@ -13,3 +13,4 @@ header-y += drm/
header-y += xen/
header-y += scsi/
header-y += misc/
+header-y += vserver/
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/btrfs_tree.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/btrfs_tree.h
---- linux-4.9.82/include/uapi/linux/btrfs_tree.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/btrfs_tree.h 2018-01-13 01:45:34.000000000 +0000
-@@ -563,11 +563,14 @@ struct btrfs_inode_item {
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/btrfs_tree.h linux-4.9/include/uapi/linux/btrfs_tree.h
+--- linux-4.9/include/uapi/linux/btrfs_tree.h 2021-02-24 15:47:32.444013907 +0100
++++ linux-4.9/include/uapi/linux/btrfs_tree.h 2021-02-24 15:47:45.101076533 +0100
+@@ -566,11 +566,14 @@ struct btrfs_inode_item {
/* modification sequence number for NFS */
__le64 sequence;
struct btrfs_timespec atime;
struct btrfs_timespec ctime;
struct btrfs_timespec mtime;
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/capability.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/capability.h
---- linux-4.9.82/include/uapi/linux/capability.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/capability.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/capability.h linux-4.9/include/uapi/linux/capability.h
+--- linux-4.9/include/uapi/linux/capability.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/capability.h 2021-02-24 15:47:45.101076533 +0100
@@ -257,6 +257,7 @@ struct vfs_cap_data {
arbitrary SCSI commands */
/* Allow setting encryption key on loopback filesystem */
/*
* Bit location of each capability (used by user-space library and kernel)
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/fs.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/fs.h
---- linux-4.9.82/include/uapi/linux/fs.h 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/fs.h 2018-01-10 08:09:10.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/fs.h linux-4.9/include/uapi/linux/fs.h
+--- linux-4.9/include/uapi/linux/fs.h 2021-02-24 15:47:32.444013907 +0100
++++ linux-4.9/include/uapi/linux/fs.h 2021-02-24 15:47:45.101076533 +0100
@@ -130,6 +130,9 @@ struct inodes_stat_t {
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
#define MS_STRICTATIME (1<<24) /* Always perform atime updates */
#define SYNC_FILE_RANGE_WAIT_BEFORE 1
#define SYNC_FILE_RANGE_WRITE 2
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/gfs2_ondisk.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/gfs2_ondisk.h
---- linux-4.9.82/include/uapi/linux/gfs2_ondisk.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/gfs2_ondisk.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/gfs2_ondisk.h linux-4.9/include/uapi/linux/gfs2_ondisk.h
+--- linux-4.9/include/uapi/linux/gfs2_ondisk.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/gfs2_ondisk.h 2021-02-24 15:47:45.104409971 +0100
@@ -225,6 +225,9 @@ enum {
gfs2fl_Sync = 8,
gfs2fl_System = 9,
#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000 /* only in gfs1 */
#define GFS2_DIF_INHERIT_JDATA 0x80000000
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/if_tun.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/if_tun.h
---- linux-4.9.82/include/uapi/linux/if_tun.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/if_tun.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/if_tun.h linux-4.9/include/uapi/linux/if_tun.h
+--- linux-4.9/include/uapi/linux/if_tun.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/if_tun.h 2021-02-24 15:47:45.104409971 +0100
@@ -56,6 +56,7 @@
*/
#define TUNSETVNETBE _IOW('T', 222, int)
/* TUNSETIFF ifr flags */
#define IFF_TUN 0x0001
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/major.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/major.h
---- linux-4.9.82/include/uapi/linux/major.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/major.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/major.h linux-4.9/include/uapi/linux/major.h
+--- linux-4.9/include/uapi/linux/major.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/major.h 2021-02-24 15:47:45.104409971 +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-4.9.82/include/uapi/linux/nfs_mount.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/nfs_mount.h
---- linux-4.9.82/include/uapi/linux/nfs_mount.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/nfs_mount.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/nfs_mount.h linux-4.9/include/uapi/linux/nfs_mount.h
+--- linux-4.9/include/uapi/linux/nfs_mount.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/nfs_mount.h 2021-02-24 15:47:45.104409971 +0100
@@ -63,7 +63,8 @@ struct nfs_mount_data {
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 non-text parsed mount data only */
#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
/* The following are for internal use only */
#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/reboot.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/reboot.h
---- linux-4.9.82/include/uapi/linux/reboot.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/reboot.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/reboot.h linux-4.9/include/uapi/linux/reboot.h
+--- linux-4.9/include/uapi/linux/reboot.h 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/include/uapi/linux/reboot.h 2021-02-24 15:47:45.104409971 +0100
@@ -33,7 +33,7 @@
#define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
#endif /* _UAPI_LINUX_REBOOT_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/linux/sysctl.h linux-4.9.82-vs2.3.9.7/include/uapi/linux/sysctl.h
---- linux-4.9.82/include/uapi/linux/sysctl.h 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/linux/sysctl.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/linux/sysctl.h linux-4.9/include/uapi/linux/sysctl.h
+--- linux-4.9/include/uapi/linux/sysctl.h 2021-02-24 15:47:32.450680782 +0100
++++ linux-4.9/include/uapi/linux/sysctl.h 2021-02-24 15:47:45.104409971 +0100
@@ -58,6 +58,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-4.9.82/include/uapi/vserver/Kbuild linux-4.9.82-vs2.3.9.7/include/uapi/vserver/Kbuild
---- linux-4.9.82/include/uapi/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/Kbuild 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/Kbuild linux-4.9/include/uapi/vserver/Kbuild
+--- linux-4.9/include/uapi/vserver/Kbuild 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/Kbuild 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,9 @@
+
+header-y += context_cmd.h network_cmd.h space_cmd.h \
+header-y += switch.h context.h network.h monitor.h \
+ limit.h inode.h device.h
+
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/cacct_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/cacct_cmd.h
---- linux-4.9.82/include/uapi/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/cacct_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/cacct_cmd.h linux-4.9/include/uapi/vserver/cacct_cmd.h
+--- linux-4.9/include/uapi/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/cacct_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,15 @@
+#ifndef _UAPI_VS_CACCT_CMD_H
+#define _UAPI_VS_CACCT_CMD_H
+};
+
+#endif /* _UAPI_VS_CACCT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/context.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/context.h
---- linux-4.9.82/include/uapi/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/context.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/context.h linux-4.9/include/uapi/vserver/context.h
+--- linux-4.9/include/uapi/vserver/context.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/context.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,81 @@
+#ifndef _UAPI_VS_CONTEXT_H
+#define _UAPI_VS_CONTEXT_H
+#define VXC_NAMESPACE 0x02000000
+
+#endif /* _UAPI_VS_CONTEXT_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/context_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/context_cmd.h
---- linux-4.9.82/include/uapi/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/context_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/context_cmd.h linux-4.9/include/uapi/vserver/context_cmd.h
+--- linux-4.9/include/uapi/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/context_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,115 @@
+#ifndef _UAPI_VS_CONTEXT_CMD_H
+#define _UAPI_VS_CONTEXT_CMD_H
+};
+
+#endif /* _UAPI_VS_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/cvirt_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/cvirt_cmd.h
---- linux-4.9.82/include/uapi/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/cvirt_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/cvirt_cmd.h linux-4.9/include/uapi/vserver/cvirt_cmd.h
+--- linux-4.9/include/uapi/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/cvirt_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,41 @@
+#ifndef _UAPI_VS_CVIRT_CMD_H
+#define _UAPI_VS_CVIRT_CMD_H
+};
+
+#endif /* _UAPI_VS_CVIRT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/debug_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/debug_cmd.h
---- linux-4.9.82/include/uapi/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/debug_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/debug_cmd.h linux-4.9/include/uapi/vserver/debug_cmd.h
+--- linux-4.9/include/uapi/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/debug_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,24 @@
+#ifndef _UAPI_VS_DEBUG_CMD_H
+#define _UAPI_VS_DEBUG_CMD_H
+};
+
+#endif /* _UAPI_VS_DEBUG_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/device.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/device.h
---- linux-4.9.82/include/uapi/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/device.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/device.h linux-4.9/include/uapi/vserver/device.h
+--- linux-4.9/include/uapi/vserver/device.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/device.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,12 @@
+#ifndef _UAPI_VS_DEVICE_H
+#define _UAPI_VS_DEVICE_H
+#define DATTR_MASK 0x00000013
+
+#endif /* _UAPI_VS_DEVICE_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/device_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/device_cmd.h
---- linux-4.9.82/include/uapi/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/device_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/device_cmd.h linux-4.9/include/uapi/vserver/device_cmd.h
+--- linux-4.9/include/uapi/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/device_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,16 @@
+#ifndef _UAPI_VS_DEVICE_CMD_H
+#define _UAPI_VS_DEVICE_CMD_H
+};
+
+#endif /* _UAPI_VS_DEVICE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/dlimit_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/dlimit_cmd.h
---- linux-4.9.82/include/uapi/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/dlimit_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/dlimit_cmd.h linux-4.9/include/uapi/vserver/dlimit_cmd.h
+--- linux-4.9/include/uapi/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/dlimit_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,67 @@
+#ifndef _UAPI_VS_DLIMIT_CMD_H
+#define _UAPI_VS_DLIMIT_CMD_H
+}
+
+#endif /* _UAPI_VS_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/inode.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/inode.h
---- linux-4.9.82/include/uapi/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/inode.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/inode.h linux-4.9/include/uapi/vserver/inode.h
+--- linux-4.9/include/uapi/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/inode.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,23 @@
+#ifndef _UAPI_VS_INODE_H
+#define _UAPI_VS_INODE_H
+#define FIOC_SETXFLG _IOW('x', 6, long)
+
+#endif /* _UAPI_VS_INODE_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/inode_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/inode_cmd.h
---- linux-4.9.82/include/uapi/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/inode_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/inode_cmd.h linux-4.9/include/uapi/vserver/inode_cmd.h
+--- linux-4.9/include/uapi/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/inode_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,26 @@
+#ifndef _UAPI_VS_INODE_CMD_H
+#define _UAPI_VS_INODE_CMD_H
+};
+
+#endif /* _UAPI_VS_INODE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/limit.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/limit.h
---- linux-4.9.82/include/uapi/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/limit.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/limit.h linux-4.9/include/uapi/vserver/limit.h
+--- linux-4.9/include/uapi/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/limit.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,14 @@
+#ifndef _UAPI_VS_LIMIT_H
+#define _UAPI_VS_LIMIT_H
+#define VLIMIT_MAPPED 23
+
+#endif /* _UAPI_VS_LIMIT_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/limit_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/limit_cmd.h
---- linux-4.9.82/include/uapi/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/limit_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/limit_cmd.h linux-4.9/include/uapi/vserver/limit_cmd.h
+--- linux-4.9/include/uapi/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/limit_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,40 @@
+#ifndef _UAPI_VS_LIMIT_CMD_H
+#define _UAPI_VS_LIMIT_CMD_H
+#define CRLIM_KEEP (~1ULL)
+
+#endif /* _UAPI_VS_LIMIT_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/monitor.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/monitor.h
---- linux-4.9.82/include/uapi/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/monitor.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/monitor.h linux-4.9/include/uapi/vserver/monitor.h
+--- linux-4.9/include/uapi/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/monitor.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,96 @@
+#ifndef _UAPI_VS_MONITOR_H
+#define _UAPI_VS_MONITOR_H
+};
+
+#endif /* _UAPI_VS_MONITOR_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/network.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/network.h
---- linux-4.9.82/include/uapi/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/network.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/network.h linux-4.9/include/uapi/vserver/network.h
+--- linux-4.9/include/uapi/vserver/network.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/network.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,76 @@
+#ifndef _UAPI_VS_NETWORK_H
+#define _UAPI_VS_NETWORK_H
+#define NXA_MASK_SHOW (NXA_MASK_ALL | NXA_LOOPBACK)
+
+#endif /* _UAPI_VS_NETWORK_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/network_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/network_cmd.h
---- linux-4.9.82/include/uapi/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/network_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/network_cmd.h linux-4.9/include/uapi/vserver/network_cmd.h
+--- linux-4.9/include/uapi/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/network_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,123 @@
+#ifndef _UAPI_VS_NETWORK_CMD_H
+#define _UAPI_VS_NETWORK_CMD_H
+};
+
+#endif /* _UAPI_VS_NETWORK_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/sched_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/sched_cmd.h
---- linux-4.9.82/include/uapi/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/sched_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/sched_cmd.h linux-4.9/include/uapi/vserver/sched_cmd.h
+--- linux-4.9/include/uapi/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/sched_cmd.h 2021-02-24 15:47:45.104409971 +0100
@@ -0,0 +1,13 @@
+#ifndef _UAPI_VS_SCHED_CMD_H
+#define _UAPI_VS_SCHED_CMD_H
+#define VCMD_get_prio_bias VC_CMD(SCHED, 5, 0)
+
+#endif /* _UAPI_VS_SCHED_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/signal_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/signal_cmd.h
---- linux-4.9.82/include/uapi/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/signal_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/signal_cmd.h linux-4.9/include/uapi/vserver/signal_cmd.h
+--- linux-4.9/include/uapi/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/signal_cmd.h 2021-02-24 15:47:45.107743409 +0100
@@ -0,0 +1,31 @@
+#ifndef _UAPI_VS_SIGNAL_CMD_H
+#define _UAPI_VS_SIGNAL_CMD_H
+};
+
+#endif /* _UAPI_VS_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/space_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/space_cmd.h
---- linux-4.9.82/include/uapi/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/space_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/space_cmd.h linux-4.9/include/uapi/vserver/space_cmd.h
+--- linux-4.9/include/uapi/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/space_cmd.h 2021-02-24 15:47:45.107743409 +0100
@@ -0,0 +1,28 @@
+#ifndef _UAPI_VS_SPACE_CMD_H
+#define _UAPI_VS_SPACE_CMD_H
+};
+
+#endif /* _UAPI_VS_SPACE_CMD_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/switch.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/switch.h
---- linux-4.9.82/include/uapi/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/switch.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/switch.h linux-4.9/include/uapi/vserver/switch.h
+--- linux-4.9/include/uapi/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/switch.h 2021-02-24 15:47:45.107743409 +0100
@@ -0,0 +1,90 @@
+#ifndef _UAPI_VS_SWITCH_H
+#define _UAPI_VS_SWITCH_H
+#define VCMD_get_vci VC_CMD(VERSION, 1, 0)
+
+#endif /* _UAPI_VS_SWITCH_H */
-diff -NurpP --minimal linux-4.9.82/include/uapi/vserver/tag_cmd.h linux-4.9.82-vs2.3.9.7/include/uapi/vserver/tag_cmd.h
---- linux-4.9.82/include/uapi/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/include/uapi/vserver/tag_cmd.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/include/uapi/vserver/tag_cmd.h linux-4.9/include/uapi/vserver/tag_cmd.h
+--- linux-4.9/include/uapi/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/include/uapi/vserver/tag_cmd.h 2021-02-24 15:47:45.107743409 +0100
@@ -0,0 +1,14 @@
+#ifndef _UAPI_VS_TAG_CMD_H
+#define _UAPI_VS_TAG_CMD_H
+#define VCMD_tag_migrate VC_CMD(TAGMIG, 1, 0)
+
+#endif /* _UAPI_VS_TAG_CMD_H */
-diff -NurpP --minimal linux-4.9.82/init/Kconfig linux-4.9.82-vs2.3.9.7/init/Kconfig
---- linux-4.9.82/init/Kconfig 2018-02-22 21:18:55.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/init/Kconfig 2018-02-10 15:15:43.000000000 +0000
-@@ -958,6 +958,7 @@ config NUMA_BALANCING_DEFAULT_ENABLED
+diff -urNp -x '*.orig' linux-4.9/init/Kconfig linux-4.9/init/Kconfig
+--- linux-4.9/init/Kconfig 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/init/Kconfig 2021-02-24 15:47:45.107743409 +0100
+@@ -959,6 +959,7 @@ config NUMA_BALANCING_DEFAULT_ENABLED
menuconfig CGROUPS
bool "Control Group support"
select KERNFS
help
This option adds support for grouping sets of processes together, for
use with process control subsystems such as Cpusets, CFS, memory
-diff -NurpP --minimal linux-4.9.82/init/main.c linux-4.9.82-vs2.3.9.7/init/main.c
---- linux-4.9.82/init/main.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/init/main.c 2018-01-10 02:50:49.000000000 +0000
-@@ -81,6 +81,7 @@
+diff -urNp -x '*.orig' linux-4.9/init/main.c linux-4.9/init/main.c
+--- linux-4.9/init/main.c 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/init/main.c 2021-02-24 15:47:45.107743409 +0100
+@@ -82,6 +82,7 @@
#include <linux/io.h>
#include <linux/kaiser.h>
#include <linux/cache.h>
#include <asm/io.h>
#include <asm/bugs.h>
-diff -NurpP --minimal linux-4.9.82/ipc/mqueue.c linux-4.9.82-vs2.3.9.7/ipc/mqueue.c
---- linux-4.9.82/ipc/mqueue.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/ipc/mqueue.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/ipc/mqueue.c linux-4.9/ipc/mqueue.c
+--- linux-4.9/ipc/mqueue.c 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/ipc/mqueue.c 2021-02-24 15:47:45.107743409 +0100
@@ -35,6 +35,8 @@
#include <linux/ipc_namespace.h>
#include <linux/user_namespace.h>
} else if (S_ISDIR(mode)) {
inc_nlink(inode);
/* Some things misbehave if size == 0 on a directory */
-@@ -396,8 +404,11 @@ static void mqueue_evict_inode(struct in
+@@ -393,6 +401,7 @@ static void mqueue_evict_inode(struct in
user = info->user;
if (user) {
+ struct vx_info *vxi = info->vxi;
-+
+ unsigned long mq_bytes, mq_treesize;
+
+ /* Total amount of bytes accounted for the mqueue */
+@@ -405,6 +414,7 @@ static void mqueue_evict_inode(struct in
+
spin_lock(&mq_lock);
user->mq_bytes -= mq_bytes;
+ vx_ipcmsg_sub(vxi, user, mq_bytes);
/*
* get_ns_from_inode() ensures that the
* (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -407,6 +418,7 @@ static void mqueue_evict_inode(struct in
+@@ -414,6 +424,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-4.9.82/ipc/msg.c linux-4.9.82-vs2.3.9.7/ipc/msg.c
---- linux-4.9.82/ipc/msg.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/ipc/msg.c 2018-02-10 15:15:43.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/ipc/msg.c linux-4.9/ipc/msg.c
+--- linux-4.9/ipc/msg.c 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/ipc/msg.c 2021-02-24 15:47:45.107743409 +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-4.9.82/ipc/namespace.c linux-4.9.82-vs2.3.9.7/ipc/namespace.c
---- linux-4.9.82/ipc/namespace.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/ipc/namespace.c 2018-01-13 03:52:55.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/ipc/namespace.c linux-4.9/ipc/namespace.c
+--- linux-4.9/ipc/namespace.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/ipc/namespace.c 2021-02-24 15:47:45.107743409 +0100
@@ -13,6 +13,7 @@
#include <linux/mount.h>
#include <linux/user_namespace.h>
kfree(ns);
}
-diff -NurpP --minimal linux-4.9.82/ipc/sem.c linux-4.9.82-vs2.3.9.7/ipc/sem.c
---- linux-4.9.82/ipc/sem.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/ipc/sem.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/ipc/sem.c linux-4.9/ipc/sem.c
+--- linux-4.9/ipc/sem.c 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/ipc/sem.c 2021-02-24 15:47:45.107743409 +0100
@@ -85,6 +85,8 @@
#include <linux/rwsem.h>
#include <linux/nsproxy.h>
ipc_rcu_putref(sma, sem_rcu_free);
}
-diff -NurpP --minimal linux-4.9.82/ipc/shm.c linux-4.9.82-vs2.3.9.7/ipc/shm.c
---- linux-4.9.82/ipc/shm.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/ipc/shm.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/ipc/shm.c linux-4.9/ipc/shm.c
+--- linux-4.9/ipc/shm.c 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/ipc/shm.c 2021-02-24 15:47:45.107743409 +0100
@@ -42,6 +42,8 @@
#include <linux/nsproxy.h>
#include <linux/mount.h>
#include <linux/uaccess.h>
-@@ -228,10 +230,14 @@ static void shm_open(struct vm_area_stru
+@@ -234,10 +236,14 @@ static void shm_open(struct vm_area_stru
static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp)
{
struct file *shm_file;
shm_rmid(ns, shp);
shm_unlock(shp);
if (!is_file_hugepages(shm_file))
-@@ -240,6 +246,7 @@ static void shm_destroy(struct ipc_names
+@@ -246,6 +252,7 @@ static void shm_destroy(struct ipc_names
user_shm_unlock(i_size_read(file_inode(shm_file)),
shp->mlock_user);
fput(shm_file);
ipc_rcu_putref(shp, shm_rcu_free);
}
-@@ -539,11 +546,15 @@ static int newseg(struct ipc_namespace *
+@@ -559,11 +566,15 @@ static int newseg(struct ipc_namespace *
ns->shm_tot + numpages > ns->shm_ctlall)
return -ENOSPC;
shp->shm_perm.mode = (shmflg & S_IRWXUGO);
shp->mlock_user = NULL;
-@@ -614,6 +625,7 @@ static int newseg(struct ipc_namespace *
+@@ -634,6 +645,7 @@ static int newseg(struct ipc_namespace *
ipc_unlock_object(&shp->shm_perm);
rcu_read_unlock();
return error;
no_id:
-diff -NurpP --minimal linux-4.9.82/kernel/Makefile linux-4.9.82-vs2.3.9.7/kernel/Makefile
---- linux-4.9.82/kernel/Makefile 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/Makefile 2018-01-10 02:50:49.000000000 +0000
-@@ -39,6 +39,7 @@ obj-y += printk/
+diff -urNp -x '*.orig' linux-4.9/kernel/Makefile linux-4.9/kernel/Makefile
+--- linux-4.9/kernel/Makefile 2021-02-24 15:47:32.454014219 +0100
++++ linux-4.9/kernel/Makefile 2021-02-24 15:47:45.111076846 +0100
+@@ -40,6 +40,7 @@ obj-y += printk/
obj-y += irq/
obj-y += rcu/
obj-y += livepatch/
obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
obj-$(CONFIG_FREEZER) += freezer.o
-diff -NurpP --minimal linux-4.9.82/kernel/auditsc.c linux-4.9.82-vs2.3.9.7/kernel/auditsc.c
---- linux-4.9.82/kernel/auditsc.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/auditsc.c 2018-01-10 02:50:49.000000000 +0000
-@@ -1965,7 +1965,7 @@ static int audit_set_loginuid_perm(kuid_
+diff -urNp -x '*.orig' linux-4.9/kernel/auditsc.c linux-4.9/kernel/auditsc.c
+--- linux-4.9/kernel/auditsc.c 2021-02-24 15:47:32.457347657 +0100
++++ linux-4.9/kernel/auditsc.c 2021-02-24 15:47:45.107743409 +0100
+@@ -1967,7 +1967,7 @@ static int audit_set_loginuid_perm(kuid_
if (is_audit_feature_set(AUDIT_FEATURE_LOGINUID_IMMUTABLE))
return -EPERM;
/* it is set, you need permission */
return -EPERM;
/* reject if this is not an unset and we don't allow that */
if (is_audit_feature_set(AUDIT_FEATURE_ONLY_UNSET_LOGINUID) && uid_valid(loginuid))
-diff -NurpP --minimal linux-4.9.82/kernel/capability.c linux-4.9.82-vs2.3.9.7/kernel/capability.c
---- linux-4.9.82/kernel/capability.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/capability.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/capability.c linux-4.9/kernel/capability.c
+--- linux-4.9/kernel/capability.c 2021-02-24 15:47:32.460681095 +0100
++++ linux-4.9/kernel/capability.c 2021-02-24 15:47:45.111076846 +0100
@@ -17,6 +17,7 @@
#include <linux/syscalls.h>
#include <linux/pid_namespace.h>
/**
* has_capability_noaudit - Does a task have a capability (unaudited) in the
* initial user ns
-diff -NurpP --minimal linux-4.9.82/kernel/compat.c linux-4.9.82-vs2.3.9.7/kernel/compat.c
---- linux-4.9.82/kernel/compat.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/compat.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/compat.c linux-4.9/kernel/compat.c
+--- linux-4.9/kernel/compat.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/kernel/compat.c 2021-02-24 15:47:45.111076846 +0100
@@ -27,6 +27,7 @@
#include <linux/times.h>
#include <linux/ptrace.h>
return 0;
}
-diff -NurpP --minimal linux-4.9.82/kernel/cred.c linux-4.9.82-vs2.3.9.7/kernel/cred.c
---- linux-4.9.82/kernel/cred.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/cred.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/cred.c linux-4.9/kernel/cred.c
+--- linux-4.9/kernel/cred.c 2021-02-24 15:47:32.460681095 +0100
++++ linux-4.9/kernel/cred.c 2021-02-24 15:47:45.111076846 +0100
@@ -64,31 +64,6 @@ struct cred init_cred = {
.group_info = &init_groups,
};
/*
* The RCU callback to actually dispose of a set of credentials
*/
-@@ -240,21 +215,16 @@ error:
+@@ -243,21 +218,16 @@ error:
*
* Call commit_creds() or abort_creds() to clean up.
*/
- old = task->cred;
memcpy(new, old, sizeof(struct cred));
- atomic_set(&new->usage, 1);
-@@ -283,6 +253,13 @@ error:
+ new->non_rcu = 0;
+@@ -287,6 +257,13 @@ error:
abort_creds(new);
return NULL;
}
EXPORT_SYMBOL(prepare_creds);
/*
-diff -NurpP --minimal linux-4.9.82/kernel/exit.c linux-4.9.82-vs2.3.9.7/kernel/exit.c
---- linux-4.9.82/kernel/exit.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/exit.c 2018-02-06 17:14:57.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/exit.c linux-4.9/kernel/exit.c
+--- linux-4.9/kernel/exit.c 2021-02-24 15:47:32.467347970 +0100
++++ linux-4.9/kernel/exit.c 2021-02-24 15:47:45.111076846 +0100
@@ -48,6 +48,10 @@
#include <linux/fs_struct.h>
#include <linux/init_task.h>
#include <trace/events/sched.h>
#include <linux/hw_breakpoint.h>
#include <linux/oom.h>
-@@ -531,14 +535,24 @@ static struct task_struct *find_child_re
+@@ -535,15 +539,25 @@ static struct task_struct *find_child_re
{
struct pid_namespace *pid_ns = task_active_pid_ns(father);
struct task_struct *reaper = pid_ns->child_reaper;
+ struct vx_info *vxi = task_get_vx_info(father);
-+
+ struct task_struct *p, *n;
+
+ if (vxi) {
+ BUG_ON(!vxi->vx_reaper);
+ if (vxi->vx_reaper != init_pid_ns.child_reaper &&
+ goto out_put;
+ }
+ }
-
++
if (likely(reaper != father))
- return reaper;
+ goto out_put;
}
write_unlock_irq(&tasklist_lock);
-@@ -549,7 +563,10 @@ static struct task_struct *find_child_re
+@@ -560,7 +574,10 @@ static struct task_struct *find_child_re
zap_pid_ns_processes(pid_ns);
write_lock_irq(&tasklist_lock);
}
/*
-@@ -637,9 +654,13 @@ static void forget_original_parent(struc
+@@ -648,9 +665,13 @@ static void forget_original_parent(struc
return;
reaper = find_new_reaper(father, reaper);
BUG_ON((!t->ptrace) != (t->parent == father));
if (likely(!t->ptrace))
t->parent = t->real_parent;
-@@ -651,10 +672,13 @@ static void forget_original_parent(struc
+@@ -662,10 +683,13 @@ static void forget_original_parent(struc
* If this is a threaded reparent there is no need to
* notify anyone anything has happened.
*/
}
/*
-@@ -844,6 +868,9 @@ void __noreturn do_exit(long code)
+@@ -843,6 +867,9 @@ void __noreturn do_exit(long code)
*/
flush_ptrace_hw_breakpoint(tsk);
TASKS_RCU(preempt_disable());
TASKS_RCU(tasks_rcu_i = __srcu_read_lock(&tasks_rcu_exit_srcu));
TASKS_RCU(preempt_enable());
-@@ -876,6 +903,10 @@ void __noreturn do_exit(long code)
+@@ -869,6 +896,10 @@ void __noreturn do_exit(long code)
validate_creds_for_do_exit(tsk);
check_stack_usage();
preempt_disable();
if (tsk->nr_dirtied)
-diff -NurpP --minimal linux-4.9.82/kernel/fork.c linux-4.9.82-vs2.3.9.7/kernel/fork.c
---- linux-4.9.82/kernel/fork.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/fork.c 2018-01-10 09:23:14.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/fork.c linux-4.9/kernel/fork.c
+--- linux-4.9/kernel/fork.c 2021-02-24 15:47:32.467347970 +0100
++++ linux-4.9/kernel/fork.c 2021-02-24 15:47:45.111076846 +0100
@@ -77,6 +77,9 @@
#include <linux/compiler.h>
#include <linux/sysctl.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
-@@ -353,6 +356,8 @@ void free_task(struct task_struct *tsk)
+@@ -356,6 +359,8 @@ void free_task(struct task_struct *tsk)
WARN_ON_ONCE(atomic_read(&tsk->stack_refcount) != 0);
#endif
rt_mutex_debug_task_free(tsk);
ftrace_graph_exit_task(tsk);
put_seccomp_filter(tsk);
arch_release_task_struct(tsk);
-@@ -1475,6 +1480,8 @@ static __latent_entropy struct task_stru
+@@ -1476,6 +1481,8 @@ static __latent_entropy struct task_stru
{
int retval;
struct task_struct *p;
if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
return ERR_PTR(-EINVAL);
-@@ -1535,7 +1542,12 @@ static __latent_entropy struct task_stru
+@@ -1548,7 +1555,12 @@ static __latent_entropy struct task_stru
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 (p->real_cred->user != INIT_USER &&
-@@ -1832,6 +1844,18 @@ static __latent_entropy struct task_stru
+@@ -1843,6 +1855,18 @@ static __latent_entropy struct task_stru
total_forks++;
spin_unlock(¤t->sighand->siglock);
syscall_tracepoint_update(p);
write_unlock_irq(&tasklist_lock);
proc_fork_connector(p);
-diff -NurpP --minimal linux-4.9.82/kernel/kthread.c linux-4.9.82-vs2.3.9.7/kernel/kthread.c
---- linux-4.9.82/kernel/kthread.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/kthread.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/kthread.c linux-4.9/kernel/kthread.c
+--- linux-4.9/kernel/kthread.c 2021-02-24 15:47:32.474014845 +0100
++++ linux-4.9/kernel/kthread.c 2021-02-24 15:47:45.111076846 +0100
@@ -19,6 +19,7 @@
#include <linux/ptrace.h>
#include <linux/uaccess.h>
#include <trace/events/sched.h>
static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-4.9.82/kernel/nsproxy.c linux-4.9.82-vs2.3.9.7/kernel/nsproxy.c
---- linux-4.9.82/kernel/nsproxy.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/nsproxy.c 2018-01-14 06:25:23.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/nsproxy.c linux-4.9/kernel/nsproxy.c
+--- linux-4.9/kernel/nsproxy.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/kernel/nsproxy.c 2021-02-24 15:47:45.111076846 +0100
@@ -20,12 +20,15 @@
#include <linux/mnt_namespace.h>
#include <linux/utsname.h>
return -EPERM;
*new_nsp = create_new_namespaces(unshare_flags, current, user_ns,
-diff -NurpP --minimal linux-4.9.82/kernel/pid.c linux-4.9.82-vs2.3.9.7/kernel/pid.c
---- linux-4.9.82/kernel/pid.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/pid.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/pid.c linux-4.9/kernel/pid.c
+--- linux-4.9/kernel/pid.c 2021-02-24 15:47:32.477348283 +0100
++++ linux-4.9/kernel/pid.c 2021-02-24 15:47:45.111076846 +0100
@@ -38,6 +38,7 @@
#include <linux/syscalls.h>
#include <linux/proc_ns.h>
#define pid_hashfn(nr, ns) \
hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift)
-@@ -379,7 +380,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
+@@ -381,7 +382,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
struct pid *find_vpid(int nr)
{
}
EXPORT_SYMBOL_GPL(find_vpid);
-@@ -435,6 +436,9 @@ void transfer_pid(struct task_struct *ol
+@@ -437,6 +438,9 @@ void transfer_pid(struct task_struct *ol
struct task_struct *pid_task(struct pid *pid, enum pid_type type)
{
struct task_struct *result = NULL;
if (pid) {
struct hlist_node *first;
first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
-@@ -453,7 +457,7 @@ struct task_struct *find_task_by_pid_ns(
+@@ -455,7 +459,7 @@ struct task_struct *find_task_by_pid_ns(
{
RCU_LOCKDEP_WARN(!rcu_read_lock_held(),
"find_task_by_pid_ns() needs rcu_read_lock() protection");
}
struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -497,7 +501,7 @@ struct pid *find_get_pid(pid_t nr)
+@@ -499,7 +503,7 @@ struct pid *find_get_pid(pid_t nr)
}
EXPORT_SYMBOL_GPL(find_get_pid);
{
struct upid *upid;
pid_t nr = 0;
-@@ -511,6 +515,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
+@@ -513,6 +517,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
}
EXPORT_SYMBOL_GPL(pid_nr_ns);
pid_t pid_vnr(struct pid *pid)
{
return pid_nr_ns(pid, task_active_pid_ns(current));
-diff -NurpP --minimal linux-4.9.82/kernel/pid_namespace.c linux-4.9.82-vs2.3.9.7/kernel/pid_namespace.c
---- linux-4.9.82/kernel/pid_namespace.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/pid_namespace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/pid_namespace.c linux-4.9/kernel/pid_namespace.c
+--- linux-4.9/kernel/pid_namespace.c 2021-02-24 15:47:32.477348283 +0100
++++ linux-4.9/kernel/pid_namespace.c 2021-02-24 15:47:45.111076846 +0100
@@ -18,6 +18,7 @@
#include <linux/proc_ns.h>
#include <linux/reboot.h>
kmem_cache_free(pid_ns_cachep, ns);
out_dec:
dec_pid_namespaces(ucounts);
-diff -NurpP --minimal linux-4.9.82/kernel/printk/printk.c linux-4.9.82-vs2.3.9.7/kernel/printk/printk.c
---- linux-4.9.82/kernel/printk/printk.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/printk/printk.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/printk/printk.c linux-4.9/kernel/printk/printk.c
+--- linux-4.9/kernel/printk/printk.c 2021-02-24 15:47:32.480681720 +0100
++++ linux-4.9/kernel/printk/printk.c 2021-02-24 15:47:45.114410284 +0100
@@ -45,6 +45,7 @@
#include <linux/utsname.h>
#include <linux/ctype.h>
#include <asm/uaccess.h>
#include <asm/sections.h>
-@@ -612,7 +613,7 @@ int check_syslog_permissions(int type, i
+@@ -611,7 +612,7 @@ int check_syslog_permissions(int type, i
goto ok;
if (syslog_action_restricted(type)) {
goto ok;
/*
* For historical reasons, accept CAP_SYS_ADMIN too, with
-@@ -1432,12 +1433,9 @@ int do_syslog(int type, char __user *buf
+@@ -1398,12 +1399,9 @@ int do_syslog(int type, char __user *buf
if (error)
goto out;
error = -EINVAL;
if (!buf || len < 0)
goto out;
-@@ -1448,6 +1446,16 @@ int do_syslog(int type, char __user *buf
+@@ -1414,6 +1412,16 @@ int do_syslog(int type, char __user *buf
error = -EFAULT;
goto out;
}
error = wait_event_interruptible(log_wait,
syslog_seq != log_next_seq);
if (error)
-@@ -1460,16 +1468,6 @@ int do_syslog(int type, char __user *buf
+@@ -1426,16 +1434,6 @@ int do_syslog(int type, char __user *buf
/* FALL THRU */
/* Read last kernel messages */
case SYSLOG_ACTION_READ_ALL:
error = syslog_print_all(buf, len, clear);
break;
/* Clear ring buffer */
-diff -NurpP --minimal linux-4.9.82/kernel/ptrace.c linux-4.9.82-vs2.3.9.7/kernel/ptrace.c
---- linux-4.9.82/kernel/ptrace.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/ptrace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/ptrace.c linux-4.9/kernel/ptrace.c
+--- linux-4.9/kernel/ptrace.c 2021-02-24 15:47:32.480681720 +0100
++++ linux-4.9/kernel/ptrace.c 2021-02-24 15:47:45.114410284 +0100
@@ -23,6 +23,7 @@
#include <linux/syscalls.h>
#include <linux/uaccess.h>
#include <linux/hw_breakpoint.h>
#include <linux/cn_proc.h>
#include <linux/compat.h>
-@@ -325,6 +326,11 @@ ok:
+@@ -336,6 +337,11 @@ ok:
!ptrace_has_cap(mm->user_ns, mode)))
return -EPERM;
+ if (!vx_check(task->xid, VS_IDENT) &&
+ !task_vx_flags(task, VXF_STATE_ADMIN, 0))
+ return -EACCES;
+ if (mode & PTRACE_MODE_SCHED)
+ return 0;
return security_ptrace_access_check(task, mode);
- }
-
-diff -NurpP --minimal linux-4.9.82/kernel/reboot.c linux-4.9.82-vs2.3.9.7/kernel/reboot.c
---- linux-4.9.82/kernel/reboot.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/reboot.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/reboot.c linux-4.9/kernel/reboot.c
+--- linux-4.9/kernel/reboot.c 2021-02-24 15:47:32.484015158 +0100
++++ linux-4.9/kernel/reboot.c 2021-02-24 15:47:45.114410284 +0100
@@ -16,6 +16,7 @@
#include <linux/syscalls.h>
#include <linux/syscore_ops.h>
mutex_lock(&reboot_mutex);
switch (cmd) {
case LINUX_REBOOT_CMD_RESTART:
-diff -NurpP --minimal linux-4.9.82/kernel/sched/core.c linux-4.9.82-vs2.3.9.7/kernel/sched/core.c
---- linux-4.9.82/kernel/sched/core.c 2018-02-22 21:18:56.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sched/core.c 2018-02-22 21:31:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sched/core.c linux-4.9/kernel/sched/core.c
+--- linux-4.9/kernel/sched/core.c 2021-02-24 15:47:32.484015158 +0100
++++ linux-4.9/kernel/sched/core.c 2021-02-24 15:47:45.114410284 +0100
@@ -75,6 +75,8 @@
#include <linux/compiler.h>
#include <linux/frame.h>
#include <asm/switch_to.h>
#include <asm/tlb.h>
-@@ -3429,6 +3431,7 @@ void __noreturn do_task_dead(void)
+@@ -3431,6 +3433,7 @@ void __noreturn do_task_dead(void)
__set_current_state(TASK_DEAD);
current->flags |= PF_NOFREEZE; /* tell freezer to ignore us */
__schedule(false);
BUG();
/* Avoid "noreturn function does return". */
for (;;)
-@@ -3822,7 +3825,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -3825,7 +3828,7 @@ SYSCALL_DEFINE1(nice, int, increment)
nice = clamp_val(nice, MIN_NICE, MAX_NICE);
if (increment < 0 && !can_nice(current, nice))
retval = security_task_setnice(current, nice);
if (retval)
-diff -NurpP --minimal linux-4.9.82/kernel/sched/cputime.c linux-4.9.82-vs2.3.9.7/kernel/sched/cputime.c
---- linux-4.9.82/kernel/sched/cputime.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sched/cputime.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sched/cputime.c linux-4.9/kernel/sched/cputime.c
+--- linux-4.9/kernel/sched/cputime.c 2021-02-24 15:47:32.484015158 +0100
++++ linux-4.9/kernel/sched/cputime.c 2021-02-24 15:47:45.114410284 +0100
@@ -4,6 +4,7 @@
#include <linux/kernel_stat.h>
#include <linux/static_key.h>
#include "sched.h"
#ifdef CONFIG_PARAVIRT
#include <asm/paravirt.h>
-@@ -133,14 +134,17 @@ static inline void task_group_account_fi
+@@ -125,14 +126,17 @@ static inline void task_group_account_fi
void account_user_time(struct task_struct *p, cputime_t cputime,
cputime_t cputime_scaled)
{
+ index = (nice) ? CPUTIME_NICE : CPUTIME_USER;
/* Add user time to cpustat. */
- task_group_account_field(p, index, (__force u64) cputime);
-@@ -187,9 +191,12 @@ static inline
+ task_group_account_field(p, index, cputime_to_nsecs(cputime));
+@@ -179,9 +183,12 @@ static inline
void __account_system_time(struct task_struct *p, cputime_t cputime,
cputime_t cputime_scaled, int index)
{
account_group_system_time(p, cputime);
/* Add system time to cpustat. */
-diff -NurpP --minimal linux-4.9.82/kernel/sched/fair.c linux-4.9.82-vs2.3.9.7/kernel/sched/fair.c
---- linux-4.9.82/kernel/sched/fair.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sched/fair.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sched/fair.c linux-4.9/kernel/sched/fair.c
+--- linux-4.9/kernel/sched/fair.c 2021-02-24 15:47:32.487348596 +0100
++++ linux-4.9/kernel/sched/fair.c 2021-02-24 15:47:45.117743722 +0100
@@ -30,6 +30,7 @@
#include <linux/mempolicy.h>
#include <linux/migrate.h>
#include <trace/events/sched.h>
-@@ -3410,6 +3411,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
+@@ -3431,6 +3432,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
__enqueue_entity(cfs_rq, se);
se->on_rq = 1;
if (cfs_rq->nr_running == 1) {
list_add_leaf_cfs_rq(cfs_rq);
check_enqueue_throttle(cfs_rq);
-@@ -3479,6 +3482,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
+@@ -3500,6 +3503,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
if (se != cfs_rq->curr)
__dequeue_entity(cfs_rq, se);
se->on_rq = 0;
account_entity_dequeue(cfs_rq, se);
/*
-diff -NurpP --minimal linux-4.9.82/kernel/sched/loadavg.c linux-4.9.82-vs2.3.9.7/kernel/sched/loadavg.c
---- linux-4.9.82/kernel/sched/loadavg.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sched/loadavg.c 2018-01-29 08:40:41.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sched/loadavg.c linux-4.9/kernel/sched/loadavg.c
+--- linux-4.9/kernel/sched/loadavg.c 2021-02-24 15:47:32.487348596 +0100
++++ linux-4.9/kernel/sched/loadavg.c 2021-02-24 15:47:45.117743722 +0100
@@ -73,9 +73,16 @@ EXPORT_SYMBOL(avenrun); /* should be rem
*/
void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
}
long calc_load_fold_active(struct rq *this_rq, long adjust)
-diff -NurpP --minimal linux-4.9.82/kernel/signal.c linux-4.9.82-vs2.3.9.7/kernel/signal.c
---- linux-4.9.82/kernel/signal.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/signal.c 2018-01-13 21:30:31.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/signal.c linux-4.9/kernel/signal.c
+--- linux-4.9/kernel/signal.c 2021-02-24 15:47:32.490682033 +0100
++++ linux-4.9/kernel/signal.c 2021-02-24 15:47:45.117743722 +0100
@@ -34,6 +34,8 @@
#include <linux/compat.h>
#include <linux/cn_proc.h>
#define CREATE_TRACE_POINTS
#include <trace/events/signal.h>
-@@ -726,9 +728,18 @@ static int check_kill_permission(int sig
+@@ -782,9 +784,18 @@ static int check_kill_permission(int sig
struct pid *sid;
int error;
if (!si_fromuser(info))
return 0;
-@@ -752,6 +763,20 @@ static int check_kill_permission(int sig
+@@ -808,6 +819,20 @@ static int check_kill_permission(int sig
}
}
return security_task_kill(t, info, sig, 0);
}
-@@ -1303,8 +1328,14 @@ int kill_pid_info(int sig, struct siginf
+@@ -1359,8 +1384,14 @@ int kill_pid_info(int sig, struct siginf
for (;;) {
rcu_read_lock();
p = pid_task(pid, PIDTYPE_PID);
rcu_read_unlock();
if (likely(!p || error != -ESRCH))
return error;
-@@ -1349,7 +1380,7 @@ int kill_pid_info_as_cred(int sig, struc
+@@ -1405,7 +1436,7 @@ int kill_pid_info_as_cred(int sig, struc
rcu_read_lock();
p = pid_task(pid, PIDTYPE_PID);
ret = -ESRCH;
goto out_unlock;
}
-@@ -1401,8 +1432,10 @@ static int kill_something_info(int sig,
+@@ -1461,8 +1492,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)
-@@ -2255,6 +2288,11 @@ relock:
+@@ -2333,6 +2366,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-4.9.82/kernel/softirq.c linux-4.9.82-vs2.3.9.7/kernel/softirq.c
---- linux-4.9.82/kernel/softirq.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/softirq.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/softirq.c linux-4.9/kernel/softirq.c
+--- linux-4.9/kernel/softirq.c 2021-02-24 15:47:32.490682033 +0100
++++ linux-4.9/kernel/softirq.c 2021-02-24 15:47:45.117743722 +0100
@@ -26,6 +26,7 @@
#include <linux/smpboot.h>
#include <linux/tick.h>
#define CREATE_TRACE_POINTS
#include <trace/events/irq.h>
-diff -NurpP --minimal linux-4.9.82/kernel/sys.c linux-4.9.82-vs2.3.9.7/kernel/sys.c
---- linux-4.9.82/kernel/sys.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sys.c 2018-01-10 02:50:49.000000000 +0000
-@@ -54,6 +54,7 @@
- #include <linux/cred.h>
+diff -urNp -x '*.orig' linux-4.9/kernel/sys.c linux-4.9/kernel/sys.c
+--- linux-4.9/kernel/sys.c 2021-02-24 15:47:32.490682033 +0100
++++ linux-4.9/kernel/sys.c 2021-02-24 15:47:45.117743722 +0100
+@@ -56,6 +56,7 @@
+ #include <linux/nospec.h>
#include <linux/kmsg_dump.h>
+#include <linux/vs_pid.h>
/* Move somewhere else to avoid recompiling? */
#include <generated/utsrelease.h>
-@@ -157,7 +158,10 @@ static int set_one_prio(struct task_stru
+@@ -159,7 +160,10 @@ static int set_one_prio(struct task_stru
goto out;
}
if (niceval < task_nice(p) && !can_nice(p, niceval)) {
goto out;
}
no_nice = security_task_setnice(p, niceval);
-@@ -208,6 +212,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
+@@ -210,6 +214,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
else
pgrp = task_pgrp(current);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
error = set_one_prio(p, niceval, error);
} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
break;
-@@ -274,6 +280,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
+@@ -276,6 +282,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
else
pgrp = task_pgrp(current);
do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
niceval = nice_to_rlimit(task_nice(p));
if (niceval > retval)
retval = niceval;
-@@ -290,6 +298,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
+@@ -292,6 +300,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
goto out_unlock; /* No processes for this user */
}
do_each_thread(g, p) {
if (uid_eq(task_uid(p), uid) && task_pid_vnr(p)) {
niceval = nice_to_rlimit(task_nice(p));
if (niceval > retval)
-@@ -1217,7 +1227,8 @@ SYSCALL_DEFINE2(sethostname, char __user
+@@ -1213,7 +1223,8 @@ SYSCALL_DEFINE2(sethostname, char __user
int errno;
char tmp[__NEW_UTS_LEN];
return -EPERM;
if (len < 0 || len > __NEW_UTS_LEN)
-@@ -1268,7 +1279,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
+@@ -1266,7 +1277,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
int errno;
char tmp[__NEW_UTS_LEN];
return 0;
return -EPERM;
-diff -NurpP --minimal linux-4.9.82/kernel/sysctl.c linux-4.9.82-vs2.3.9.7/kernel/sysctl.c
---- linux-4.9.82/kernel/sysctl.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sysctl.c 2018-01-10 02:50:49.000000000 +0000
+@@ -2328,7 +2341,12 @@ static int do_sysinfo(struct sysinfo *in
+
+ get_avenrun(info->loads, 0, SI_LOAD_SHIFT - FSHIFT);
+
+- info->procs = nr_threads;
++ if (vx_flags(VXF_VIRT_LOAD, 0)) {
++ struct vx_info *vxi = current_vx_info();
++ info->procs = atomic_read(&vxi->cvirt.nr_threads);
++ } else {
++ info->procs = nr_threads;
++ }
+
+ si_meminfo(info);
+ si_swapinfo(info);
+diff -urNp -x '*.orig' linux-4.9/kernel/sysctl.c linux-4.9/kernel/sysctl.c
+--- linux-4.9/kernel/sysctl.c 2021-02-24 15:47:32.490682033 +0100
++++ linux-4.9/kernel/sysctl.c 2021-02-24 15:47:45.117743722 +0100
@@ -87,6 +87,7 @@
#if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
#include <linux/lockdep.h>
#ifdef CONFIG_CHR_DEV_SG
#include <scsi/sg.h>
#endif
-@@ -282,6 +283,13 @@ static int max_extfrag_threshold = 1000;
+@@ -284,6 +285,13 @@ static int max_extfrag_threshold = 1000;
static struct ctl_table kern_table[] = {
{
.procname = "sched_child_runs_first",
.data = &sysctl_sched_child_runs_first,
.maxlen = sizeof(unsigned int),
-@@ -1426,7 +1434,6 @@ static struct ctl_table vm_table[] = {
+@@ -1429,7 +1437,6 @@ static struct ctl_table vm_table[] = {
.extra1 = &zero,
.extra2 = &one,
},
#endif /* CONFIG_COMPACTION */
{
.procname = "min_free_kbytes",
-diff -NurpP --minimal linux-4.9.82/kernel/sysctl_binary.c linux-4.9.82-vs2.3.9.7/kernel/sysctl_binary.c
---- linux-4.9.82/kernel/sysctl_binary.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/sysctl_binary.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sysctl_binary.c linux-4.9/kernel/sysctl_binary.c
+--- linux-4.9/kernel/sysctl_binary.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/kernel/sysctl_binary.c 2021-02-24 15:47:45.117743722 +0100
@@ -74,6 +74,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-4.9.82/kernel/time/posix-timers.c linux-4.9.82-vs2.3.9.7/kernel/time/posix-timers.c
---- linux-4.9.82/kernel/time/posix-timers.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/time/posix-timers.c 2018-02-22 21:31:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/time/posix-timers.c linux-4.9/kernel/time/posix-timers.c
+--- linux-4.9/kernel/time/posix-timers.c 2021-02-24 15:47:32.494015471 +0100
++++ linux-4.9/kernel/time/posix-timers.c 2021-02-24 15:47:45.117743722 +0100
@@ -48,6 +48,7 @@
#include <linux/workqueue.h>
#include <linux/export.h>
#include "timekeeping.h"
-@@ -407,6 +408,7 @@ int posix_timer_event(struct k_itimer *t
+@@ -417,6 +418,7 @@ int posix_timer_event(struct k_itimer *t
{
struct task_struct *task;
int shared, ret = -1;
/*
* FIXME: if ->sigq is queued we can race with
* dequeue_signal()->do_schedule_next_timer().
-@@ -423,10 +425,18 @@ int posix_timer_event(struct k_itimer *t
+@@ -433,10 +435,18 @@ int posix_timer_event(struct k_itimer *t
rcu_read_lock();
task = pid_task(timr->it_pid, PIDTYPE_PID);
if (task) {
/* If we failed to send the signal the timer stops. */
return ret > 0;
}
-diff -NurpP --minimal linux-4.9.82/kernel/time/time.c linux-4.9.82-vs2.3.9.7/kernel/time/time.c
---- linux-4.9.82/kernel/time/time.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/time/time.c 2018-01-10 09:31:11.000000000 +0000
-@@ -37,6 +37,7 @@
+diff -urNp -x '*.orig' linux-4.9/kernel/time/time.c linux-4.9/kernel/time/time.c
+--- linux-4.9/kernel/time/time.c 2021-02-24 15:47:32.494015471 +0100
++++ linux-4.9/kernel/time/time.c 2021-02-24 15:47:45.117743722 +0100
+@@ -38,6 +38,7 @@
#include <linux/fs.h>
#include <linux/math64.h>
#include <linux/ptrace.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
-@@ -93,7 +94,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
+@@ -94,7 +95,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
if (err)
return err;
return 0;
}
-@@ -186,7 +187,7 @@ int do_sys_settimeofday64(const struct t
+@@ -187,7 +188,7 @@ int do_sys_settimeofday64(const struct t
}
}
if (tv)
return 0;
}
-diff -NurpP --minimal linux-4.9.82/kernel/time/timekeeping.c linux-4.9.82-vs2.3.9.7/kernel/time/timekeeping.c
---- linux-4.9.82/kernel/time/timekeeping.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/time/timekeeping.c 2018-01-10 02:50:49.000000000 +0000
-@@ -23,6 +23,7 @@
+diff -urNp -x '*.orig' linux-4.9/kernel/time/timekeeping.c linux-4.9/kernel/time/timekeeping.c
+--- linux-4.9/kernel/time/timekeeping.c 2021-02-24 15:47:32.494015471 +0100
++++ linux-4.9/kernel/time/timekeeping.c 2021-02-24 15:47:45.121077159 +0100
+@@ -23,6 +23,8 @@
#include <linux/stop_machine.h>
#include <linux/pvclock_gtod.h>
#include <linux/compiler.h>
+#include <linux/vs_time.h>
++#include <linux/vs_base.h>
#include "tick-internal.h"
#include "ntp_internal.h"
-diff -NurpP --minimal linux-4.9.82/kernel/time/timer.c linux-4.9.82-vs2.3.9.7/kernel/time/timer.c
---- linux-4.9.82/kernel/time/timer.c 2018-02-22 21:18:57.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/time/timer.c 2018-01-25 00:21:32.000000000 +0000
-@@ -42,6 +42,10 @@
- #include <linux/sched/sysctl.h>
+@@ -768,6 +770,15 @@ ktime_t ktime_get_with_offset(enum tk_of
+
+ } while (read_seqcount_retry(&tk_core.seq, seq));
+
++#ifdef CONFIG_VSERVER_VTIME
++ if ((offs == TK_OFFS_BOOT) &&
++ vx_flags(VXF_VIRT_UPTIME, 0) &&
++ !vx_check(0, VS_ADMIN|VS_WATCH)) {
++ struct vx_info *vxi = current_vx_info();
++ ktime_t bias_uptime = timespec64_to_ktime(vxi->cvirt.bias_uptime);
++ base = ktime_sub(base, bias_uptime);
++ }
++#endif
+ return ktime_add_ns(base, nsecs);
+
+ }
+diff -urNp -x '*.orig' linux-4.9/kernel/time/timer.c linux-4.9/kernel/time/timer.c
+--- linux-4.9/kernel/time/timer.c 2021-02-24 15:47:32.494015471 +0100
++++ linux-4.9/kernel/time/timer.c 2021-02-24 15:47:45.121077159 +0100
+@@ -43,6 +43,10 @@
#include <linux/slab.h>
#include <linux/compat.h>
+ #include <linux/random.h>
+#include <linux/vs_base.h>
+#include <linux/vs_cvirt.h>
+#include <linux/vs_pid.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
-diff -NurpP --minimal linux-4.9.82/kernel/user_namespace.c linux-4.9.82-vs2.3.9.7/kernel/user_namespace.c
---- linux-4.9.82/kernel/user_namespace.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/user_namespace.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/user_namespace.c linux-4.9/kernel/user_namespace.c
+--- linux-4.9/kernel/user_namespace.c 2021-02-24 15:47:32.504015783 +0100
++++ linux-4.9/kernel/user_namespace.c 2021-02-24 15:47:45.121077159 +0100
@@ -22,6 +22,7 @@
#include <linux/ctype.h>
#include <linux/projid.h>
/**
* make_kprojid - Map a user-namespace projid pair into a kprojid.
* @ns: User namespace that the projid is in
-diff -NurpP --minimal linux-4.9.82/kernel/utsname.c linux-4.9.82-vs2.3.9.7/kernel/utsname.c
---- linux-4.9.82/kernel/utsname.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/utsname.c 2018-01-10 09:05:33.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/utsname.c linux-4.9/kernel/utsname.c
+--- linux-4.9/kernel/utsname.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/kernel/utsname.c 2021-02-24 15:47:45.121077159 +0100
@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <linux/user_namespace.h>
kfree(ns);
}
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/Kconfig linux-4.9.82-vs2.3.9.7/kernel/vserver/Kconfig
---- linux-4.9.82/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/Kconfig 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/Kconfig linux-4.9/kernel/vserver/Kconfig
+--- linux-4.9/kernel/vserver/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/Kconfig 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,230 @@
+#
+# Linux VServer configuration
+ bool
+ default n
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/Makefile linux-4.9.82-vs2.3.9.7/kernel/vserver/Makefile
---- linux-4.9.82/kernel/vserver/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/Makefile 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/Makefile linux-4.9/kernel/vserver/Makefile
+--- linux-4.9/kernel/vserver/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/Makefile 2021-02-24 15:47:45.124410596 +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-4.9.82/kernel/vserver/cacct.c linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct.c
---- linux-4.9.82/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cacct.c linux-4.9/kernel/vserver/cacct.c
+--- linux-4.9/kernel/vserver/cacct.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cacct.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,42 @@
+/*
+ * linux/kernel/vserver/cacct.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/cacct_init.h linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct_init.h
---- linux-4.9.82/kernel/vserver/cacct_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct_init.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cacct_init.h linux-4.9/kernel/vserver/cacct_init.h
+--- linux-4.9/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cacct_init.h 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,25 @@
+
+
+ return;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/cacct_proc.h linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct_proc.h
---- linux-4.9.82/kernel/vserver/cacct_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cacct_proc.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cacct_proc.h linux-4.9/kernel/vserver/cacct_proc.h
+--- linux-4.9/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cacct_proc.h 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,53 @@
+#ifndef _VX_CACCT_PROC_H
+#define _VX_CACCT_PROC_H
+}
+
+#endif /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/context.c linux-4.9.82-vs2.3.9.7/kernel/vserver/context.c
---- linux-4.9.82/kernel/vserver/context.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/context.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/context.c linux-4.9/kernel/vserver/context.c
+--- linux-4.9/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/context.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,1119 @@
+/*
+ * linux/kernel/vserver/context.c
+
+EXPORT_SYMBOL_GPL(free_vx_info);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/cvirt.c linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt.c
---- linux-4.9.82/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt.c 2018-01-16 00:54:54.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cvirt.c linux-4.9/kernel/vserver/cvirt.c
+--- linux-4.9/kernel/vserver/cvirt.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cvirt.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,350 @@
+/*
+ * linux/kernel/vserver/cvirt.c
+
+#endif
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/cvirt_init.h linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt_init.h
---- linux-4.9.82/kernel/vserver/cvirt_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt_init.h 2018-01-11 08:38:34.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cvirt_init.h linux-4.9/kernel/vserver/cvirt_init.h
+--- linux-4.9/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cvirt_init.h 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,70 @@
+
+
+ return;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/cvirt_proc.h linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt_proc.h
---- linux-4.9.82/kernel/vserver/cvirt_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/cvirt_proc.h 2018-01-11 08:39:19.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/cvirt_proc.h linux-4.9/kernel/vserver/cvirt_proc.h
+--- linux-4.9/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/cvirt_proc.h 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,123 @@
+#ifndef _VX_CVIRT_PROC_H
+#define _VX_CVIRT_PROC_H
+}
+
+#endif /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/debug.c linux-4.9.82-vs2.3.9.7/kernel/vserver/debug.c
---- linux-4.9.82/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/debug.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/debug.c linux-4.9/kernel/vserver/debug.c
+--- linux-4.9/kernel/vserver/debug.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/debug.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,32 @@
+/*
+ * kernel/vserver/debug.c
+
+EXPORT_SYMBOL_GPL(dump_vx_info);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/device.c linux-4.9.82-vs2.3.9.7/kernel/vserver/device.c
---- linux-4.9.82/kernel/vserver/device.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/device.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/device.c linux-4.9/kernel/vserver/device.c
+--- linux-4.9/kernel/vserver/device.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/device.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,443 @@
+/*
+ * linux/kernel/vserver/device.c
+#endif /* CONFIG_COMPAT */
+
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/dlimit.c linux-4.9.82-vs2.3.9.7/kernel/vserver/dlimit.c
---- linux-4.9.82/kernel/vserver/dlimit.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/dlimit.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/dlimit.c linux-4.9/kernel/vserver/dlimit.c
+--- linux-4.9/kernel/vserver/dlimit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/dlimit.c 2021-02-24 15:47:45.121077159 +0100
@@ -0,0 +1,528 @@
+/*
+ * linux/kernel/vserver/dlimit.c
+EXPORT_SYMBOL_GPL(locate_dl_info);
+EXPORT_SYMBOL_GPL(rcu_free_dl_info);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/helper.c linux-4.9.82-vs2.3.9.7/kernel/vserver/helper.c
---- linux-4.9.82/kernel/vserver/helper.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/helper.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/helper.c linux-4.9/kernel/vserver/helper.c
+--- linux-4.9/kernel/vserver/helper.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/helper.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,242 @@
+/*
+ * linux/kernel/vserver/helper.c
+ return do_vshelper(vshelper_path, argv, envp, 1);
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/history.c linux-4.9.82-vs2.3.9.7/kernel/vserver/history.c
---- linux-4.9.82/kernel/vserver/history.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/history.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/history.c linux-4.9/kernel/vserver/history.c
+--- linux-4.9/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/history.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,258 @@
+/*
+ * kernel/vserver/history.c
+
+#endif /* CONFIG_COMPAT */
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/inet.c linux-4.9.82-vs2.3.9.7/kernel/vserver/inet.c
---- linux-4.9.82/kernel/vserver/inet.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/inet.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/inet.c linux-4.9/kernel/vserver/inet.c
+--- linux-4.9/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/inet.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,236 @@
+
+#include <linux/in.h>
+
+EXPORT_SYMBOL_GPL(ip_v4_find_src);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/init.c linux-4.9.82-vs2.3.9.7/kernel/vserver/init.c
---- linux-4.9.82/kernel/vserver/init.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/init.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/init.c linux-4.9/kernel/vserver/init.c
+--- linux-4.9/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/init.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,46 @@
+/*
+ * linux/kernel/init.c
+module_init(init_vserver);
+module_exit(exit_vserver);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/inode.c linux-4.9.82-vs2.3.9.7/kernel/vserver/inode.c
---- linux-4.9.82/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/inode.c 2018-01-13 03:26:08.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/inode.c linux-4.9/kernel/vserver/inode.c
+--- linux-4.9/kernel/vserver/inode.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/inode.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,440 @@
+/*
+ * linux/kernel/vserver/inode.c
+
+#endif /* CONFIG_PROPAGATE */
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/limit.c linux-4.9.82-vs2.3.9.7/kernel/vserver/limit.c
---- linux-4.9.82/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/limit.c 2018-01-25 00:07:15.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/limit.c linux-4.9/kernel/vserver/limit.c
+--- linux-4.9/kernel/vserver/limit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/limit.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,386 @@
+/*
+ * linux/kernel/vserver/limit.c
+}
+#endif /* !CONFIG_MEMCG */
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/limit_init.h linux-4.9.82-vs2.3.9.7/kernel/vserver/limit_init.h
---- linux-4.9.82/kernel/vserver/limit_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/limit_init.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/limit_init.h linux-4.9/kernel/vserver/limit_init.h
+--- linux-4.9/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/limit_init.h 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,31 @@
+
+
+ }
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/limit_proc.h linux-4.9.82-vs2.3.9.7/kernel/vserver/limit_proc.h
---- linux-4.9.82/kernel/vserver/limit_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/limit_proc.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/limit_proc.h linux-4.9/kernel/vserver/limit_proc.h
+--- linux-4.9/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/limit_proc.h 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,57 @@
+#ifndef _VX_LIMIT_PROC_H
+#define _VX_LIMIT_PROC_H
+#endif /* _VX_LIMIT_PROC_H */
+
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/network.c linux-4.9.82-vs2.3.9.7/kernel/vserver/network.c
---- linux-4.9.82/kernel/vserver/network.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/network.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/network.c linux-4.9/kernel/vserver/network.c
+--- linux-4.9/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/network.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,1053 @@
+/*
+ * linux/kernel/vserver/network.c
+EXPORT_SYMBOL_GPL(free_nx_info);
+EXPORT_SYMBOL_GPL(unhash_nx_info);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/proc.c linux-4.9.82-vs2.3.9.7/kernel/vserver/proc.c
---- linux-4.9.82/kernel/vserver/proc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/proc.c 2018-01-13 04:17:12.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/proc.c linux-4.9/kernel/vserver/proc.c
+--- linux-4.9/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/proc.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,1040 @@
+/*
+ * linux/kernel/vserver/proc.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/sched.c linux-4.9.82-vs2.3.9.7/kernel/vserver/sched.c
---- linux-4.9.82/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/sched.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/sched.c linux-4.9/kernel/vserver/sched.c
+--- linux-4.9/kernel/vserver/sched.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/sched.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,83 @@
+/*
+ * linux/kernel/vserver/sched.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/sched_init.h linux-4.9.82-vs2.3.9.7/kernel/vserver/sched_init.h
---- linux-4.9.82/kernel/vserver/sched_init.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/sched_init.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/sched_init.h linux-4.9/kernel/vserver/sched_init.h
+--- linux-4.9/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/sched_init.h 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,27 @@
+
+static inline void vx_info_init_sched(struct _vx_sched *sched)
+{
+ return;
+}
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/sched_proc.h linux-4.9.82-vs2.3.9.7/kernel/vserver/sched_proc.h
---- linux-4.9.82/kernel/vserver/sched_proc.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/sched_proc.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/sched_proc.h linux-4.9/kernel/vserver/sched_proc.h
+--- linux-4.9/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/sched_proc.h 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,32 @@
+#ifndef _VX_SCHED_PROC_H
+#define _VX_SCHED_PROC_H
+}
+
+#endif /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/signal.c linux-4.9.82-vs2.3.9.7/kernel/vserver/signal.c
---- linux-4.9.82/kernel/vserver/signal.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/signal.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/signal.c linux-4.9/kernel/vserver/signal.c
+--- linux-4.9/kernel/vserver/signal.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/signal.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,134 @@
+/*
+ * linux/kernel/vserver/signal.c
+ return ret;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/space.c linux-4.9.82-vs2.3.9.7/kernel/vserver/space.c
---- linux-4.9.82/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/space.c 2018-01-13 03:42:01.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/space.c linux-4.9/kernel/vserver/space.c
+--- linux-4.9/kernel/vserver/space.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/space.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,437 @@
+/*
+ * linux/kernel/vserver/space.c
+ return 0;
+}
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/switch.c linux-4.9.82-vs2.3.9.7/kernel/vserver/switch.c
---- linux-4.9.82/kernel/vserver/switch.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/switch.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/switch.c linux-4.9/kernel/vserver/switch.c
+--- linux-4.9/kernel/vserver/switch.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/switch.c 2021-02-24 15:47:45.124410596 +0100
@@ -0,0 +1,556 @@
+/*
+ * linux/kernel/vserver/switch.c
+}
+
+#endif /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/sysctl.c linux-4.9.82-vs2.3.9.7/kernel/vserver/sysctl.c
---- linux-4.9.82/kernel/vserver/sysctl.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/sysctl.c 2018-01-13 05:37:59.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/sysctl.c linux-4.9/kernel/vserver/sysctl.c
+--- linux-4.9/kernel/vserver/sysctl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/sysctl.c 2021-02-24 15:47:45.127744035 +0100
@@ -0,0 +1,249 @@
+/*
+ * kernel/vserver/sysctl.c
+EXPORT_SYMBOL_GPL(vs_debug_perm);
+EXPORT_SYMBOL_GPL(vs_debug_misc);
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/tag.c linux-4.9.82-vs2.3.9.7/kernel/vserver/tag.c
---- linux-4.9.82/kernel/vserver/tag.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/tag.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/tag.c linux-4.9/kernel/vserver/tag.c
+--- linux-4.9/kernel/vserver/tag.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/tag.c 2021-02-24 15:47:45.127744035 +0100
@@ -0,0 +1,63 @@
+/*
+ * linux/kernel/vserver/tag.c
+}
+
+
-diff -NurpP --minimal linux-4.9.82/kernel/vserver/vci_config.h linux-4.9.82-vs2.3.9.7/kernel/vserver/vci_config.h
---- linux-4.9.82/kernel/vserver/vci_config.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/kernel/vserver/vci_config.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/vserver/vci_config.h linux-4.9/kernel/vserver/vci_config.h
+--- linux-4.9/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/kernel/vserver/vci_config.h 2021-02-24 15:47:45.127744035 +0100
@@ -0,0 +1,80 @@
+
+/* interface version */
+ 0;
+}
+
-diff -NurpP --minimal linux-4.9.82/mm/memcontrol.c linux-4.9.82-vs2.3.9.7/mm/memcontrol.c
---- linux-4.9.82/mm/memcontrol.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/memcontrol.c 2018-02-10 15:15:43.000000000 +0000
-@@ -2825,6 +2825,41 @@ static u64 mem_cgroup_read_u64(struct cg
+diff -urNp -x '*.orig' linux-4.9/mm/memcontrol.c linux-4.9/mm/memcontrol.c
+--- linux-4.9/mm/memcontrol.c 2021-02-24 15:47:32.527349847 +0100
++++ linux-4.9/mm/memcontrol.c 2021-02-24 15:47:45.127744035 +0100
+@@ -2873,6 +2873,41 @@ static u64 mem_cgroup_read_u64(struct cg
}
}
#ifndef CONFIG_SLOB
static int memcg_online_kmem(struct mem_cgroup *memcg)
{
-diff -NurpP --minimal linux-4.9.82/mm/oom_kill.c linux-4.9.82-vs2.3.9.7/mm/oom_kill.c
---- linux-4.9.82/mm/oom_kill.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/oom_kill.c 2018-01-10 08:54:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/mm/oom_kill.c linux-4.9/mm/oom_kill.c
+--- linux-4.9/mm/oom_kill.c 2021-02-24 15:47:32.534016722 +0100
++++ linux-4.9/mm/oom_kill.c 2021-02-24 15:47:45.127744035 +0100
@@ -38,6 +38,8 @@
#include <linux/kthread.h>
#include <linux/init.h>
/*
* If any of p's children has a different mm and is eligible for kill,
-@@ -902,8 +911,8 @@ static void oom_kill_process(struct oom_
+@@ -910,8 +919,8 @@ static void oom_kill_process(struct oom_
*/
do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true);
mark_oom_victim(victim);
K(get_mm_counter(victim->mm, MM_ANONPAGES)),
K(get_mm_counter(victim->mm, MM_FILEPAGES)),
K(get_mm_counter(victim->mm, MM_SHMEMPAGES)));
-@@ -950,6 +959,8 @@ static void oom_kill_process(struct oom_
+@@ -958,6 +967,8 @@ static void oom_kill_process(struct oom_
}
#undef K
/*
* Determines whether the kernel must panic because of the panic_on_oom sysctl.
*/
-@@ -1055,7 +1066,12 @@ bool out_of_memory(struct oom_control *o
+@@ -1063,7 +1074,12 @@ bool out_of_memory(struct oom_control *o
/* Found nothing?!?! Either we hang forever, or we panic. */
if (!oc->chosen && !is_sysrq_oom(oc) && !is_memcg_oom(oc)) {
dump_header(oc, NULL);
}
if (oc->chosen && oc->chosen != (void *)-1UL) {
oom_kill_process(oc, !is_memcg_oom(oc) ? "Out of memory" :
-diff -NurpP --minimal linux-4.9.82/mm/page_alloc.c linux-4.9.82-vs2.3.9.7/mm/page_alloc.c
---- linux-4.9.82/mm/page_alloc.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/page_alloc.c 2018-02-10 15:15:43.000000000 +0000
-@@ -64,6 +64,8 @@
- #include <linux/page_owner.h>
+diff -urNp -x '*.orig' linux-4.9/mm/page_alloc.c linux-4.9/mm/page_alloc.c
+--- linux-4.9/mm/page_alloc.c 2021-02-24 15:47:32.534016722 +0100
++++ linux-4.9/mm/page_alloc.c 2021-02-24 15:47:45.127744035 +0100
+@@ -65,6 +65,8 @@
#include <linux/kthread.h>
#include <linux/memcontrol.h>
+ #include <linux/khugepaged.h>
+#include <linux/vs_base.h>
+#include <linux/vs_limit.h>
#include <asm/sections.h>
#include <asm/tlbflush.h>
-@@ -4199,6 +4201,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -4171,14 +4173,17 @@ long si_mem_available(void)
+ */
+ pagecache = pages[LRU_ACTIVE_FILE] + pages[LRU_INACTIVE_FILE];
+ pagecache -= min(pagecache / 2, wmark_low);
+- available += pagecache;
++ if (!vx_flags(VXF_VIRT_MEM, 0))
++ available += pagecache;
+
+ /*
+ * Part of the reclaimable slab consists of items that are in use,
+ * and cannot be freed. Cap this estimate at the low watermark.
+ */
+- available += global_page_state(NR_SLAB_RECLAIMABLE) -
+- min(global_page_state(NR_SLAB_RECLAIMABLE) / 2, wmark_low);
++ if (!vx_flags(VXF_VIRT_MEM, 0))
++ available += global_page_state(NR_SLAB_RECLAIMABLE) -
++ min(global_page_state(NR_SLAB_RECLAIMABLE) / 2,
++ wmark_low);
+
+ if (available < 0)
+ available = 0;
+@@ -4195,6 +4200,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);
-@@ -4233,6 +4238,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -4229,6 +4237,9 @@ void si_meminfo_node(struct sysinfo *val
val->freehigh = free_highpages;
#endif
val->mem_unit = PAGE_SIZE;
}
#endif
-diff -NurpP --minimal linux-4.9.82/mm/pgtable-generic.c linux-4.9.82-vs2.3.9.7/mm/pgtable-generic.c
---- linux-4.9.82/mm/pgtable-generic.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/pgtable-generic.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/mm/pgtable-generic.c linux-4.9/mm/pgtable-generic.c
+--- linux-4.9/mm/pgtable-generic.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/mm/pgtable-generic.c 2021-02-24 15:47:45.127744035 +0100
@@ -6,6 +6,8 @@
* Copyright (C) 2010 Linus Torvalds
*/
#include <linux/pagemap.h>
#include <asm/tlb.h>
#include <asm-generic/pgtable.h>
-diff -NurpP --minimal linux-4.9.82/mm/shmem.c linux-4.9.82-vs2.3.9.7/mm/shmem.c
---- linux-4.9.82/mm/shmem.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/shmem.c 2018-01-10 08:36:49.000000000 +0000
-@@ -2785,7 +2785,7 @@ static int shmem_statfs(struct dentry *d
+diff -urNp -x '*.orig' linux-4.9/mm/shmem.c linux-4.9/mm/shmem.c
+--- linux-4.9/mm/shmem.c 2021-02-24 15:47:32.537350160 +0100
++++ linux-4.9/mm/shmem.c 2021-02-24 15:47:45.127744035 +0100
+@@ -2806,7 +2806,7 @@ static int shmem_statfs(struct dentry *d
{
struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
buf->f_bsize = PAGE_SIZE;
buf->f_namelen = NAME_MAX;
if (sbinfo->max_blocks) {
-@@ -3606,7 +3606,7 @@ int shmem_fill_super(struct super_block
+@@ -3631,7 +3631,7 @@ int shmem_fill_super(struct super_block
sb->s_maxbytes = MAX_LFS_FILESIZE;
sb->s_blocksize = PAGE_SIZE;
sb->s_blocksize_bits = PAGE_SHIFT;
sb->s_op = &shmem_ops;
sb->s_time_gran = 1;
#ifdef CONFIG_TMPFS_XATTR
-diff -NurpP --minimal linux-4.9.82/mm/slab.c linux-4.9.82-vs2.3.9.7/mm/slab.c
---- linux-4.9.82/mm/slab.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/slab.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/mm/slab.c linux-4.9/mm/slab.c
+--- linux-4.9/mm/slab.c 2021-02-24 15:47:32.537350160 +0100
++++ linux-4.9/mm/slab.c 2021-02-24 15:47:45.131077472 +0100
@@ -307,6 +307,8 @@ static void kmem_cache_node_init(struct
#define STATS_INC_FREEMISS(x) do { } while (0)
#endif
#if DEBUG
/*
-@@ -3341,6 +3343,7 @@ slab_alloc_node(struct kmem_cache *cache
+@@ -3344,6 +3346,7 @@ slab_alloc_node(struct kmem_cache *cache
/* ___cache_alloc_node can fall back to other nodes */
ptr = ____cache_alloc_node(cachep, flags, nodeid);
out:
local_irq_restore(save_flags);
ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
-@@ -3522,6 +3525,7 @@ void ___cache_free(struct kmem_cache *ca
+@@ -3525,6 +3528,7 @@ void ___cache_free(struct kmem_cache *ca
check_irq_off();
kmemleak_free_recursive(objp, cachep->flags);
objp = cache_free_debugcheck(cachep, objp, caller);
kmemcheck_slab_free(cachep, objp, cachep->object_size);
-diff -NurpP --minimal linux-4.9.82/mm/slab_vs.h linux-4.9.82-vs2.3.9.7/mm/slab_vs.h
---- linux-4.9.82/mm/slab_vs.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/slab_vs.h 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/mm/slab_vs.h linux-4.9/mm/slab_vs.h
+--- linux-4.9/mm/slab_vs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.9/mm/slab_vs.h 2021-02-24 15:47:45.131077472 +0100
@@ -0,0 +1,29 @@
+
+#include <linux/vserver/context.h>
+ atomic_sub(cachep->size, &vxi->cacct.slab[what]);
+}
+
-diff -NurpP --minimal linux-4.9.82/mm/swapfile.c linux-4.9.82-vs2.3.9.7/mm/swapfile.c
---- linux-4.9.82/mm/swapfile.c 2018-02-22 21:18:58.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/mm/swapfile.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/mm/swapfile.c linux-4.9/mm/swapfile.c
+--- linux-4.9/mm/swapfile.c 2021-02-24 15:47:32.540683597 +0100
++++ linux-4.9/mm/swapfile.c 2021-02-24 15:47:45.131077472 +0100
@@ -39,6 +39,7 @@
#include <asm/tlbflush.h>
#include <linux/swapops.h>
return 0;
}
-@@ -2612,6 +2623,8 @@ void si_swapinfo(struct sysinfo *val)
+@@ -2630,6 +2641,8 @@ void si_swapinfo(struct sysinfo *val)
val->freeswap = atomic_long_read(&nr_swap_pages) + nr_to_be_unused;
val->totalswap = total_swap_pages + nr_to_be_unused;
spin_unlock(&swap_lock);
}
/*
-diff -NurpP --minimal linux-4.9.82/net/bridge/br_multicast.c linux-4.9.82-vs2.3.9.7/net/bridge/br_multicast.c
---- linux-4.9.82/net/bridge/br_multicast.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/bridge/br_multicast.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/bridge/br_multicast.c linux-4.9/net/bridge/br_multicast.c
+--- linux-4.9/net/bridge/br_multicast.c 2021-02-24 15:47:32.564017661 +0100
++++ linux-4.9/net/bridge/br_multicast.c 2021-02-24 15:47:45.131077472 +0100
@@ -465,7 +465,7 @@ static struct sk_buff *br_ip6_multicast_
ip6h->hop_limit = 1;
ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
kfree_skb(skb);
br->has_ipv6_addr = 0;
return NULL;
-diff -NurpP --minimal linux-4.9.82/net/core/dev.c linux-4.9.82-vs2.3.9.7/net/core/dev.c
---- linux-4.9.82/net/core/dev.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/core/dev.c 2018-02-10 15:15:43.000000000 +0000
-@@ -126,6 +126,7 @@
+diff -urNp -x '*.orig' linux-4.9/net/core/dev.c linux-4.9/net/core/dev.c
+--- linux-4.9/net/core/dev.c 2021-02-24 15:47:33.077367054 +0100
++++ linux-4.9/net/core/dev.c 2021-02-24 15:47:45.131077472 +0100
+@@ -127,6 +127,7 @@
#include <linux/in.h>
#include <linux/jhash.h>
#include <linux/random.h>
#include <trace/events/napi.h>
#include <trace/events/net.h>
#include <trace/events/skb.h>
-@@ -730,7 +731,8 @@ struct net_device *__dev_get_by_name(str
+@@ -734,7 +735,8 @@ struct net_device *__dev_get_by_name(str
struct hlist_head *head = dev_name_hash(net, name);
hlist_for_each_entry(dev, head, name_hlist)
return dev;
return NULL;
-@@ -755,7 +757,8 @@ struct net_device *dev_get_by_name_rcu(s
+@@ -759,7 +761,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, head, name_hlist)
return dev;
return NULL;
-@@ -805,7 +808,8 @@ struct net_device *__dev_get_by_index(st
+@@ -809,7 +812,8 @@ struct net_device *__dev_get_by_index(st
struct hlist_head *head = dev_index_hash(net, ifindex);
hlist_for_each_entry(dev, head, index_hlist)
return dev;
return NULL;
-@@ -823,7 +827,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
+@@ -827,7 +831,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
* about locking. The caller must hold RCU lock.
*/
{
struct net_device *dev;
struct hlist_head *head = dev_index_hash(net, ifindex);
-@@ -834,6 +838,16 @@ struct net_device *dev_get_by_index_rcu(
+@@ -838,6 +842,16 @@ struct net_device *dev_get_by_index_rcu(
return NULL;
}
EXPORT_SYMBOL(dev_get_by_index_rcu);
-@@ -916,7 +930,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
+@@ -915,7 +929,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
for_each_netdev_rcu(net, dev)
if (dev->type == type &&
return dev;
return NULL;
-@@ -928,9 +943,11 @@ struct net_device *__dev_getfirstbyhwtyp
+@@ -927,9 +942,11 @@ struct net_device *__dev_getfirstbyhwtyp
struct net_device *dev;
ASSERT_RTNL();
return NULL;
}
-@@ -942,7 +959,8 @@ struct net_device *dev_getfirstbyhwtype(
+@@ -941,7 +958,8 @@ struct net_device *dev_getfirstbyhwtype(
rcu_read_lock();
for_each_netdev_rcu(net, dev)
dev_hold(dev);
ret = dev;
break;
-@@ -972,7 +990,8 @@ struct net_device *__dev_get_by_flags(st
+@@ -971,7 +989,8 @@ struct net_device *__dev_get_by_flags(st
ret = NULL;
for_each_netdev(net, dev) {
ret = dev;
break;
}
-@@ -1050,6 +1069,8 @@ static int __dev_alloc_name(struct net *
+@@ -1049,6 +1068,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);
-diff -NurpP --minimal linux-4.9.82/net/core/net-procfs.c linux-4.9.82-vs2.3.9.7/net/core/net-procfs.c
---- linux-4.9.82/net/core/net-procfs.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/core/net-procfs.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/core/net-procfs.c linux-4.9/net/core/net-procfs.c
+--- linux-4.9/net/core/net-procfs.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/core/net-procfs.c 2021-02-24 15:47:45.131077472 +0100
@@ -1,6 +1,7 @@
#include <linux/netdevice.h>
#include <linux/proc_fs.h>
struct rtnl_link_stats64 temp;
- const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
+ const struct rtnl_link_stats64 *stats;
-+
+
+ /* device visible inside network context? */
+ if (!nx_dev_visible(current_nx_info(), dev))
+ return;
-
++
+ 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-4.9.82/net/core/rtnetlink.c linux-4.9.82-vs2.3.9.7/net/core/rtnetlink.c
---- linux-4.9.82/net/core/rtnetlink.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/core/rtnetlink.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/core/rtnetlink.c linux-4.9/net/core/rtnetlink.c
+--- linux-4.9/net/core/rtnetlink.c 2021-02-24 15:47:32.577351411 +0100
++++ linux-4.9/net/core/rtnetlink.c 2021-02-24 15:47:45.134410910 +0100
@@ -1615,6 +1615,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
goto cont;
if (idx < s_idx)
err = rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq, 0,
-@@ -2811,6 +2813,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -2841,6 +2843,9 @@ void rtmsg_ifinfo(int type, struct net_d
{
struct sk_buff *skb;
if (dev->reg_state != NETREG_REGISTERED)
return;
-diff -NurpP --minimal linux-4.9.82/net/core/sock.c linux-4.9.82-vs2.3.9.7/net/core/sock.c
---- linux-4.9.82/net/core/sock.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/core/sock.c 2018-01-13 00:48:01.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/core/sock.c linux-4.9/net/core/sock.c
+--- linux-4.9/net/core/sock.c 2021-02-24 15:47:32.580684849 +0100
++++ linux-4.9/net/core/sock.c 2021-02-24 15:47:45.134410910 +0100
@@ -135,6 +135,10 @@
#include <linux/filter.h>
#include <trace/events/sock.h>
-@@ -1339,6 +1343,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1339,6 +1343,9 @@ static struct sock *sk_prot_alloc(struct
+ if (!try_module_get(prot->owner))
goto out_free_sec;
sk_tx_queue_clear(sk);
- }
++
+ sock_vx_init(sk);
+ sock_nx_init(sk);
+ }
return sk;
-
-@@ -1444,6 +1450,11 @@ static void __sk_destruct(struct rcu_hea
+@@ -1444,6 +1451,11 @@ static void __sk_destruct(struct rcu_hea
put_pid(sk->sk_peer_pid);
if (likely(sk->sk_net_refcnt))
put_net(sock_net(sk));
sk_prot_free(sk->sk_prot_creator, sk);
}
-@@ -1498,6 +1509,8 @@ struct sock *sk_clone_lock(const struct
+@@ -1505,6 +1517,8 @@ struct sock *sk_clone_lock(const struct
/* SANITY */
if (likely(newsk->sk_net_refcnt))
get_net(sock_net(newsk));
sk_node_init(&newsk->sk_node);
sock_lock_init(newsk);
bh_lock_sock(newsk);
-@@ -1568,6 +1581,12 @@ struct sock *sk_clone_lock(const struct
+@@ -1575,6 +1589,12 @@ struct sock *sk_clone_lock(const struct
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
-@@ -2468,6 +2487,12 @@ void sock_init_data(struct socket *sock,
-
- sk->sk_stamp = ktime_set(-1L, 0);
+@@ -2500,6 +2520,12 @@ void sock_init_data(struct socket *sock,
+ seqlock_init(&sk->sk_stamp_seq);
+ #endif
+ set_vx_info(&sk->sk_vx_info, current_vx_info());
+ sk->sk_xid = vx_current_xid();
#ifdef CONFIG_NET_RX_BUSY_POLL
sk->sk_napi_id = 0;
sk->sk_ll_usec = sysctl_net_busy_read;
-diff -NurpP --minimal linux-4.9.82/net/ipv4/af_inet.c linux-4.9.82-vs2.3.9.7/net/ipv4/af_inet.c
---- linux-4.9.82/net/ipv4/af_inet.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/af_inet.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/af_inet.c linux-4.9/net/ipv4/af_inet.c
+--- linux-4.9/net/ipv4/af_inet.c 2021-02-24 15:47:32.587351724 +0100
++++ linux-4.9/net/ipv4/af_inet.c 2021-02-24 15:47:45.134410910 +0100
@@ -303,10 +303,15 @@ lookup_protocol:
}
const struct proto_ops inet_stream_ops = {
.family = PF_INET,
-diff -NurpP --minimal linux-4.9.82/net/ipv4/arp.c linux-4.9.82-vs2.3.9.7/net/ipv4/arp.c
---- linux-4.9.82/net/ipv4/arp.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/arp.c 2018-02-10 15:15:43.000000000 +0000
-@@ -1308,6 +1308,7 @@ static void arp_format_neigh_entry(struc
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/arp.c linux-4.9/net/ipv4/arp.c
+--- linux-4.9/net/ipv4/arp.c 2021-02-24 15:47:32.587351724 +0100
++++ linux-4.9/net/ipv4/arp.c 2021-02-24 15:47:45.134410910 +0100
+@@ -1320,6 +1320,7 @@ static void arp_format_neigh_entry(struc
struct net_device *dev = n->dev;
int hatype = dev->type;
read_lock(&n->lock);
/* Convert hardware address to XX:XX:XX:XX ... form. */
#if IS_ENABLED(CONFIG_AX25)
-@@ -1339,6 +1340,7 @@ static void arp_format_pneigh_entry(stru
+@@ -1351,6 +1352,7 @@ static void arp_format_pneigh_entry(stru
int hatype = dev ? dev->type : 0;
char tbuf[16];
sprintf(tbuf, "%pI4", n->key);
seq_printf(seq, "%-16s 0x%-10x0x%-10x%s * %s\n",
tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00",
-diff -NurpP --minimal linux-4.9.82/net/ipv4/devinet.c linux-4.9.82-vs2.3.9.7/net/ipv4/devinet.c
---- linux-4.9.82/net/ipv4/devinet.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/devinet.c 2018-01-10 02:50:49.000000000 +0000
-@@ -538,6 +538,7 @@ struct in_device *inetdev_by_index(struc
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/devinet.c linux-4.9/net/ipv4/devinet.c
+--- linux-4.9/net/ipv4/devinet.c 2021-02-24 15:47:32.587351724 +0100
++++ linux-4.9/net/ipv4/devinet.c 2021-02-24 15:47:45.134410910 +0100
+@@ -547,6 +547,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,
-@@ -992,6 +993,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -1006,6 +1007,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) */
-@@ -1000,6 +1003,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -1014,6 +1017,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_local) {
-@@ -1012,9 +1017,12 @@ int devinet_ioctl(struct net *net, unsig
+@@ -1026,9 +1031,12 @@ int devinet_ioctl(struct net *net, unsig
comparing just the label */
if (!ifa) {
for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
}
}
-@@ -1168,6 +1176,8 @@ static int inet_gifconf(struct net_devic
+@@ -1182,6 +1190,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;
-@@ -1595,6 +1605,7 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1604,6 +1614,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;
s_h = cb->args[0];
-@@ -1618,6 +1629,8 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1627,6 +1638,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-4.9.82/net/ipv4/fib_trie.c linux-4.9.82-vs2.3.9.7/net/ipv4/fib_trie.c
---- linux-4.9.82/net/ipv4/fib_trie.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/fib_trie.c 2018-01-10 02:50:49.000000000 +0000
-@@ -2617,6 +2617,7 @@ static int fib_route_seq_show(struct seq
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/fib_trie.c linux-4.9/net/ipv4/fib_trie.c
+--- linux-4.9/net/ipv4/fib_trie.c 2021-02-24 15:47:32.590685161 +0100
++++ linux-4.9/net/ipv4/fib_trie.c 2021-02-24 15:47:45.134410910 +0100
+@@ -2630,6 +2630,7 @@ static int fib_route_seq_show(struct seq
seq_setwidth(seq, 127);
if (fi)
seq_printf(seq,
"%s\t%08X\t%08X\t%04X\t%d\t%u\t"
-diff -NurpP --minimal linux-4.9.82/net/ipv4/inet_connection_sock.c linux-4.9.82-vs2.3.9.7/net/ipv4/inet_connection_sock.c
---- linux-4.9.82/net/ipv4/inet_connection_sock.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/inet_connection_sock.c 2018-01-13 20:20:30.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/inet_connection_sock.c linux-4.9/net/ipv4/inet_connection_sock.c
+--- linux-4.9/net/ipv4/inet_connection_sock.c 2021-02-24 15:47:32.590685161 +0100
++++ linux-4.9/net/ipv4/inet_connection_sock.c 2021-02-24 15:47:45.134410910 +0100
@@ -16,6 +16,7 @@
#include <linux/module.h>
#include <linux/jhash.h>
break;
}
}
-diff -NurpP --minimal linux-4.9.82/net/ipv4/inet_diag.c linux-4.9.82-vs2.3.9.7/net/ipv4/inet_diag.c
---- linux-4.9.82/net/ipv4/inet_diag.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/inet_diag.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/inet_diag.c linux-4.9/net/ipv4/inet_diag.c
+--- linux-4.9/net/ipv4/inet_diag.c 2021-02-24 15:47:32.590685161 +0100
++++ linux-4.9/net/ipv4/inet_diag.c 2021-02-24 15:47:45.134410910 +0100
@@ -31,6 +31,8 @@
#include <linux/inet.h>
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
-@@ -879,6 +881,8 @@ void inet_diag_dump_icsk(struct inet_has
+@@ -87,8 +89,8 @@ void inet_diag_msg_common_fill(struct in
+ memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
+ memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
+
+- r->id.idiag_src[0] = sk->sk_rcv_saddr;
+- r->id.idiag_dst[0] = sk->sk_daddr;
++ r->id.idiag_src[0] = nx_map_sock_lback(sk->sk_nx_info, sk->sk_rcv_saddr);
++ r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info, sk->sk_daddr);
+ }
+ }
+ EXPORT_SYMBOL_GPL(inet_diag_msg_common_fill);
+@@ -882,6 +884,9 @@ void inet_diag_dump_icsk(struct inet_has
if (!net_eq(sock_net(sk), net))
continue;
+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
+ continue;
++
if (num < s_num) {
num++;
continue;
-@@ -941,6 +945,8 @@ skip_listen_ht:
+@@ -944,6 +949,8 @@ skip_listen_ht:
if (!net_eq(sock_net(sk), net))
continue;
if (num < s_num)
goto next_normal;
state = (sk->sk_state == TCP_TIME_WAIT) ?
-diff -NurpP --minimal linux-4.9.82/net/ipv4/inet_hashtables.c linux-4.9.82-vs2.3.9.7/net/ipv4/inet_hashtables.c
---- linux-4.9.82/net/ipv4/inet_hashtables.c 2018-02-22 21:19:01.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/inet_hashtables.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/inet_hashtables.c linux-4.9/net/ipv4/inet_hashtables.c
+--- linux-4.9/net/ipv4/inet_hashtables.c 2021-02-24 15:47:32.594018600 +0100
++++ linux-4.9/net/ipv4/inet_hashtables.c 2021-02-24 15:47:45.134410910 +0100
@@ -24,6 +24,7 @@
#include <net/inet_connection_sock.h>
#include <net/inet_hashtables.h>
#include <net/ip.h>
#include <net/tcp.h>
#include <net/sock_reuseport.h>
-@@ -186,6 +187,11 @@ static inline int compute_score(struct s
+@@ -187,6 +188,11 @@ static inline int compute_score(struct s
if (rcv_saddr != daddr)
return -1;
score += 4;
}
if (sk->sk_bound_dev_if || exact_dif) {
if (sk->sk_bound_dev_if != dif)
-@@ -300,6 +306,7 @@ begin:
+@@ -302,6 +308,7 @@ begin:
goto found;
}
}
/*
* 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-4.9.82/net/ipv4/netfilter.c linux-4.9.82-vs2.3.9.7/net/ipv4/netfilter.c
---- linux-4.9.82/net/ipv4/netfilter.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/netfilter.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/netfilter.c linux-4.9/net/ipv4/netfilter.c
+--- linux-4.9/net/ipv4/netfilter.c 2021-02-24 15:47:32.597352037 +0100
++++ linux-4.9/net/ipv4/netfilter.c 2021-02-24 15:47:45.134410910 +0100
@@ -11,7 +11,7 @@
#include <linux/skbuff.h>
#include <linux/gfp.h>
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-4.9.82/net/ipv4/raw.c linux-4.9.82-vs2.3.9.7/net/ipv4/raw.c
---- linux-4.9.82/net/ipv4/raw.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/raw.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/raw.c linux-4.9/net/ipv4/raw.c
+--- linux-4.9/net/ipv4/raw.c 2021-02-24 15:47:32.600685475 +0100
++++ linux-4.9/net/ipv4/raw.c 2021-02-24 15:47:45.137744347 +0100
@@ -128,7 +128,7 @@ static struct sock *__raw_v4_lookup(stru
if (net_eq(sock_net(sk), net) && inet->inet_num == num &&
err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT,
net, sk, skb, NULL, rt->dst.dev,
dst_output);
-@@ -623,6 +629,16 @@ static int raw_sendmsg(struct sock *sk,
+@@ -625,6 +631,16 @@ static int raw_sendmsg(struct sock *sk,
goto done;
}
security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
rt = ip_route_output_flow(net, &fl4, sk);
if (IS_ERR(rt)) {
-@@ -701,17 +717,19 @@ static int raw_bind(struct sock *sk, str
+@@ -703,17 +719,19 @@ static int raw_bind(struct sock *sk, str
{
struct inet_sock *inet = inet_sk(sk);
struct sockaddr_in *addr = (struct sockaddr_in *) uaddr;
if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
inet->inet_saddr = 0; /* Use device */
sk_dst_reset(sk);
-@@ -760,7 +778,8 @@ static int raw_recvmsg(struct sock *sk,
+@@ -762,7 +780,8 @@ static int raw_recvmsg(struct sock *sk,
/* Copy the address. */
if (sin) {
sin->sin_family = AF_INET;
sin->sin_port = 0;
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
*addr_len = sizeof(*sin);
-@@ -956,7 +975,8 @@ static struct sock *raw_get_first(struct
+@@ -958,7 +977,8 @@ static struct sock *raw_get_first(struct
for (state->bucket = 0; state->bucket < RAW_HTABLE_SIZE;
++state->bucket) {
sk_for_each(sk, &state->h->ht[state->bucket])
goto found;
}
sk = NULL;
-@@ -972,7 +992,8 @@ static struct sock *raw_get_next(struct
+@@ -974,7 +994,8 @@ static struct sock *raw_get_next(struct
sk = sk_next(sk);
try_again:
;
if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
sk = sk_head(&state->h->ht[state->bucket]);
-diff -NurpP --minimal linux-4.9.82/net/ipv4/route.c linux-4.9.82-vs2.3.9.7/net/ipv4/route.c
---- linux-4.9.82/net/ipv4/route.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/route.c 2018-01-10 02:50:49.000000000 +0000
-@@ -2238,7 +2238,7 @@ struct rtable *__ip_route_output_key_has
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/route.c linux-4.9/net/ipv4/route.c
+--- linux-4.9/net/ipv4/route.c 2021-02-24 15:47:32.600685475 +0100
++++ linux-4.9/net/ipv4/route.c 2021-02-24 15:47:45.137744347 +0100
+@@ -2287,7 +2287,7 @@ struct rtable *__ip_route_output_key_has
if (fl4->flowi4_oif) {
rth = ERR_PTR(-ENODEV);
if (!dev_out)
goto out;
-diff -NurpP --minimal linux-4.9.82/net/ipv4/tcp.c linux-4.9.82-vs2.3.9.7/net/ipv4/tcp.c
---- linux-4.9.82/net/ipv4/tcp.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/tcp.c 2018-02-22 21:31:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/tcp.c linux-4.9/net/ipv4/tcp.c
+--- linux-4.9/net/ipv4/tcp.c 2021-02-24 15:47:32.600685475 +0100
++++ linux-4.9/net/ipv4/tcp.c 2021-02-24 15:47:45.137744347 +0100
@@ -269,6 +269,7 @@
#include <linux/err.h>
#include <linux/time.h>
#include <net/icmp.h>
#include <net/inet_common.h>
-diff -NurpP --minimal linux-4.9.82/net/ipv4/tcp_ipv4.c linux-4.9.82-vs2.3.9.7/net/ipv4/tcp_ipv4.c
---- linux-4.9.82/net/ipv4/tcp_ipv4.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/tcp_ipv4.c 2018-02-09 17:48:59.000000000 +0000
-@@ -1927,8 +1927,12 @@ get_head:
- sk = sk_next(sk);
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/tcp_ipv4.c linux-4.9/net/ipv4/tcp_ipv4.c
+--- linux-4.9/net/ipv4/tcp_ipv4.c 2021-02-24 15:47:32.604018912 +0100
++++ linux-4.9/net/ipv4/tcp_ipv4.c 2021-02-24 15:47:45.137744347 +0100
+@@ -1944,8 +1944,12 @@ get_head:
+ sk = sk_nulls_next(sk);
get_sk:
- sk_for_each_from(sk) {
+ sk_nulls_for_each_from(sk, node) {
+ vxdprintk(VXD_CBIT(net, 6), "sk: %p [#%d] (from %d)",
+ sk, sk->sk_nid, nx_current_nid());
if (!net_eq(sock_net(sk), net))
if (sk->sk_family == st->family)
return sk;
}
-@@ -1982,6 +1986,11 @@ static void *established_get_first(struc
+@@ -1999,6 +2003,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;
-@@ -2008,6 +2017,11 @@ static void *established_get_next(struct
+@@ -2025,6 +2034,11 @@ static void *established_get_next(struct
sk = sk_nulls_next(sk);
sk_nulls_for_each_from(sk, node) {
if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
return sk;
}
-@@ -2199,9 +2213,9 @@ static void get_openreq4(const struct re
+@@ -2216,9 +2230,9 @@ static void get_openreq4(const struct re
seq_printf(f, "%4d: %08X:%04X %08X:%04X"
" %02X %08X:%08X %02X:%08lX %08X %5u %8d %u %d %pK",
i,
ntohs(ireq->ir_rmt_port),
TCP_SYN_RECV,
0, 0, /* could print option size, but that is af dependent. */
-@@ -2224,8 +2238,8 @@ static void get_tcp4_sock(struct sock *s
+@@ -2241,8 +2255,8 @@ static void get_tcp4_sock(struct sock *s
const struct inet_connection_sock *icsk = inet_csk(sk);
const struct inet_sock *inet = inet_sk(sk);
const struct fastopen_queue *fastopenq = &icsk->icsk_accept_queue.fastopenq;
__u16 destp = ntohs(inet->inet_dport);
__u16 srcp = ntohs(inet->inet_sport);
int rx_queue;
-@@ -2284,8 +2298,8 @@ static void get_timewait4_sock(const str
+@@ -2301,8 +2315,8 @@ static void get_timewait4_sock(const str
__be32 dest, src;
__u16 destp, srcp;
destp = ntohs(tw->tw_dport);
srcp = ntohs(tw->tw_sport);
-diff -NurpP --minimal linux-4.9.82/net/ipv4/tcp_minisocks.c linux-4.9.82-vs2.3.9.7/net/ipv4/tcp_minisocks.c
---- linux-4.9.82/net/ipv4/tcp_minisocks.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/tcp_minisocks.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/tcp_minisocks.c linux-4.9/net/ipv4/tcp_minisocks.c
+--- linux-4.9/net/ipv4/tcp_minisocks.c 2021-02-24 15:47:32.604018912 +0100
++++ linux-4.9/net/ipv4/tcp_minisocks.c 2021-02-24 15:47:45.137744347 +0100
@@ -23,6 +23,9 @@
#include <linux/slab.h>
#include <linux/sysctl.h>
#include <net/tcp.h>
#include <net/inet_common.h>
#include <net/xfrm.h>
-@@ -285,6 +288,11 @@ void tcp_time_wait(struct sock *sk, int
+@@ -286,6 +289,11 @@ void tcp_time_wait(struct sock *sk, int
tcptw->tw_ts_offset = tp->tsoffset;
tcptw->tw_last_oow_ack_time = 0;
#if IS_ENABLED(CONFIG_IPV6)
if (tw->tw_family == PF_INET6) {
struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-4.9.82/net/ipv4/udp.c linux-4.9.82-vs2.3.9.7/net/ipv4/udp.c
---- linux-4.9.82/net/ipv4/udp.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv4/udp.c 2018-01-13 20:43:44.000000000 +0000
-@@ -361,13 +361,27 @@ int ipv4_rcv_saddr_equal(const struct so
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/udp.c linux-4.9/net/ipv4/udp.c
+--- linux-4.9/net/ipv4/udp.c 2021-02-24 15:47:32.607352350 +0100
++++ linux-4.9/net/ipv4/udp.c 2021-02-24 15:47:45.137744347 +0100
+@@ -361,12 +361,26 @@ int ipv4_rcv_saddr_equal(const struct so
bool match_wildcard)
{
struct inet_sock *inet1 = inet_sk(sk1), *inet2 = inet_sk(sk2);
- return 1;
- if (!inet1->inet_rcv_saddr || !inet2->inet_rcv_saddr)
- return match_wildcard;
-- }
+ if (ipv6_only_sock(sk2))
+ return 0;
+
+ if (!sk1_rcv_saddr && sk2_rcv_saddr)
+ return v4_addr_in_nx_info(sk1->sk_nx_info,
+ sk2_rcv_saddr, NXA_MASK_BIND);
-+ }
+ }
return 0;
}
-
@@ -408,6 +422,11 @@ static int compute_score(struct sock *sk
if (inet->inet_rcv_saddr != daddr)
return -1;
/* UDP is nearly always wildcards out the wazoo, it makes no sense to try
* harder than this. -DaveM
*/
-@@ -603,7 +623,7 @@ static inline bool __udp_is_mcast_sock(s
+@@ -607,7 +627,7 @@ static inline bool __udp_is_mcast_sock(s
udp_sk(sk)->udp_port_hash != hnum ||
(inet->inet_daddr && inet->inet_daddr != rmt_addr) ||
(inet->inet_dport != rmt_port && inet->inet_dport) ||
ipv6_only_sock(sk) ||
(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif))
return false;
-@@ -1018,6 +1038,16 @@ int udp_sendmsg(struct sock *sk, struct
+@@ -1024,6 +1044,16 @@ int udp_sendmsg(struct sock *sk, struct
flow_flags,
faddr, saddr, dport, inet->inet_sport);
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
rt = ip_route_output_flow(net, fl4, sk);
if (IS_ERR(rt)) {
-@@ -1314,7 +1344,8 @@ try_again:
+@@ -1321,7 +1351,8 @@ try_again:
if (sin) {
sin->sin_family = AF_INET;
sin->sin_port = udp_hdr(skb)->source;
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
*addr_len = sizeof(*sin);
}
-@@ -2260,6 +2291,8 @@ static struct sock *udp_get_first(struct
+@@ -2291,6 +2322,8 @@ static struct sock *udp_get_first(struct
sk_for_each(sk, &hslot->head) {
if (!net_eq(sock_net(sk), net))
continue;
if (sk->sk_family == state->family)
goto found;
}
-@@ -2277,7 +2310,9 @@ static struct sock *udp_get_next(struct
+@@ -2308,7 +2341,9 @@ static struct sock *udp_get_next(struct
do {
sk = sk_next(sk);
if (!sk) {
if (state->bucket <= state->udp_table->mask)
-@@ -2373,8 +2408,8 @@ static void udp4_format_sock(struct sock
+@@ -2404,8 +2439,8 @@ static void udp4_format_sock(struct sock
int bucket)
{
struct inet_sock *inet = inet_sk(sp);
__u16 destp = ntohs(inet->inet_dport);
__u16 srcp = ntohs(inet->inet_sport);
-diff -NurpP --minimal linux-4.9.82/net/ipv6/addrconf.c linux-4.9.82-vs2.3.9.7/net/ipv6/addrconf.c
---- linux-4.9.82/net/ipv6/addrconf.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/addrconf.c 2018-01-13 22:09:44.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv4/udp_diag.c linux-4.9/net/ipv4/udp_diag.c
+--- linux-4.9/net/ipv4/udp_diag.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/ipv4/udp_diag.c 2021-02-24 15:47:45.137744347 +0100
+@@ -120,6 +120,8 @@ static void udp_dump(struct udp_table *t
+
+ if (!net_eq(sock_net(sk), net))
+ continue;
++ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
++ continue;
+ if (num < s_num)
+ goto next;
+ if (!(r->idiag_states & (1 << sk->sk_state)))
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/addrconf.c linux-4.9/net/ipv6/addrconf.c
+--- linux-4.9/net/ipv6/addrconf.c 2021-02-24 15:47:32.607352350 +0100
++++ linux-4.9/net/ipv6/addrconf.c 2021-02-24 15:47:45.141077785 +0100
@@ -92,6 +92,7 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
/* Set to 3 to get tracing... */
#define ACONF_DEBUG 2
-@@ -1494,7 +1495,8 @@ static int __ipv6_dev_get_saddr(struct n
+@@ -1498,7 +1499,8 @@ static int __ipv6_dev_get_saddr(struct n
struct ipv6_saddr_dst *dst,
struct inet6_dev *idev,
struct ipv6_saddr_score *scores,
{
struct ipv6_saddr_score *score = &scores[1 - hiscore_idx], *hiscore = &scores[hiscore_idx];
-@@ -1524,6 +1526,8 @@ static int __ipv6_dev_get_saddr(struct n
+@@ -1528,6 +1530,8 @@ static int __ipv6_dev_get_saddr(struct n
idev->dev->name);
continue;
}
score->rule = -1;
bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -1574,26 +1578,27 @@ static int ipv6_get_saddr_master(struct
+@@ -1578,26 +1582,27 @@ static int ipv6_get_saddr_master(struct
const struct net_device *master,
struct ipv6_saddr_dst *dst,
struct ipv6_saddr_score *scores,
{
struct ipv6_saddr_score scores[2], *hiscore;
struct ipv6_saddr_dst dst;
-@@ -1642,7 +1647,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1646,7 +1651,8 @@ int ipv6_dev_get_saddr(struct net *net,
if (use_oif_addr) {
if (idev)
} else {
const struct net_device *master;
int master_idx = 0;
-@@ -1656,8 +1662,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1660,8 +1666,8 @@ int ipv6_dev_get_saddr(struct net *net,
master_idx = master->ifindex;
hiscore_idx = ipv6_get_saddr_master(net, dst_dev,
if (scores[hiscore_idx].ifa)
goto out;
-@@ -1672,7 +1678,8 @@ int ipv6_dev_get_saddr(struct net *net,
+@@ -1676,7 +1682,8 @@ int ipv6_dev_get_saddr(struct net *net,
idev = __in6_dev_get(dev);
if (!idev)
continue;
}
}
-@@ -4128,7 +4135,10 @@ static void if6_seq_stop(struct seq_file
+@@ -4135,7 +4142,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;
&ifp->addr,
ifp->idev->dev->ifindex,
ifp->prefix_len,
-@@ -4712,6 +4722,11 @@ static int in6_dump_addrs(struct inet6_d
+@@ -4719,6 +4729,11 @@ static int in6_dump_addrs(struct inet6_d
struct ifacaddr6 *ifaca;
int err = 1;
int ip_idx = *p_ip_idx;
read_lock_bh(&idev->lock);
switch (type) {
-@@ -4722,6 +4737,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -4729,6 +4744,8 @@ static int in6_dump_addrs(struct inet6_d
list_for_each_entry(ifa, &idev->addr_list, if_list) {
- if (++ip_idx < s_ip_idx)
- continue;
+ if (ip_idx < s_ip_idx)
+ goto next;
+ if (!v6_addr_in_nx_info(nxi, &ifa->addr, -1))
-+ continue;
++ goto next;
err = inet6_fill_ifaddr(skb, ifa,
NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq,
-@@ -4739,6 +4756,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -4748,6 +4765,8 @@ next:
ifmca = ifmca->next, ip_idx++) {
if (ip_idx < s_ip_idx)
continue;
err = inet6_fill_ifmcaddr(skb, ifmca,
NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq,
-@@ -4754,6 +4773,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -4763,6 +4782,8 @@ next:
ifaca = ifaca->aca_next, ip_idx++) {
if (ip_idx < s_ip_idx)
continue;
err = inet6_fill_ifacaddr(skb, ifaca,
NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq,
-@@ -4782,6 +4803,10 @@ static int inet6_dump_addr(struct sk_buf
+@@ -4791,6 +4812,10 @@ static int inet6_dump_addr(struct sk_buf
struct inet6_dev *idev;
struct hlist_head *head;
s_h = cb->args[0];
s_idx = idx = cb->args[1];
s_ip_idx = ip_idx = cb->args[2];
-@@ -5300,6 +5325,7 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -5309,6 +5334,7 @@ static int inet6_dump_ifinfo(struct sk_b
struct net_device *dev;
struct inet6_dev *idev;
struct hlist_head *head;
s_h = cb->args[0];
s_idx = cb->args[1];
-@@ -5311,6 +5337,8 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -5320,6 +5346,8 @@ static int inet6_dump_ifinfo(struct sk_b
hlist_for_each_entry_rcu(dev, head, index_hlist) {
if (idx < s_idx)
goto cont;
idev = __in6_dev_get(dev);
if (!idev)
goto cont;
-diff -NurpP --minimal linux-4.9.82/net/ipv6/af_inet6.c linux-4.9.82-vs2.3.9.7/net/ipv6/af_inet6.c
---- linux-4.9.82/net/ipv6/af_inet6.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/af_inet6.c 2018-02-22 21:31:40.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/af_inet6.c linux-4.9/net/ipv6/af_inet6.c
+--- linux-4.9/net/ipv6/af_inet6.c 2021-02-24 15:47:32.607352350 +0100
++++ linux-4.9/net/ipv6/af_inet6.c 2021-02-24 15:47:45.141077785 +0100
@@ -43,6 +43,7 @@
#include <linux/netdevice.h>
#include <linux/icmpv6.h>
addr_type = ipv6_addr_type(&addr->sin6_addr);
if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM)
return -EINVAL;
-@@ -328,6 +337,10 @@ int inet6_bind(struct socket *sock, stru
+@@ -340,6 +349,10 @@ int inet6_bind(struct socket *sock, stru
err = -EADDRNOTAVAIL;
goto out;
}
} else {
if (addr_type != IPV6_ADDR_ANY) {
struct net_device *dev = NULL;
-@@ -354,6 +367,11 @@ int inet6_bind(struct socket *sock, stru
+@@ -369,6 +382,11 @@ int inet6_bind(struct socket *sock, stru
}
}
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-@@ -371,6 +389,9 @@ int inet6_bind(struct socket *sock, stru
+@@ -386,6 +404,9 @@ int inet6_bind(struct socket *sock, stru
}
}
inet->inet_rcv_saddr = v4addr;
inet->inet_saddr = v4addr;
-@@ -477,9 +498,11 @@ int inet6_getname(struct socket *sock, s
+@@ -492,9 +513,11 @@ int inet6_getname(struct socket *sock, s
return -ENOTCONN;
sin->sin6_port = inet->inet_dport;
sin->sin6_addr = sk->sk_v6_daddr;
if (ipv6_addr_any(&sk->sk_v6_rcv_saddr))
sin->sin6_addr = np->saddr;
else
-diff -NurpP --minimal linux-4.9.82/net/ipv6/datagram.c linux-4.9.82-vs2.3.9.7/net/ipv6/datagram.c
---- linux-4.9.82/net/ipv6/datagram.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/datagram.c 2018-01-10 02:50:49.000000000 +0000
-@@ -777,7 +777,7 @@ int ip6_datagram_send_ctl(struct net *ne
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/datagram.c linux-4.9/net/ipv6/datagram.c
+--- linux-4.9/net/ipv6/datagram.c 2021-02-24 15:47:32.610685787 +0100
++++ linux-4.9/net/ipv6/datagram.c 2021-02-24 15:47:45.141077785 +0100
+@@ -792,7 +792,7 @@ int ip6_datagram_send_ctl(struct net *ne
rcu_read_lock();
if (fl6->flowi6_oif) {
if (!dev) {
rcu_read_unlock();
return -ENODEV;
-diff -NurpP --minimal linux-4.9.82/net/ipv6/fib6_rules.c linux-4.9.82-vs2.3.9.7/net/ipv6/fib6_rules.c
---- linux-4.9.82/net/ipv6/fib6_rules.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/fib6_rules.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/fib6_rules.c linux-4.9/net/ipv6/fib6_rules.c
+--- linux-4.9/net/ipv6/fib6_rules.c 2021-02-24 15:47:32.610685787 +0100
++++ linux-4.9/net/ipv6/fib6_rules.c 2021-02-24 15:47:45.141077785 +0100
@@ -102,7 +102,7 @@ static int fib6_rule_action(struct fib_r
ip6_dst_idev(&rt->dst)->dev,
&flp6->daddr,
goto again;
if (!ipv6_prefix_equal(&saddr, &r->src.addr,
r->src.plen))
-diff -NurpP --minimal linux-4.9.82/net/ipv6/inet6_hashtables.c linux-4.9.82-vs2.3.9.7/net/ipv6/inet6_hashtables.c
---- linux-4.9.82/net/ipv6/inet6_hashtables.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/inet6_hashtables.c 2018-01-13 00:26:28.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/inet6_hashtables.c linux-4.9/net/ipv6/inet6_hashtables.c
+--- linux-4.9/net/ipv6/inet6_hashtables.c 2021-02-24 15:47:32.610685787 +0100
++++ linux-4.9/net/ipv6/inet6_hashtables.c 2021-02-24 15:47:45.141077785 +0100
@@ -16,6 +16,7 @@
#include <linux/module.h>
}
if (sk->sk_bound_dev_if || exact_dif) {
if (sk->sk_bound_dev_if != dif)
-@@ -282,39 +286,71 @@ EXPORT_SYMBOL_GPL(inet6_hash);
+@@ -283,39 +287,71 @@ EXPORT_SYMBOL_GPL(inet6_hash);
* IPV6_ADDR_ANY only equals to IPV6_ADDR_ANY,
* and 0.0.0.0 equals to 0.0.0.0 only
*/
}
- if (addr_type == IPV6_ADDR_ANY && addr_type2 == IPV6_ADDR_ANY)
-- return 1;
+ /* if both are wildcards, check for overlap */
+ if (addr_type1 == IPV6_ADDR_ANY && addr_type2 == IPV6_ADDR_ANY)
+ return nx_v6_addr_conflict(sk1->sk_nx_info, sk2->sk_nx_info);
-
-- if (addr_type2 == IPV6_ADDR_ANY && match_wildcard &&
-- !(sk2_ipv6only && addr_type == IPV6_ADDR_MAPPED))
++
+ /* if both are valid ipv6 addresses, mapped handled above */
+ if (addr_type1 != IPV6_ADDR_ANY && addr_type2 != IPV6_ADDR_ANY &&
+ sk2_rcv_saddr6 && ipv6_addr_equal(sk1_rcv_saddr6, sk2_rcv_saddr6))
return 1;
-- if (addr_type == IPV6_ADDR_ANY && match_wildcard &&
-- !(ipv6_only_sock(sk) && addr_type2 == IPV6_ADDR_MAPPED))
+- if (addr_type2 == IPV6_ADDR_ANY && match_wildcard &&
+- !(sk2_ipv6only && addr_type == IPV6_ADDR_MAPPED))
- return 1;
+ if (addr_type1 == IPV6_ADDR_ANY && match_wildcard) {
+ /* ipv6only case handled above */
+ return v6_addr_in_nx_info(sk1->sk_nx_info, sk2_rcv_saddr6, -1);
+ }
-- if (sk2_rcv_saddr6 &&
-- ipv6_addr_equal(&sk->sk_v6_rcv_saddr, sk2_rcv_saddr6))
+- if (addr_type == IPV6_ADDR_ANY && match_wildcard &&
+- !(ipv6_only_sock(sk) && addr_type2 == IPV6_ADDR_MAPPED))
- return 1;
+ if (addr_type2 == IPV6_ADDR_ANY && match_wildcard) {
+ /* ipv6only case handled above */
+ else
+ return v6_addr_in_nx_info(sk2->sk_nx_info, sk1_rcv_saddr6, -1);
+ }
-+
+
+- if (sk2_rcv_saddr6 &&
+- ipv6_addr_equal(&sk->sk_v6_rcv_saddr, sk2_rcv_saddr6))
+- return 1;
+ return 0;
+
+vs_v4:
return 0;
}
-diff -NurpP --minimal linux-4.9.82/net/ipv6/ip6_fib.c linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_fib.c
---- linux-4.9.82/net/ipv6/ip6_fib.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_fib.c 2018-01-10 02:50:49.000000000 +0000
-@@ -1976,6 +1976,7 @@ static int ipv6_route_seq_show(struct se
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/ip6_fib.c linux-4.9/net/ipv6/ip6_fib.c
+--- linux-4.9/net/ipv6/ip6_fib.c 2021-02-24 15:47:32.610685787 +0100
++++ linux-4.9/net/ipv6/ip6_fib.c 2021-02-24 15:47:45.141077785 +0100
+@@ -1977,6 +1977,7 @@ static int ipv6_route_seq_show(struct se
struct rt6_info *rt = v;
struct ipv6_route_iter *iter = seq->private;
seq_printf(seq, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
#ifdef CONFIG_IPV6_SUBTREES
-diff -NurpP --minimal linux-4.9.82/net/ipv6/ip6_output.c linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_output.c
---- linux-4.9.82/net/ipv6/ip6_output.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_output.c 2018-02-10 15:15:43.000000000 +0000
-@@ -956,7 +956,8 @@ static int ip6_dst_lookup_tail(struct ne
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/ip6_output.c linux-4.9/net/ipv6/ip6_output.c
+--- linux-4.9/net/ipv6/ip6_output.c 2021-02-24 15:47:33.077367054 +0100
++++ linux-4.9/net/ipv6/ip6_output.c 2021-02-24 15:47:45.141077785 +0100
+@@ -966,7 +966,8 @@ static int ip6_dst_lookup_tail(struct ne
rt = (*dst)->error ? NULL : (struct rt6_info *)*dst;
err = ip6_route_get_saddr(net, rt, &fl6->daddr,
sk ? inet6_sk(sk)->srcprefs : 0,
if (err)
goto out_err_release;
-diff -NurpP --minimal linux-4.9.82/net/ipv6/ip6_tunnel.c linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_tunnel.c
---- linux-4.9.82/net/ipv6/ip6_tunnel.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/ip6_tunnel.c 2018-01-25 00:21:32.000000000 +0000
-@@ -1109,7 +1109,7 @@ route_lookup:
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/ip6_tunnel.c linux-4.9/net/ipv6/ip6_tunnel.c
+--- linux-4.9/net/ipv6/ip6_tunnel.c 2021-02-24 15:47:32.614019225 +0100
++++ linux-4.9/net/ipv6/ip6_tunnel.c 2021-02-24 15:47:45.141077785 +0100
+@@ -1124,7 +1124,7 @@ route_lookup:
}
if (t->parms.collect_md &&
ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev,
goto tx_err_link_failure;
ndst = dst;
}
-diff -NurpP --minimal linux-4.9.82/net/ipv6/ndisc.c linux-4.9.82-vs2.3.9.7/net/ipv6/ndisc.c
---- linux-4.9.82/net/ipv6/ndisc.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/ndisc.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/ndisc.c linux-4.9/net/ipv6/ndisc.c
+--- linux-4.9/net/ipv6/ndisc.c 2021-02-24 15:47:32.614019225 +0100
++++ linux-4.9/net/ipv6/ndisc.c 2021-02-24 15:47:45.141077785 +0100
@@ -512,7 +512,7 @@ void ndisc_send_na(struct net_device *de
} else {
if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
return;
src_addr = &tmpaddr;
}
-diff -NurpP --minimal linux-4.9.82/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c linux-4.9.82-vs2.3.9.7/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c
---- linux-4.9.82/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c linux-4.9/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c
+--- linux-4.9/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/ipv6/netfilter/nf_nat_masquerade_ipv6.c 2021-02-24 15:47:45.141077785 +0100
@@ -39,7 +39,7 @@ nf_nat_masquerade_ipv6(struct sk_buff *s
ctinfo == IP_CT_RELATED_REPLY));
return NF_DROP;
nfct_nat(ct)->masq_index = out->ifindex;
-diff -NurpP --minimal linux-4.9.82/net/ipv6/raw.c linux-4.9.82-vs2.3.9.7/net/ipv6/raw.c
---- linux-4.9.82/net/ipv6/raw.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/raw.c 2018-01-13 22:10:35.000000000 +0000
-@@ -291,6 +291,13 @@ static int rawv6_bind(struct sock *sk, s
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/raw.c linux-4.9/net/ipv6/raw.c
+--- linux-4.9/net/ipv6/raw.c 2021-02-24 15:47:32.617352663 +0100
++++ linux-4.9/net/ipv6/raw.c 2021-02-24 15:47:45.141077785 +0100
+@@ -293,6 +293,13 @@ static int rawv6_bind(struct sock *sk, s
goto out_unlock;
}
/* ipv4 addr of the socket is invalid. Only the
* unspecified and mapped address have a v4 equivalent.
*/
-diff -NurpP --minimal linux-4.9.82/net/ipv6/route.c linux-4.9.82-vs2.3.9.7/net/ipv6/route.c
---- linux-4.9.82/net/ipv6/route.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/route.c 2018-01-13 22:10:45.000000000 +0000
-@@ -3288,7 +3288,8 @@ static int rt6_fill_node(struct net *net
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/route.c linux-4.9/net/ipv6/route.c
+--- linux-4.9/net/ipv6/route.c 2021-02-24 15:47:32.617352663 +0100
++++ linux-4.9/net/ipv6/route.c 2021-02-24 15:47:45.144411223 +0100
+@@ -3297,7 +3297,8 @@ static int rt6_fill_node(struct net *net
goto nla_put_failure;
} else if (dst) {
struct in6_addr saddr_buf;
nla_put_in6_addr(skb, RTA_PREFSRC, &saddr_buf))
goto nla_put_failure;
}
-diff -NurpP --minimal linux-4.9.82/net/ipv6/tcp_ipv6.c linux-4.9.82-vs2.3.9.7/net/ipv6/tcp_ipv6.c
---- linux-4.9.82/net/ipv6/tcp_ipv6.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/tcp_ipv6.c 2018-01-13 22:10:53.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/tcp_ipv6.c linux-4.9/net/ipv6/tcp_ipv6.c
+--- linux-4.9/net/ipv6/tcp_ipv6.c 2021-02-24 15:47:32.620686100 +0100
++++ linux-4.9/net/ipv6/tcp_ipv6.c 2021-02-24 15:47:45.144411223 +0100
@@ -149,11 +149,18 @@ static int tcp_v6_connect(struct sock *s
*/
}
addr_type = ipv6_addr_type(&usin->sin6_addr);
-diff -NurpP --minimal linux-4.9.82/net/ipv6/udp.c linux-4.9.82-vs2.3.9.7/net/ipv6/udp.c
---- linux-4.9.82/net/ipv6/udp.c 2018-02-22 21:19:02.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/udp.c 2018-01-13 22:11:04.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/udp.c linux-4.9/net/ipv6/udp.c
+--- linux-4.9/net/ipv6/udp.c 2021-02-24 15:47:32.620686100 +0100
++++ linux-4.9/net/ipv6/udp.c 2021-02-24 15:47:45.144411223 +0100
@@ -135,6 +135,10 @@ static int compute_score(struct sock *sk
if (inet->inet_dport != sport)
return -1;
}
if (!ipv6_addr_any(&sk->sk_v6_rcv_saddr)) {
-diff -NurpP --minimal linux-4.9.82/net/ipv6/xfrm6_policy.c linux-4.9.82-vs2.3.9.7/net/ipv6/xfrm6_policy.c
---- linux-4.9.82/net/ipv6/xfrm6_policy.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/ipv6/xfrm6_policy.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/ipv6/xfrm6_policy.c linux-4.9/net/ipv6/xfrm6_policy.c
+--- linux-4.9/net/ipv6/xfrm6_policy.c 2021-02-24 15:47:32.620686100 +0100
++++ linux-4.9/net/ipv6/xfrm6_policy.c 2021-02-24 15:47:45.144411223 +0100
@@ -64,7 +64,8 @@ static int xfrm6_get_saddr(struct net *n
return -EHOSTUNREACH;
dst_release(dst);
return 0;
}
-diff -NurpP --minimal linux-4.9.82/net/netfilter/ipvs/ip_vs_xmit.c linux-4.9.82-vs2.3.9.7/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-4.9.82/net/netfilter/ipvs/ip_vs_xmit.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/netfilter/ipvs/ip_vs_xmit.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/netfilter/ipvs/ip_vs_xmit.c linux-4.9/net/netfilter/ipvs/ip_vs_xmit.c
+--- linux-4.9/net/netfilter/ipvs/ip_vs_xmit.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/netfilter/ipvs/ip_vs_xmit.c 2021-02-24 15:47:45.144411223 +0100
@@ -381,7 +381,7 @@ __ip_vs_route_output_v6(struct net *net,
return dst;
if (ipv6_addr_any(&fl6.saddr) &&
goto out_err;
if (do_xfrm) {
dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
-diff -NurpP --minimal linux-4.9.82/net/netlink/af_netlink.c linux-4.9.82-vs2.3.9.7/net/netlink/af_netlink.c
---- linux-4.9.82/net/netlink/af_netlink.c 2018-02-22 21:19:04.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/netlink/af_netlink.c 2018-01-10 02:50:49.000000000 +0000
-@@ -62,6 +62,8 @@
+diff -urNp -x '*.orig' linux-4.9/net/netlink/af_netlink.c linux-4.9/net/netlink/af_netlink.c
+--- linux-4.9/net/netlink/af_netlink.c 2021-02-24 15:47:32.654020476 +0100
++++ linux-4.9/net/netlink/af_netlink.c 2021-02-24 15:47:45.144411223 +0100
+@@ -63,6 +63,8 @@
#include <linux/hash.h>
#include <linux/genetlink.h>
#include <linux/nospec.h>
#include <net/net_namespace.h>
#include <net/sock.h>
-@@ -2463,7 +2465,8 @@ static void *__netlink_seq_next(struct s
+@@ -2478,7 +2480,8 @@ static void *__netlink_seq_next(struct s
if (err)
return ERR_PTR(err);
}
return nlk;
}
-diff -NurpP --minimal linux-4.9.82/net/socket.c linux-4.9.82-vs2.3.9.7/net/socket.c
---- linux-4.9.82/net/socket.c 2018-02-22 21:19:05.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/socket.c 2018-02-10 15:15:43.000000000 +0000
-@@ -99,10 +99,12 @@
+diff -urNp -x '*.orig' linux-4.9/net/packet/diag.c linux-4.9/net/packet/diag.c
+--- linux-4.9/net/packet/diag.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/packet/diag.c 2021-02-24 15:47:45.144411223 +0100
+@@ -4,6 +4,7 @@
+ #include <linux/netdevice.h>
+ #include <linux/packet_diag.h>
+ #include <linux/percpu.h>
++#include <linux/vs_network.h>
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+
+@@ -201,6 +202,8 @@ static int packet_diag_dump(struct sk_bu
+ sk_for_each(sk, &net->packet.sklist) {
+ if (!net_eq(sock_net(sk), net))
+ continue;
++ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
++ continue;
+ if (num < s_num)
+ goto next;
+
+diff -urNp -x '*.orig' linux-4.9/net/socket.c linux-4.9/net/socket.c
+--- linux-4.9/net/socket.c 2021-02-24 15:47:32.680687977 +0100
++++ linux-4.9/net/socket.c 2021-02-24 15:47:45.144411223 +0100
+@@ -100,10 +100,12 @@
#include <net/sock.h>
#include <linux/netfilter.h>
#include <linux/sockios.h>
#include <linux/atalk.h>
#include <net/busy_poll.h>
-@@ -618,8 +620,24 @@ EXPORT_SYMBOL(__sock_tx_timestamp);
+@@ -619,8 +621,24 @@ EXPORT_SYMBOL(__sock_tx_timestamp);
static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
{
return ret;
}
-@@ -1109,6 +1127,13 @@ int __sock_create(struct net *net, int f
+@@ -1110,6 +1128,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
-@@ -1239,6 +1264,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1240,6 +1265,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;
-@@ -1280,10 +1306,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1281,10 +1307,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-4.9.82/net/sunrpc/auth.c linux-4.9.82-vs2.3.9.7/net/sunrpc/auth.c
---- linux-4.9.82/net/sunrpc/auth.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/sunrpc/auth.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/sunrpc/auth.c linux-4.9/net/sunrpc/auth.c
+--- linux-4.9/net/sunrpc/auth.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/sunrpc/auth.c 2021-02-24 15:47:45.144411223 +0100
@@ -15,6 +15,7 @@
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/gss_api.h>
};
dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-4.9.82/net/sunrpc/auth_unix.c linux-4.9.82-vs2.3.9.7/net/sunrpc/auth_unix.c
---- linux-4.9.82/net/sunrpc/auth_unix.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/sunrpc/auth_unix.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/sunrpc/auth_unix.c linux-4.9/net/sunrpc/auth_unix.c
+--- linux-4.9/net/sunrpc/auth_unix.c 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/net/sunrpc/auth_unix.c 2021-02-24 15:47:45.144411223 +0100
@@ -13,11 +13,13 @@
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/auth.h>
hold = p++;
for (i = 0; i < 16 && gid_valid(cred->uc_gids[i]); i++)
*p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i]));
-diff -NurpP --minimal linux-4.9.82/net/sunrpc/clnt.c linux-4.9.82-vs2.3.9.7/net/sunrpc/clnt.c
---- linux-4.9.82/net/sunrpc/clnt.c 2018-02-22 21:19:05.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/sunrpc/clnt.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/sunrpc/clnt.c linux-4.9/net/sunrpc/clnt.c
+--- linux-4.9/net/sunrpc/clnt.c 2021-02-24 15:47:32.684021415 +0100
++++ linux-4.9/net/sunrpc/clnt.c 2021-02-24 15:47:45.147744660 +0100
@@ -31,6 +31,7 @@
#include <linux/in.h>
#include <linux/in6.h>
return clnt;
}
-diff -NurpP --minimal linux-4.9.82/net/unix/af_unix.c linux-4.9.82-vs2.3.9.7/net/unix/af_unix.c
---- linux-4.9.82/net/unix/af_unix.c 2018-02-22 21:19:05.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/net/unix/af_unix.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/unix/af_unix.c linux-4.9/net/unix/af_unix.c
+--- linux-4.9/net/unix/af_unix.c 2021-02-24 15:47:32.694021728 +0100
++++ linux-4.9/net/unix/af_unix.c 2021-02-24 15:47:45.147744660 +0100
@@ -117,6 +117,8 @@
#include <net/checksum.h>
#include <linux/security.h>
struct hlist_head unix_socket_table[2 * UNIX_HASH_SIZE];
EXPORT_SYMBOL_GPL(unix_socket_table);
-@@ -282,6 +284,8 @@ static struct sock *__unix_find_socket_b
+@@ -290,6 +292,8 @@ static struct sock *__unix_find_socket_b
if (!net_eq(sock_net(s), net))
continue;
if (u->addr->len == len &&
!memcmp(u->addr->name, sunname, len))
goto found;
-@@ -2732,6 +2736,8 @@ static struct sock *unix_from_bucket(str
+@@ -2751,6 +2755,8 @@ static struct sock *unix_from_bucket(str
for (sk = sk_head(&unix_socket_table[bucket]); sk; sk = sk_next(sk)) {
if (sock_net(sk) != seq_file_net(seq))
continue;
if (++count == offset)
break;
}
-@@ -2749,6 +2755,8 @@ static struct sock *unix_next_socket(str
+@@ -2768,6 +2774,8 @@ static struct sock *unix_next_socket(str
sk = sk_next(sk);
if (!sk)
goto next_bucket;
if (sock_net(sk) == seq_file_net(seq))
return sk;
}
-diff -NurpP --minimal linux-4.9.82/scripts/checksyscalls.sh linux-4.9.82-vs2.3.9.7/scripts/checksyscalls.sh
---- linux-4.9.82/scripts/checksyscalls.sh 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/scripts/checksyscalls.sh 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/net/unix/diag.c linux-4.9/net/unix/diag.c
+--- linux-4.9/net/unix/diag.c 2021-02-24 15:47:32.694021728 +0100
++++ linux-4.9/net/unix/diag.c 2021-02-24 15:47:45.147744660 +0100
+@@ -4,6 +4,7 @@
+ #include <linux/unix_diag.h>
+ #include <linux/skbuff.h>
+ #include <linux/module.h>
++#include <linux/vs_network.h>
+ #include <net/netlink.h>
+ #include <net/af_unix.h>
+ #include <net/tcp_states.h>
+@@ -200,6 +201,8 @@ static int unix_diag_dump(struct sk_buff
+ sk_for_each(sk, &unix_socket_table[slot]) {
+ if (!net_eq(sock_net(sk), net))
+ continue;
++ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
++ continue;
+ if (num < s_num)
+ goto next;
+ if (!(req->udiag_states & (1 << sk->sk_state)))
+diff -urNp -x '*.orig' linux-4.9/scripts/checksyscalls.sh linux-4.9/scripts/checksyscalls.sh
+--- linux-4.9/scripts/checksyscalls.sh 2016-12-11 20:17:54.000000000 +0100
++++ linux-4.9/scripts/checksyscalls.sh 2021-02-24 15:47:45.147744660 +0100
@@ -196,7 +196,6 @@ cat << EOF
#define __IGNORE_afs_syscall
#define __IGNORE_getpmsg
EOF
}
-diff -NurpP --minimal linux-4.9.82/security/commoncap.c linux-4.9.82-vs2.3.9.7/security/commoncap.c
---- linux-4.9.82/security/commoncap.c 2016-12-11 19:17:54.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/security/commoncap.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/security/commoncap.c linux-4.9/security/commoncap.c
+--- linux-4.9/security/commoncap.c 2021-02-24 15:47:32.714022353 +0100
++++ linux-4.9/security/commoncap.c 2021-02-24 15:47:45.147744660 +0100
@@ -71,6 +71,7 @@ static void warn_setuid_and_fcaps_mixed(
int cap_capable(const struct cred *cred, struct user_namespace *targ_ns,
int cap, int audit)
/* Have we tried all of the parent namespaces? */
if (ns == &init_user_ns)
-@@ -667,7 +672,7 @@ int cap_inode_setxattr(struct dentry *de
+@@ -668,7 +673,7 @@ int cap_inode_setxattr(struct dentry *de
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
return -EPERM;
return 0;
}
-@@ -693,7 +698,7 @@ int cap_inode_removexattr(struct dentry
+@@ -694,7 +699,7 @@ int cap_inode_removexattr(struct dentry
if (!strncmp(name, XATTR_SECURITY_PREFIX,
sizeof(XATTR_SECURITY_PREFIX) - 1) &&
return -EPERM;
return 0;
}
-diff -NurpP --minimal linux-4.9.82/security/selinux/hooks.c linux-4.9.82-vs2.3.9.7/security/selinux/hooks.c
---- linux-4.9.82/security/selinux/hooks.c 2018-02-22 21:19:06.000000000 +0000
-+++ linux-4.9.82-vs2.3.9.7/security/selinux/hooks.c 2018-01-10 02:50:49.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/security/selinux/hooks.c linux-4.9/security/selinux/hooks.c
+--- linux-4.9/security/selinux/hooks.c 2021-02-24 15:47:32.720689229 +0100
++++ linux-4.9/security/selinux/hooks.c 2021-02-24 15:47:45.147744660 +0100
@@ -67,7 +67,6 @@
#include <linux/dccp.h>
#include <linux/quota.h>