[kernel] r22089 - in dists/squeeze-security/linux-2.6/debian: . patches/features/all/openvz

Raphaël Hertzog hertzog at moszumanska.debian.org
Thu Nov 27 10:40:00 UTC 2014


Author: hertzog
Date: Thu Nov 27 10:39:58 2014
New Revision: 22089

Log:
Update the OpenVZ patch to apply on top of 2.6.32.64. Non-trivial changes
in net/ipv4/tcp_output.c.

Review by a kernel developer welcome.

Modified:
   dists/squeeze-security/linux-2.6/debian/changelog
   dists/squeeze-security/linux-2.6/debian/patches/features/all/openvz/openvz.patch

Modified: dists/squeeze-security/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze-security/linux-2.6/debian/changelog	Thu Nov 27 10:16:00 2014	(r22088)
+++ dists/squeeze-security/linux-2.6/debian/changelog	Thu Nov 27 10:39:58 2014	(r22089)
@@ -419,6 +419,8 @@
     - isofs: Fix unbounded recursion when processing relocated directories
       Fixes CVE-2014-5471 CVE-2014-5472
     - sctp: not send SCTP_PEER_ADDR_CHANGE notifications with failed probe
+  * Update the OpenVZ patch to apply on top of 2.6.32.64. Non-trivial changes
+    in net/ipv4/tcp_output.c.
 
   [ Holger Levsen ]
   * New upstream stable release 2.6.32.64, see

Modified: dists/squeeze-security/linux-2.6/debian/patches/features/all/openvz/openvz.patch
==============================================================================
--- dists/squeeze-security/linux-2.6/debian/patches/features/all/openvz/openvz.patch	Thu Nov 27 10:16:00 2014	(r22088)
+++ dists/squeeze-security/linux-2.6/debian/patches/features/all/openvz/openvz.patch	Thu Nov 27 10:39:58 2014	(r22089)
@@ -6552,9 +6552,6 @@
 [bwh: Fix context for changes to ip_send_reply() in fix for CVE-2012-3552]
 [dannf: Fix content to skb_header_size() after fix for CVE-2012-3552]
 
-diff --git a/COPYING.Parallels b/COPYING.Parallels
-new file mode 100644
-index 0000000..9856a2b
 --- /dev/null
 +++ b/COPYING.Parallels
 @@ -0,0 +1,350 @@
@@ -6908,8 +6905,6 @@
 +consider it more useful to permit linking proprietary applications with the
 +library.  If this is what you want to do, use the GNU Library General
 +Public License instead of this License.
-diff --git a/Makefile b/Makefile
-index 928ad57..3307085 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -2,6 +2,7 @@ VERSION = 2
@@ -6920,7 +6915,7 @@
  NAME = Man-Eating Seals of Antiquity
  
  # *DOCUMENTATION*
-@@ -352,7 +353,7 @@ KBUILD_AFLAGS   := -D__ASSEMBLY__
+@@ -353,7 +354,7 @@ KBUILD_AFLAGS   := -D__ASSEMBLY__
  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
  KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
  
@@ -6929,7 +6924,7 @@
  export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
  export CPP AR NM STRIP OBJCOPY OBJDUMP
  export MAKE AWK GENKSYMS INSTALLKERNEL PERL UTS_MACHINE
-@@ -1033,7 +1034,8 @@ define filechk_utsrelease.h
+@@ -1034,7 +1035,8 @@ define filechk_utsrelease.h
  	  echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2;    \
  	  exit 1;                                                         \
  	fi;                                                               \
@@ -6939,11 +6934,9 @@
  endef
  
  define filechk_version.h
-diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index cb5a57c..8904217 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
-@@ -2079,6 +2079,8 @@ config HAVE_ATOMIC_IOMAP
+@@ -2088,6 +2088,8 @@ config HAVE_ATOMIC_IOMAP
  	def_bool y
  	depends on X86_32
  
@@ -6952,14 +6945,12 @@
  source "net/Kconfig"
  
  source "drivers/Kconfig"
-@@ -2096,3 +2098,5 @@ source "crypto/Kconfig"
+@@ -2105,3 +2107,5 @@ source "crypto/Kconfig"
  source "arch/x86/kvm/Kconfig"
  
  source "lib/Kconfig"
 +
 +source "kernel/bc/Kconfig"
-diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index 4edd8eb..94568d9 100644
 --- a/arch/x86/ia32/ia32entry.S
 +++ b/arch/x86/ia32/ia32entry.S
 @@ -623,7 +623,7 @@ ia32_sys_call_table:
@@ -7006,11 +6997,9 @@
 +	.quad sys_lchmod
 +	.quad compat_sys_lutime
  ia32_syscall_end:
-diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
-index 016218c..f368a9a 100644
 --- a/arch/x86/ia32/sys_ia32.c
 +++ b/arch/x86/ia32/sys_ia32.c
-@@ -623,20 +623,6 @@ long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,
+@@ -623,20 +623,6 @@ long sys32_fadvise64_64(int fd, __u32 of
  				advice);
  }
  
@@ -7031,8 +7020,6 @@
  long sys32_lookup_dcookie(u32 addr_low, u32 addr_high,
  			  char __user *buf, size_t len)
  {
-diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
-index 8ac9d9a..6f2fd90 100644
 --- a/arch/x86/include/asm/elf.h
 +++ b/arch/x86/include/asm/elf.h
 @@ -285,7 +285,7 @@ struct task_struct;
@@ -7058,11 +7045,9 @@
  #define compat_arch_setup_additional_pages	syscall32_setup_pages
  
  extern unsigned long arch_randomize_brk(struct mm_struct *mm);
-diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
-index 271de94..e255a04 100644
 --- a/arch/x86/include/asm/pgalloc.h
 +++ b/arch/x86/include/asm/pgalloc.h
-@@ -80,7 +80,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
+@@ -80,7 +80,7 @@ static inline void pmd_populate(struct m
  #if PAGETABLE_LEVELS > 2
  static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
  {
@@ -7071,7 +7056,7 @@
  }
  
  static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
-@@ -116,7 +116,7 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
+@@ -116,7 +116,7 @@ static inline void pgd_populate(struct m
  
  static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
  {
@@ -7080,11 +7065,9 @@
  }
  
  static inline void pud_free(struct mm_struct *mm, pud_t *pud)
-diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index 78bb4d7..5b74249 100644
 --- a/arch/x86/include/asm/processor.h
 +++ b/arch/x86/include/asm/processor.h
-@@ -951,8 +951,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+@@ -974,8 +974,7 @@ extern unsigned long thread_saved_pc(str
  /* This decides where the kernel will search for a free chunk of vm
   * space during mmap's.
   */
@@ -7094,8 +7077,6 @@
  
  #define TASK_SIZE		(test_thread_flag(TIF_IA32) ? \
  					IA32_PAGE_OFFSET : TASK_SIZE_MAX)
-diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
-index 19c3ce4..4598413 100644
 --- a/arch/x86/include/asm/thread_info.h
 +++ b/arch/x86/include/asm/thread_info.h
 @@ -95,6 +95,7 @@ struct thread_info {
@@ -7124,8 +7105,6 @@
  
  #ifdef CONFIG_X86_32
  
-diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
-index 1ca132f..0eb0ce3 100644
 --- a/arch/x86/include/asm/tsc.h
 +++ b/arch/x86/include/asm/tsc.h
 @@ -24,7 +24,7 @@ static inline cycles_t get_cycles(void)
@@ -7137,8 +7116,6 @@
  		return 0;
  #endif
  	rdtscll(ret);
-diff --git a/arch/x86/include/asm/unistd_32.h b/arch/x86/include/asm/unistd_32.h
-index 6fb3c20..c870519 100644
 --- a/arch/x86/include/asm/unistd_32.h
 +++ b/arch/x86/include/asm/unistd_32.h
 @@ -342,10 +342,22 @@
@@ -7165,8 +7142,6 @@
  
  #define __ARCH_WANT_IPC_PARSE_VERSION
  #define __ARCH_WANT_OLD_READDIR
-diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h
-index 8d3ad0a..15bc00e 100644
 --- a/arch/x86/include/asm/unistd_64.h
 +++ b/arch/x86/include/asm/unistd_64.h
 @@ -661,6 +661,30 @@ __SYSCALL(__NR_pwritev, sys_pwritev)
@@ -7200,7 +7175,7 @@
  
  #ifndef __NO_STUBS
  #define __ARCH_WANT_OLD_READDIR
-@@ -685,6 +709,7 @@ __SYSCALL(__NR_perf_event_open, sys_perf_event_open)
+@@ -685,6 +709,7 @@ __SYSCALL(__NR_perf_event_open, sys_perf
  #define __ARCH_WANT_SYS_RT_SIGSUSPEND
  #define __ARCH_WANT_SYS_TIME
  #define __ARCH_WANT_COMPAT_SYS_TIME
@@ -7208,8 +7183,6 @@
  #endif	/* __NO_STUBS */
  
  #ifdef __KERNEL__
-diff --git a/arch/x86/include/asm/vdso.h b/arch/x86/include/asm/vdso.h
-index 9064052..2cf267b 100644
 --- a/arch/x86/include/asm/vdso.h
 +++ b/arch/x86/include/asm/vdso.h
 @@ -18,6 +18,7 @@ extern const char VDSO64_PRELINK[];
@@ -7220,11 +7193,9 @@
  /*
   * Given a pointer to the vDSO image, find the pointer to VDSO32_name
   * as that symbol is defined in the vDSO sources or linker script.
-diff --git a/arch/x86/kernel/apic/nmi.c b/arch/x86/kernel/apic/nmi.c
-index 7ff61d6..ee58297 100644
 --- a/arch/x86/kernel/apic/nmi.c
 +++ b/arch/x86/kernel/apic/nmi.c
-@@ -435,10 +435,10 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
+@@ -435,10 +435,10 @@ nmi_watchdog_tick(struct pt_regs *regs,
  	if (!touched && __get_cpu_var(last_irq_sum) == sum) {
  		/*
  		 * Ayiee, looks like this CPU is stuck ...
@@ -7237,8 +7208,6 @@
  			/*
  			 * die_nmi will return ONLY if NOTIFY_STOP happens..
  			 */
-diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c
-index bb62b3e..ce8a3f5 100644
 --- a/arch/x86/kernel/cpu/transmeta.c
 +++ b/arch/x86/kernel/cpu/transmeta.c
 @@ -1,6 +1,7 @@
@@ -7249,11 +7218,9 @@
  #include <asm/processor.h>
  #include <asm/msr.h>
  #include "cpu.h"
-diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
-index 2d8a371..0d1ce00 100644
 --- a/arch/x86/kernel/dumpstack.c
 +++ b/arch/x86/kernel/dumpstack.c
-@@ -320,6 +320,7 @@ die_nmi(char *str, struct pt_regs *regs, int do_panic)
+@@ -320,6 +320,7 @@ die_nmi(char *str, struct pt_regs *regs,
  	printk(" on CPU%d, ip %08lx, registers:\n",
  		smp_processor_id(), regs->ip);
  	show_registers(regs);
@@ -7261,11 +7228,9 @@
  	oops_end(flags, regs, 0);
  	if (do_panic || panic_on_oops)
  		panic("Non maskable interrupt");
-diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
-index f7dd2a7..24c02de 100644
 --- a/arch/x86/kernel/dumpstack_32.c
 +++ b/arch/x86/kernel/dumpstack_32.c
-@@ -105,8 +105,9 @@ void show_registers(struct pt_regs *regs)
+@@ -105,8 +105,9 @@ void show_registers(struct pt_regs *regs
  	print_modules();
  	__show_regs(regs, 0);
  
@@ -7276,11 +7241,9 @@
  		current_thread_info(), current, task_thread_info(current));
  	/*
  	 * When in-kernel, we also print out the stack and code at the
-diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
-index a071e6b..24ec167 100644
 --- a/arch/x86/kernel/dumpstack_64.c
 +++ b/arch/x86/kernel/dumpstack_64.c
-@@ -254,8 +254,10 @@ void show_registers(struct pt_regs *regs)
+@@ -254,8 +254,10 @@ void show_registers(struct pt_regs *regs
  	sp = regs->sp;
  	printk("CPU %d ", cpu);
  	__show_regs(regs, 1);
@@ -7293,8 +7256,6 @@
  
  	/*
  	 * When in-kernel, we also print out the stack and code at the
-diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index c097e7d..582db41 100644
 --- a/arch/x86/kernel/entry_32.S
 +++ b/arch/x86/kernel/entry_32.S
 @@ -325,6 +325,7 @@ ENTRY(ret_from_fork)
@@ -7331,8 +7292,6 @@
  /*
   * Return to user mode is not as complex as all this looks,
   * but we want the default path for a system call return to
-diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
-index b5c061f..36f56e3 100644
 --- a/arch/x86/kernel/entry_64.S
 +++ b/arch/x86/kernel/entry_64.S
 @@ -405,8 +405,12 @@ ENTRY(ret_from_fork)
@@ -7376,8 +7335,6 @@
  	movq %rax,RAX(%rsp)
  	xorl %edi,%edi
  
-diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
-index f2f8540..84afa2f 100644
 --- a/arch/x86/kernel/i387.c
 +++ b/arch/x86/kernel/i387.c
 @@ -163,6 +163,7 @@ int init_fpu(struct task_struct *tsk)
@@ -7388,8 +7345,6 @@
  
  int fpregs_active(struct task_struct *target, const struct user_regset *regset)
  {
-diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
-index ec6ef60..b8a4a3c 100644
 --- a/arch/x86/kernel/ldt.c
 +++ b/arch/x86/kernel/ldt.c
 @@ -13,6 +13,8 @@
@@ -7401,7 +7356,7 @@
  
  #include <asm/system.h>
  #include <asm/ldt.h>
-@@ -39,9 +41,9 @@ static int alloc_ldt(mm_context_t *pc, int mincount, int reload)
+@@ -39,9 +41,9 @@ static int alloc_ldt(mm_context_t *pc, i
  	mincount = (mincount + (PAGE_SIZE / LDT_ENTRY_SIZE - 1)) &
  			(~(PAGE_SIZE / LDT_ENTRY_SIZE - 1));
  	if (mincount * LDT_ENTRY_SIZE > PAGE_SIZE)
@@ -7413,7 +7368,7 @@
  
  	if (!newldt)
  		return -ENOMEM;
-@@ -117,6 +119,7 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
+@@ -117,6 +119,7 @@ int init_new_context(struct task_struct
  	}
  	return retval;
  }
@@ -7421,8 +7376,6 @@
  
  /*
   * No need to lock the MM as we are the last user
-diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 4cf7956..69478e4 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
 @@ -40,6 +40,8 @@
@@ -7444,7 +7397,7 @@
  
  /*
   * Return saved PC of a blocked thread.
-@@ -144,16 +149,17 @@ void __show_regs(struct pt_regs *regs, int all)
+@@ -144,16 +149,17 @@ void __show_regs(struct pt_regs *regs, i
  	board = dmi_get_system_info(DMI_PRODUCT_NAME);
  	if (!board)
  		board = "";
@@ -7482,7 +7435,7 @@
  
  /*
   * Create a kernel thread
-@@ -205,6 +214,13 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
+@@ -205,6 +214,13 @@ int kernel_thread(int (*fn)(void *), voi
  {
  	struct pt_regs regs;
  
@@ -7496,8 +7449,6 @@
  	memset(&regs, 0, sizeof(regs));
  
  	regs.bx = (unsigned long) fn;
-diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 868fdb4..0cc650d 100644
 --- a/arch/x86/kernel/process_64.c
 +++ b/arch/x86/kernel/process_64.c
 @@ -25,8 +25,10 @@
@@ -7520,7 +7471,7 @@
  DEFINE_PER_CPU(unsigned long, old_rsp);
  static DEFINE_PER_CPU(unsigned char, is_idle);
  
-@@ -169,13 +169,14 @@ void __show_regs(struct pt_regs *regs, int all)
+@@ -169,13 +169,14 @@ void __show_regs(struct pt_regs *regs, i
  	board = dmi_get_system_info(DMI_PRODUCT_NAME);
  	if (!board)
  		board = "";
@@ -7549,7 +7500,7 @@
  }
  
  void release_thread(struct task_struct *dead_task)
-@@ -680,3 +683,20 @@ unsigned long KSTK_ESP(struct task_struct *task)
+@@ -679,3 +682,20 @@ unsigned long KSTK_ESP(struct task_struc
  	return (test_tsk_thread_flag(task, TIF_IA32)) ?
  			(task_pt_regs(task)->sp) : ((task)->thread.usersp);
  }
@@ -7570,8 +7521,6 @@
 +	dump_stack();
 +	return -EPERM;
 +}
-diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
-index 6a44a76..6ecea3a 100644
 --- a/arch/x86/kernel/signal.c
 +++ b/arch/x86/kernel/signal.c
 @@ -19,6 +19,7 @@
@@ -7582,7 +7531,7 @@
  
  #include <asm/processor.h>
  #include <asm/ucontext.h>
-@@ -792,6 +793,9 @@ static void do_signal(struct pt_regs *regs)
+@@ -792,6 +793,9 @@ static void do_signal(struct pt_regs *re
  	if (!user_mode(regs))
  		return;
  
@@ -7592,7 +7541,7 @@
  	if (current_thread_info()->status & TS_RESTORE_SIGMASK)
  		oldset = &current->saved_sigmask;
  	else
-@@ -821,6 +825,7 @@ static void do_signal(struct pt_regs *regs)
+@@ -821,6 +825,7 @@ static void do_signal(struct pt_regs *re
  		return;
  	}
  
@@ -7600,11 +7549,9 @@
  	/* Did we come from a system call? */
  	if (syscall_get_nr(current, regs) >= 0) {
  		/* Restart the system call - no handlers present */
-diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
-index 29f0a78..46cf43e 100644
 --- a/arch/x86/kernel/smp.c
 +++ b/arch/x86/kernel/smp.c
-@@ -224,6 +224,11 @@ void smp_call_function_single_interrupt(struct pt_regs *regs)
+@@ -224,6 +224,11 @@ void smp_call_function_single_interrupt(
  	irq_exit();
  }
  
@@ -7616,8 +7563,6 @@
  struct smp_ops smp_ops = {
  	.smp_prepare_boot_cpu	= native_smp_prepare_boot_cpu,
  	.smp_prepare_cpus	= native_smp_prepare_cpus,
-diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
-index 539bb6c..187e456 100644
 --- a/arch/x86/kernel/smpboot.c
 +++ b/arch/x86/kernel/smpboot.c
 @@ -758,6 +758,12 @@ do_rest:
@@ -7633,8 +7578,6 @@
  	/* start_ip had better be page-aligned! */
  	start_ip = setup_trampoline();
  
-diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S
-index 76d70a4..477e261 100644
 --- a/arch/x86/kernel/syscall_table_32.S
 +++ b/arch/x86/kernel/syscall_table_32.S
 @@ -336,3 +336,24 @@ ENTRY(sys_call_table)
@@ -7662,11 +7605,9 @@
 +	.long sys_ni_syscall		/* 515 */
 +	.long sys_lchmod
 +	.long sys_lutime
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 7e37dce..d1fd061 100644
 --- a/arch/x86/kernel/traps.c
 +++ b/arch/x86/kernel/traps.c
-@@ -405,7 +405,8 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs)
+@@ -405,7 +405,8 @@ static notrace __kprobes void default_do
  		 * Ok, so this is none of the documented NMI sources,
  		 * so it must be the NMI watchdog.
  		 */
@@ -7676,11 +7617,9 @@
  			return;
  		if (!do_nmi_callback(regs, cpu))
  			unknown_nmi_error(reason, regs);
-diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
-index f379309..6c44e77 100644
 --- a/arch/x86/kernel/tsc_sync.c
 +++ b/arch/x86/kernel/tsc_sync.c
-@@ -150,6 +150,10 @@ void __cpuinit check_tsc_sync_source(int cpu)
+@@ -150,6 +150,10 @@ void __cpuinit check_tsc_sync_source(int
  		printk(" passed.\n");
  	}
  
@@ -7691,8 +7630,6 @@
  	/*
  	 * Reset it - just in case we boot another CPU later:
  	 */
-diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
-index 3909e3b..bbfa7af 100644
 --- a/arch/x86/kernel/x8664_ksyms_64.c
 +++ b/arch/x86/kernel/x8664_ksyms_64.c
 @@ -3,6 +3,7 @@
@@ -7711,11 +7648,9 @@
  EXPORT_SYMBOL(kernel_thread);
  
  EXPORT_SYMBOL(__get_user_1);
-diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 1739358..4803459 100644
 --- a/arch/x86/mm/fault.c
 +++ b/arch/x86/mm/fault.c
-@@ -689,7 +689,7 @@ show_signal_msg(struct pt_regs *regs, unsigned long error_code,
+@@ -689,7 +689,7 @@ show_signal_msg(struct pt_regs *regs, un
  	if (!printk_ratelimit())
  		return;
  
@@ -7724,7 +7659,7 @@
  		task_pid_nr(tsk) > 1 ? KERN_INFO : KERN_EMERG,
  		tsk->comm, task_pid_nr(tsk), address,
  		(void *)regs->ip, (void *)regs->sp, error_code);
-@@ -911,7 +911,7 @@ spurious_fault(unsigned long error_code, unsigned long address)
+@@ -918,7 +918,7 @@ spurious_fault(unsigned long error_code,
  	return ret;
  }
  
@@ -7733,8 +7668,6 @@
  
  static inline int
  access_error(unsigned long error_code, int write, struct vm_area_struct *vma)
-diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
-index f46c340..6b7330c 100644
 --- a/arch/x86/mm/hugetlbpage.c
 +++ b/arch/x86/mm/hugetlbpage.c
 @@ -12,6 +12,7 @@
@@ -7753,8 +7686,6 @@
  
  struct page *
  follow_huge_pmd(struct mm_struct *mm, unsigned long address,
-diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
-index c9ba9de..589a93b 100644
 --- a/arch/x86/mm/pgtable.c
 +++ b/arch/x86/mm/pgtable.c
 @@ -4,7 +4,8 @@
@@ -7767,7 +7698,7 @@
  
  #ifdef CONFIG_HIGHPTE
  #define PGALLOC_USER_GFP __GFP_HIGHMEM
-@@ -16,7 +17,7 @@ gfp_t __userpte_alloc_gfp = PGALLOC_GFP | PGALLOC_USER_GFP;
+@@ -16,7 +17,7 @@ gfp_t __userpte_alloc_gfp = PGALLOC_GFP
  
  pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
  {
@@ -7776,8 +7707,6 @@
  }
  
  pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
-diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
-index 36fe08e..42445e5 100644
 --- a/arch/x86/mm/tlb.c
 +++ b/arch/x86/mm/tlb.c
 @@ -256,6 +256,8 @@ void flush_tlb_mm(struct mm_struct *mm)
@@ -7789,8 +7718,6 @@
  void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
  {
  	struct mm_struct *mm = vma->vm_mm;
-diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
-index 58bc00f..b7028c5 100644
 --- a/arch/x86/vdso/vdso32-setup.c
 +++ b/arch/x86/vdso/vdso32-setup.c
 @@ -17,6 +17,8 @@
@@ -7811,7 +7738,7 @@
  
  #ifdef CONFIG_X86_64
  #define vdso_enabled			sysctl_vsyscall32
-@@ -193,7 +197,8 @@ static __init void relocate_vdso(Elf32_Ehdr *ehdr)
+@@ -193,7 +197,8 @@ static __init void relocate_vdso(Elf32_E
  	}
  }
  
@@ -7855,7 +7782,7 @@
  
  	down_write(&mm->mmap_sem);
  
-@@ -328,19 +347,18 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -328,19 +347,18 @@ int arch_setup_additional_pages(struct l
  
  	map_compat_vdso(compat);
  
@@ -7880,7 +7807,7 @@
  		/*
  		 * MAYWRITE to allow gdb to COW and set breakpoints
  		 *
-@@ -368,9 +386,13 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -368,9 +386,13 @@ int arch_setup_additional_pages(struct l
  		current->mm->context.vdso = NULL;
  
  	up_write(&mm->mmap_sem);
@@ -7894,8 +7821,6 @@
  
  #ifdef CONFIG_X86_64
  
-diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
-index 21e1aeb..507ba17 100644
 --- a/arch/x86/vdso/vma.c
 +++ b/arch/x86/vdso/vma.c
 @@ -4,6 +4,7 @@
@@ -7906,7 +7831,7 @@
  #include <linux/err.h>
  #include <linux/sched.h>
  #include <linux/init.h>
-@@ -99,17 +100,23 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
+@@ -99,17 +100,23 @@ static unsigned long vdso_addr(unsigned
  
  /* Setup a VMA at program startup for the vsyscall page.
     Not called for compat tasks */
@@ -7941,8 +7866,6 @@
  
  static __init int vdso_setup(char *s)
  {
-diff --git a/block/Kconfig b/block/Kconfig
-index 9be0b56..e20fbde 100644
 --- a/block/Kconfig
 +++ b/block/Kconfig
 @@ -77,6 +77,28 @@ config BLK_DEV_INTEGRITY
@@ -7974,8 +7897,6 @@
  endif # BLOCK
  
  config BLOCK_COMPAT
-diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
-index 7e803fc..9c5f0b5 100644
 --- a/block/Kconfig.iosched
 +++ b/block/Kconfig.iosched
 @@ -40,6 +40,23 @@ config IOSCHED_CFQ
@@ -8002,11 +7923,9 @@
  choice
  	prompt "Default I/O scheduler"
  	default DEFAULT_CFQ
-diff --git a/block/Makefile b/block/Makefile
-index ba74ca6..16334c9 100644
 --- a/block/Makefile
 +++ b/block/Makefile
-@@ -8,6 +8,7 @@ obj-$(CONFIG_BLOCK) := elevator.o blk-core.o blk-tag.o blk-sysfs.o \
+@@ -8,6 +8,7 @@ obj-$(CONFIG_BLOCK) := elevator.o blk-co
  			blk-iopoll.o ioctl.o genhd.o scsi_ioctl.o
  
  obj-$(CONFIG_BLK_DEV_BSG)	+= bsg.o
@@ -8014,9 +7933,6 @@
  obj-$(CONFIG_IOSCHED_NOOP)	+= noop-iosched.o
  obj-$(CONFIG_IOSCHED_AS)	+= as-iosched.o
  obj-$(CONFIG_IOSCHED_DEADLINE)	+= deadline-iosched.o
-diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
-new file mode 100644
-index 0000000..444f20b
 --- /dev/null
 +++ b/block/blk-cgroup.c
 @@ -0,0 +1,366 @@
@@ -8386,9 +8302,6 @@
 +	spin_unlock(&blkio_list_lock);
 +}
 +EXPORT_SYMBOL_GPL(blkio_policy_unregister);
-diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
-new file mode 100644
-index 0000000..4d316df
 --- /dev/null
 +++ b/block/blk-cgroup.h
 @@ -0,0 +1,127 @@
@@ -8519,8 +8432,6 @@
 +}
 +#endif
 +#endif /* _BLK_CGROUP_H */
-diff --git a/block/blk-settings.c b/block/blk-settings.c
-index 112c4f7..6c88923 100644
 --- a/block/blk-settings.c
 +++ b/block/blk-settings.c
 @@ -9,6 +9,7 @@
@@ -8531,7 +8442,7 @@
  
  #include "blk.h"
  
-@@ -142,7 +143,7 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
+@@ -142,7 +143,7 @@ void blk_queue_make_request(struct reque
  	q->nr_batching = BLK_BATCH_REQ;
  
  	q->unplug_thresh = 4;		/* hmm */
@@ -8540,8 +8451,6 @@
  	if (q->unplug_delay == 0)
  		q->unplug_delay = 1;
  
-diff --git a/block/bsg.c b/block/bsg.c
-index 7154a7a..ae14805 100644
 --- a/block/bsg.c
 +++ b/block/bsg.c
 @@ -15,6 +15,7 @@
@@ -8552,7 +8461,7 @@
  #include <linux/percpu.h>
  #include <linux/uio.h>
  #include <linux/idr.h>
-@@ -197,7 +198,7 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
+@@ -197,7 +198,7 @@ static int blk_fill_sgv4_hdr_rq(struct r
  	rq->cmd_len = hdr->request_len;
  	rq->cmd_type = REQ_TYPE_BLOCK_PC;
  
@@ -8561,8 +8470,6 @@
  	if (!rq->timeout)
  		rq->timeout = q->sg_timeout;
  	if (!rq->timeout)
-diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
-index aa1e953..b68b633 100644
 --- a/block/cfq-iosched.c
 +++ b/block/cfq-iosched.c
 @@ -9,9 +9,11 @@
@@ -8577,7 +8484,7 @@
  
  /*
   * tunables
-@@ -27,6 +29,8 @@ static const int cfq_slice_sync = HZ / 10;
+@@ -27,6 +29,8 @@ static const int cfq_slice_sync = HZ / 1
  static int cfq_slice_async = HZ / 25;
  static const int cfq_slice_async_rq = 2;
  static int cfq_slice_idle = HZ / 125;
@@ -8712,9 +8619,10 @@
  
  	/*
 -	 * rr list of queues with requests and the count of them
-+	 * The priority currently being served
- 	 */
+-	 */
 -	struct cfq_rb_root service_tree;
++	 * The priority currently being served
++	 */
 +	enum wl_prio_t serving_prio;
 +	enum wl_type_t serving_type;
 +	unsigned long workload_expires;
@@ -8871,7 +8779,7 @@
  static void cfq_dispatch_insert(struct request_queue *, struct request *);
  static struct cfq_queue *cfq_get_queue(struct cfq_data *, bool,
  				       struct io_context *, gfp_t);
-@@ -279,7 +459,7 @@ static int cfq_queue_empty(struct request_queue *q)
+@@ -279,7 +459,7 @@ static int cfq_queue_empty(struct reques
  {
  	struct cfq_data *cfqd = q->elevator->elevator_data;
  
@@ -8880,7 +8788,7 @@
  }
  
  /*
-@@ -303,10 +483,110 @@ cfq_prio_to_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -303,10 +483,110 @@ cfq_prio_to_slice(struct cfq_data *cfqd,
  	return cfq_prio_slice(cfqd, cfq_cfqq_sync(cfqq), cfqq->ioprio);
  }
  
@@ -8992,7 +8900,7 @@
  	cfq_log_cfqq(cfqd, cfqq, "set_slice=%lu", cfqq->slice_end - jiffies);
  }
  
-@@ -331,9 +611,9 @@ static inline bool cfq_slice_used(struct cfq_queue *cfqq)
+@@ -331,9 +611,9 @@ static inline bool cfq_slice_used(struct
   * behind the head is penalized and only allowed to a certain extent.
   */
  static struct request *
@@ -9004,7 +8912,7 @@
  	unsigned long back_max;
  #define CFQ_RQ1_WRAP	0x01 /* request 1 wraps */
  #define CFQ_RQ2_WRAP	0x02 /* request 2 wraps */
-@@ -356,8 +636,6 @@ cfq_choose_req(struct cfq_data *cfqd, struct request *rq1, struct request *rq2)
+@@ -356,8 +636,6 @@ cfq_choose_req(struct cfq_data *cfqd, st
  	s1 = blk_rq_pos(rq1);
  	s2 = blk_rq_pos(rq2);
  
@@ -9013,7 +8921,7 @@
  	/*
  	 * by definition, 1KiB is 2 sectors
  	 */
-@@ -425,6 +703,10 @@ cfq_choose_req(struct cfq_data *cfqd, struct request *rq1, struct request *rq2)
+@@ -425,6 +703,10 @@ cfq_choose_req(struct cfq_data *cfqd, st
   */
  static struct cfq_queue *cfq_rb_first(struct cfq_rb_root *root)
  {
@@ -9024,7 +8932,7 @@
  	if (!root->left)
  		root->left = rb_first(&root->rb);
  
-@@ -434,6 +716,17 @@ static struct cfq_queue *cfq_rb_first(struct cfq_rb_root *root)
+@@ -434,6 +716,17 @@ static struct cfq_queue *cfq_rb_first(st
  	return NULL;
  }
  
@@ -9042,7 +8950,7 @@
  static void rb_erase_init(struct rb_node *n, struct rb_root *root)
  {
  	rb_erase(n, root);
-@@ -445,6 +738,7 @@ static void cfq_rb_erase(struct rb_node *n, struct cfq_rb_root *root)
+@@ -445,6 +738,7 @@ static void cfq_rb_erase(struct rb_node
  	if (root->left == n)
  		root->left = NULL;
  	rb_erase_init(n, &root->rb);
@@ -9050,7 +8958,7 @@
  }
  
  /*
-@@ -471,7 +765,7 @@ cfq_find_next_rq(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -471,7 +765,7 @@ cfq_find_next_rq(struct cfq_data *cfqd,
  			next = rb_entry_rq(rbnext);
  	}
  
@@ -9059,7 +8967,7 @@
  }
  
  static unsigned long cfq_slice_offset(struct cfq_data *cfqd,
-@@ -480,12 +774,334 @@ static unsigned long cfq_slice_offset(struct cfq_data *cfqd,
+@@ -480,12 +774,334 @@ static unsigned long cfq_slice_offset(st
  	/*
  	 * just an approximation, should be ok.
  	 */
@@ -9279,7 +9187,8 @@
 +	return cfqg;
 +}
 +
-+/*
+ /*
+- * The cfqd->service_tree holds all pending cfq_queue's that have
 + * Search for the cfq group current task belongs to. If create = 1, then also
 + * create the cfq group if it does not exist. request_queue lock must be held.
 + */
@@ -9390,13 +9299,12 @@
 +
 +#endif /* GROUP_IOSCHED */
 +
- /*
-- * The cfqd->service_tree holds all pending cfq_queue's that have
++/*
 + * The cfqd->service_trees holds all pending cfq_queue's that have
   * requests waiting to be processed. It is sorted in the order that
   * we will service the queues.
   */
-@@ -495,11 +1111,42 @@ static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -495,11 +1111,42 @@ static void cfq_service_tree_add(struct
  	struct rb_node **p, *parent;
  	struct cfq_queue *__cfqq;
  	unsigned long rb_key;
@@ -9404,7 +9312,7 @@
  	int left;
 +	int new_cfqq = 1;
 +	int group_changed = 0;
-+
+ 
 +#ifdef CONFIG_CFQ_GROUP_IOSCHED
 +	if (!cfqd->cfq_group_isolation
 +	    && cfqq_type(cfqq) == SYNC_NOIDLE_WORKLOAD
@@ -9430,7 +9338,7 @@
 +		cfq_log_cfqq(cfqd, cfqq, "moved to origin group");
 +	}
 +#endif
- 
++
 +	service_tree = service_tree_for(cfqq->cfqg, cfqq_prio(cfqq),
 +						cfqq_type(cfqq));
  	if (cfq_class_idle(cfqq)) {
@@ -9440,7 +9348,7 @@
  		if (parent && parent != &cfqq->rb_node) {
  			__cfqq = rb_entry(parent, struct cfq_queue, rb_node);
  			rb_key += __cfqq->rb_key;
-@@ -517,23 +1164,27 @@ static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -517,23 +1164,27 @@ static void cfq_service_tree_add(struct
  		cfqq->slice_resid = 0;
  	} else {
  		rb_key = -HZ;
@@ -9472,7 +9380,7 @@
  	while (*p) {
  		struct rb_node **n;
  
-@@ -541,35 +1192,28 @@ static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -541,35 +1192,28 @@ static void cfq_service_tree_add(struct
  		__cfqq = rb_entry(parent, struct cfq_queue, rb_node);
  
  		/*
@@ -9482,8 +9390,7 @@
 +		 * sort by key, that represents service time.
  		 */
 -		if (cfq_class_rt(cfqq) > cfq_class_rt(__cfqq))
-+		if (time_before(rb_key, __cfqq->rb_key))
- 			n = &(*p)->rb_left;
+-			n = &(*p)->rb_left;
 -		else if (cfq_class_rt(cfqq) < cfq_class_rt(__cfqq))
 -			n = &(*p)->rb_right;
 -		else if (cfq_class_idle(cfqq) < cfq_class_idle(__cfqq))
@@ -9491,7 +9398,8 @@
 -		else if (cfq_class_idle(cfqq) > cfq_class_idle(__cfqq))
 -			n = &(*p)->rb_right;
 -		else if (time_before(rb_key, __cfqq->rb_key))
--			n = &(*p)->rb_left;
++		if (time_before(rb_key, __cfqq->rb_key))
+ 			n = &(*p)->rb_left;
 -		else
 +		else {
  			n = &(*p)->rb_right;
@@ -9518,7 +9426,7 @@
  }
  
  static struct cfq_queue *
-@@ -671,13 +1315,16 @@ static void cfq_del_cfqq_rr(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -671,13 +1315,16 @@ static void cfq_del_cfqq_rr(struct cfq_d
  	BUG_ON(!cfq_cfqq_on_rr(cfqq));
  	cfq_clear_cfqq_on_rr(cfqq);
  
@@ -9537,7 +9445,7 @@
  	BUG_ON(!cfqd->busy_queues);
  	cfqd->busy_queues--;
  }
-@@ -688,7 +1335,6 @@ static void cfq_del_cfqq_rr(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -688,7 +1335,6 @@ static void cfq_del_cfqq_rr(struct cfq_d
  static void cfq_del_rq_rb(struct request *rq)
  {
  	struct cfq_queue *cfqq = RQ_CFQQ(rq);
@@ -9545,7 +9453,7 @@
  	const int sync = rq_is_sync(rq);
  
  	BUG_ON(!cfqq->queued[sync]);
-@@ -696,8 +1342,17 @@ static void cfq_del_rq_rb(struct request *rq)
+@@ -696,8 +1342,17 @@ static void cfq_del_rq_rb(struct request
  
  	elv_rb_del(&cfqq->sort_list, rq);
  
@@ -9565,7 +9473,7 @@
  }
  
  static void cfq_add_rq_rb(struct request *rq)
-@@ -722,7 +1377,7 @@ static void cfq_add_rq_rb(struct request *rq)
+@@ -722,7 +1377,7 @@ static void cfq_add_rq_rb(struct request
  	 * check if this request is a better next-serve candidate
  	 */
  	prev = cfqq->next_rq;
@@ -9582,7 +9490,7 @@
  	/*
  	 * reposition in fifo if next is older than rq
  	 */
-@@ -838,6 +1494,8 @@ cfq_merged_requests(struct request_queue *q, struct request *rq,
+@@ -838,6 +1494,8 @@ cfq_merged_requests(struct request_queue
  		rq_set_fifo_time(rq, rq_fifo_time(next));
  	}
  
@@ -9591,7 +9499,7 @@
  	cfq_remove_request(next);
  }
  
-@@ -871,8 +1529,12 @@ static void __cfq_set_active_queue(struct cfq_data *cfqd,
+@@ -871,8 +1529,12 @@ static void __cfq_set_active_queue(struc
  {
  	if (cfqq) {
  		cfq_log_cfqq(cfqd, cfqq, "set_active");
@@ -9604,7 +9512,7 @@
  
  		cfq_clear_cfqq_wait_request(cfqq);
  		cfq_clear_cfqq_must_dispatch(cfqq);
-@@ -899,6 +1561,16 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -899,6 +1561,16 @@ __cfq_slice_expired(struct cfq_data *cfq
  		del_timer(&cfqd->idle_slice_timer);
  
  	cfq_clear_cfqq_wait_request(cfqq);
@@ -9621,7 +9529,7 @@
  
  	/*
  	 * store what was left of this slice, if the queue idled/timed out
-@@ -908,11 +1580,19 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -908,11 +1580,19 @@ __cfq_slice_expired(struct cfq_data *cfq
  		cfq_log_cfqq(cfqd, cfqq, "resid=%ld", cfqq->slice_resid);
  	}
  
@@ -9641,7 +9549,7 @@
  	if (cfqd->active_cic) {
  		put_io_context(cfqd->active_cic->ioc);
  		cfqd->active_cic = NULL;
-@@ -933,10 +1613,39 @@ static inline void cfq_slice_expired(struct cfq_data *cfqd, bool timed_out)
+@@ -933,10 +1613,39 @@ static inline void cfq_slice_expired(str
   */
  static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd)
  {
@@ -9651,9 +9559,8 @@
 +					cfqd->serving_type);
 +
 +	if (!cfqd->rq_queued)
- 		return NULL;
- 
--	return cfq_rb_first(&cfqd->service_tree);
++		return NULL;
++
 +	/* There is nothing to dispatch */
 +	if (!service_tree)
 +		return NULL;
@@ -9674,8 +9581,9 @@
 +
 +	cfqg = cfq_get_next_cfqg(cfqd);
 +	if (!cfqg)
-+		return NULL;
-+
+ 		return NULL;
+ 
+-	return cfq_rb_first(&cfqd->service_tree);
 +	for_each_cfqg_st(cfqg, i, j, st)
 +		if ((cfqq = cfq_rb_first(st)) != NULL)
 +			return cfqq;
@@ -9683,7 +9591,7 @@
  }
  
  /*
-@@ -945,14 +1654,8 @@ static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd)
+@@ -945,14 +1654,8 @@ static struct cfq_queue *cfq_get_next_qu
  static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd,
  					      struct cfq_queue *cfqq)
  {
@@ -9699,7 +9607,7 @@
  
  	__cfq_set_active_queue(cfqd, cfqq);
  	return cfqq;
-@@ -967,16 +1670,17 @@ static inline sector_t cfq_dist_from_last(struct cfq_data *cfqd,
+@@ -967,16 +1670,17 @@ static inline sector_t cfq_dist_from_las
  		return cfqd->last_position - blk_rq_pos(rq);
  }
  
@@ -9713,19 +9621,19 @@
 -	struct cfq_io_context *cic = cfqd->active_cic;
 -	sector_t sdist = cic->seek_mean;
 +	sector_t sdist = cfqq->seek_mean;
-+
-+	if (!sample_valid(cfqq->seek_samples))
-+		sdist = CFQQ_SEEK_THR;
  
 -	if (!sample_valid(cic->seek_samples))
 -		sdist = CIC_SEEK_THR;
++	if (!sample_valid(cfqq->seek_samples))
++		sdist = CFQQ_SEEK_THR;
++
 +	/* if seek_mean is big, using it as close criteria is meaningless */
 +	if (sdist > CFQQ_SEEK_THR && !for_preempt)
 +		sdist = CFQQ_SEEK_THR;
  
  	return cfq_dist_from_last(cfqd, rq) <= sdist;
  }
-@@ -1005,7 +1709,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
+@@ -1005,7 +1709,7 @@ static struct cfq_queue *cfqq_close(stru
  	 * will contain the closest sector.
  	 */
  	__cfqq = rb_entry(parent, struct cfq_queue, p_node);
@@ -9734,7 +9642,7 @@
  		return __cfqq;
  
  	if (blk_rq_pos(__cfqq->next_rq) < sector)
-@@ -1016,7 +1720,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
+@@ -1016,7 +1720,7 @@ static struct cfq_queue *cfqq_close(stru
  		return NULL;
  
  	__cfqq = rb_entry(node, struct cfq_queue, p_node);
@@ -9743,7 +9651,7 @@
  		return __cfqq;
  
  	return NULL;
-@@ -1033,16 +1737,19 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
+@@ -1033,16 +1737,19 @@ static struct cfq_queue *cfqq_close(stru
   * assumption.
   */
  static struct cfq_queue *cfq_close_cooperator(struct cfq_data *cfqd,
@@ -9768,7 +9676,7 @@
  		return NULL;
  
  	/*
-@@ -1054,14 +1761,55 @@ static struct cfq_queue *cfq_close_cooperator(struct cfq_data *cfqd,
+@@ -1054,14 +1761,55 @@ static struct cfq_queue *cfq_close_coope
  	if (!cfqq)
  		return NULL;
  
@@ -9827,7 +9735,7 @@
  static void cfq_arm_slice_timer(struct cfq_data *cfqd)
  {
  	struct cfq_queue *cfqq = cfqd->active_queue;
-@@ -1082,13 +1830,13 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
+@@ -1082,13 +1830,13 @@ static void cfq_arm_slice_timer(struct c
  	/*
  	 * idle is disabled, either manually or by past process history
  	 */
@@ -9844,7 +9752,7 @@
  		return;
  
  	/*
-@@ -1109,14 +1857,7 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
+@@ -1109,14 +1857,7 @@ static void cfq_arm_slice_timer(struct c
  
  	cfq_mark_cfqq_wait_request(cfqq);
  
@@ -9859,7 +9767,7 @@
  
  	mod_timer(&cfqd->idle_slice_timer, jiffies + sl);
  	cfq_log_cfqq(cfqd, cfqq, "arm_idle: %lu", sl);
-@@ -1139,6 +1880,7 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq)
+@@ -1139,6 +1880,7 @@ static void cfq_dispatch_insert(struct r
  
  	if (cfq_cfqq_sync(cfqq))
  		cfqd->sync_flight++;
@@ -9867,7 +9775,7 @@
  }
  
  /*
-@@ -1175,6 +1917,186 @@ cfq_prio_to_maxrq(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -1175,6 +1917,186 @@ cfq_prio_to_maxrq(struct cfq_data *cfqd,
  }
  
  /*
@@ -10054,7 +9962,7 @@
   * Select a queue for service. If we have a current active queue,
   * check whether to continue servicing it, or retrieve and set a new one.
   */
-@@ -1186,13 +2108,37 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
+@@ -1186,13 +2108,37 @@ static struct cfq_queue *cfq_select_queu
  	if (!cfqq)
  		goto new_queue;
  
@@ -10094,7 +10002,7 @@
  	 * The active queue has requests and isn't expired, allow it to
  	 * dispatch.
  	 */
-@@ -1203,11 +2149,14 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
+@@ -1203,11 +2149,14 @@ static struct cfq_queue *cfq_select_queu
  	 * If another queue has a request waiting within our mean seek
  	 * distance, let it run.  The expire code will check for close
  	 * cooperators and put the close queue at the front of the service
@@ -10112,7 +10020,7 @@
  
  	/*
  	 * No requests pending. If the active queue still has requests in
-@@ -1215,7 +2164,7 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
+@@ -1215,7 +2164,7 @@ static struct cfq_queue *cfq_select_queu
  	 * conditions to happen (or time out) before selecting a new queue.
  	 */
  	if (timer_pending(&cfqd->idle_slice_timer) ||
@@ -10121,7 +10029,7 @@
  		cfqq = NULL;
  		goto keep_queue;
  	}
-@@ -1223,6 +2172,13 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
+@@ -1223,6 +2172,13 @@ static struct cfq_queue *cfq_select_queu
  expire:
  	cfq_slice_expired(cfqd, 0);
  new_queue:
@@ -10135,7 +10043,7 @@
  	cfqq = cfq_set_active_queue(cfqd, new_cfqq);
  keep_queue:
  	return cfqq;
-@@ -1238,6 +2194,9 @@ static int __cfq_forced_dispatch_cfqq(struct cfq_queue *cfqq)
+@@ -1238,6 +2194,9 @@ static int __cfq_forced_dispatch_cfqq(st
  	}
  
  	BUG_ON(!list_empty(&cfqq->fifo));
@@ -10145,7 +10053,7 @@
  	return dispatched;
  }
  
-@@ -1250,11 +2209,10 @@ static int cfq_forced_dispatch(struct cfq_data *cfqd)
+@@ -1250,11 +2209,10 @@ static int cfq_forced_dispatch(struct cf
  	struct cfq_queue *cfqq;
  	int dispatched = 0;
  
@@ -10158,7 +10066,7 @@
  	BUG_ON(cfqd->busy_queues);
  
  	cfq_log(cfqd, "forced_dispatch=%d", dispatched);
-@@ -1268,7 +2226,7 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -1268,7 +2226,7 @@ static bool cfq_may_dispatch(struct cfq_
  	/*
  	 * Drain async requests before we start sync IO
  	 */
@@ -10167,7 +10075,7 @@
  		return false;
  
  	/*
-@@ -1298,9 +2256,9 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -1298,9 +2256,9 @@ static bool cfq_may_dispatch(struct cfq_
  			return false;
  
  		/*
@@ -10179,7 +10087,7 @@
  	}
  
  	/*
-@@ -1309,7 +2267,7 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
+@@ -1309,7 +2267,7 @@ static bool cfq_may_dispatch(struct cfq_
  	 * based on the last sync IO we serviced
  	 */
  	if (!cfq_cfqq_sync(cfqq) && cfqd->cfq_latency) {
@@ -10188,7 +10096,7 @@
  		unsigned int depth;
  
  		depth = last_sync / cfqd->cfq_slice[1];
-@@ -1407,11 +2365,13 @@ static int cfq_dispatch_requests(struct request_queue *q, int force)
+@@ -1407,11 +2365,13 @@ static int cfq_dispatch_requests(struct
   * task holds one reference to the queue, dropped when task exits. each rq
   * in-flight on this queue also holds a reference, dropped when rq is freed.
   *
@@ -10202,7 +10110,7 @@
  
  	BUG_ON(atomic_read(&cfqq->ref) <= 0);
  
-@@ -1421,14 +2381,19 @@ static void cfq_put_queue(struct cfq_queue *cfqq)
+@@ -1421,14 +2381,19 @@ static void cfq_put_queue(struct cfq_que
  	cfq_log_cfqq(cfqd, cfqq, "put_queue");
  	BUG_ON(rb_first(&cfqq->sort_list));
  	BUG_ON(cfqq->allocated[READ] + cfqq->allocated[WRITE]);
@@ -10223,7 +10131,7 @@
  }
  
  /*
-@@ -1518,11 +2483,29 @@ static void cfq_free_io_context(struct io_context *ioc)
+@@ -1518,11 +2483,29 @@ static void cfq_free_io_context(struct i
  
  static void cfq_exit_cfqq(struct cfq_data *cfqd, struct cfq_queue *cfqq)
  {
@@ -10253,7 +10161,7 @@
  	cfq_put_queue(cfqq);
  }
  
-@@ -1703,14 +2686,51 @@ static void cfq_init_cfqq(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -1709,14 +2692,51 @@ static void cfq_init_cfqq(struct cfq_dat
  	cfqq->pid = pid;
  }
  
@@ -10305,7 +10213,7 @@
  	cic = cfq_cic_lookup(cfqd, ioc);
  	/* cic always exists here */
  	cfqq = cic_to_cfqq(cic, is_sync);
-@@ -1741,6 +2761,7 @@ retry:
+@@ -1747,6 +2767,7 @@ retry:
  		if (cfqq) {
  			cfq_init_cfqq(cfqd, cfqq, current->pid, is_sync);
  			cfq_init_prio_data(cfqq, ioc);
@@ -10313,7 +10221,7 @@
  			cfq_log_cfqq(cfqd, cfqq, "alloced");
  		} else
  			cfqq = &cfqd->oom_cfqq;
-@@ -1932,6 +2953,10 @@ out:
+@@ -1945,6 +2966,10 @@ out:
  	if (unlikely(ioc->ioprio_changed))
  		cfq_ioc_set_ioprio(ioc);
  
@@ -10324,7 +10232,7 @@
  	return cic;
  err_free:
  	cfq_cic_free(cic);
-@@ -1952,33 +2977,33 @@ cfq_update_io_thinktime(struct cfq_data *cfqd, struct cfq_io_context *cic)
+@@ -1965,33 +2990,33 @@ cfq_update_io_thinktime(struct cfq_data
  }
  
  static void
@@ -10371,7 +10279,7 @@
  }
  
  /*
-@@ -1999,14 +3024,15 @@ cfq_update_idle_window(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -2012,14 +3037,15 @@ cfq_update_idle_window(struct cfq_data *
  
  	enable_idle = old_idle = cfq_cfqq_idle_window(cfqq);
  
@@ -10392,7 +10300,7 @@
  			enable_idle = 0;
  		else
  			enable_idle = 1;
-@@ -2035,9 +3061,6 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
+@@ -2048,9 +3074,6 @@ cfq_should_preempt(struct cfq_data *cfqd
  	if (!cfqq)
  		return false;
  
@@ -10402,7 +10310,7 @@
  	if (cfq_class_idle(new_cfqq))
  		return false;
  
-@@ -2045,12 +3068,31 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
+@@ -2058,12 +3081,31 @@ cfq_should_preempt(struct cfq_data *cfqd
  		return true;
  
  	/*
@@ -10434,7 +10342,7 @@
  	/*
  	 * So both queues are sync. Let the new request get disk time if
  	 * it's a metadata request and the current queue is doing regular IO.
-@@ -2071,16 +3113,8 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
+@@ -2084,16 +3126,8 @@ cfq_should_preempt(struct cfq_data *cfqd
  	 * if this request is as-good as one we would expect from the
  	 * current cfqq, let it preempt
  	 */
@@ -10452,7 +10360,7 @@
  
  	return false;
  }
-@@ -2121,10 +3155,10 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -2134,10 +3168,10 @@ cfq_rq_enqueued(struct cfq_data *cfqd, s
  		cfqq->meta_pending++;
  
  	cfq_update_io_thinktime(cfqd, cic);
@@ -10465,7 +10373,7 @@
  
  	if (cfqq == cfqd->active_queue) {
  		/*
-@@ -2141,9 +3175,10 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
+@@ -2154,9 +3188,10 @@ cfq_rq_enqueued(struct cfq_data *cfqd, s
  			if (blk_rq_bytes(rq) > PAGE_CACHE_SIZE ||
  			    cfqd->busy_queues > 1) {
  				del_timer(&cfqd->idle_slice_timer);
@@ -10479,7 +10387,7 @@
  		}
  	} else if (cfq_should_preempt(cfqd, cfqq, rq)) {
  		/*
-@@ -2165,10 +3200,9 @@ static void cfq_insert_request(struct request_queue *q, struct request *rq)
+@@ -2178,10 +3213,9 @@ static void cfq_insert_request(struct re
  	cfq_log_cfqq(cfqd, cfqq, "insert_request");
  	cfq_init_prio_data(cfqq, RQ_CIC(rq)->ioc);
  
@@ -10491,7 +10399,7 @@
  
  	cfq_rq_enqueued(cfqd, cfqq, rq);
  }
-@@ -2179,23 +3213,64 @@ static void cfq_insert_request(struct request_queue *q, struct request *rq)
+@@ -2192,23 +3226,64 @@ static void cfq_insert_request(struct re
   */
  static void cfq_update_hw_tag(struct cfq_data *cfqd)
  {
@@ -10532,7 +10440,9 @@
 +static bool cfq_should_wait_busy(struct cfq_data *cfqd, struct cfq_queue *cfqq)
 +{
 +	struct cfq_io_context *cic = cfqd->active_cic;
-+
+ 
+-	cfqd->hw_tag_samples = 0;
+-	cfqd->rq_in_driver_peak = 0;
 +	/* If there are other queues in the group, don't wait */
 +	if (cfqq->cfqg->nr_cfqq > 1)
 +		return false;
@@ -10554,14 +10464,12 @@
 +	 */
 +	if (cfqq->slice_end - jiffies == 1)
 +		return true;
- 
--	cfqd->hw_tag_samples = 0;
--	cfqd->rq_in_driver_peak = 0;
++
 +	return false;
  }
  
  static void cfq_completed_request(struct request_queue *q, struct request *rq)
-@@ -2206,7 +3281,7 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
+@@ -2219,7 +3294,7 @@ static void cfq_completed_request(struct
  	unsigned long now;
  
  	now = jiffies;
@@ -10570,7 +10478,7 @@
  
  	cfq_update_hw_tag(cfqd);
  
-@@ -2220,7 +3295,8 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
+@@ -2233,7 +3308,8 @@ static void cfq_completed_request(struct
  
  	if (sync) {
  		RQ_CIC(rq)->last_end_request = now;
@@ -10580,12 +10488,17 @@
  	}
  
  	/*
-@@ -2234,18 +3310,32 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
+@@ -2247,18 +3323,32 @@ static void cfq_completed_request(struct
  			cfq_set_prio_slice(cfqd, cfqq);
  			cfq_clear_cfqq_slice_new(cfqq);
  		}
 +
-+		/*
+ 		/*
+-		 * If there are no requests waiting in this queue, and
+-		 * there are other queues ready to issue requests, AND
+-		 * those other queues are issuing requests within our
+-		 * mean seek distance, give them a chance to run instead
+-		 * of idling.
 +		 * Should we wait for next request to come in before we expire
 +		 * the queue.
 +		 */
@@ -10594,12 +10507,7 @@
 +			cfq_mark_cfqq_wait_busy(cfqq);
 +		}
 +
- 		/*
--		 * If there are no requests waiting in this queue, and
--		 * there are other queues ready to issue requests, AND
--		 * those other queues are issuing requests within our
--		 * mean seek distance, give them a chance to run instead
--		 * of idling.
++		/*
 +		 * Idling is not enabled on:
 +		 * - expired queues
 +		 * - idle-priority queues
@@ -10621,7 +10529,7 @@
  	}
  
  	if (!rq_in_driver(cfqd))
-@@ -2269,12 +3359,10 @@ static void cfq_prio_boost(struct cfq_queue *cfqq)
+@@ -2282,12 +3372,10 @@ static void cfq_prio_boost(struct cfq_qu
  			cfqq->ioprio = IOPRIO_NORM;
  	} else {
  		/*
@@ -10637,7 +10545,7 @@
  	}
  }
  
-@@ -2338,6 +3426,35 @@ static void cfq_put_request(struct request *rq)
+@@ -2351,6 +3439,35 @@ static void cfq_put_request(struct reque
  	}
  }
  
@@ -10673,7 +10581,7 @@
  /*
   * Allocate cfq data structures associated with this request.
   */
-@@ -2360,10 +3477,30 @@ cfq_set_request(struct request_queue *q, struct request *rq, gfp_t gfp_mask)
+@@ -2373,10 +3490,30 @@ cfq_set_request(struct request_queue *q,
  	if (!cic)
  		goto queue_fail;
  
@@ -10704,7 +10612,7 @@
  	}
  
  	cfqq->allocated[rw]++;
-@@ -2438,6 +3575,11 @@ static void cfq_idle_slice_timer(unsigned long data)
+@@ -2451,6 +3588,11 @@ static void cfq_idle_slice_timer(unsigne
  		 */
  		if (!RB_EMPTY_ROOT(&cfqq->sort_list))
  			goto out_kick;
@@ -10716,7 +10624,7 @@
  	}
  expire:
  	cfq_slice_expired(cfqd, timed_out);
-@@ -2468,6 +3610,11 @@ static void cfq_put_async_queues(struct cfq_data *cfqd)
+@@ -2481,6 +3623,11 @@ static void cfq_put_async_queues(struct
  		cfq_put_queue(cfqd->async_idle_cfqq);
  }
  
@@ -10728,7 +10636,7 @@
  static void cfq_exit_queue(struct elevator_queue *e)
  {
  	struct cfq_data *cfqd = e->elevator_data;
-@@ -2489,25 +3636,49 @@ static void cfq_exit_queue(struct elevator_queue *e)
+@@ -2502,25 +3649,49 @@ static void cfq_exit_queue(struct elevat
  	}
  
  	cfq_put_async_queues(cfqd);
@@ -10759,13 +10667,13 @@
 -	cfqd->service_tree = CFQ_RB_ROOT;
 +	/* Init root service tree */
 +	cfqd->grp_service_tree = CFQ_RB_ROOT;
-+
+ 
 +	/* Init root group */
 +	cfqg = &cfqd->root_group;
 +	for_each_cfqg_st(cfqg, i, j, st)
 +		*st = CFQ_RB_ROOT;
 +	RB_CLEAR_NODE(&cfqg->rb_node);
- 
++
 +	/* Give preference to root group over other groups */
 +	cfqg->weight = 2*BLKIO_WEIGHT_DEFAULT;
 +
@@ -10781,7 +10689,7 @@
  	/*
  	 * Not strictly needed (since RB_ROOT just clears the node and we
  	 * zeroed cfqd on alloc), but better be safe in case someone decides
-@@ -2523,6 +3694,7 @@ static void *cfq_init_queue(struct request_queue *q)
+@@ -2536,6 +3707,7 @@ static void *cfq_init_queue(struct reque
  	 */
  	cfq_init_cfqq(cfqd, &cfqd->oom_cfqq, 1, 0);
  	atomic_inc(&cfqd->oom_cfqq.ref);
@@ -10789,7 +10697,7 @@
  
  	INIT_LIST_HEAD(&cfqd->cic_list);
  
-@@ -2544,8 +3716,14 @@ static void *cfq_init_queue(struct request_queue *q)
+@@ -2557,8 +3729,14 @@ static void *cfq_init_queue(struct reque
  	cfqd->cfq_slice_async_rq = cfq_slice_async_rq;
  	cfqd->cfq_slice_idle = cfq_slice_idle;
  	cfqd->cfq_latency = 1;
@@ -10806,7 +10714,7 @@
  	return cfqd;
  }
  
-@@ -2614,6 +3792,7 @@ SHOW_FUNCTION(cfq_slice_sync_show, cfqd->cfq_slice[1], 1);
+@@ -2627,6 +3805,7 @@ SHOW_FUNCTION(cfq_slice_sync_show, cfqd-
  SHOW_FUNCTION(cfq_slice_async_show, cfqd->cfq_slice[0], 1);
  SHOW_FUNCTION(cfq_slice_async_rq_show, cfqd->cfq_slice_async_rq, 0);
  SHOW_FUNCTION(cfq_low_latency_show, cfqd->cfq_latency, 0);
@@ -10814,7 +10722,7 @@
  #undef SHOW_FUNCTION
  
  #define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX, __CONV)			\
-@@ -2646,6 +3825,7 @@ STORE_FUNCTION(cfq_slice_async_store, &cfqd->cfq_slice[0], 1, UINT_MAX, 1);
+@@ -2659,6 +3838,7 @@ STORE_FUNCTION(cfq_slice_async_store, &c
  STORE_FUNCTION(cfq_slice_async_rq_store, &cfqd->cfq_slice_async_rq, 1,
  		UINT_MAX, 0);
  STORE_FUNCTION(cfq_low_latency_store, &cfqd->cfq_latency, 0, 1, 0);
@@ -10822,7 +10730,7 @@
  #undef STORE_FUNCTION
  
  #define CFQ_ATTR(name) \
-@@ -2662,6 +3842,7 @@ static struct elv_fs_entry cfq_attrs[] = {
+@@ -2675,6 +3855,7 @@ static struct elv_fs_entry cfq_attrs[] =
  	CFQ_ATTR(slice_async_rq),
  	CFQ_ATTR(slice_idle),
  	CFQ_ATTR(low_latency),
@@ -10830,7 +10738,7 @@
  	__ATTR_NULL
  };
  
-@@ -2691,6 +3872,17 @@ static struct elevator_type iosched_cfq = {
+@@ -2704,6 +3885,17 @@ static struct elevator_type iosched_cfq
  	.elevator_owner =	THIS_MODULE,
  };
  
@@ -10848,7 +10756,7 @@
  static int __init cfq_init(void)
  {
  	/*
-@@ -2705,6 +3897,7 @@ static int __init cfq_init(void)
+@@ -2718,6 +3910,7 @@ static int __init cfq_init(void)
  		return -ENOMEM;
  
  	elv_register(&iosched_cfq);
@@ -10856,7 +10764,7 @@
  
  	return 0;
  }
-@@ -2712,6 +3905,7 @@ static int __init cfq_init(void)
+@@ -2725,6 +3918,7 @@ static int __init cfq_init(void)
  static void __exit cfq_exit(void)
  {
  	DECLARE_COMPLETION_ONSTACK(all_gone);
@@ -10864,11 +10772,9 @@
  	elv_unregister(&iosched_cfq);
  	ioc_gone = &all_gone;
  	/* ioc_gone's update must be visible before reading ioc_count */
-diff --git a/block/elevator.c b/block/elevator.c
-index a847046..7e0fe67 100644
 --- a/block/elevator.c
 +++ b/block/elevator.c
-@@ -959,12 +959,12 @@ void elv_unregister(struct elevator_type *e)
+@@ -959,12 +959,12 @@ void elv_unregister(struct elevator_type
  	 */
  	if (e->ops.trim) {
  		read_lock(&tasklist_lock);
@@ -10883,8 +10789,6 @@
  		read_unlock(&tasklist_lock);
  	}
  
-diff --git a/block/genhd.c b/block/genhd.c
-index 517e433..c97c1d1 100644
 --- a/block/genhd.c
 +++ b/block/genhd.c
 @@ -22,9 +22,7 @@
@@ -10897,7 +10801,7 @@
  
  /* for extended dynamic devt allocation, currently only one major is used */
  #define MAX_EXT_DEVT		(1 << MINORBITS)
-@@ -793,7 +791,7 @@ static int __init genhd_device_init(void)
+@@ -793,7 +791,7 @@ static int __init genhd_device_init(void
  {
  	int error;
  
@@ -10906,7 +10810,7 @@
  	error = class_register(&block_class);
  	if (unlikely(error))
  		return error;
-@@ -802,10 +800,10 @@ static int __init genhd_device_init(void)
+@@ -802,10 +800,10 @@ static int __init genhd_device_init(void
  
  	register_blkdev(BLOCK_EXT_MAJOR, "blkext");
  
@@ -10921,7 +10825,7 @@
  	return 0;
  }
  
-@@ -997,6 +995,7 @@ static void disk_release(struct device *dev)
+@@ -997,6 +995,7 @@ static void disk_release(struct device *
  struct class block_class = {
  	.name		= "block",
  };
@@ -10929,8 +10833,6 @@
  
  static char *block_devnode(struct device *dev, mode_t *mode)
  {
-diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
-index ee37727..0361045 100644
 --- a/drivers/base/Kconfig
 +++ b/drivers/base/Kconfig
 @@ -10,7 +10,7 @@ config UEVENT_HELPER_PATH
@@ -10942,11 +10844,9 @@
  	help
  	  This creates a tmpfs filesystem, and mounts it at bootup
  	  and mounts it at /dev. The kernel driver core creates device
-diff --git a/drivers/base/base.h b/drivers/base/base.h
-index 2ca7f5b..88d57ee 100644
 --- a/drivers/base/base.h
 +++ b/drivers/base/base.h
-@@ -129,7 +129,12 @@ extern char *make_class_name(const char *name, struct kobject *kobj);
+@@ -129,7 +129,12 @@ extern char *make_class_name(const char
  
  extern int devres_release_all(struct device *dev);
  
@@ -10959,11 +10859,9 @@
  
  #if defined(CONFIG_MODULES) && defined(CONFIG_SYSFS)
  extern void module_add_driver(struct module *mod, struct device_driver *drv);
-diff --git a/drivers/base/bus.c b/drivers/base/bus.c
-index 63c143e..5038fe8 100644
 --- a/drivers/base/bus.c
 +++ b/drivers/base/bus.c
-@@ -439,21 +439,20 @@ static void device_remove_attrs(struct bus_type *bus, struct device *dev)
+@@ -439,21 +439,20 @@ static void device_remove_attrs(struct b
  	}
  }
  
@@ -10992,8 +10890,6 @@
  
  /**
   * bus_add_device - add device to bus
-diff --git a/drivers/base/class.c b/drivers/base/class.c
-index 6e2c3b0..ac27503 100644
 --- a/drivers/base/class.c
 +++ b/drivers/base/class.c
 @@ -19,6 +19,8 @@
@@ -11021,7 +10917,7 @@
  
  int class_create_file(struct class *cls, const struct class_attribute *attr)
  {
-@@ -173,14 +181,14 @@ int __class_register(struct class *cls, struct lock_class_key *key)
+@@ -173,14 +181,14 @@ int __class_register(struct class *cls,
  
  	/* set the default /sys/dev directory for devices of this class */
  	if (!cls->dev_kobj)
@@ -11049,7 +10945,7 @@
  char *make_class_name(const char *name, struct kobject *kobj)
  {
  	char *class_name;
-@@ -282,7 +289,6 @@ char *make_class_name(const char *name, struct kobject *kobj)
+@@ -282,7 +289,6 @@ char *make_class_name(const char *name,
  	strcat(class_name, kobject_name(kobj));
  	return class_name;
  }
@@ -11057,7 +10953,7 @@
  
  /**
   * class_dev_iter_init - initialize class device iterator
-@@ -508,7 +514,7 @@ struct class_compat *class_compat_register(const char *name)
+@@ -508,7 +514,7 @@ struct class_compat *class_compat_regist
  	cls = kmalloc(sizeof(struct class_compat), GFP_KERNEL);
  	if (!cls)
  		return NULL;
@@ -11066,7 +10962,7 @@
  	if (!cls->kobj) {
  		kfree(cls);
  		return NULL;
-@@ -577,13 +583,20 @@ void class_compat_remove_link(struct class_compat *cls, struct device *dev,
+@@ -577,13 +583,20 @@ void class_compat_remove_link(struct cla
  }
  EXPORT_SYMBOL_GPL(class_compat_remove_link);
  
@@ -11090,8 +10986,6 @@
  
  EXPORT_SYMBOL_GPL(class_create_file);
  EXPORT_SYMBOL_GPL(class_remove_file);
-diff --git a/drivers/base/core.c b/drivers/base/core.c
-index f33d768..49ec490 100644
 --- a/drivers/base/core.c
 +++ b/drivers/base/core.c
 @@ -23,15 +23,22 @@
@@ -11117,7 +11011,7 @@
  
  #ifdef CONFIG_BLOCK
  static inline int device_is_not_partition(struct device *dev)
-@@ -192,7 +199,9 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
+@@ -192,7 +199,9 @@ static int dev_uevent(struct kset *kset,
  	if (dev->driver)
  		add_uevent_var(env, "DRIVER=%s", dev->driver->name);
  
@@ -11128,7 +11022,7 @@
  	if (dev->class) {
  		struct device *parent = dev->parent;
  
-@@ -221,7 +230,7 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
+@@ -221,7 +230,7 @@ static int dev_uevent(struct kset *kset,
  			add_uevent_var(env, "PHYSDEVDRIVER=%s",
  				       dev->driver->name);
  	}
@@ -11137,7 +11031,7 @@
  
  	/* have the bus specific function add its stuff */
  	if (dev->bus && dev->bus->uevent) {
-@@ -438,8 +447,9 @@ static ssize_t show_dev(struct device *dev, struct device_attribute *attr,
+@@ -438,8 +447,9 @@ static ssize_t show_dev(struct device *d
  static struct device_attribute devt_attr =
  	__ATTR(dev, S_IRUGO, show_dev, NULL);
  
@@ -11148,7 +11042,7 @@
  
  /**
   * device_create_file - create sysfs attribute file for device.
-@@ -557,7 +567,7 @@ static void klist_children_put(struct klist_node *n)
+@@ -557,7 +567,7 @@ static void klist_children_put(struct kl
   */
  void device_initialize(struct device *dev)
  {
@@ -11157,7 +11051,7 @@
  	kobject_init(&dev->kobj, &device_ktype);
  	INIT_LIST_HEAD(&dev->dma_pools);
  	init_MUTEX(&dev->sem);
-@@ -568,8 +578,7 @@ void device_initialize(struct device *dev)
+@@ -568,8 +578,7 @@ void device_initialize(struct device *de
  	set_dev_node(dev, -1);
  }
  
@@ -11167,7 +11061,7 @@
  					 struct device *parent)
  {
  	/* class devices without a parent live in /sys/class/<classname>/ */
-@@ -582,22 +591,25 @@ static struct kobject *get_device_parent(struct device *dev,
+@@ -582,22 +591,25 @@ static struct kobject *get_device_parent
  	return NULL;
  }
  
@@ -11199,7 +11093,7 @@
  					 struct device *parent)
  {
  	int retval;
-@@ -658,7 +670,7 @@ static struct kobject *get_device_parent(struct device *dev,
+@@ -658,7 +670,7 @@ static struct kobject *get_device_parent
  	return NULL;
  }
  
@@ -11208,7 +11102,7 @@
  {
  	/* see if we live in a "glue" directory */
  	if (!glue_dir || !dev->class ||
-@@ -668,11 +680,36 @@ static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir)
+@@ -668,11 +680,36 @@ static void cleanup_glue_dir(struct devi
  	kobject_put(glue_dir);
  }
  
@@ -11247,7 +11141,7 @@
  
  static void setup_parent(struct device *dev, struct device *parent)
  {
-@@ -695,7 +732,9 @@ static int device_add_class_symlinks(struct device *dev)
+@@ -695,7 +732,9 @@ static int device_add_class_symlinks(str
  	if (error)
  		goto out;
  
@@ -11258,7 +11152,7 @@
  	/* stacked class devices need a symlink in the class directory */
  	if (dev->kobj.parent != &dev->class->p->class_subsys.kobj &&
  	    device_is_not_partition(dev)) {
-@@ -720,7 +759,7 @@ static int device_add_class_symlinks(struct device *dev)
+@@ -720,7 +759,7 @@ static int device_add_class_symlinks(str
  					  &parent->kobj,
  					  "device");
  		if (error)
@@ -11267,7 +11161,7 @@
  
  		class_name = make_class_name(dev->class->name,
  						&dev->kobj);
-@@ -736,12 +775,14 @@ static int device_add_class_symlinks(struct device *dev)
+@@ -736,12 +775,14 @@ static int device_add_class_symlinks(str
  out_device:
  	if (dev->parent && device_is_not_partition(dev))
  		sysfs_remove_link(&dev->kobj, "device");
@@ -11301,7 +11195,7 @@
  out_subsys:
  	sysfs_remove_link(&dev->kobj, "subsystem");
  out:
-@@ -771,7 +810,9 @@ static void device_remove_class_symlinks(struct device *dev)
+@@ -771,7 +810,9 @@ static void device_remove_class_symlinks
  	if (!dev->class)
  		return;
  
@@ -11312,7 +11206,7 @@
  	if (dev->parent && device_is_not_partition(dev)) {
  		char *class_name;
  
-@@ -787,13 +828,14 @@ static void device_remove_class_symlinks(struct device *dev)
+@@ -787,13 +828,14 @@ static void device_remove_class_symlinks
  	    device_is_not_partition(dev))
  		sysfs_remove_link(&dev->class->p->class_subsys.kobj,
  				  dev_name(dev));
@@ -11330,7 +11224,7 @@
  	sysfs_remove_link(&dev->kobj, "subsystem");
  }
  
-@@ -832,7 +874,7 @@ static struct kobject *device_to_dev_kobj(struct device *dev)
+@@ -832,7 +874,7 @@ static struct kobject *device_to_dev_kob
  	if (dev->class)
  		kobj = dev->class->dev_kobj;
  	else
@@ -11339,7 +11233,7 @@
  
  	return kobj;
  }
-@@ -1270,31 +1312,43 @@ struct device *device_find_child(struct device *parent, void *data,
+@@ -1270,31 +1312,43 @@ struct device *device_find_child(struct
  	return child;
  }
  
@@ -11396,7 +11290,7 @@
  
  EXPORT_SYMBOL_GPL(device_for_each_child);
  EXPORT_SYMBOL_GPL(device_find_child);
-@@ -1556,10 +1610,8 @@ int device_rename(struct device *dev, char *new_name)
+@@ -1556,10 +1610,8 @@ int device_rename(struct device *dev, ch
  	pr_debug("device: '%s': %s: renaming to '%s'\n", dev_name(dev),
  		 __func__, new_name);
  
@@ -11408,7 +11302,7 @@
  
  	old_device_name = kstrdup(dev_name(dev), GFP_KERNEL);
  	if (!old_device_name) {
-@@ -1571,8 +1623,7 @@ int device_rename(struct device *dev, char *new_name)
+@@ -1571,8 +1623,7 @@ int device_rename(struct device *dev, ch
  	if (error)
  		goto out;
  
@@ -11418,7 +11312,7 @@
  		new_class_name = make_class_name(dev->class->name, &dev->kobj);
  		if (new_class_name) {
  			error = sysfs_create_link_nowarn(&dev->parent->kobj,
-@@ -1583,8 +1634,7 @@ int device_rename(struct device *dev, char *new_name)
+@@ -1583,8 +1634,7 @@ int device_rename(struct device *dev, ch
  			sysfs_remove_link(&dev->parent->kobj, old_class_name);
  		}
  	}
@@ -11428,7 +11322,7 @@
  		error = sysfs_create_link_nowarn(&dev->class->p->class_subsys.kobj,
  						 &dev->kobj, dev_name(dev));
  		if (error)
-@@ -1592,7 +1642,6 @@ int device_rename(struct device *dev, char *new_name)
+@@ -1592,7 +1642,6 @@ int device_rename(struct device *dev, ch
  		sysfs_remove_link(&dev->class->p->class_subsys.kobj,
  				  old_device_name);
  	}
@@ -11436,7 +11330,7 @@
  
  out:
  	put_device(dev);
-@@ -1610,9 +1659,11 @@ static int device_move_class_links(struct device *dev,
+@@ -1610,9 +1659,11 @@ static int device_move_class_links(struc
  				   struct device *new_parent)
  {
  	int error = 0;
@@ -11449,7 +11343,7 @@
  	class_name = make_class_name(dev->class->name, &dev->kobj);
  	if (!class_name) {
  		error = -ENOMEM;
-@@ -1636,14 +1687,14 @@ static int device_move_class_links(struct device *dev,
+@@ -1636,14 +1687,14 @@ static int device_move_class_links(struc
  out:
  	kfree(class_name);
  	return error;
@@ -11493,8 +11387,6 @@
 +	kobject_put(ve_dev_kobj);
  	async_synchronize_full();
  }
-diff --git a/drivers/base/sys.c b/drivers/base/sys.c
-index 0d90390..d3bfe47 100644
 --- a/drivers/base/sys.c
 +++ b/drivers/base/sys.c
 @@ -20,6 +20,8 @@
@@ -11506,7 +11398,7 @@
  #include <linux/device.h>
  #include <linux/mutex.h>
  #include <linux/interrupt.h>
-@@ -494,7 +496,7 @@ EXPORT_SYMBOL_GPL(sysdev_resume);
+@@ -500,7 +502,7 @@ EXPORT_SYMBOL_GPL(sysdev_resume);
  
  int __init system_bus_init(void)
  {
@@ -11515,8 +11407,6 @@
  	if (!system_kset)
  		return -ENOMEM;
  	return 0;
-diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index 6aad99e..e1b1536 100644
 --- a/drivers/char/Kconfig
 +++ b/drivers/char/Kconfig
 @@ -458,7 +458,7 @@ config UNIX98_PTYS
@@ -11528,11 +11418,9 @@
  	default n
  	---help---
  	  Enable support for multiple instances of devpts filesystem.
-diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
-index 950837c..b25fa54 100644
 --- a/drivers/char/keyboard.c
 +++ b/drivers/char/keyboard.c
-@@ -162,6 +162,7 @@ unsigned char kbd_sysrq_xlate[KEY_MAX + 1] =
+@@ -162,6 +162,7 @@ unsigned char kbd_sysrq_xlate[KEY_MAX +
  static int sysrq_down;
  static int sysrq_alt_use;
  #endif
@@ -11540,7 +11428,7 @@
  static int sysrq_alt;
  
  /*
-@@ -1067,6 +1068,9 @@ static int emulate_raw(struct vc_data *vc, unsigned int keycode,
+@@ -1067,6 +1068,9 @@ static int emulate_raw(struct vc_data *v
  {
  	int code;
  
@@ -11550,7 +11438,7 @@
  	switch (keycode) {
  		case KEY_PAUSE:
  			put_queue(vc, 0xe1);
-@@ -1085,6 +1089,7 @@ static int emulate_raw(struct vc_data *vc, unsigned int keycode,
+@@ -1085,6 +1089,7 @@ static int emulate_raw(struct vc_data *v
  			break;
  
  		case KEY_SYSRQ:
@@ -11558,7 +11446,7 @@
  			/*
  			 * Real AT keyboards (that's what we're trying
  			 * to emulate here emit 0xe0 0x2a 0xe0 0x37 when
-@@ -1179,7 +1184,8 @@ static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
+@@ -1179,7 +1184,8 @@ static void kbd_keycode(unsigned int key
  				printk(KERN_WARNING "keyboard.c: can't emulate rawmode for keycode %d\n", keycode);
  
  #ifdef CONFIG_MAGIC_SYSRQ	       /* Handle the SysRq Hack */
@@ -11568,8 +11456,6 @@
  		if (!sysrq_down) {
  			sysrq_down = down;
  			sysrq_alt_use = sysrq_alt;
-diff --git a/drivers/char/pty.c b/drivers/char/pty.c
-index 62f282e..2dd6714 100644
 --- a/drivers/char/pty.c
 +++ b/drivers/char/pty.c
 @@ -30,16 +30,22 @@
@@ -11597,7 +11483,7 @@
  	if (tty->driver->subtype == PTY_TYPE_MASTER)
  		WARN_ON(tty->count > 1);
  	else {
-@@ -58,8 +64,12 @@ static void pty_close(struct tty_struct *tty, struct file *filp)
+@@ -58,8 +64,12 @@ static void pty_close(struct tty_struct
  	if (tty->driver->subtype == PTY_TYPE_MASTER) {
  		set_bit(TTY_OTHER_CLOSED, &tty->flags);
  #ifdef CONFIG_UNIX98_PTYS
@@ -11611,7 +11497,7 @@
  #endif
  		tty_vhangup(tty->link);
  	}
-@@ -201,6 +211,10 @@ static int pty_open(struct tty_struct *tty, struct file *filp)
+@@ -201,6 +211,10 @@ static int pty_open(struct tty_struct *t
  	if (tty->link->count != 1)
  		goto out;
  
@@ -11622,7 +11508,7 @@
  	clear_bit(TTY_OTHER_CLOSED, &tty->link->flags);
  	set_bit(TTY_THROTTLED, &tty->flags);
  	retval = 0;
-@@ -358,9 +372,12 @@ static const struct tty_operations slave_pty_ops_bsd = {
+@@ -358,9 +372,12 @@ static const struct tty_operations slave
  	.resize = pty_resize
  };
  
@@ -11636,7 +11522,7 @@
  
  	if (legacy_count <= 0)
  		return;
-@@ -645,7 +662,7 @@ static int __ptmx_open(struct inode *inode, struct file *filp)
+@@ -645,7 +662,7 @@ static int __ptmx_open(struct inode *ino
  		return index;
  
  	mutex_lock(&tty_mutex);
@@ -11645,7 +11531,7 @@
  	mutex_unlock(&tty_mutex);
  
  	if (IS_ERR(tty)) {
-@@ -661,7 +678,7 @@ static int __ptmx_open(struct inode *inode, struct file *filp)
+@@ -661,7 +678,7 @@ static int __ptmx_open(struct inode *ino
  	if (retval)
  		goto out1;
  
@@ -11664,8 +11550,6 @@
  }
  
  #else
-diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
-index 44203ff..4288c77 100644
 --- a/drivers/char/sysrq.c
 +++ b/drivers/char/sysrq.c
 @@ -37,7 +37,10 @@
@@ -11679,7 +11563,7 @@
  
  #include <asm/ptrace.h>
  #include <asm/irq_regs.h>
-@@ -250,8 +253,8 @@ static struct sysrq_key_op sysrq_showallcpus_op = {
+@@ -250,8 +253,8 @@ static struct sysrq_key_op sysrq_showall
  static void sysrq_handle_showregs(int key, struct tty_struct *tty)
  {
  	struct pt_regs *regs = get_irq_regs();
@@ -11690,7 +11574,7 @@
  	perf_event_print_debug();
  }
  static struct sysrq_key_op sysrq_showregs_op = {
-@@ -303,6 +306,7 @@ static struct sysrq_key_op sysrq_ftrace_dump_op = {
+@@ -303,6 +306,7 @@ static struct sysrq_key_op sysrq_ftrace_
  static void sysrq_handle_showmem(int key, struct tty_struct *tty)
  {
  	show_mem();
@@ -11707,7 +11591,7 @@
  		if (p->mm && !is_global_init(p))
  			/* Not swapper, init nor kernel thread */
  			force_sig(sig, p);
-@@ -394,7 +398,267 @@ static struct sysrq_key_op sysrq_unrt_op = {
+@@ -394,7 +398,267 @@ static struct sysrq_key_op sysrq_unrt_op
  /* Key Operations table and lock */
  static DEFINE_SPINLOCK(sysrq_key_table_lock);
  
@@ -11976,7 +11860,7 @@
  	&sysrq_loglevel_op,		/* 0 */
  	&sysrq_loglevel_op,		/* 1 */
  	&sysrq_loglevel_op,		/* 2 */
-@@ -417,7 +681,11 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
+@@ -417,7 +681,11 @@ static struct sysrq_key_op *sysrq_key_ta
  	&sysrq_term_op,			/* e */
  	&sysrq_moom_op,			/* f */
  	/* g: May be registered for the kernel debugger */
@@ -11988,7 +11872,7 @@
  	NULL,				/* h - reserved for help */
  	&sysrq_kill_op,			/* i */
  #ifdef CONFIG_BLOCK
-@@ -449,8 +717,11 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
+@@ -449,8 +717,11 @@ static struct sysrq_key_op *sysrq_key_ta
  	/* y: May be registered on sparc64 for global register dump */
  	NULL,				/* y */
  	&sysrq_ftrace_dump_op,		/* z */
@@ -12000,7 +11884,7 @@
  /* key2index calculation, -1 on invalid index */
  static int sysrq_key_table_key2index(int key)
  {
-@@ -460,6 +731,10 @@ static int sysrq_key_table_key2index(int key)
+@@ -460,6 +731,10 @@ static int sysrq_key_table_key2index(int
  		retval = key - '0';
  	else if ((key >= 'a') && (key <= 'z'))
  		retval = key + 10 - 'a';
@@ -12011,7 +11895,7 @@
  	else
  		retval = -1;
  	return retval;
-@@ -470,21 +745,21 @@ static int sysrq_key_table_key2index(int key)
+@@ -470,21 +745,21 @@ static int sysrq_key_table_key2index(int
   */
  struct sysrq_key_op *__sysrq_get_key_op(int key)
  {
@@ -12040,7 +11924,7 @@
  }
  
  /*
-@@ -507,25 +782,25 @@ void __handle_sysrq(int key, struct tty_struct *tty, int check_mask)
+@@ -507,25 +782,25 @@ void __handle_sysrq(int key, struct tty_
  	 */
  	orig_log_level = console_loglevel;
  	console_loglevel = 7;
@@ -12072,7 +11956,7 @@
  			if (sysrq_key_table[i]) {
  				int j;
  
-@@ -555,7 +830,7 @@ void handle_sysrq(int key, struct tty_struct *tty)
+@@ -555,7 +830,7 @@ void handle_sysrq(int key, struct tty_st
  EXPORT_SYMBOL(handle_sysrq);
  
  static int __sysrq_swap_key_ops(int key, struct sysrq_key_op *insert_op_p,
@@ -12114,7 +11998,7 @@
  	}
  	return count;
  }
-@@ -607,7 +899,7 @@ static const struct file_operations proc_sysrq_trigger_operations = {
+@@ -607,7 +899,7 @@ static const struct file_operations proc
  
  static int __init sysrq_init(void)
  {
@@ -12123,11 +12007,9 @@
  	return 0;
  }
  module_init(sysrq_init);
-diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
-index 53ffcfc..2571f59 100644
 --- a/drivers/char/tty_io.c
 +++ b/drivers/char/tty_io.c
-@@ -96,6 +96,8 @@
+@@ -97,6 +97,8 @@
  #include <linux/delay.h>
  #include <linux/seq_file.h>
  #include <linux/serial.h>
@@ -12136,7 +12018,7 @@
  
  #include <linux/uaccess.h>
  #include <asm/system.h>
-@@ -106,6 +108,7 @@
+@@ -107,6 +109,7 @@
  
  #include <linux/kmod.h>
  #include <linux/nsproxy.h>
@@ -12144,7 +12026,7 @@
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -130,6 +133,7 @@ EXPORT_SYMBOL(tty_std_termios);
+@@ -131,6 +134,7 @@ EXPORT_SYMBOL(tty_std_termios);
     into this file */
  
  LIST_HEAD(tty_drivers);			/* linked list of tty drivers */
@@ -12152,7 +12034,7 @@
  
  /* Mutex to protect creating and releasing a tty. This is shared with
     vt.c for deeply disgusting hack reasons */
-@@ -166,7 +170,7 @@ static void proc_set_tty(struct task_struct *tsk, struct tty_struct *tty);
+@@ -167,7 +171,7 @@ static void proc_set_tty(struct task_str
  
  struct tty_struct *alloc_tty_struct(void)
  {
@@ -12161,7 +12043,7 @@
  }
  
  /**
-@@ -274,9 +278,29 @@ static struct tty_driver *get_tty_driver(dev_t device, int *index)
+@@ -275,9 +279,29 @@ static struct tty_driver *get_tty_driver
  		if (device < base || device >= base + p->num)
  			continue;
  		*index = device - base;
@@ -12192,7 +12074,7 @@
  }
  
  #ifdef CONFIG_CONSOLE_POLL
-@@ -1169,7 +1193,7 @@ int tty_init_termios(struct tty_struct *tty)
+@@ -1170,7 +1194,7 @@ int tty_init_termios(struct tty_struct *
  
  	tp = tty->driver->termios[idx];
  	if (tp == NULL) {
@@ -12201,7 +12083,7 @@
  		if (tp == NULL)
  			return -ENOMEM;
  		memcpy(tp, &tty->driver->init_termios,
-@@ -1297,7 +1321,7 @@ static int tty_reopen(struct tty_struct *tty)
+@@ -1298,7 +1322,7 @@ static int tty_reopen(struct tty_struct
   */
  
  struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx,
@@ -12210,7 +12092,7 @@
  {
  	struct tty_struct *tty;
  	int retval;
-@@ -1707,7 +1731,7 @@ void tty_release_dev(struct file *filp)
+@@ -1713,7 +1737,7 @@ void tty_release_dev(struct file *filp)
  
  static int __tty_open(struct inode *inode, struct file *filp)
  {
@@ -12219,7 +12101,7 @@
  	int noctty, retval;
  	struct tty_driver *driver;
  	int index;
-@@ -1731,6 +1755,7 @@ retry_open:
+@@ -1737,6 +1761,7 @@ retry_open:
  		}
  		driver = tty_driver_kref_get(tty->driver);
  		index = tty->index;
@@ -12227,7 +12109,7 @@
  		filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
  		/* noctty = 1; */
  		/* FIXME: Should we take a driver reference ? */
-@@ -1740,6 +1765,12 @@ retry_open:
+@@ -1746,6 +1771,12 @@ retry_open:
  #ifdef CONFIG_VT
  	if (device == MKDEV(TTY_MAJOR, 0)) {
  		extern struct tty_driver *console_driver;
@@ -12240,7 +12122,7 @@
  		driver = tty_driver_kref_get(console_driver);
  		index = fg_console;
  		noctty = 1;
-@@ -1748,6 +1779,12 @@ retry_open:
+@@ -1754,6 +1785,12 @@ retry_open:
  #endif
  	if (device == MKDEV(TTYAUX_MAJOR, 1)) {
  		struct tty_driver *console_driver = console_device(&index);
@@ -12253,7 +12135,7 @@
  		if (console_driver) {
  			driver = tty_driver_kref_get(console_driver);
  			if (driver) {
-@@ -1782,7 +1819,7 @@ got_driver:
+@@ -1788,7 +1825,7 @@ got_driver:
  		if (retval)
  			tty = ERR_PTR(retval);
  	} else
@@ -12262,7 +12144,7 @@
  
  	mutex_unlock(&tty_mutex);
  	tty_driver_kref_put(driver);
-@@ -2078,6 +2115,8 @@ static int tioccons(struct file *file)
+@@ -2084,6 +2121,8 @@ static int tioccons(struct file *file)
  {
  	if (!capable(CAP_SYS_ADMIN))
  		return -EPERM;
@@ -12271,7 +12153,7 @@
  	if (file->f_op->write == redirected_tty_write) {
  		struct file *f;
  		spin_lock(&redirect_lock);
-@@ -2658,7 +2697,7 @@ void __do_SAK(struct tty_struct *tty)
+@@ -2685,7 +2724,7 @@ void __do_SAK(struct tty_struct *tty)
  	/* Now kill any processes that happen to have the
  	 * tty open.
  	 */
@@ -12280,7 +12162,7 @@
  		if (p->signal->tty == tty) {
  			printk(KERN_NOTICE "SAK: killed process %d"
  			    " (%s): task_session(p)==tty->session\n",
-@@ -2690,7 +2729,7 @@ void __do_SAK(struct tty_struct *tty)
+@@ -2717,7 +2756,7 @@ void __do_SAK(struct tty_struct *tty)
  			spin_unlock(&p->files->file_lock);
  		}
  		task_unlock(p);
@@ -12289,7 +12171,7 @@
  	read_unlock(&tasklist_lock);
  #endif
  }
-@@ -2757,6 +2796,7 @@ void initialize_tty_struct(struct tty_struct *tty,
+@@ -2784,6 +2823,7 @@ void initialize_tty_struct(struct tty_st
  	tty->ops = driver->ops;
  	tty->index = idx;
  	tty_line_name(driver, idx, tty->name);
@@ -12297,7 +12179,7 @@
  }
  
  /**
-@@ -2849,6 +2889,7 @@ struct tty_driver *alloc_tty_driver(int lines)
+@@ -2876,6 +2916,7 @@ struct tty_driver *alloc_tty_driver(int
  		driver->magic = TTY_DRIVER_MAGIC;
  		driver->num = lines;
  		/* later we'll move allocation of tables here */
@@ -12305,7 +12187,7 @@
  	}
  	return driver;
  }
-@@ -2883,6 +2924,7 @@ static void destruct_tty_driver(struct kref *kref)
+@@ -2910,6 +2951,7 @@ static void destruct_tty_driver(struct k
  		kfree(p);
  		cdev_del(&driver->cdev);
  	}
@@ -12313,7 +12195,7 @@
  	kfree(driver);
  }
  
-@@ -2957,6 +2999,7 @@ int tty_register_driver(struct tty_driver *driver)
+@@ -2984,6 +3026,7 @@ int tty_register_driver(struct tty_drive
  	}
  
  	mutex_lock(&tty_mutex);
@@ -12321,7 +12203,7 @@
  	list_add(&driver->tty_drivers, &tty_drivers);
  	mutex_unlock(&tty_mutex);
  
-@@ -3130,3 +3173,43 @@ static int __init tty_init(void)
+@@ -3157,3 +3200,43 @@ static int __init tty_init(void)
  	return 0;
  }
  module_init(tty_init);
@@ -12365,8 +12247,6 @@
 +#endif
 +EXPORT_SYMBOL(init_ve_tty_class);
 +EXPORT_SYMBOL(fini_ve_tty_class);
-diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
-index c1791a6..99ebe54 100644
 --- a/drivers/char/vc_screen.c
 +++ b/drivers/char/vc_screen.c
 @@ -35,6 +35,8 @@
@@ -12401,11 +12281,9 @@
  }
  
  int __init vcs_init(void)
-diff --git a/drivers/net/Makefile b/drivers/net/Makefile
-index 246323d..3e91ef9 100644
 --- a/drivers/net/Makefile
 +++ b/drivers/net/Makefile
-@@ -41,6 +41,10 @@ ucc_geth_driver-objs := ucc_geth.o ucc_geth_ethtool.o
+@@ -42,6 +42,10 @@ ucc_geth_driver-objs := ucc_geth.o ucc_g
  
  obj-$(CONFIG_FSL_PQ_MDIO) += fsl_pq_mdio.o
  
@@ -12416,11 +12294,9 @@
  #
  # link order important here
  #
-diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
-index 1bc654a..3ecee33 100644
 --- a/drivers/net/loopback.c
 +++ b/drivers/net/loopback.c
-@@ -75,6 +75,12 @@ static netdev_tx_t loopback_xmit(struct sk_buff *skb,
+@@ -75,6 +75,12 @@ static netdev_tx_t loopback_xmit(struct
  	struct pcpu_lstats *pcpu_lstats, *lb_stats;
  	int len;
  
@@ -12433,7 +12309,7 @@
  	skb_orphan(skb);
  
  	skb->protocol = eth_type_trans(skb, dev);
-@@ -153,10 +159,16 @@ static void loopback_dev_free(struct net_device *dev)
+@@ -153,10 +159,16 @@ static void loopback_dev_free(struct net
  	free_netdev(dev);
  }
  
@@ -12450,7 +12326,7 @@
  };
  
  /*
-@@ -177,7 +189,8 @@ static void loopback_setup(struct net_device *dev)
+@@ -177,7 +189,8 @@ static void loopback_setup(struct net_de
  		| NETIF_F_NO_CSUM
  		| NETIF_F_HIGHDMA
  		| NETIF_F_LLTX
@@ -12460,9 +12336,6 @@
  	dev->ethtool_ops	= &loopback_ethtool_ops;
  	dev->header_ops		= &eth_header_ops;
  	dev->netdev_ops		= &loopback_ops;
-diff --git a/drivers/net/open_vznet.c b/drivers/net/open_vznet.c
-new file mode 100644
-index 0000000..79bf640
 --- /dev/null
 +++ b/drivers/net/open_vznet.c
 @@ -0,0 +1,244 @@
@@ -12710,8 +12583,6 @@
 +MODULE_AUTHOR("SWsoft <info at sw-soft.com>");
 +MODULE_DESCRIPTION("Virtuozzo Virtual Network Device");
 +MODULE_LICENSE("GPL v2");
-diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
-index 965adb6..091f629 100644
 --- a/drivers/net/ppp_generic.c
 +++ b/drivers/net/ppp_generic.c
 @@ -53,6 +53,9 @@
@@ -12724,7 +12595,7 @@
  #define PPP_VERSION	"2.4.2"
  
  /*
-@@ -366,8 +369,10 @@ static int ppp_open(struct inode *inode, struct file *file)
+@@ -366,8 +369,10 @@ static int ppp_open(struct inode *inode,
  	/*
  	 * This could (should?) be enforced by the permissions on /dev/ppp.
  	 */
@@ -12736,7 +12607,7 @@
  	return 0;
  }
  
-@@ -867,6 +872,9 @@ static __net_init int ppp_init_net(struct net *net)
+@@ -867,6 +872,9 @@ static __net_init int ppp_init_net(struc
  	struct ppp_net *pn;
  	int err;
  
@@ -12746,7 +12617,7 @@
  	pn = kzalloc(sizeof(*pn), GFP_KERNEL);
  	if (!pn)
  		return -ENOMEM;
-@@ -893,6 +901,9 @@ static __net_exit void ppp_exit_net(struct net *net)
+@@ -893,6 +901,9 @@ static __net_exit void ppp_exit_net(stru
  	struct ppp_net *pn;
  
  	pn = net_generic(net, ppp_net_id);
@@ -12756,7 +12627,7 @@
  	idr_destroy(&pn->units_idr);
  	/*
  	 * if someone has cached our net then
-@@ -1053,7 +1064,7 @@ static void ppp_setup(struct net_device *dev)
+@@ -1053,7 +1064,7 @@ static void ppp_setup(struct net_device
  	dev->tx_queue_len = 3;
  	dev->type = ARPHRD_PPP;
  	dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
@@ -12765,7 +12636,7 @@
  	dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
  }
  
-@@ -2568,16 +2579,16 @@ ppp_create_interface(struct net *net, int unit, int *retp)
+@@ -2568,16 +2579,16 @@ ppp_create_interface(struct net *net, in
  	 */
  	dev_net_set(dev, net);
  
@@ -12784,7 +12655,7 @@
  		if (unit_find(&pn->units_idr, unit))
  			goto out2; /* unit already exists */
  		/*
-@@ -2652,10 +2663,10 @@ static void ppp_shutdown_interface(struct ppp *ppp)
+@@ -2652,10 +2663,10 @@ static void ppp_shutdown_interface(struc
  		ppp->closing = 1;
  		ppp_unlock(ppp);
  		unregister_netdev(ppp->dev);
@@ -12855,8 +12726,6 @@
  }
  
  /* put unit number back to a pool */
-diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c
-index 2559991..9bf064c 100644
 --- a/drivers/net/pppoe.c
 +++ b/drivers/net/pppoe.c
 @@ -77,6 +77,7 @@
@@ -12867,7 +12736,7 @@
  
  #include <linux/nsproxy.h>
  #include <net/net_namespace.h>
-@@ -452,6 +453,8 @@ static int pppoe_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -452,6 +453,8 @@ static int pppoe_rcv(struct sk_buff *skb
  		goto drop;
  
  	pn = pppoe_pernet(dev_net(dev));
@@ -12876,7 +12745,7 @@
  
  	/* Note that get_item does a sock_hold(), so sk_pppox(po)
  	 * is known to be safe.
-@@ -494,6 +497,9 @@ static int pppoe_disc_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -494,6 +497,9 @@ static int pppoe_disc_rcv(struct sk_buff
  		goto abort;
  
  	pn = pppoe_pernet(dev_net(dev));
@@ -12886,7 +12755,7 @@
  	po = get_item(pn, ph->sid, eth_hdr(skb)->h_source, dev->ifindex);
  	if (po) {
  		struct sock *sk = sk_pppox(po);
-@@ -547,6 +553,9 @@ static int pppoe_create(struct net *net, struct socket *sock)
+@@ -547,6 +553,9 @@ static int pppoe_create(struct net *net,
  {
  	struct sock *sk;
  
@@ -12896,7 +12765,7 @@
  	sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppoe_sk_proto);
  	if (!sk)
  		return -ENOMEM;
-@@ -1144,6 +1153,9 @@ static __net_init int pppoe_init_net(struct net *net)
+@@ -1142,6 +1151,9 @@ static __net_init int pppoe_init_net(str
  	struct proc_dir_entry *pde;
  	int err;
  
@@ -12906,7 +12775,7 @@
  	pn = kzalloc(sizeof(*pn), GFP_KERNEL);
  	if (!pn)
  		return -ENOMEM;
-@@ -1173,8 +1185,11 @@ static __net_exit void pppoe_exit_net(struct net *net)
+@@ -1171,8 +1183,11 @@ static __net_exit void pppoe_exit_net(st
  {
  	struct pppoe_net *pn;
  
@@ -12919,8 +12788,6 @@
  	/*
  	 * if someone has cached our net then
  	 * further net_generic call will return NULL
-diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c
-index b724d7f..4384875 100644
 --- a/drivers/net/pppol2tp.c
 +++ b/drivers/net/pppol2tp.c
 @@ -97,6 +97,7 @@
@@ -12931,7 +12798,7 @@
  
  #include <asm/byteorder.h>
  #include <asm/atomic.h>
-@@ -1589,6 +1590,9 @@ static int pppol2tp_create(struct net *net, struct socket *sock)
+@@ -1589,6 +1590,9 @@ static int pppol2tp_create(struct net *n
  	int error = -ENOMEM;
  	struct sock *sk;
  
@@ -12941,7 +12808,7 @@
  	sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppol2tp_sk_proto);
  	if (!sk)
  		goto out;
-@@ -2606,6 +2610,9 @@ static __net_init int pppol2tp_init_net(struct net *net)
+@@ -2607,6 +2611,9 @@ static __net_init int pppol2tp_init_net(
  	struct proc_dir_entry *pde;
  	int err;
  
@@ -12951,7 +12818,7 @@
  	pn = kzalloc(sizeof(*pn), GFP_KERNEL);
  	if (!pn)
  		return -ENOMEM;
-@@ -2636,8 +2643,11 @@ static __net_exit void pppol2tp_exit_net(struct net *net)
+@@ -2637,8 +2644,11 @@ static __net_exit void pppol2tp_exit_net
  {
  	struct pppoe_net *pn;
  
@@ -12964,8 +12831,6 @@
  	/*
  	 * if someone has cached our net then
  	 * further net_generic call will return NULL
-diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index 0f77aca..a052759 100644
 --- a/drivers/net/tun.c
 +++ b/drivers/net/tun.c
 @@ -61,6 +61,7 @@
@@ -12994,7 +12859,7 @@
  };
  
  struct tun_sock;
-@@ -124,6 +129,15 @@ static inline struct tun_sock *tun_sk(struct sock *sk)
+@@ -124,6 +129,15 @@ static inline struct tun_sock *tun_sk(st
  	return container_of(sk, struct tun_sock, sk);
  }
  
@@ -13010,7 +12875,7 @@
  static int tun_attach(struct tun_struct *tun, struct file *file)
  {
  	struct tun_file *tfile = file->private_data;
-@@ -142,12 +156,7 @@ static int tun_attach(struct tun_struct *tun, struct file *file)
+@@ -142,12 +156,7 @@ static int tun_attach(struct tun_struct
  		goto out;
  
  	err = 0;
@@ -13024,7 +12889,7 @@
  out:
  	netif_tx_unlock_bh(tun->dev);
  	return err;
-@@ -418,12 +427,16 @@ tun_net_change_mtu(struct net_device *dev, int new_mtu)
+@@ -418,12 +427,16 @@ tun_net_change_mtu(struct net_device *de
  	return 0;
  }
  
@@ -13041,7 +12906,7 @@
  };
  
  static const struct net_device_ops tap_netdev_ops = {
-@@ -435,6 +448,7 @@ static const struct net_device_ops tap_netdev_ops = {
+@@ -435,6 +448,7 @@ static const struct net_device_ops tap_n
  	.ndo_set_multicast_list	= tun_net_mclist,
  	.ndo_set_mac_address	= eth_mac_addr,
  	.ndo_validate_addr	= eth_validate_addr,
@@ -13049,7 +12914,7 @@
  };
  
  /* Initialize net device. */
-@@ -513,12 +527,8 @@ static inline struct sk_buff *tun_alloc_skb(struct tun_struct *tun,
+@@ -513,12 +527,8 @@ static inline struct sk_buff *tun_alloc_
  	struct sk_buff *skb;
  	int err;
  
@@ -13064,7 +12929,7 @@
  	if (!skb)
  		return ERR_PTR(err);
  
-@@ -819,6 +829,7 @@ static void tun_setup(struct net_device *dev)
+@@ -819,6 +829,7 @@ static void tun_setup(struct net_device
  
  	dev->ethtool_ops = &tun_ethtool_ops;
  	dev->destructor = tun_free_netdev;
@@ -13102,7 +12967,7 @@
  static int tun_flags(struct tun_struct *tun)
  {
  	int flags = 0;
-@@ -932,7 +966,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
+@@ -932,7 +966,7 @@ static int tun_set_iff(struct net *net,
  
  		if (((tun->owner != -1 && cred->euid != tun->owner) ||
  		     (tun->group != -1 && !in_egroup_p(tun->group))) &&
@@ -13111,7 +12976,7 @@
  			return -EPERM;
  		err = security_tun_dev_attach(tun->socket.sk);
  		if (err < 0)
-@@ -946,7 +980,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
+@@ -946,7 +980,7 @@ static int tun_set_iff(struct net *net,
  		char *name;
  		unsigned long flags = 0;
  
@@ -13120,7 +12985,7 @@
  			return -EPERM;
  		err = security_tun_dev_create();
  		if (err < 0)
-@@ -980,20 +1014,10 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
+@@ -980,20 +1014,10 @@ static int tun_set_iff(struct net *net,
  		tun->flags = flags;
  		tun->txflt.count = 0;
  
@@ -13143,7 +13008,7 @@
  		tun_net_init(dev);
  
  		if (strchr(dev->name, '%')) {
-@@ -1006,10 +1030,10 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
+@@ -1006,10 +1030,10 @@ static int tun_set_iff(struct net *net,
  		if (err < 0)
  			goto err_free_sk;
  
@@ -13158,7 +13023,7 @@
  			printk(KERN_ERR "Failed to create tun sysfs files\n");
  
  		sk->sk_destruct = tun_sock_destruct;
-@@ -1317,6 +1341,7 @@ static int tun_chr_open(struct inode *inode, struct file * file)
+@@ -1319,6 +1343,7 @@ static int tun_chr_open(struct inode *in
  	tfile->tun = NULL;
  	tfile->net = get_net(current->nsproxy->net_ns);
  	file->private_data = tfile;
@@ -13166,7 +13031,7 @@
  	return 0;
  }
  
-@@ -1458,6 +1483,226 @@ static const struct ethtool_ops tun_ethtool_ops = {
+@@ -1460,6 +1485,226 @@ static const struct ethtool_ops tun_etht
  	.set_rx_csum	= tun_set_rx_csum
  };
  
@@ -13393,7 +13258,7 @@
  
  static int __init tun_init(void)
  {
-@@ -1477,6 +1722,8 @@ static int __init tun_init(void)
+@@ -1479,6 +1724,8 @@ static int __init tun_init(void)
  		printk(KERN_ERR "tun: Can't register misc device %d\n", TUN_MINOR);
  		goto err_misc;
  	}
@@ -13402,7 +13267,7 @@
  	return  0;
  err_misc:
  	rtnl_link_unregister(&tun_link_ops);
-@@ -1486,6 +1733,7 @@ err_linkops:
+@@ -1488,6 +1735,7 @@ err_linkops:
  
  static void tun_cleanup(void)
  {
@@ -13410,9 +13275,6 @@
  	misc_deregister(&tun_miscdev);
  	rtnl_link_unregister(&tun_link_ops);
  }
-diff --git a/drivers/net/venet_core.c b/drivers/net/venet_core.c
-new file mode 100644
-index 0000000..317fbb0
 --- /dev/null
 +++ b/drivers/net/venet_core.c
 @@ -0,0 +1,864 @@
@@ -14280,11 +14142,9 @@
 +
 +module_init(venet_init);
 +module_exit(venet_exit);
-diff --git a/drivers/net/veth.c b/drivers/net/veth.c
-index 52af501..68b47b9 100644
 --- a/drivers/net/veth.c
 +++ b/drivers/net/veth.c
-@@ -180,6 +180,7 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
+@@ -180,6 +180,7 @@ static netdev_tx_t veth_xmit(struct sk_b
  	skb->mark = 0;
  	secpath_reset(skb);
  	nf_reset(skb);
@@ -14292,9 +14152,6 @@
  
  	length = skb->len;
  
-diff --git a/drivers/net/vzethdev.c b/drivers/net/vzethdev.c
-new file mode 100644
-index 0000000..ed8ed97
 --- /dev/null
 +++ b/drivers/net/vzethdev.c
 @@ -0,0 +1,749 @@
@@ -15047,11 +14904,9 @@
 +MODULE_DESCRIPTION("Virtuozzo Virtual Ethernet Device");
 +MODULE_LICENSE("GPL v2");
 +
-diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
-index 554626e..41ca449 100644
 --- a/drivers/scsi/hosts.c
 +++ b/drivers/scsi/hosts.c
-@@ -401,9 +401,8 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
+@@ -404,9 +404,8 @@ struct Scsi_Host *scsi_host_alloc(struct
  
  	device_initialize(&shost->shost_gendev);
  	dev_set_name(&shost->shost_gendev, "host%d", shost->host_no);
@@ -15063,11 +14918,9 @@
  	shost->shost_gendev.type = &scsi_host_type;
  
  	device_initialize(&shost->shost_dev);
-diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
-index 47291bc..142a991 100644
 --- a/drivers/scsi/scsi_scan.c
 +++ b/drivers/scsi/scsi_scan.c
-@@ -415,9 +415,8 @@ static struct scsi_target *scsi_alloc_target(struct device *parent,
+@@ -415,9 +415,8 @@ static struct scsi_target *scsi_alloc_ta
  	starget->reap_ref = 1;
  	dev->parent = get_device(parent);
  	dev_set_name(dev, "target%d:%d:%d", shost->host_no, channel, id);
@@ -15079,8 +14932,6 @@
  	dev->type = &scsi_target_type;
  	starget->id = id;
  	starget->channel = channel;
-diff --git a/fs/Kconfig b/fs/Kconfig
-index 64d44ef..f48e240 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
 @@ -63,6 +63,14 @@ source "fs/autofs/Kconfig"
@@ -15098,11 +14949,9 @@
  config CUSE
  	tristate "Character device in Userpace support"
  	depends on FUSE_FS
-diff --git a/fs/Makefile b/fs/Makefile
-index af6d047..d45ecab 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -53,6 +53,8 @@ obj-$(CONFIG_GENERIC_ACL)	+= generic_acl.o
+@@ -53,6 +53,8 @@ obj-$(CONFIG_GENERIC_ACL)	+= generic_acl
  
  obj-y				+= quota/
  
@@ -15111,8 +14960,6 @@
  obj-$(CONFIG_PROC_FS)		+= proc/
  obj-y				+= partitions/
  obj-$(CONFIG_SYSFS)		+= sysfs/
-diff --git a/fs/aio.c b/fs/aio.c
-index b84a769..11f1e99 100644
 --- a/fs/aio.c
 +++ b/fs/aio.c
 @@ -43,13 +43,16 @@
@@ -15134,7 +14981,7 @@
  
  static struct workqueue_struct *aio_wq;
  
-@@ -60,7 +63,7 @@ static DECLARE_WORK(fput_work, aio_fput_routine);
+@@ -60,7 +63,7 @@ static DECLARE_WORK(fput_work, aio_fput_
  static DEFINE_SPINLOCK(fput_lock);
  static LIST_HEAD(fput_head);
  
@@ -15143,7 +14990,7 @@
  static void aio_queue_work(struct kioctx *);
  
  /* aio_setup
-@@ -343,7 +346,7 @@ static void aio_cancel_all(struct kioctx *ctx)
+@@ -343,7 +346,7 @@ static void aio_cancel_all(struct kioctx
  	spin_unlock_irq(&ctx->ctx_lock);
  }
  
@@ -15152,7 +14999,7 @@
  {
  	struct task_struct *tsk = current;
  	DECLARE_WAITQUEUE(wait, tsk);
-@@ -366,6 +369,7 @@ static void wait_for_all_aios(struct kioctx *ctx)
+@@ -366,6 +369,7 @@ static void wait_for_all_aios(struct kio
  out:
  	spin_unlock_irq(&ctx->ctx_lock);
  }
@@ -15160,7 +15007,7 @@
  
  /* wait_on_sync_kiocb:
   *	Waits on the given sync kiocb to complete.
-@@ -818,7 +822,7 @@ static inline void aio_run_all_iocbs(struct kioctx *ctx)
+@@ -818,7 +822,7 @@ static inline void aio_run_all_iocbs(str
   *      space.
   * Run on aiod's context.
   */
@@ -15169,7 +15016,7 @@
  {
  	struct kioctx *ctx = container_of(work, struct kioctx, wq.work);
  	mm_segment_t oldfs = get_fs();
-@@ -839,7 +843,7 @@ static void aio_kick_handler(struct work_struct *work)
+@@ -839,7 +843,7 @@ static void aio_kick_handler(struct work
  	if (requeue)
  		queue_delayed_work(aio_wq, &ctx->wq, 0);
  }
@@ -15178,11 +15025,9 @@
  
  /*
   * Called by kick_iocb to queue the kiocb for retry
-diff --git a/fs/autofs/init.c b/fs/autofs/init.c
-index cea5219..1217caf 100644
 --- a/fs/autofs/init.c
 +++ b/fs/autofs/init.c
-@@ -25,6 +25,7 @@ static struct file_system_type autofs_fs_type = {
+@@ -25,6 +25,7 @@ static struct file_system_type autofs_fs
  	.name		= "autofs",
  	.get_sb		= autofs_get_sb,
  	.kill_sb	= autofs_kill_sb,
@@ -15190,11 +15035,9 @@
  };
  
  static int __init init_autofs_fs(void)
-diff --git a/fs/autofs/inode.c b/fs/autofs/inode.c
-index e1734f2..ccf87cb 100644
 --- a/fs/autofs/inode.c
 +++ b/fs/autofs/inode.c
-@@ -78,7 +78,7 @@ static int parse_options(char *options, int *pipefd, uid_t *uid, gid_t *gid,
+@@ -78,7 +78,7 @@ static int parse_options(char *options,
  
  	*uid = current_uid();
  	*gid = current_gid();
@@ -15203,11 +15046,9 @@
  
  	*minproto = *maxproto = AUTOFS_PROTO_VERSION;
  
-diff --git a/fs/autofs/root.c b/fs/autofs/root.c
-index 4a1401c..7144001 100644
 --- a/fs/autofs/root.c
 +++ b/fs/autofs/root.c
-@@ -362,7 +362,7 @@ static int autofs_root_unlink(struct inode *dir, struct dentry *dentry)
+@@ -362,7 +362,7 @@ static int autofs_root_unlink(struct ino
  
  	/* This allows root to remove symlinks */
  	lock_kernel();
@@ -15216,7 +15057,7 @@
  		unlock_kernel();
  		return -EACCES;
  	}
-@@ -556,7 +556,7 @@ static int autofs_root_ioctl(struct inode *inode, struct file *filp,
+@@ -556,7 +556,7 @@ static int autofs_root_ioctl(struct inod
  	     _IOC_NR(cmd) - _IOC_NR(AUTOFS_IOC_FIRST) >= AUTOFS_IOC_COUNT)
  		return -ENOTTY;
  	
@@ -15225,8 +15066,6 @@
  		return -EPERM;
  	
  	switch(cmd) {
-diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
-index 8f7cdde..41b42bd 100644
 --- a/fs/autofs4/autofs_i.h
 +++ b/fs/autofs4/autofs_i.h
 @@ -119,7 +119,7 @@ struct autofs_sb_info {
@@ -15238,7 +15077,7 @@
  	int catatonic;
  	int version;
  	int sub_version;
-@@ -153,7 +154,7 @@ static inline struct autofs_info *autofs4_dentry_ino(struct dentry *dentry)
+@@ -153,7 +153,7 @@ static inline struct autofs_info *autofs
     filesystem without "magic".) */
  
  static inline int autofs4_oz_mode(struct autofs_sb_info *sbi) {
@@ -15247,11 +15086,9 @@
  }
  
  /* Does a dentry have some pending activity? */
-diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
-index 00bf8fc..5ce47da 100644
 --- a/fs/autofs4/dev-ioctl.c
 +++ b/fs/autofs4/dev-ioctl.c
-@@ -385,7 +385,8 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp,
+@@ -385,7 +385,8 @@ static int autofs_dev_ioctl_setpipefd(st
  			fput(pipe);
  			goto out;
  		}
@@ -15261,11 +15098,9 @@
  		sbi->pipefd = pipefd;
  		sbi->pipe = pipe;
  		sbi->catatonic = 0;
-diff --git a/fs/autofs4/init.c b/fs/autofs4/init.c
-index 9722e4b..afd983f 100644
 --- a/fs/autofs4/init.c
 +++ b/fs/autofs4/init.c
-@@ -25,6 +25,7 @@ static struct file_system_type autofs_fs_type = {
+@@ -25,6 +25,7 @@ static struct file_system_type autofs_fs
  	.name		= "autofs",
  	.get_sb		= autofs_get_sb,
  	.kill_sb	= autofs4_kill_sb,
@@ -15273,11 +15108,9 @@
  };
  
  static int __init init_autofs4_fs(void)
-diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
-index 69c8142..47a39bc 100644
 --- a/fs/autofs4/inode.c
 +++ b/fs/autofs4/inode.c
-@@ -171,6 +171,8 @@ void autofs4_kill_sb(struct super_block *sb)
+@@ -171,6 +171,8 @@ void autofs4_kill_sb(struct super_block
  	/* Clean up and release dangling references */
  	autofs4_force_release(sbi);
  
@@ -15286,7 +15119,7 @@
  	sb->s_fs_info = NULL;
  	kfree(sbi);
  
-@@ -192,7 +194,7 @@ static int autofs4_show_options(struct seq_file *m, struct vfsmount *mnt)
+@@ -192,7 +194,7 @@ static int autofs4_show_options(struct s
  		seq_printf(m, ",uid=%u", root_inode->i_uid);
  	if (root_inode->i_gid != 0)
  		seq_printf(m, ",gid=%u", root_inode->i_gid);
@@ -15295,7 +15128,7 @@
  	seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ);
  	seq_printf(m, ",minproto=%d", sbi->min_proto);
  	seq_printf(m, ",maxproto=%d", sbi->max_proto);
-@@ -237,7 +239,7 @@ static int parse_options(char *options, int *pipefd, uid_t *uid, gid_t *gid,
+@@ -237,7 +239,7 @@ static int parse_options(char *options,
  
  	*uid = current_uid();
  	*gid = current_gid();
@@ -15304,7 +15137,7 @@
  
  	*minproto = AUTOFS_MIN_PROTO_VERSION;
  	*maxproto = AUTOFS_MAX_PROTO_VERSION;
-@@ -322,6 +324,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
+@@ -322,6 +324,7 @@ int autofs4_fill_super(struct super_bloc
  	int pipefd;
  	struct autofs_sb_info *sbi;
  	struct autofs_info *ino;
@@ -15312,7 +15145,7 @@
  
  	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
  	if (!sbi)
-@@ -334,7 +337,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
+@@ -334,7 +337,6 @@ int autofs4_fill_super(struct super_bloc
  	sbi->pipe = NULL;
  	sbi->catatonic = 1;
  	sbi->exp_timeout = 0;
@@ -15320,7 +15153,7 @@
  	sbi->sb = s;
  	sbi->version = 0;
  	sbi->sub_version = 0;
-@@ -373,7 +379,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
+@@ -373,7 +375,7 @@ int autofs4_fill_super(struct super_bloc
  
  	/* Can this call block? */
  	if (parse_options(data, &pipefd, &root_inode->i_uid, &root_inode->i_gid,
@@ -15329,7 +15162,7 @@
  				&sbi->max_proto)) {
  		printk("autofs: called with bogus options\n");
  		goto fail_dput;
-@@ -401,12 +407,20 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
+@@ -401,12 +403,20 @@ int autofs4_fill_super(struct super_bloc
  		sbi->version = sbi->max_proto;
  	sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
  
@@ -15352,7 +15185,7 @@
  	}
  	if (!pipe->f_op || !pipe->f_op->write)
  		goto fail_fput;
-@@ -427,6 +441,8 @@ fail_fput:
+@@ -427,6 +437,8 @@ fail_fput:
  	printk("autofs: pipe file descriptor does not contain proper ops\n");
  	fput(pipe);
  	/* fall through */
@@ -15361,11 +15194,9 @@
  fail_dput:
  	dput(root);
  	goto fail_free;
-diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
-index b96a3c5..263c27a 100644
 --- a/fs/autofs4/root.c
 +++ b/fs/autofs4/root.c
-@@ -689,7 +689,7 @@ static int autofs4_dir_unlink(struct inode *dir, struct dentry *dentry)
+@@ -689,7 +689,7 @@ static int autofs4_dir_unlink(struct ino
  	struct autofs_info *p_ino;
  	
  	/* This allows root to remove symlinks */
@@ -15374,7 +15205,7 @@
  		return -EACCES;
  
  	if (atomic_dec_and_test(&ino->count)) {
-@@ -883,7 +883,7 @@ static int autofs4_root_ioctl(struct inode *inode, struct file *filp,
+@@ -883,7 +883,7 @@ static int autofs4_root_ioctl(struct ino
  	     _IOC_NR(cmd) - _IOC_NR(AUTOFS_IOC_FIRST) >= AUTOFS_IOC_COUNT)
  		return -ENOTTY;
  	
@@ -15383,11 +15214,9 @@
  		return -EPERM;
  	
  	switch(cmd) {
-diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
-index 0133b5a..1379e26 100644
 --- a/fs/binfmt_aout.c
 +++ b/fs/binfmt_aout.c
-@@ -311,12 +311,12 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
+@@ -311,12 +311,12 @@ static int load_aout_binary(struct linux
  		if ((ex.a_text & 0xfff || ex.a_data & 0xfff) &&
  		    (N_MAGIC(ex) != NMAGIC) && printk_ratelimit())
  		{
@@ -15402,7 +15231,7 @@
  			       "fd_offset is not page aligned. Please convert program: %s\n",
  			       bprm->file->f_path.dentry->d_name.name);
  		}
-@@ -425,7 +425,7 @@ static int load_aout_library(struct file *file)
+@@ -425,7 +425,7 @@ static int load_aout_library(struct file
  
  		if (printk_ratelimit())
  		{
@@ -15411,11 +15240,9 @@
  			       "N_TXTOFF is not page aligned. Please convert library: %s\n",
  			       file->f_path.dentry->d_name.name);
  		}
-diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index 1ed37ba..e8ef26b 100644
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -437,7 +437,7 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -437,7 +437,7 @@ static unsigned long load_elf_interp(str
  	eppnt = elf_phdata;
  	for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
  		if (eppnt->p_type == PT_LOAD) {
@@ -15424,7 +15251,7 @@
  			int elf_prot = 0;
  			unsigned long vaddr = 0;
  			unsigned long k, map_addr;
-@@ -789,7 +789,8 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -789,7 +789,8 @@ static int load_elf_binary(struct linux_
  		if (elf_ppnt->p_flags & PF_X)
  			elf_prot |= PROT_EXEC;
  
@@ -15434,7 +15261,7 @@
  
  		vaddr = elf_ppnt->p_vaddr;
  		if (loc->elf_ex.e_type == ET_EXEC || load_addr_set) {
-@@ -922,7 +923,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -922,7 +923,7 @@ static int load_elf_binary(struct linux_
  	set_binfmt(&elf_format);
  
  #ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
@@ -15443,8 +15270,6 @@
  	if (retval < 0) {
  		send_sig(SIGKILL, current, 0);
  		goto out;
-diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
-index 42b60b0..5b4a80b 100644
 --- a/fs/binfmt_misc.c
 +++ b/fs/binfmt_misc.c
 @@ -28,6 +28,7 @@
@@ -15504,7 +15329,7 @@
  		Node *e = list_entry(l, Node, list);
  		char *s;
  		int j;
-@@ -111,9 +128,10 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -111,14 +128,15 @@ static int load_misc_binary(struct linux
  	char *iname_addr = iname;
  	int retval;
  	int fd_binary = -1;
@@ -15515,9 +15340,6 @@
 +	if (!bm_enabled(ve))
  		goto _ret;
  
- 	retval = -ENOEXEC;
-@@ -122,7 +140,7 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs)
- 
  	/* to keep locking time low, we copy the interpreter string */
  	read_lock(&entries_lock);
 -	fmt = check_file(bprm);
@@ -15525,7 +15347,7 @@
  	if (fmt)
  		strlcpy(iname, fmt->interpreter, BINPRM_BUF_SIZE);
  	read_unlock(&entries_lock);
-@@ -507,7 +525,7 @@ static void bm_clear_inode(struct inode *inode)
+@@ -504,7 +522,7 @@ static void bm_clear_inode(struct inode
  	kfree(inode->i_private);
  }
  
@@ -15534,7 +15356,7 @@
  {
  	struct dentry *dentry;
  
-@@ -523,7 +541,7 @@ static void kill_node(Node *e)
+@@ -520,7 +538,7 @@ static void kill_node(Node *e)
  		dentry->d_inode->i_nlink--;
  		d_drop(dentry);
  		dput(dentry);
@@ -15543,7 +15365,7 @@
  	}
  }
  
-@@ -562,7 +580,7 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
+@@ -559,7 +577,7 @@ static ssize_t bm_entry_write(struct fil
  		case 3: root = dget(file->f_path.mnt->mnt_sb->s_root);
  			mutex_lock(&root->d_inode->i_mutex);
  
@@ -15552,7 +15374,7 @@
  
  			mutex_unlock(&root->d_inode->i_mutex);
  			dput(root);
-@@ -587,6 +605,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
+@@ -584,6 +602,7 @@ static ssize_t bm_register_write(struct
  	struct dentry *root, *dentry;
  	struct super_block *sb = file->f_path.mnt->mnt_sb;
  	int err = 0;
@@ -15560,7 +15382,7 @@
  
  	e = create_entry(buffer, count);
  
-@@ -610,7 +629,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
+@@ -607,7 +626,7 @@ static ssize_t bm_register_write(struct
  	if (!inode)
  		goto out2;
  
@@ -15569,7 +15391,7 @@
  	if (err) {
  		iput(inode);
  		inode = NULL;
-@@ -623,7 +642,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
+@@ -620,7 +639,7 @@ static ssize_t bm_register_write(struct
  
  	d_instantiate(dentry, inode);
  	write_lock(&entries_lock);
@@ -15578,7 +15400,7 @@
  	write_unlock(&entries_lock);
  
  	err = 0;
-@@ -649,26 +668,31 @@ static const struct file_operations bm_register_operations = {
+@@ -646,26 +665,31 @@ static const struct file_operations bm_r
  static ssize_t
  bm_status_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
  {
@@ -15617,7 +15439,7 @@
  			mutex_unlock(&root->d_inode->i_mutex);
  			dput(root);
  		default: return res;
-@@ -719,6 +743,53 @@ static struct file_system_type bm_fs_type = {
+@@ -716,6 +740,53 @@ static struct file_system_type bm_fs_typ
  	.kill_sb	= kill_litter_super,
  };
  
@@ -15671,7 +15493,7 @@
  static int __init init_misc_binfmt(void)
  {
  	int err = register_filesystem(&bm_fs_type);
-@@ -727,11 +798,17 @@ static int __init init_misc_binfmt(void)
+@@ -724,11 +795,17 @@ static int __init init_misc_binfmt(void)
  		if (err)
  			unregister_filesystem(&bm_fs_type);
  	}
@@ -15689,11 +15511,9 @@
  	unregister_binfmt(&misc_format);
  	unregister_filesystem(&bm_fs_type);
  }
-diff --git a/fs/block_dev.c b/fs/block_dev.c
-index e65efa2..45cb33a 100644
 --- a/fs/block_dev.c
 +++ b/fs/block_dev.c
-@@ -1604,7 +1604,7 @@ int __invalidate_device(struct block_device *bdev)
+@@ -1604,7 +1604,7 @@ int __invalidate_device(struct block_dev
  		 * hold).
  		 */
  		shrink_dcache_sb(sb);
@@ -15702,11 +15522,9 @@
  		drop_super(sb);
  	}
  	invalidate_bdev(bdev);
-diff --git a/fs/buffer.c b/fs/buffer.c
-index 6fa5302..34c1563 100644
 --- a/fs/buffer.c
 +++ b/fs/buffer.c
-@@ -671,14 +671,18 @@ EXPORT_SYMBOL(mark_buffer_dirty_inode);
+@@ -672,14 +672,18 @@ EXPORT_SYMBOL(mark_buffer_dirty_inode);
  static void __set_page_dirty(struct page *page,
  		struct address_space *mapping, int warn)
  {
@@ -15726,8 +15544,6 @@
  	__mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
  }
  
-diff --git a/fs/compat.c b/fs/compat.c
-index d576b55..284386f 100644
 --- a/fs/compat.c
 +++ b/fs/compat.c
 @@ -26,6 +26,7 @@
@@ -15757,7 +15573,7 @@
  /*
   * Not all architectures have sys_utime, so implement this in terms
   * of sys_utimes.
-@@ -91,6 +104,21 @@ asmlinkage long compat_sys_utime(char __user *filename, struct compat_utimbuf __
+@@ -91,6 +104,21 @@ asmlinkage long compat_sys_utime(char __
  	return do_utimes(AT_FDCWD, filename, t ? tv : NULL, 0);
  }
  
@@ -15779,7 +15595,7 @@
  asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, struct compat_timespec __user *t, int flags)
  {
  	struct timespec tv[2];
-@@ -269,6 +297,8 @@ asmlinkage long compat_sys_statfs(const char __user *pathname, struct compat_sta
+@@ -269,6 +297,8 @@ asmlinkage long compat_sys_statfs(const
  		struct kstatfs tmp;
  		error = vfs_statfs(path.dentry, &tmp);
  		if (!error)
@@ -15788,7 +15604,7 @@
  			error = put_compat_statfs(buf, &tmp);
  		path_put(&path);
  	}
-@@ -287,6 +317,8 @@ asmlinkage long compat_sys_fstatfs(unsigned int fd, struct compat_statfs __user
+@@ -287,6 +317,8 @@ asmlinkage long compat_sys_fstatfs(unsig
  		goto out;
  	error = vfs_statfs(file->f_path.dentry, &tmp);
  	if (!error)
@@ -15797,7 +15613,7 @@
  		error = put_compat_statfs(buf, &tmp);
  	fput(file);
  out:
-@@ -337,6 +369,8 @@ asmlinkage long compat_sys_statfs64(const char __user *pathname, compat_size_t s
+@@ -337,6 +369,8 @@ asmlinkage long compat_sys_statfs64(cons
  		struct kstatfs tmp;
  		error = vfs_statfs(path.dentry, &tmp);
  		if (!error)
@@ -15806,7 +15622,7 @@
  			error = put_compat_statfs64(buf, &tmp);
  		path_put(&path);
  	}
-@@ -358,6 +392,8 @@ asmlinkage long compat_sys_fstatfs64(unsigned int fd, compat_size_t sz, struct c
+@@ -358,6 +392,8 @@ asmlinkage long compat_sys_fstatfs64(uns
  		goto out;
  	error = vfs_statfs(file->f_path.dentry, &tmp);
  	if (!error)
@@ -15815,7 +15631,7 @@
  		error = put_compat_statfs64(buf, &tmp);
  	fput(file);
  out:
-@@ -1469,6 +1505,10 @@ int compat_do_execve(char * filename,
+@@ -1475,6 +1511,10 @@ int compat_do_execve(char * filename,
  	bool clear_in_exec;
  	int retval;
  
@@ -15826,11 +15642,9 @@
  	retval = unshare_files(&displaced);
  	if (retval)
  		goto out_ret;
-diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
-index d84e705..960f82f 100644
 --- a/fs/compat_ioctl.c
 +++ b/fs/compat_ioctl.c
-@@ -2753,7 +2753,7 @@ static void compat_ioctl_error(struct file *filp, unsigned int fd,
+@@ -2756,7 +2756,7 @@ static void compat_ioctl_error(struct fi
  	 sprintf(buf,"'%c'", (cmd>>_IOC_TYPESHIFT) & _IOC_TYPEMASK);
  	if (!isprint(buf[1]))
  		sprintf(buf, "%02x", buf[1]);
@@ -15839,8 +15653,6 @@
  			"cmd(%08x){t:%s;sz:%u} arg(%08x) on %s\n",
  			current->comm, current->pid,
  			(int)fd, (unsigned int)cmd, buf,
-diff --git a/fs/dcache.c b/fs/dcache.c
-index a100fa3..7fce87d 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
 @@ -26,6 +26,7 @@
@@ -15867,7 +15679,7 @@
  int sysctl_vfs_cache_pressure __read_mostly = 100;
  EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
  
-@@ -43,7 +51,7 @@ __cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
+@@ -43,7 +51,7 @@ __cacheline_aligned_in_smp DEFINE_SEQLOC
  
  EXPORT_SYMBOL(dcache_lock);
  
@@ -15876,7 +15688,7 @@
  
  #define DNAME_INLINE_LEN (sizeof(struct dentry)-offsetof(struct dentry,d_iname))
  
-@@ -173,6 +181,7 @@ static struct dentry *d_kill(struct dentry *dentry)
+@@ -173,6 +181,7 @@ static struct dentry *d_kill(struct dent
  
  	list_del(&dentry->d_u.d_child);
  	dentry_stat.nr_dentry--;	/* For d_free, below */
@@ -15950,7 +15762,7 @@
  }
  
  /**
-@@ -321,6 +353,7 @@ static inline struct dentry * __dget_locked(struct dentry *dentry)
+@@ -321,6 +353,7 @@ static inline struct dentry * __dget_loc
  {
  	atomic_inc(&dentry->d_count);
  	dentry_lru_del_init(dentry);
@@ -15958,7 +15770,7 @@
  	return dentry;
  }
  
-@@ -423,6 +456,7 @@ static void prune_one_dentry(struct dentry * dentry)
+@@ -423,6 +456,7 @@ static void prune_one_dentry(struct dent
  	__acquires(dcache_lock)
  {
  	__d_drop(dentry);
@@ -15966,7 +15778,7 @@
  	dentry = d_kill(dentry);
  
  	/*
-@@ -438,6 +472,7 @@ static void prune_one_dentry(struct dentry * dentry)
+@@ -438,6 +472,7 @@ static void prune_one_dentry(struct dent
  			dentry->d_op->d_delete(dentry);
  		dentry_lru_del_init(dentry);
  		__d_drop(dentry);
@@ -15974,7 +15786,7 @@
  		dentry = d_kill(dentry);
  		spin_lock(&dcache_lock);
  	}
-@@ -732,6 +767,8 @@ void shrink_dcache_for_umount(struct super_block *sb)
+@@ -732,6 +767,8 @@ void shrink_dcache_for_umount(struct sup
  
  	dentry = sb->s_root;
  	sb->s_root = NULL;
@@ -15983,7 +15795,7 @@
  	atomic_dec(&dentry->d_count);
  	shrink_dcache_for_umount_subtree(dentry);
  
-@@ -891,12 +928,18 @@ void shrink_dcache_parent(struct dentry * parent)
+@@ -891,12 +928,18 @@ void shrink_dcache_parent(struct dentry
   */
  static int shrink_dcache_memory(int nr, gfp_t gfp_mask)
  {
@@ -16004,7 +15816,7 @@
  }
  
  static struct shrinker dcache_shrinker = {
-@@ -919,21 +962,27 @@ struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
+@@ -919,21 +962,27 @@ struct dentry *d_alloc(struct dentry * p
  	struct dentry *dentry;
  	char *dname;
  
@@ -16041,7 +15853,7 @@
  	dentry->d_name.len = name->len;
  	dentry->d_name.hash = name->hash;
  	memcpy(dname, name->name, name->len);
-@@ -961,12 +1010,27 @@ struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
+@@ -961,12 +1010,27 @@ struct dentry *d_alloc(struct dentry * p
  	}
  
  	spin_lock(&dcache_lock);
@@ -16070,7 +15882,7 @@
  }
  
  struct dentry *d_alloc_name(struct dentry *parent, const char *name)
-@@ -1363,12 +1427,12 @@ struct dentry * __d_lookup(struct dentry * parent, struct qstr * name)
+@@ -1366,12 +1430,12 @@ struct dentry * __d_lookup(struct dentry
  	unsigned int hash = name->hash;
  	const unsigned char *str = name->name;
  	struct hlist_head *head = d_hash(parent,hash);
@@ -16085,7 +15897,7 @@
  	hlist_for_each_entry_rcu(dentry, node, head, d_hash) {
  		struct qstr *qstr;
  
-@@ -1408,6 +1472,10 @@ struct dentry * __d_lookup(struct dentry * parent, struct qstr * name)
+@@ -1411,6 +1475,10 @@ struct dentry * __d_lookup(struct dentry
  
  		atomic_inc(&dentry->d_count);
  		found = dentry;
@@ -16096,7 +15908,7 @@
  		spin_unlock(&dentry->d_lock);
  		break;
  next:
-@@ -1416,6 +1484,14 @@ next:
+@@ -1419,6 +1487,14 @@ next:
   	rcu_read_unlock();
  
   	return found;
@@ -16111,7 +15923,7 @@
  }
  
  /**
-@@ -1884,6 +1960,16 @@ static int prepend_name(char **buffer, int *buflen, struct qstr *name)
+@@ -1887,6 +1963,16 @@ static int prepend_name(char **buffer, i
  }
  
  /**
@@ -16128,7 +15940,7 @@
   * __d_path - return the path of a dentry
   * @path: the dentry/vfsmount to report
   * @root: root vfsmnt/dentry (may be modified by this function)
-@@ -1908,18 +1994,21 @@ char *__d_path(const struct path *path, struct path *root,
+@@ -1911,18 +1997,21 @@ char *__d_path(const struct path *path,
  	struct vfsmount *vfsmnt = path->mnt;
  	char *end = buffer + buflen;
  	char *retval;
@@ -16156,7 +15968,7 @@
  
  	for (;;) {
  		struct dentry * parent;
-@@ -1937,20 +2026,43 @@ char *__d_path(const struct path *path, struct path *root,
+@@ -1940,20 +2029,43 @@ char *__d_path(const struct path *path,
  		}
  		parent = dentry->d_parent;
  		prefetch(parent);
@@ -16204,7 +16016,7 @@
  		goto Elong;
  	root->mnt = vfsmnt;
  	root->dentry = dentry;
-@@ -1958,8 +2070,9 @@ global_root:
+@@ -1961,8 +2073,9 @@ global_root:
  
  Elong:
  	retval = ERR_PTR(-ENAMETOOLONG);
@@ -16215,7 +16027,7 @@
  
  /**
   * d_path - return the path of a dentry
-@@ -1989,8 +2102,11 @@ char *d_path(const struct path *path, char *buf, int buflen)
+@@ -1992,8 +2105,11 @@ char *d_path(const struct path *path, ch
  	 * thus don't need to be hashed.  They also don't need a name until a
  	 * user wants to identify the object in /proc/pid/fd/.  The little hack
  	 * below allows us to generate a name for these objects on demand:
@@ -16228,7 +16040,7 @@
  		return path->dentry->d_op->d_dname(path->dentry, buf, buflen);
  
  	read_lock(&current->fs->lock);
-@@ -2005,6 +2121,231 @@ char *d_path(const struct path *path, char *buf, int buflen)
+@@ -2008,6 +2124,231 @@ char *d_path(const struct path *path, ch
  	return res;
  }
  
@@ -16460,7 +16272,7 @@
  /*
   * Helper function for dentry_operations.d_dname() members
   */
-@@ -2190,10 +2531,12 @@ resume:
+@@ -2193,10 +2534,12 @@ resume:
  			goto repeat;
  		}
  		atomic_dec(&dentry->d_count);
@@ -16473,11 +16285,9 @@
  		this_parent = this_parent->d_parent;
  		goto resume;
  	}
-diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
-index 39c6ee8..8f43266 100644
 --- a/fs/debugfs/inode.c
 +++ b/fs/debugfs/inode.c
-@@ -228,9 +228,12 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode,
+@@ -228,9 +228,12 @@ struct dentry *debugfs_create_file(const
  {
  	struct dentry *dentry = NULL;
  	int error;
@@ -16490,7 +16300,7 @@
  	error = simple_pin_fs(&debug_fs_type, &debugfs_mount,
  			      &debugfs_mount_count);
  	if (error)
-@@ -244,6 +247,7 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode,
+@@ -244,6 +247,7 @@ struct dentry *debugfs_create_file(const
  		goto exit;
  	}
  exit:
@@ -16498,8 +16308,6 @@
  	return dentry;
  }
  EXPORT_SYMBOL_GPL(debugfs_create_file);
-diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
-index 8882ecc..4a0ee5e 100644
 --- a/fs/devpts/inode.c
 +++ b/fs/devpts/inode.c
 @@ -38,7 +38,9 @@
@@ -16512,7 +16320,7 @@
  
  struct pts_mount_opts {
  	int setuid;
-@@ -83,7 +85,7 @@ static inline struct super_block *pts_sb_from_inode(struct inode *inode)
+@@ -83,7 +85,7 @@ static inline struct super_block *pts_sb
  	if (inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC)
  		return inode->i_sb;
  #endif
@@ -16521,7 +16329,7 @@
  }
  
  #define PARSE_MOUNT	0
-@@ -421,11 +423,12 @@ static void devpts_kill_sb(struct super_block *sb)
+@@ -421,11 +423,12 @@ static void devpts_kill_sb(struct super_
  	kill_litter_super(sb);
  }
  
@@ -16548,11 +16356,9 @@
  			unregister_filesystem(&devpts_fs_type);
  		}
  	}
-diff --git a/fs/direct-io.c b/fs/direct-io.c
-index 8b10b87..006a735 100644
 --- a/fs/direct-io.c
 +++ b/fs/direct-io.c
-@@ -658,7 +658,7 @@ submit_page_section(struct dio *dio, struct page *page,
+@@ -658,7 +658,7 @@ submit_page_section(struct dio *dio, str
  		/*
  		 * Read accounting is performed in submit_bio()
  		 */
@@ -16561,8 +16367,6 @@
  	}
  
  	/*
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 085c5c0..8f10643 100644
 --- a/fs/eventpoll.c
 +++ b/fs/eventpoll.c
 @@ -31,6 +31,7 @@
@@ -16573,7 +16377,7 @@
  #include <linux/mutex.h>
  #include <linux/anon_inodes.h>
  #include <asm/uaccess.h>
-@@ -86,11 +87,6 @@
+@@ -102,11 +103,6 @@
  
  #define EP_ITEM_COST (sizeof(struct epitem) + sizeof(struct eppoll_entry))
  
@@ -16585,7 +16389,7 @@
  /*
   * Structure used to track possible nested calls, for too deep recursions
   * and loop cycles.
-@@ -110,88 +106,6 @@ struct nested_calls {
+@@ -126,88 +122,6 @@ struct nested_calls {
  	spinlock_t lock;
  };
  
@@ -16674,7 +16478,7 @@
  /* Wait structure used by the poll hooks */
  struct eppoll_entry {
  	/* List header used to link this structure to the "struct epitem" */
-@@ -225,7 +145,8 @@ static int max_user_watches __read_mostly;
+@@ -247,7 +161,8 @@ static int max_user_watches __read_mostl
  /*
   * This mutex is used to serialize ep_free() and eventpoll_release_file().
   */
@@ -16684,7 +16488,7 @@
  
  /* Used to check for epoll file descriptor inclusion loops */
  static struct nested_calls poll_loop_ncalls;
-@@ -286,7 +207,7 @@
+@@ -292,7 +207,7 @@ ctl_table epoll_table[] = {
  };
  #endif /* CONFIG_SYSCTL */
  
@@ -16693,7 +16497,7 @@
  
  static inline int is_file_epoll(struct file *f)
  {
-@@ -672,10 +593,11 @@ static unsigned int ep_eventpoll_poll(struct file *file, poll_table *wait)
+@@ -731,10 +646,11 @@ static unsigned int ep_eventpoll_poll(st
  }
  
  /* File callbacks that implement the eventpoll file behaviour */
@@ -16706,7 +16510,7 @@
  
  /*
   * This is called from eventpoll_release() to unlink files from the eventpoll
-@@ -757,7 +679,7 @@ free_uid:
+@@ -810,7 +726,7 @@ free_uid:
   * are protected by the "mtx" mutex, and ep_find() must be called with
   * "mtx" held.
   */
@@ -16715,7 +16519,7 @@
  {
  	int kcmp;
  	struct rb_node *rbp;
-@@ -780,6 +702,7 @@ static struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd)
+@@ -833,6 +749,7 @@ static struct epitem *ep_find(struct eve
  
  	return epir;
  }
@@ -16723,7 +16527,7 @@
  
  /*
   * This is the callback that is passed to the wait queue wakeup
-@@ -895,7 +818,7 @@ static void ep_rbtree_insert(struct eventpoll *ep, struct epitem *epi)
+@@ -1056,7 +973,7 @@ static int reverse_path_check(void)
  /*
   * Must be called with "mtx" held.
   */
@@ -16732,7 +16536,7 @@
  		     struct file *tfile, int fd)
  {
  	int error, revents, pwake = 0;
-@@ -994,6 +917,7 @@ error_unregister:
+@@ -1168,6 +1085,7 @@ error_unregister:
  
  	return error;
  }
@@ -16740,7 +16544,7 @@
  
  /*
   * Modify the interest event mask by dropping an event if the new mask
-@@ -1220,6 +1144,7 @@ SYSCALL_DEFINE1(epoll_create, int, size)
+@@ -1526,6 +1444,7 @@ SYSCALL_DEFINE1(epoll_create, int, size)
  
  	return sys_epoll_create1(0);
  }
@@ -16748,8 +16552,6 @@
  
  /*
   * The following function implements the controller interface for
-diff --git a/fs/exec.c b/fs/exec.c
-index 68083fa..32291d1 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -26,6 +26,7 @@
@@ -16778,7 +16580,7 @@
  static LIST_HEAD(formats);
  static DEFINE_RWLOCK(binfmt_lock);
  
-@@ -230,9 +235,14 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
+@@ -247,9 +252,14 @@ static int __bprm_mm_init(struct linux_b
  	struct vm_area_struct *vma = NULL;
  	struct mm_struct *mm = bprm->mm;
  
@@ -16794,7 +16596,7 @@
  
  	down_write(&mm->mmap_sem);
  	vma->vm_mm = mm;
-@@ -264,6 +274,9 @@ err:
+@@ -282,6 +292,9 @@ err:
  	up_write(&mm->mmap_sem);
  	bprm->vma = NULL;
  	kmem_cache_free(vm_area_cachep, vma);
@@ -16804,7 +16606,7 @@
  	return err;
  }
  
-@@ -730,10 +743,11 @@ int kernel_read(struct file *file, loff_t offset,
+@@ -753,10 +766,11 @@ int kernel_read(struct file *file, loff_
  
  EXPORT_SYMBOL(kernel_read);
  
@@ -16818,7 +16620,7 @@
  
  	/* Notify parent that we're no longer interested in the old VM */
  	tsk = current;
-@@ -753,6 +767,10 @@ static int exec_mmap(struct mm_struct *mm)
+@@ -776,6 +790,10 @@ static int exec_mmap(struct mm_struct *m
  			return -EINTR;
  		}
  	}
@@ -16829,7 +16631,7 @@
  	task_lock(tsk);
  	active_mm = tsk->active_mm;
  	tsk->mm = mm;
-@@ -760,15 +778,25 @@ static int exec_mmap(struct mm_struct *mm)
+@@ -783,15 +801,25 @@ static int exec_mmap(struct mm_struct *m
  	activate_mm(active_mm, mm);
  	task_unlock(tsk);
  	arch_pick_mmap_layout(mm);
@@ -16857,7 +16659,7 @@
  }
  
  /*
-@@ -863,6 +891,10 @@ static int de_thread(struct task_struct *tsk)
+@@ -886,6 +914,10 @@ static int de_thread(struct task_struct
  		transfer_pid(leader, tsk, PIDTYPE_PGID);
  		transfer_pid(leader, tsk, PIDTYPE_SID);
  		list_replace_rcu(&leader->tasks, &tsk->tasks);
@@ -16868,7 +16670,7 @@
  
  		tsk->group_leader = tsk;
  		leader->group_leader = tsk;
-@@ -981,12 +1013,10 @@ int flush_old_exec(struct linux_binprm * bprm)
+@@ -1005,12 +1037,10 @@ int flush_old_exec(struct linux_binprm *
  	 * Release all of the old mmap stuff
  	 */
  	acct_arg_size(bprm, 0, vma_pages(bprm->vma));
@@ -16882,7 +16684,7 @@
  	set_fs(USER_DS);
  	current->flags &= ~PF_RANDOMIZE;
  	flush_thread();
-@@ -1334,6 +1364,10 @@ int do_execve(char * filename,
+@@ -1370,6 +1400,10 @@ int do_execve(char * filename,
  	bool clear_in_exec;
  	int retval;
  
@@ -16893,7 +16695,7 @@
  	retval = unshare_files(&displaced);
  	if (retval)
  		goto out_ret;
-@@ -1585,7 +1619,7 @@ static int zap_process(struct task_struct *start)
+@@ -1623,7 +1657,7 @@ static int zap_process(struct task_struc
  			signal_wake_up(t, 1);
  			nr++;
  		}
@@ -16902,7 +16704,7 @@
  
  	return nr;
  }
-@@ -1640,7 +1674,7 @@ static inline int zap_threads(struct task_struct *tsk, struct mm_struct *mm,
+@@ -1678,7 +1712,7 @@ static inline int zap_threads(struct tas
  	 *	next_thread().
  	 */
  	rcu_read_lock();
@@ -16911,7 +16713,7 @@
  		if (g == tsk->group_leader)
  			continue;
  		if (g->flags & PF_KTHREAD)
-@@ -1655,7 +1689,7 @@ static inline int zap_threads(struct task_struct *tsk, struct mm_struct *mm,
+@@ -1693,7 +1727,7 @@ static inline int zap_threads(struct tas
  				}
  				break;
  			}
@@ -16920,7 +16722,7 @@
  	}
  	rcu_read_unlock();
  done:
-@@ -1823,7 +1857,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
+@@ -1867,7 +1901,7 @@ void do_coredump(long signr, int exit_co
  	/*
  	 * If another thread got here first, or we are not dumpable, bail out.
  	 */
@@ -16929,8 +16731,6 @@
  		up_write(&mm->mmap_sem);
  		put_cred(cred);
  		goto fail;
-diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c
-index dd7175c..eb08505 100644
 --- a/fs/ext2/namei.c
 +++ b/fs/ext2/namei.c
 @@ -31,6 +31,7 @@
@@ -16941,7 +16741,7 @@
  #include "ext2.h"
  #include "xattr.h"
  #include "acl.h"
-@@ -262,6 +263,8 @@ static int ext2_unlink(struct inode * dir, struct dentry *dentry)
+@@ -262,6 +263,8 @@ static int ext2_unlink(struct inode * di
  	struct page * page;
  	int err = -ENOENT;
  
@@ -16950,7 +16750,7 @@
  	de = ext2_find_entry (dir, &dentry->d_name, &page);
  	if (!de)
  		goto out;
-@@ -304,6 +307,9 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry,
+@@ -304,6 +307,9 @@ static int ext2_rename (struct inode * o
  	struct ext2_dir_entry_2 * old_de;
  	int err = -ENOENT;
  
@@ -16960,11 +16760,9 @@
  	old_de = ext2_find_entry (old_dir, &old_dentry->d_name, &old_page);
  	if (!old_de)
  		goto out;
-diff --git a/fs/ext2/super.c b/fs/ext2/super.c
-index 1a9ffee..ba5ef60 100644
 --- a/fs/ext2/super.c
 +++ b/fs/ext2/super.c
-@@ -1426,7 +1426,7 @@ static struct file_system_type ext2_fs_type = {
+@@ -1426,7 +1426,7 @@ static struct file_system_type ext2_fs_t
  	.name		= "ext2",
  	.get_sb		= ext2_get_sb,
  	.kill_sb	= kill_block_super,
@@ -16973,11 +16771,9 @@
  };
  
  static int __init init_ext2_fs(void)
-diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c
-index 8897481..54b4ba6 100644
 --- a/fs/ext3/ioctl.c
 +++ b/fs/ext3/ioctl.c
-@@ -78,7 +78,7 @@ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
+@@ -78,7 +78,7 @@ long ext3_ioctl(struct file *filp, unsig
  		 * the relevant capability.
  		 */
  		if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) {
@@ -16986,11 +16782,9 @@
  				goto flags_out;
  		}
  
-diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c
-index aad6400..7be0b93 100644
 --- a/fs/ext3/namei.c
 +++ b/fs/ext3/namei.c
-@@ -1340,7 +1340,7 @@ static int add_dirent_to_buf(handle_t *handle, struct dentry *dentry,
+@@ -1340,7 +1340,7 @@ static int add_dirent_to_buf(handle_t *h
  	if (err)
  		ext3_std_error(dir->i_sb, err);
  	brelse(bh);
@@ -16999,11 +16793,9 @@
  }
  
  /*
-diff --git a/fs/ext3/super.c b/fs/ext3/super.c
-index ca3068f..0c4978f 100644
 --- a/fs/ext3/super.c
 +++ b/fs/ext3/super.c
-@@ -2986,7 +2986,7 @@ static struct file_system_type ext3_fs_type = {
+@@ -2993,7 +2993,7 @@ static struct file_system_type ext3_fs_t
  	.name		= "ext3",
  	.get_sb		= ext3_get_sb,
  	.kill_sb	= kill_block_super,
@@ -17012,11 +16804,9 @@
  };
  
  static int __init init_ext3_fs(void)
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index 1b23f9d..2e1d3dd 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -5846,9 +5846,14 @@ int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -5858,9 +5858,14 @@ int ext4_page_mkwrite(struct vm_area_str
  	int ret = -EINVAL;
  	void *fsdata;
  	struct file *file = vma->vm_file;
@@ -17024,20 +16814,18 @@
 -	struct address_space *mapping = inode->i_mapping;
 +	struct inode *inode;
 +	struct address_space *mapping;
-+
+ 
 +	if (file->f_op->get_host)
 +		file = file->f_op->get_host(file);
- 
++
 +	inode = file->f_path.dentry->d_inode;
 +	mapping = inode->i_mapping;
  	/*
  	 * Get i_alloc_sem to stop truncates messing with the inode. We cannot
  	 * get i_mutex because we are already holding mmap_sem.
-diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
-index bf5ae88..3952507 100644
 --- a/fs/ext4/ioctl.c
 +++ b/fs/ext4/ioctl.c
-@@ -77,7 +77,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
+@@ -77,7 +77,7 @@ long ext4_ioctl(struct file *filp, unsig
  		 * the relevant capability.
  		 */
  		if ((jflag ^ oldflags) & (EXT4_JOURNAL_DATA_FL)) {
@@ -17046,11 +16834,9 @@
  				goto flags_out;
  		}
  		if (oldflags & EXT4_EXTENTS_FL) {
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index f27e045..92aa773 100644
 --- a/fs/ext4/super.c
 +++ b/fs/ext4/super.c
-@@ -2462,10 +2462,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
+@@ -2472,10 +2472,10 @@ static int ext4_fill_super(struct super_
  	set_opt(sbi->s_mount_opt, BARRIER);
  
  	/*
@@ -17064,11 +16850,9 @@
  
  	if (!parse_options((char *) data, sb, &journal_devnum,
  			   &journal_ioprio, NULL, 0))
-diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 97e01dc..e24ca00 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
-@@ -126,6 +126,7 @@ SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd)
+@@ -126,6 +126,7 @@ SYSCALL_DEFINE2(dup2, unsigned int, oldf
  	}
  	return sys_dup3(oldfd, newfd, 0);
  }
@@ -17076,7 +16860,7 @@
  
  SYSCALL_DEFINE1(dup, unsigned int, fildes)
  {
-@@ -149,6 +150,9 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
+@@ -149,6 +150,9 @@ static int setfl(int fd, struct file * f
  	struct inode * inode = filp->f_path.dentry->d_inode;
  	int error = 0;
  
@@ -17095,8 +16879,6 @@
  	return 0;
  }
  
-diff --git a/fs/file.c b/fs/file.c
-index 87e1290..2ae9cad 100644
 --- a/fs/file.c
 +++ b/fs/file.c
 @@ -9,6 +9,7 @@
@@ -17116,7 +16898,7 @@
  struct fdtable_defer {
  	spinlock_t lock;
  	struct work_struct wq;
-@@ -42,9 +45,9 @@ static DEFINE_PER_CPU(struct fdtable_defer, fdtable_defer_list);
+@@ -42,9 +45,9 @@ static DEFINE_PER_CPU(struct fdtable_def
  static inline void * alloc_fdmem(unsigned int size)
  {
  	if (size <= PAGE_SIZE)
@@ -17128,7 +16910,7 @@
  }
  
  static inline void free_fdarr(struct fdtable *fdt)
-@@ -163,7 +166,7 @@ static struct fdtable * alloc_fdtable(unsigned int nr)
+@@ -163,7 +166,7 @@ static struct fdtable * alloc_fdtable(un
  	if (unlikely(nr > sysctl_nr_open))
  		nr = ((sysctl_nr_open - 1) | (BITS_PER_LONG - 1)) + 1;
  
@@ -17146,7 +16928,7 @@
  	__releases(files->file_lock)
  	__acquires(files->file_lock)
  {
-@@ -238,6 +241,7 @@ static int expand_fdtable(struct files_struct *files, int nr)
+@@ -238,6 +241,7 @@ static int expand_fdtable(struct files_s
  	}
  	return 1;
  }
@@ -17154,8 +16936,6 @@
  
  /*
   * Expand files.
-diff --git a/fs/file_table.c b/fs/file_table.c
-index 666c7ce..5351b54 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -22,9 +22,14 @@
@@ -17183,7 +16963,7 @@
  
  static struct percpu_counter nr_files __cacheline_aligned_in_smp;
  
-@@ -43,13 +49,16 @@ static inline void file_free_rcu(struct rcu_head *head)
+@@ -43,13 +49,16 @@ static inline void file_free_rcu(struct
  	struct file *f = container_of(head, struct file, f_u.fu_rcuhead);
  
  	put_cred(f->f_cred);
@@ -17243,8 +17023,6 @@
  }
  
  EXPORT_SYMBOL(get_empty_filp);
-diff --git a/fs/filesystems.c b/fs/filesystems.c
-index a24c58e..bd5c213 100644
 --- a/fs/filesystems.c
 +++ b/fs/filesystems.c
 @@ -14,6 +14,9 @@
@@ -17317,7 +17095,7 @@
  	return p;
  }
  
-@@ -75,8 +100,12 @@ int register_filesystem(struct file_system_type * fs)
+@@ -75,8 +100,12 @@ int register_filesystem(struct file_syst
  	if (fs->next)
  		return -EBUSY;
  	INIT_LIST_HEAD(&fs->fs_supers);
@@ -17331,7 +17109,7 @@
  	if (*p)
  		res = -EBUSY;
  	else
-@@ -120,6 +149,75 @@ int unregister_filesystem(struct file_system_type * fs)
+@@ -120,6 +149,75 @@ int unregister_filesystem(struct file_sy
  
  EXPORT_SYMBOL(unregister_filesystem);
  
@@ -17407,7 +17185,7 @@
  static int fs_index(const char __user * __name)
  {
  	struct file_system_type * tmp;
-@@ -133,11 +231,14 @@ static int fs_index(const char __user * __name)
+@@ -133,11 +231,14 @@ static int fs_index(const char __user *
  
  	err = -EINVAL;
  	read_lock(&file_systems_lock);
@@ -17423,7 +17201,7 @@
  	}
  	read_unlock(&file_systems_lock);
  	putname(name);
-@@ -150,9 +251,15 @@ static int fs_name(unsigned int index, char __user * buf)
+@@ -150,9 +251,15 @@ static int fs_name(unsigned int index, c
  	int len, res;
  
  	read_lock(&file_systems_lock);
@@ -17454,7 +17232,7 @@
  	read_unlock(&file_systems_lock);
  	return index;
  }
-@@ -207,9 +315,10 @@ int __init get_filesystem_list(char *buf)
+@@ -207,9 +315,10 @@ int __init get_filesystem_list(char *buf
  	read_lock(&file_systems_lock);
  	tmp = file_systems;
  	while (tmp && len < PAGE_SIZE - 80) {
@@ -17468,7 +17246,7 @@
  		tmp = tmp->next;
  	}
  	read_unlock(&file_systems_lock);
-@@ -224,9 +333,12 @@ static int filesystems_proc_show(struct seq_file *m, void *v)
+@@ -224,9 +333,12 @@ static int filesystems_proc_show(struct
  	read_lock(&file_systems_lock);
  	tmp = file_systems;
  	while (tmp) {
@@ -17481,7 +17259,7 @@
  		tmp = tmp->next;
  	}
  	read_unlock(&file_systems_lock);
-@@ -247,7 +359,7 @@ static const struct file_operations filesystems_proc_fops = {
+@@ -247,7 +359,7 @@ static const struct file_operations file
  
  static int __init proc_filesystems_init(void)
  {
@@ -17490,7 +17268,7 @@
  	return 0;
  }
  module_init(proc_filesystems_init);
-@@ -258,8 +370,8 @@ static struct file_system_type *__get_fs_type(const char *name, int len)
+@@ -258,8 +370,8 @@ static struct file_system_type *__get_fs
  	struct file_system_type *fs;
  
  	read_lock(&file_systems_lock);
@@ -17501,11 +17279,9 @@
  		fs = NULL;
  	read_unlock(&file_systems_lock);
  	return fs;
-diff --git a/fs/fs_struct.c b/fs/fs_struct.c
-index eee0590..777c90a 100644
 --- a/fs/fs_struct.c
 +++ b/fs/fs_struct.c
-@@ -47,7 +47,7 @@ void chroot_fs_refs(struct path *old_root, struct path *new_root)
+@@ -47,7 +47,7 @@ void chroot_fs_refs(struct path *old_roo
  	int count = 0;
  
  	read_lock(&tasklist_lock);
@@ -17514,7 +17290,7 @@
  		task_lock(p);
  		fs = p->fs;
  		if (fs) {
-@@ -67,7 +67,7 @@ void chroot_fs_refs(struct path *old_root, struct path *new_root)
+@@ -67,7 +67,7 @@ void chroot_fs_refs(struct path *old_roo
  			write_unlock(&fs->lock);
  		}
  		task_unlock(p);
@@ -17531,8 +17307,6 @@
  
  struct fs_struct *copy_fs_struct(struct fs_struct *old)
  {
-diff --git a/fs/fuse/control.c b/fs/fuse/control.c
-index 3773fd6..df26800 100644
 --- a/fs/fuse/control.c
 +++ b/fs/fuse/control.c
 @@ -10,6 +10,8 @@
@@ -17556,7 +17330,7 @@
  
  static struct fuse_conn *fuse_ctl_file_conn_get(struct file *file)
  {
-@@ -345,12 +351,51 @@ static struct file_system_type fuse_ctl_fs_type = {
+@@ -345,12 +351,51 @@ static struct file_system_type fuse_ctl_
  	.kill_sb	= fuse_ctl_kill_sb,
  };
  
@@ -17609,11 +17383,9 @@
 +	ve_hook_unregister(&fuse_ctl_ve_hook);
  	unregister_filesystem(&fuse_ctl_fs_type);
  }
-diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
-index 01cc462..8b3387f 100644
 --- a/fs/fuse/fuse_i.h
 +++ b/fs/fuse/fuse_i.h
-@@ -44,7 +44,11 @@
+@@ -45,7 +45,11 @@
  #define FUSE_ALLOW_OTHER         (1 << 1)
  
  /** List of active connections */
@@ -17625,8 +17397,6 @@
  
  /** Global mutex protecting fuse_conn_list and the control filesystem */
  extern struct mutex fuse_mutex;
-diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
-index 1a822ce..00dbf5f 100644
 --- a/fs/fuse/inode.c
 +++ b/fs/fuse/inode.c
 @@ -20,13 +20,16 @@
@@ -17646,7 +17416,7 @@
  DEFINE_MUTEX(fuse_mutex);
  
  static int set_global_limit(const char *val, struct kernel_param *kp);
-@@ -1194,6 +1197,41 @@ static void fuse_sysfs_cleanup(void)
+@@ -1209,6 +1212,41 @@ static void fuse_sysfs_cleanup(void)
  	kobject_put(fuse_kobj);
  }
  
@@ -17688,7 +17458,7 @@
  static int __init fuse_init(void)
  {
  	int res;
-@@ -1218,6 +1256,7 @@ static int __init fuse_init(void)
+@@ -1233,6 +1271,7 @@ static int __init fuse_init(void)
  	if (res)
  		goto err_sysfs_cleanup;
  
@@ -17696,7 +17466,7 @@
  	sanitize_global_limit(&max_user_bgreq);
  	sanitize_global_limit(&max_user_congthresh);
  
-@@ -1237,6 +1276,7 @@ static void __exit fuse_exit(void)
+@@ -1252,6 +1291,7 @@ static void __exit fuse_exit(void)
  {
  	printk(KERN_DEBUG "fuse exit\n");
  
@@ -17704,8 +17474,6 @@
  	fuse_ctl_cleanup();
  	fuse_sysfs_cleanup();
  	fuse_fs_cleanup();
-diff --git a/fs/inode.c b/fs/inode.c
-index 4d8e3be..ab63b5f 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -8,10 +8,13 @@
@@ -17740,7 +17508,7 @@
  
  static void wake_up_inode(struct inode *inode)
  {
-@@ -125,19 +130,22 @@ static void wake_up_inode(struct inode *inode)
+@@ -125,19 +130,22 @@ static void wake_up_inode(struct inode *
   * These are initializations that need to be done on every inode
   * allocation as the fields are not initialised by slab allocation.
   */
@@ -17768,7 +17536,7 @@
  	inode->i_nlink = 1;
  	inode->i_uid = 0;
  	inode->i_gid = 0;
-@@ -163,15 +171,15 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
+@@ -163,15 +171,15 @@ int inode_init_always(struct super_block
  		goto out_free_security;
  
  	spin_lock_init(&inode->i_lock);
@@ -17788,7 +17556,7 @@
  	mapping->host = inode;
  	mapping->flags = 0;
  	mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE);
-@@ -370,13 +378,76 @@ static void dispose_list(struct list_head *head)
+@@ -377,13 +385,76 @@ static void dispose_list(struct list_hea
  	spin_unlock(&inode_lock);
  }
  
@@ -17867,7 +17635,7 @@
  
  	next = head->next;
  	for (;;) {
-@@ -406,6 +477,14 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
+@@ -413,6 +484,14 @@ static int invalidate_list(struct list_h
  			continue;
  		}
  		busy = 1;
@@ -17882,7 +17650,7 @@
  	}
  	/* only unused inodes may be cached with i_count zero */
  	inodes_stat.nr_unused -= count;
-@@ -420,7 +499,7 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
+@@ -427,7 +506,7 @@ static int invalidate_list(struct list_h
   *	fails because there are busy inodes then a non zero value is returned.
   *	If the discard is successful all the inodes have been discarded.
   */
@@ -17891,7 +17659,7 @@
  {
  	int busy;
  	LIST_HEAD(throw_away);
-@@ -429,7 +508,7 @@ int invalidate_inodes(struct super_block *sb)
+@@ -436,7 +515,7 @@ int invalidate_inodes(struct super_block
  	spin_lock(&inode_lock);
  	inotify_unmount_inodes(&sb->s_inodes);
  	fsnotify_unmount_inodes(&sb->s_inodes);
@@ -17900,7 +17668,7 @@
  	spin_unlock(&inode_lock);
  
  	dispose_list(&throw_away);
-@@ -437,7 +516,7 @@ int invalidate_inodes(struct super_block *sb)
+@@ -444,7 +523,7 @@ int invalidate_inodes(struct super_block
  
  	return busy;
  }
@@ -17909,7 +17677,7 @@
  
  static int can_unuse(struct inode *inode)
  {
-@@ -528,6 +607,7 @@ static void prune_icache(int nr_to_scan)
+@@ -535,6 +614,7 @@ static void prune_icache(int nr_to_scan)
   */
  static int shrink_icache_memory(int nr, gfp_t gfp_mask)
  {
@@ -17917,7 +17685,7 @@
  	if (nr) {
  		/*
  		 * Nasty deadlock avoidance.  We may hold various FS locks,
-@@ -538,6 +618,7 @@ static int shrink_icache_memory(int nr, gfp_t gfp_mask)
+@@ -545,6 +625,7 @@ static int shrink_icache_memory(int nr,
  			return -1;
  		prune_icache(nr);
  	}
@@ -17925,7 +17693,7 @@
  	return (inodes_stat.nr_unused / 100) * sysctl_vfs_cache_pressure;
  }
  
-@@ -695,7 +776,7 @@ void unlock_new_inode(struct inode *inode)
+@@ -702,7 +783,7 @@ void unlock_new_inode(struct inode *inod
  			mutex_destroy(&inode->i_mutex);
  			mutex_init(&inode->i_mutex);
  			lockdep_set_class(&inode->i_mutex,
@@ -17934,7 +17702,7 @@
  		}
  	}
  #endif
-@@ -1258,7 +1339,7 @@ int generic_detach_inode(struct inode *inode)
+@@ -1265,7 +1346,7 @@ int generic_detach_inode(struct inode *i
  		if (!(inode->i_state & (I_DIRTY|I_SYNC)))
  			list_move(&inode->i_list, &inode_unused);
  		inodes_stat.nr_unused++;
@@ -17943,8 +17711,6 @@
  			spin_unlock(&inode_lock);
  			return 0;
  		}
-diff --git a/fs/ioprio.c b/fs/ioprio.c
-index c7c0b28..25f7275 100644
 --- a/fs/ioprio.c
 +++ b/fs/ioprio.c
 @@ -26,6 +26,8 @@
@@ -17956,7 +17722,7 @@
  
  int set_task_ioprio(struct task_struct *task, int ioprio)
  {
-@@ -78,8 +80,11 @@ SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
+@@ -78,8 +80,11 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
  	int data = IOPRIO_PRIO_DATA(ioprio);
  	struct task_struct *p, *g;
  	struct user_struct *user;
@@ -17969,7 +17735,7 @@
  
  	switch (class) {
  		case IOPRIO_CLASS_RT:
-@@ -137,17 +142,25 @@ SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
+@@ -137,17 +142,25 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
  			if (!user)
  				break;
  
@@ -17997,7 +17763,7 @@
  		default:
  			ret = -EINVAL;
  	}
-@@ -192,9 +205,9 @@ SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
+@@ -192,9 +205,9 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
  {
  	struct task_struct *g, *p;
  	struct user_struct *user;
@@ -18008,7 +17774,7 @@
  
  	read_lock(&tasklist_lock);
  	switch (which) {
-@@ -230,7 +243,7 @@ SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
+@@ -230,7 +243,7 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
  			if (!user)
  				break;
  
@@ -18017,7 +17783,7 @@
  				if (__task_cred(p)->uid != user->uid)
  					continue;
  				tmpio = get_task_ioprio(p);
-@@ -240,7 +253,7 @@ SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
+@@ -240,7 +253,7 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
  					ret = tmpio;
  				else
  					ret = ioprio_best(ret, tmpio);
@@ -18026,11 +17792,9 @@
  
  			if (who)
  				free_uid(user);
-diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
-index c81249f..64cf48d 100644
 --- a/fs/lockd/clntproc.c
 +++ b/fs/lockd/clntproc.c
-@@ -155,12 +155,15 @@ int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl)
+@@ -155,12 +155,15 @@ int nlmclnt_proc(struct nlm_host *host,
  {
  	struct nlm_rqst		*call;
  	int			status;
@@ -18046,7 +17810,7 @@
  	nlmclnt_locks_init_private(fl, host);
  	/* Set up the argument struct */
  	nlmclnt_setlockargs(call, fl);
-@@ -182,6 +185,7 @@ int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl)
+@@ -182,6 +185,7 @@ int nlmclnt_proc(struct nlm_host *host,
  	unlock_kernel();
  
  	dprintk("lockd: clnt proc returns %d\n", status);
@@ -18054,11 +17818,9 @@
  	return status;
  }
  EXPORT_SYMBOL_GPL(nlmclnt_proc);
-diff --git a/fs/lockd/host.c b/fs/lockd/host.c
-index 4600c20..55cc770 100644
 --- a/fs/lockd/host.c
 +++ b/fs/lockd/host.c
-@@ -96,6 +96,7 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
+@@ -96,6 +96,7 @@ static struct nlm_host *nlm_lookup_host(
  	struct hlist_node *pos;
  	struct nlm_host	*host;
  	struct nsm_handle *nsm = NULL;
@@ -18066,7 +17828,7 @@
  
  	mutex_lock(&nlm_host_mutex);
  
-@@ -109,10 +110,14 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
+@@ -109,10 +110,14 @@ static struct nlm_host *nlm_lookup_host(
  	 * different NLM rpc_clients into one single nlm_host object.
  	 * This would allow us to have one nlm_host per address.
  	 */
@@ -18081,7 +17843,7 @@
  
  		/* See if we have an NSM handle for this client */
  		if (!nsm)
-@@ -186,6 +191,7 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
+@@ -186,6 +191,7 @@ static struct nlm_host *nlm_lookup_host(
  	spin_lock_init(&host->h_lock);
  	INIT_LIST_HEAD(&host->h_granted);
  	INIT_LIST_HEAD(&host->h_reclaim);
@@ -18140,8 +17902,6 @@
 +	mutex_unlock(&nlm_host_mutex);
 +}
 +#endif
-diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
-index 1a54ae1..b0cde74 100644
 --- a/fs/lockd/svc.c
 +++ b/fs/lockd/svc.c
 @@ -27,6 +27,7 @@
@@ -18222,7 +17982,7 @@
  	}
  	kthread_stop(nlmsvc_task);
  	svc_exit_thread(nlmsvc_rqst);
-@@ -497,6 +506,29 @@ static int lockd_authenticate(struct svc_rqst *rqstp)
+@@ -497,6 +506,29 @@ static int lockd_authenticate(struct svc
  	return SVC_DENIED;
  }
  
@@ -18252,7 +18012,7 @@
  
  param_set_min_max(port, int, simple_strtol, 0, 65535)
  param_set_min_max(grace_period, unsigned long, simple_strtoul,
-@@ -525,16 +557,20 @@ module_param(nlm_max_connections, uint, 0644);
+@@ -525,16 +557,20 @@ module_param(nlm_max_connections, uint,
  
  static int __init init_nlm(void)
  {
@@ -18276,11 +18036,9 @@
  	/* FIXME: delete all NLM clients */
  	nlm_shutdown_hosts();
  #ifdef CONFIG_SYSCTL
-diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
-index ad478da..2fdf8cf 100644
 --- a/fs/lockd/svcsubs.c
 +++ b/fs/lockd/svcsubs.c
-@@ -334,6 +334,9 @@ nlmsvc_is_client(void *data, struct nlm_host *dummy)
+@@ -334,6 +334,9 @@ nlmsvc_is_client(void *data, struct nlm_
  {
  	struct nlm_host *host = data;
  
@@ -18290,8 +18048,6 @@
  	if (host->h_server) {
  		/* we are destroying locks even though the client
  		 * hasn't asked us too, so don't unmonitor the
-diff --git a/fs/locks.c b/fs/locks.c
-index a8794f2..4d3fa3f 100644
 --- a/fs/locks.c
 +++ b/fs/locks.c
 @@ -130,6 +130,8 @@
@@ -18331,7 +18087,7 @@
  }
  
  void locks_release_private(struct file_lock *fl)
-@@ -174,6 +192,7 @@ static void locks_free_lock(struct file_lock *fl)
+@@ -174,6 +192,7 @@ static void locks_free_lock(struct file_
  	BUG_ON(!list_empty(&fl->fl_block));
  	BUG_ON(!list_empty(&fl->fl_link));
  
@@ -18339,7 +18095,7 @@
  	locks_release_private(fl);
  	kmem_cache_free(filelock_cache, fl);
  }
-@@ -277,7 +296,7 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock,
+@@ -277,7 +296,7 @@ static int flock_make_lock(struct file *
  	if (type < 0)
  		return type;
  	
@@ -18348,7 +18104,7 @@
  	if (fl == NULL)
  		return -ENOMEM;
  
-@@ -464,7 +483,7 @@ static int lease_init(struct file *filp, int type, struct file_lock *fl)
+@@ -464,7 +483,7 @@ static int lease_init(struct file *filp,
  /* Allocate a file_lock initialised to this type of lease */
  static struct file_lock *lease_alloc(struct file *filp, long type)
  {
@@ -18357,7 +18113,7 @@
  	int error = -ENOMEM;
  
  	if (fl == NULL)
-@@ -735,8 +754,13 @@ static int flock_lock_file(struct file *filp, struct file_lock *request)
+@@ -735,8 +754,13 @@ static int flock_lock_file(struct file *
  		goto find_conflict;
  
  	if (request->fl_type != F_UNLCK) {
@@ -18383,7 +18139,7 @@
  	locks_copy_lock(new_fl, request);
  	locks_insert_lock(before, new_fl);
  	new_fl = NULL;
-@@ -819,8 +847,11 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
+@@ -819,8 +847,11 @@ static int __posix_lock_file(struct inod
  	if (!(request->fl_flags & FL_ACCESS) &&
  	    (request->fl_type != F_UNLCK ||
  	     request->fl_start != 0 || request->fl_end != OFFSET_MAX)) {
@@ -18397,7 +18153,7 @@
  	}
  
  	lock_kernel();
-@@ -954,7 +985,7 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
+@@ -954,7 +985,7 @@ static int __posix_lock_file(struct inod
  	 * bail out.
  	 */
  	error = -ENOLCK; /* "no luck" */
@@ -18406,7 +18162,7 @@
  		goto out;
  
  	error = 0;
-@@ -965,23 +996,32 @@ static int __posix_lock_file(struct inode *inode, struct file_lock *request, str
+@@ -965,23 +996,32 @@ static int __posix_lock_file(struct inod
  			goto out;
  		}
  
@@ -18442,7 +18198,7 @@
  		}
  		right->fl_start = request->fl_end + 1;
  		locks_wake_up_blocks(right);
-@@ -1366,7 +1406,7 @@ int generic_setlease(struct file *filp, long arg, struct file_lock **flp)
+@@ -1366,7 +1406,7 @@ int generic_setlease(struct file *filp,
  
  	if (arg != F_UNLCK) {
  		error = -ENOMEM;
@@ -18451,7 +18207,7 @@
  		if (new_fl == NULL)
  			goto out;
  
-@@ -1610,6 +1650,7 @@ SYSCALL_DEFINE2(flock, unsigned int, fd, unsigned int, cmd)
+@@ -1610,6 +1650,7 @@ SYSCALL_DEFINE2(flock, unsigned int, fd,
   out:
  	return error;
  }
@@ -18459,7 +18215,7 @@
  
  /**
   * vfs_test_lock - test file byte range lock
-@@ -1770,7 +1811,7 @@ static int do_lock_file_wait(struct file *filp, unsigned int cmd,
+@@ -1770,7 +1811,7 @@ static int do_lock_file_wait(struct file
  int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd,
  		struct flock __user *l)
  {
@@ -18477,7 +18233,7 @@
  	struct flock64 flock;
  	struct inode *inode;
  	struct file *f;
-@@ -2159,6 +2200,8 @@ static int locks_show(struct seq_file *f, void *v)
+@@ -2159,6 +2200,8 @@ static int locks_show(struct seq_file *f
  	struct file_lock *fl, *bfl;
  
  	fl = list_entry(v, struct file_lock, fl_link);
@@ -18486,7 +18242,7 @@
  
  	lock_get_status(f, fl, (long)f->private, "");
  
-@@ -2166,6 +2209,7 @@ static int locks_show(struct seq_file *f, void *v)
+@@ -2166,6 +2209,7 @@ static int locks_show(struct seq_file *f
  		lock_get_status(f, bfl, (long)f->private, " ->");
  
  	f->private++;
@@ -18494,7 +18250,7 @@
  	return 0;
  }
  
-@@ -2207,7 +2251,7 @@ static const struct file_operations proc_locks_operations = {
+@@ -2207,7 +2251,7 @@ static const struct file_operations proc
  
  static int __init proc_locks_init(void)
  {
@@ -18512,11 +18268,9 @@
  			init_once);
  	return 0;
  }
-diff --git a/fs/namei.c b/fs/namei.c
-index b0afbd4..84f4037 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
-@@ -143,6 +143,7 @@ char * getname(const char __user * filename)
+@@ -143,6 +143,7 @@ char * getname(const char __user * filen
  {
  	char *tmp, *result;
  
@@ -18524,7 +18278,7 @@
  	result = ERR_PTR(-ENOMEM);
  	tmp = __getname();
  	if (tmp)  {
-@@ -428,6 +429,21 @@ static struct dentry * cached_lookup(struct dentry * parent, struct qstr * name,
+@@ -430,6 +431,21 @@ static struct dentry * cached_lookup(str
  	if (!dentry)
  		dentry = d_lookup(parent, name);
  
@@ -18546,7 +18300,7 @@
  	if (dentry && dentry->d_op && dentry->d_op->d_revalidate)
  		dentry = do_revalidate(dentry, nd);
  
-@@ -479,6 +495,7 @@ static struct dentry * real_lookup(struct dentry * parent, struct qstr * name, s
+@@ -481,6 +497,7 @@ static struct dentry * real_lookup(struc
  	struct dentry * result;
  	struct inode *dir = parent->d_inode;
  
@@ -18554,7 +18308,7 @@
  	mutex_lock(&dir->i_mutex);
  	/*
  	 * First re-do the cached lookup just in case it was created
-@@ -525,7 +542,7 @@ out_unlock:
+@@ -527,7 +544,7 @@ out_unlock:
  	if (result->d_op && result->d_op->d_revalidate) {
  		result = do_revalidate(result, nd);
  		if (!result)
@@ -18563,7 +18317,7 @@
  	}
  	return result;
  }
-@@ -765,6 +782,12 @@ static __always_inline void follow_dotdot(struct nameidata *nd)
+@@ -768,6 +785,12 @@ static __always_inline void follow_dotdo
  		    nd->path.mnt == nd->root.mnt) {
  			break;
  		}
@@ -18576,7 +18330,7 @@
  		spin_lock(&dcache_lock);
  		if (nd->path.dentry != nd->path.mnt->mnt_root) {
  			nd->path.dentry = dget(nd->path.dentry->d_parent);
-@@ -805,6 +828,10 @@ static int do_lookup(struct nameidata *nd, struct qstr *name,
+@@ -808,6 +831,10 @@ static int do_lookup(struct nameidata *n
  	if (dentry->d_op && dentry->d_op->d_revalidate)
  		goto need_revalidate;
  done:
@@ -18587,7 +18341,7 @@
  	path->mnt = mnt;
  	path->dentry = dentry;
  	__follow_mount(path);
-@@ -836,6 +863,7 @@ fail:
+@@ -839,6 +866,7 @@ fail:
  static inline int follow_on_final(struct inode *inode, unsigned lookup_flags)
  {
  	return inode && unlikely(inode->i_op->follow_link) &&
@@ -18595,7 +18349,7 @@
  		((lookup_flags & LOOKUP_FOLLOW) || S_ISDIR(inode->i_mode));
  }
  
-@@ -853,6 +881,7 @@ static int __link_path_walk(const char *name, struct nameidata *nd)
+@@ -856,6 +884,7 @@ static int __link_path_walk(const char *
  	struct inode *inode;
  	int err;
  	unsigned int lookup_flags = nd->flags;
@@ -18603,7 +18357,7 @@
  	
  	while (*name=='/')
  		name++;
-@@ -921,6 +950,7 @@ static int __link_path_walk(const char *name, struct nameidata *nd)
+@@ -924,6 +953,7 @@ static int __link_path_walk(const char *
  				break;
  		}
  		/* This does the actual lookups.. */
@@ -18611,7 +18365,7 @@
  		err = do_lookup(nd, &this, &next);
  		if (err)
  			break;
-@@ -931,6 +961,9 @@ static int __link_path_walk(const char *name, struct nameidata *nd)
+@@ -934,6 +964,9 @@ static int __link_path_walk(const char *
  			goto out_dput;
  
  		if (inode->i_op->follow_link) {
@@ -18621,7 +18375,7 @@
  			err = do_follow_link(&next, nd);
  			if (err)
  				goto return_err;
-@@ -996,27 +1029,41 @@ lookup_parent:
+@@ -999,27 +1032,41 @@ lookup_parent:
  		nd->last_type = LAST_NORM;
  		if (this.name[0] != '.')
  			goto return_base;
@@ -18670,7 +18424,7 @@
  out_dput:
  		path_put_conditional(&next, nd);
  		break;
-@@ -2095,6 +2142,7 @@ SYSCALL_DEFINE3(mknod, const char __user *, filename, int, mode, unsigned, dev)
+@@ -2100,6 +2147,7 @@ SYSCALL_DEFINE3(mknod, const char __user
  {
  	return sys_mknodat(AT_FDCWD, filename, mode, dev);
  }
@@ -18678,7 +18432,7 @@
  
  int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
  {
-@@ -2159,6 +2207,7 @@ SYSCALL_DEFINE2(mkdir, const char __user *, pathname, int, mode)
+@@ -2164,6 +2212,7 @@ SYSCALL_DEFINE2(mkdir, const char __user
  {
  	return sys_mkdirat(AT_FDCWD, pathname, mode);
  }
@@ -18686,7 +18440,7 @@
  
  /*
   * We try to drop the dentry early: we should have
-@@ -2186,6 +2235,7 @@ void dentry_unhash(struct dentry *dentry)
+@@ -2191,6 +2240,7 @@ void dentry_unhash(struct dentry *dentry
  	spin_unlock(&dentry->d_lock);
  	spin_unlock(&dcache_lock);
  }
@@ -18694,7 +18448,7 @@
  
  int vfs_rmdir(struct inode *dir, struct dentry *dentry)
  {
-@@ -2273,6 +2323,7 @@ SYSCALL_DEFINE1(rmdir, const char __user *, pathname)
+@@ -2278,6 +2328,7 @@ SYSCALL_DEFINE1(rmdir, const char __user
  {
  	return do_rmdir(AT_FDCWD, pathname);
  }
@@ -18702,7 +18456,7 @@
  
  int vfs_unlink(struct inode *dir, struct dentry *dentry)
  {
-@@ -2380,6 +2431,7 @@ SYSCALL_DEFINE1(unlink, const char __user *, pathname)
+@@ -2385,6 +2436,7 @@ SYSCALL_DEFINE1(unlink, const char __use
  {
  	return do_unlinkat(AT_FDCWD, pathname);
  }
@@ -18710,7 +18464,7 @@
  
  int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname)
  {
-@@ -2550,6 +2602,7 @@ SYSCALL_DEFINE2(link, const char __user *, oldname, const char __user *, newname
+@@ -2555,6 +2607,7 @@ SYSCALL_DEFINE2(link, const char __user
  {
  	return sys_linkat(AT_FDCWD, oldname, AT_FDCWD, newname, 0);
  }
@@ -18718,7 +18472,7 @@
  
  /*
   * The worst of all namespace operations - renaming directory. "Perverted"
-@@ -2661,6 +2714,9 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
+@@ -2666,6 +2719,9 @@ int vfs_rename(struct inode *old_dir, st
  	int is_dir = S_ISDIR(old_dentry->d_inode->i_mode);
  	const char *old_name;
  
@@ -18728,8 +18482,6 @@
  	if (old_dentry->d_inode == new_dentry->d_inode)
   		return 0;
   
-diff --git a/fs/namespace.c b/fs/namespace.c
-index 2beb0fb..b76df5d 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -29,6 +29,7 @@
@@ -18740,7 +18492,7 @@
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
  #include "pnode.h"
-@@ -48,7 +50,8 @@ static int mnt_group_start = 1;
+@@ -49,7 +50,8 @@ static int mnt_group_start = 1;
  
  static struct list_head *mount_hashtable __read_mostly;
  static struct kmem_cache *mnt_cache __read_mostly;
@@ -18750,7 +18502,7 @@
  
  /* /sys/fs */
  struct kobject *fs_kobj;
-@@ -136,11 +139,12 @@ struct vfsmount *alloc_vfsmnt(const char *name)
+@@ -137,11 +139,12 @@ struct vfsmount *alloc_vfsmnt(const char
  			goto out_free_cache;
  
  		if (name) {
@@ -18764,7 +18516,7 @@
  		atomic_set(&mnt->mnt_count, 1);
  		INIT_LIST_HEAD(&mnt->mnt_hash);
  		INIT_LIST_HEAD(&mnt->mnt_child);
-@@ -517,7 +521,7 @@ static void commit_tree(struct vfsmount *mnt)
+@@ -518,7 +521,7 @@ static void commit_tree(struct vfsmount
  	touch_mnt_namespace(n);
  }
  
@@ -18773,7 +18525,7 @@
  {
  	struct list_head *next = p->mnt_mounts.next;
  	if (next == &p->mnt_mounts) {
-@@ -532,6 +536,7 @@ static struct vfsmount *next_mnt(struct vfsmount *p, struct vfsmount *root)
+@@ -533,6 +536,7 @@ static struct vfsmount *next_mnt(struct
  	}
  	return list_entry(next, struct vfsmount, mnt_child);
  }
@@ -18781,7 +18533,7 @@
  
  static struct vfsmount *skip_mnt_tree(struct vfsmount *p)
  {
-@@ -629,6 +634,7 @@ repeat:
+@@ -630,6 +634,7 @@ repeat:
  		spin_unlock(&vfsmount_lock);
  		acct_auto_close_mnt(mnt);
  		security_sb_umount_close(mnt);
@@ -18789,7 +18541,7 @@
  		goto repeat;
  	}
  }
-@@ -789,15 +795,50 @@ static void show_type(struct seq_file *m, struct super_block *sb)
+@@ -790,15 +795,50 @@ static void show_type(struct seq_file *m
  	}
  }
  
@@ -18822,10 +18574,9 @@
 -	int err = 0;
 +	int err;
  	struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
--
--	mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
 +	char *path_buf, *path;
-+
+ 
+-	mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
 +	err = prepare_mnt_root_mangle(&mnt_path, &path_buf, &path);
 +	if (err < 0)
 +		return (err == -EACCES ? 0 : err);
@@ -18844,7 +18595,7 @@
  	seq_putc(m, ' ');
  	show_type(m, mnt->mnt_sb);
  	seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
-@@ -884,18 +925,27 @@ static int show_vfsstat(struct seq_file *m, void *v)
+@@ -885,18 +925,27 @@ static int show_vfsstat(struct seq_file
  {
  	struct vfsmount *mnt = list_entry(v, struct vfsmount, mnt_list);
  	struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
@@ -18875,7 +18626,7 @@
  	seq_putc(m, ' ');
  
  	/* file system type */
-@@ -1107,6 +1157,36 @@ static int do_umount(struct vfsmount *mnt, int flags)
+@@ -1108,6 +1157,36 @@ static int do_umount(struct vfsmount *mn
  	return retval;
  }
  
@@ -18912,7 +18663,7 @@
  /*
   * Now umount can handle mount points as well as block devices.
   * This is important for filesystems which use unnamed block devices.
-@@ -1137,7 +1217,7 @@ SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
+@@ -1138,7 +1217,7 @@ SYSCALL_DEFINE2(umount, char __user *, n
  		goto dput_and_out;
  
  	retval = -EPERM;
@@ -18921,7 +18672,7 @@
  		goto dput_and_out;
  
  	retval = do_umount(path.mnt, flags);
-@@ -1163,7 +1243,7 @@ SYSCALL_DEFINE1(oldumount, char __user *, name)
+@@ -1164,7 +1243,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
  
  static int mount_is_safe(struct path *path)
  {
@@ -18930,7 +18681,7 @@
  		return 0;
  	return -EPERM;
  #ifdef notyet
-@@ -1432,6 +1512,8 @@ static int do_change_type(struct path *path, int flag)
+@@ -1433,6 +1512,8 @@ static int do_change_type(struct path *p
  
  	if (path->dentry != path->mnt->mnt_root)
  		return -EINVAL;
@@ -18939,7 +18690,7 @@
  
  	down_write(&namespace_sem);
  	if (type == MS_SHARED) {
-@@ -1454,7 +1536,7 @@ static int do_change_type(struct path *path, int flag)
+@@ -1455,7 +1536,7 @@ static int do_change_type(struct path *p
   * do loopback mount.
   */
  static int do_loopback(struct path *path, char *old_name,
@@ -18948,7 +18699,7 @@
  {
  	struct path old_path;
  	struct vfsmount *mnt = NULL;
-@@ -1484,6 +1566,7 @@ static int do_loopback(struct path *path, char *old_name,
+@@ -1485,6 +1566,7 @@ static int do_loopback(struct path *path
  	if (!mnt)
  		goto out;
  
@@ -18956,7 +18707,7 @@
  	err = graft_tree(mnt, path);
  	if (err) {
  		LIST_HEAD(umount_list);
-@@ -1527,7 +1610,7 @@ static int do_remount(struct path *path, int flags, int mnt_flags,
+@@ -1528,7 +1610,7 @@ static int do_remount(struct path *path,
  	int err;
  	struct super_block *sb = path->mnt->mnt_sb;
  
@@ -18965,7 +18716,7 @@
  		return -EPERM;
  
  	if (!check_mnt(path->mnt))
-@@ -1536,6 +1619,9 @@ static int do_remount(struct path *path, int flags, int mnt_flags,
+@@ -1537,6 +1619,9 @@ static int do_remount(struct path *path,
  	if (path->dentry != path->mnt->mnt_root)
  		return -EINVAL;
  
@@ -18975,7 +18726,7 @@
  	down_write(&sb->s_umount);
  	if (flags & MS_BIND)
  		err = change_mount_flags(path->mnt, flags);
-@@ -1569,7 +1655,7 @@ static int do_move_mount(struct path *path, char *old_name)
+@@ -1570,7 +1655,7 @@ static int do_move_mount(struct path *pa
  	struct path old_path, parent_path;
  	struct vfsmount *p;
  	int err = 0;
@@ -18984,7 +18735,7 @@
  		return -EPERM;
  	if (!old_name || !*old_name)
  		return -EINVAL;
-@@ -1577,6 +1663,10 @@ static int do_move_mount(struct path *path, char *old_name)
+@@ -1578,6 +1663,10 @@ static int do_move_mount(struct path *pa
  	if (err)
  		return err;
  
@@ -18995,7 +18746,7 @@
  	down_write(&namespace_sem);
  	while (d_mountpoint(path->dentry) &&
  	       follow_down(path))
-@@ -1634,6 +1724,7 @@ out:
+@@ -1635,6 +1724,7 @@ out:
  	up_write(&namespace_sem);
  	if (!err)
  		path_put(&parent_path);
@@ -19003,7 +18754,7 @@
  	path_put(&old_path);
  	return err;
  }
-@@ -1651,7 +1742,7 @@ static int do_new_mount(struct path *path, char *type, int flags,
+@@ -1652,7 +1742,7 @@ static int do_new_mount(struct path *pat
  		return -EINVAL;
  
  	/* we need capabilities... */
@@ -19012,7 +18763,7 @@
  		return -EPERM;
  
  	lock_kernel();
-@@ -1692,6 +1783,11 @@ int do_add_mount(struct vfsmount *newmnt, struct path *path,
+@@ -1693,6 +1783,11 @@ int do_add_mount(struct vfsmount *newmnt
  		goto unlock;
  
  	newmnt->mnt_flags = mnt_flags;
@@ -19024,7 +18775,7 @@
  	if ((err = graft_tree(newmnt, path)))
  		goto unlock;
  
-@@ -1966,7 +2062,7 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
+@@ -1967,7 +2062,7 @@ long do_mount(char *dev_name, char *dir_
  		retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
  				    data_page);
  	else if (flags & MS_BIND)
@@ -19033,7 +18784,7 @@
  	else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
  		retval = do_change_type(&path, flags);
  	else if (flags & MS_MOVE)
-@@ -2129,6 +2225,7 @@ out_dir:
+@@ -2130,6 +2225,7 @@ out_dir:
  out_type:
  	return ret;
  }
@@ -19041,7 +18792,7 @@
  
  /*
   * pivot_root Semantics:
-@@ -2288,7 +2385,7 @@ void __init mnt_init(void)
+@@ -2289,7 +2385,7 @@ void __init mnt_init(void)
  	init_rwsem(&namespace_sem);
  
  	mnt_cache = kmem_cache_create("mnt_cache", sizeof(struct vfsmount),
@@ -19050,11 +18801,9 @@
  
  	mount_hashtable = (struct list_head *)__get_free_page(GFP_ATOMIC);
  
-diff --git a/fs/nfs/client.c b/fs/nfs/client.c
-index 19cbbf7..d7ec963 100644
 --- a/fs/nfs/client.c
 +++ b/fs/nfs/client.c
-@@ -125,6 +125,7 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_
+@@ -125,6 +125,7 @@ static struct nfs_client *nfs_alloc_clie
  
  	atomic_set(&clp->cl_count, 1);
  	clp->cl_cons_state = NFS_CS_INITING;
@@ -19062,7 +18811,7 @@
  
  	memcpy(&clp->cl_addr, cl_init->addr, cl_init->addrlen);
  	clp->cl_addrlen = cl_init->addrlen;
-@@ -364,6 +365,7 @@ static int nfs_sockaddr_cmp(const struct sockaddr *sa1,
+@@ -364,6 +365,7 @@ static int nfs_sockaddr_cmp(const struct
  struct nfs_client *nfs_find_client(const struct sockaddr *addr, u32 nfsversion)
  {
  	struct nfs_client *clp;
@@ -19070,7 +18819,7 @@
  
  	spin_lock(&nfs_client_lock);
  	list_for_each_entry(clp, &nfs_client_list, cl_share_link) {
-@@ -378,6 +380,9 @@ struct nfs_client *nfs_find_client(const struct sockaddr *addr, u32 nfsversion)
+@@ -378,6 +380,9 @@ struct nfs_client *nfs_find_client(const
  		if (clp->rpc_ops->version != nfsversion)
  			continue;
  
@@ -19080,7 +18829,7 @@
  		/* Match only the IP address, not the port number */
  		if (!nfs_sockaddr_match_ipaddr(addr, clap))
  			continue;
-@@ -398,6 +403,7 @@ struct nfs_client *nfs_find_client_next(struct nfs_client *clp)
+@@ -398,6 +403,7 @@ struct nfs_client *nfs_find_client_next(
  {
  	struct sockaddr *sap = (struct sockaddr *)&clp->cl_addr;
  	u32 nfsvers = clp->rpc_ops->version;
@@ -19088,7 +18837,7 @@
  
  	spin_lock(&nfs_client_lock);
  	list_for_each_entry_continue(clp, &nfs_client_list, cl_share_link) {
-@@ -411,6 +417,9 @@ struct nfs_client *nfs_find_client_next(struct nfs_client *clp)
+@@ -411,6 +417,9 @@ struct nfs_client *nfs_find_client_next(
  		if (clp->rpc_ops->version != nfsvers)
  			continue;
  
@@ -19098,7 +18847,7 @@
  		/* Match only the IP address, not the port number */
  		if (!nfs_sockaddr_match_ipaddr(sap, clap))
  			continue;
-@@ -431,13 +440,18 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat
+@@ -431,13 +440,18 @@ static struct nfs_client *nfs_match_clie
  {
  	struct nfs_client *clp;
  	const struct sockaddr *sap = data->addr;
@@ -19117,8 +18866,6 @@
  		/* Different NFS versions cannot share the same nfs_client */
  		if (clp->rpc_ops != data->rpc_ops)
  			continue;
-diff --git a/fs/nfs/super.c b/fs/nfs/super.c
-index c0173a8..8ffb55b 100644
 --- a/fs/nfs/super.c
 +++ b/fs/nfs/super.c
 @@ -53,6 +53,9 @@
@@ -19131,7 +18878,7 @@
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -250,7 +253,8 @@ static struct file_system_type nfs_fs_type = {
+@@ -250,7 +253,8 @@ static struct file_system_type nfs_fs_ty
  	.name		= "nfs",
  	.get_sb		= nfs_get_sb,
  	.kill_sb	= nfs_kill_super,
@@ -19141,7 +18888,7 @@
  };
  
  struct file_system_type nfs_xdev_fs_type = {
-@@ -258,7 +262,8 @@ struct file_system_type nfs_xdev_fs_type = {
+@@ -258,7 +262,8 @@ struct file_system_type nfs_xdev_fs_type
  	.name		= "nfs",
  	.get_sb		= nfs_xdev_get_sb,
  	.kill_sb	= nfs_kill_super,
@@ -19223,7 +18970,7 @@
  #ifdef CONFIG_NFS_V4
  	unregister_filesystem(&nfs4_fs_type);
  #endif
-@@ -1815,6 +1871,11 @@ static int nfs_validate_mount_data(void *options,
+@@ -1815,6 +1871,11 @@ static int nfs_validate_mount_data(void
  		goto out_v3_not_compiled;
  #endif /* !CONFIG_NFS_V3 */
  
@@ -19235,7 +18982,7 @@
  	return 0;
  
  out_no_data:
-@@ -2100,6 +2161,10 @@ static int nfs_compare_super(struct super_block *sb, void *data)
+@@ -2109,6 +2170,10 @@ static int nfs_compare_super(struct supe
  	struct nfs_server *server = sb_mntdata->server, *old = NFS_SB(sb);
  	int mntflags = sb_mntdata->mntflags;
  
@@ -19246,7 +18993,7 @@
  	if (!nfs_compare_super_address(old, server))
  		return 0;
  	/* Note: NFS_MOUNT_UNSHARED == NFS4_MOUNT_UNSHARED */
-@@ -2128,6 +2193,11 @@ static int nfs_get_sb(struct file_system_type *fs_type,
+@@ -2137,6 +2202,11 @@ static int nfs_get_sb(struct file_system
  		.mntflags = flags,
  	};
  	int error = -ENOMEM;
@@ -19258,7 +19005,7 @@
  
  	data = nfs_alloc_parsed_mount_data(3);
  	mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL);
-@@ -2258,6 +2328,11 @@ static int nfs_xdev_get_sb(struct file_system_type *fs_type, int flags,
+@@ -2267,6 +2337,11 @@ static int nfs_xdev_get_sb(struct file_s
  		.mntflags = flags,
  	};
  	int error;
@@ -19270,8 +19017,6 @@
  
  	dprintk("--> nfs_xdev_get_sb()\n");
  
-diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
-index 3165d85..0f763f5 100644
 --- a/fs/notify/inode_mark.c
 +++ b/fs/notify/inode_mark.c
 @@ -90,6 +90,7 @@
@@ -19282,7 +19027,7 @@
  
  #include <asm/atomic.h>
  
-@@ -262,6 +263,23 @@ void fsnotify_clear_marks_by_inode(struct inode *inode)
+@@ -262,6 +263,23 @@ void fsnotify_clear_marks_by_inode(struc
  	}
  }
  
@@ -19306,7 +19051,7 @@
  /*
   * given a group and inode, find the mark associated with that combination.
   * if found take a reference to that mark and return it, else return NULL
-@@ -362,7 +380,7 @@ int fsnotify_add_mark(struct fsnotify_mark_entry *entry,
+@@ -362,7 +380,7 @@ int fsnotify_add_mark(struct fsnotify_ma
   * of inodes, and with iprune_mutex held, keeping shrink_icache_memory() at bay.
   * We temporarily drop inode_lock, however, and CAN block.
   */
@@ -19315,7 +19060,7 @@
  {
  	struct inode *inode, *next_i, *need_iput = NULL;
  
-@@ -414,13 +432,29 @@ void fsnotify_unmount_inodes(struct list_head *list)
+@@ -414,13 +432,29 @@ void fsnotify_unmount_inodes(struct list
  		if (need_iput_tmp)
  			iput(need_iput_tmp);
  
@@ -19348,8 +19093,6 @@
 +	fsnotify_unmount(&mnt->mnt_sb->s_inodes, mnt);
 +	spin_unlock(&inode_lock);
 +}
-diff --git a/fs/notify/inotify/inotify.h b/fs/notify/inotify/inotify.h
-index f234f3a..21faa743 100644
 --- a/fs/notify/inotify/inotify.h
 +++ b/fs/notify/inotify/inotify.h
 @@ -13,6 +13,7 @@ struct inotify_inode_mark_entry {
@@ -19360,8 +19103,6 @@
  };
  
  extern void inotify_ignored_and_remove_idr(struct fsnotify_mark_entry *entry,
-diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c
-index 5d3d2a7..9698e45 100644
 --- a/fs/notify/inotify/inotify_fsnotify.c
 +++ b/fs/notify/inotify/inotify_fsnotify.c
 @@ -29,6 +29,7 @@
@@ -19372,7 +19113,7 @@
  
  #include "inotify.h"
  
-@@ -164,10 +165,25 @@ void inotify_free_event_priv(struct fsnotify_event_private_data *fsn_event_priv)
+@@ -164,10 +165,25 @@ void inotify_free_event_priv(struct fsno
  	kmem_cache_free(event_priv_cachep, event_priv);
  }
  
@@ -19398,8 +19139,6 @@
  	.freeing_mark = inotify_freeing_mark,
 +	.detach_mnt = inotify_detach_mnt,
  };
-diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
-index aef8f5d..b36e588 100644
 --- a/fs/notify/inotify/inotify_user.c
 +++ b/fs/notify/inotify/inotify_user.c
 @@ -40,6 +40,7 @@
@@ -19410,7 +19149,7 @@
  
  #include "inotify.h"
  
-@@ -343,7 +344,7 @@ static long inotify_ioctl(struct file *file, unsigned int cmd,
+@@ -343,7 +344,7 @@ static long inotify_ioctl(struct file *f
  	return ret;
  }
  
@@ -19419,7 +19158,7 @@
  	.poll		= inotify_poll,
  	.read		= inotify_read,
  	.fasync		= inotify_fasync,
-@@ -351,6 +352,7 @@ static const struct file_operations inotify_fops = {
+@@ -351,6 +352,7 @@ static const struct file_operations inot
  	.unlocked_ioctl	= inotify_ioctl,
  	.compat_ioctl	= inotify_ioctl,
  };
@@ -19427,7 +19166,7 @@
  
  
  /*
-@@ -464,6 +466,12 @@ static void inotify_free_mark(struct fsnotify_mark_entry *entry)
+@@ -464,6 +466,12 @@ static void inotify_free_mark(struct fsn
  {
  	struct inotify_inode_mark_entry *ientry = (struct inotify_inode_mark_entry *)entry;
  
@@ -19440,7 +19179,7 @@
  	kmem_cache_free(inotify_inode_mark_cachep, ientry);
  }
  
-@@ -530,16 +538,13 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
+@@ -530,16 +538,13 @@ static int inotify_update_existing_watch
  	return ret;
  }
  
@@ -19460,7 +19199,7 @@
  	if (unlikely(!mask))
  		return -EINVAL;
  
-@@ -550,6 +555,8 @@ static int inotify_new_watch(struct fsnotify_group *group,
+@@ -550,6 +555,8 @@ static int inotify_new_watch(struct fsno
  	fsnotify_init_mark(&tmp_ientry->fsn_entry, inotify_free_mark);
  	tmp_ientry->fsn_entry.mask = mask;
  	tmp_ientry->wd = -1;
@@ -19560,7 +19299,7 @@
  	struct path path;
  	struct file *filp;
  	int ret, fput_needed;
-@@ -747,12 +777,10 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname,
+@@ -747,12 +777,10 @@ SYSCALL_DEFINE3(inotify_add_watch, int,
  	if (ret)
  		goto fput_and_out;
  
@@ -19574,8 +19313,6 @@
  	if (unlikely(ret))
  		goto path_put_and_out;
  
-diff --git a/fs/open.c b/fs/open.c
-index 4f01e06..77f73fc 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -25,6 +25,7 @@
@@ -19586,7 +19323,7 @@
  #include <linux/syscalls.h>
  #include <linux/rcupdate.h>
  #include <linux/audit.h>
-@@ -52,7 +53,21 @@ int vfs_statfs(struct dentry *dentry, struct kstatfs *buf)
+@@ -52,7 +53,21 @@ int vfs_statfs(struct dentry *dentry, st
  
  EXPORT_SYMBOL(vfs_statfs);
  
@@ -19609,7 +19346,7 @@
  {
  	struct kstatfs st;
  	int retval;
-@@ -61,6 +76,10 @@ static int vfs_statfs_native(struct dentry *dentry, struct statfs *buf)
+@@ -61,6 +76,10 @@ static int vfs_statfs_native(struct dent
  	if (retval)
  		return retval;
  
@@ -19620,7 +19357,7 @@
  	if (sizeof(*buf) == sizeof(st))
  		memcpy(buf, &st, sizeof(st));
  	else {
-@@ -96,7 +115,8 @@ static int vfs_statfs_native(struct dentry *dentry, struct statfs *buf)
+@@ -96,7 +115,8 @@ static int vfs_statfs_native(struct dent
  	return 0;
  }
  
@@ -19630,7 +19367,7 @@
  {
  	struct kstatfs st;
  	int retval;
-@@ -105,6 +125,10 @@ static int vfs_statfs64(struct dentry *dentry, struct statfs64 *buf)
+@@ -105,6 +125,10 @@ static int vfs_statfs64(struct dentry *d
  	if (retval)
  		return retval;
  
@@ -19641,7 +19378,7 @@
  	if (sizeof(*buf) == sizeof(st))
  		memcpy(buf, &st, sizeof(st));
  	else {
-@@ -131,7 +155,7 @@ SYSCALL_DEFINE2(statfs, const char __user *, pathname, struct statfs __user *, b
+@@ -131,7 +155,7 @@ SYSCALL_DEFINE2(statfs, const char __use
  	error = user_path(pathname, &path);
  	if (!error) {
  		struct statfs tmp;
@@ -19650,7 +19387,7 @@
  		if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
  			error = -EFAULT;
  		path_put(&path);
-@@ -149,7 +173,7 @@ SYSCALL_DEFINE3(statfs64, const char __user *, pathname, size_t, sz, struct stat
+@@ -149,7 +173,7 @@ SYSCALL_DEFINE3(statfs64, const char __u
  	error = user_path(pathname, &path);
  	if (!error) {
  		struct statfs64 tmp;
@@ -19659,7 +19396,7 @@
  		if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
  			error = -EFAULT;
  		path_put(&path);
-@@ -167,7 +191,7 @@ SYSCALL_DEFINE2(fstatfs, unsigned int, fd, struct statfs __user *, buf)
+@@ -167,7 +191,7 @@ SYSCALL_DEFINE2(fstatfs, unsigned int, f
  	file = fget(fd);
  	if (!file)
  		goto out;
@@ -19668,7 +19405,7 @@
  	if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
  		error = -EFAULT;
  	fput(file);
-@@ -188,7 +212,7 @@ SYSCALL_DEFINE3(fstatfs64, unsigned int, fd, size_t, sz, struct statfs64 __user
+@@ -188,7 +212,7 @@ SYSCALL_DEFINE3(fstatfs64, unsigned int,
  	file = fget(fd);
  	if (!file)
  		goto out;
@@ -19677,7 +19414,7 @@
  	if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
  		error = -EFAULT;
  	fput(file);
-@@ -630,14 +654,20 @@ out:
+@@ -631,14 +655,20 @@ out:
  	return err;
  }
  
@@ -19700,7 +19437,7 @@
  	if (error)
  		goto out;
  	inode = path.dentry->d_inode;
-@@ -659,9 +689,19 @@ out:
+@@ -660,9 +690,19 @@ out:
  	return error;
  }
  
@@ -19721,7 +19458,7 @@
  }
  
  static int chown_common(struct dentry * dentry, uid_t user, gid_t group)
-@@ -707,6 +747,7 @@ out_release:
+@@ -708,6 +748,7 @@ out_release:
  out:
  	return error;
  }
@@ -19729,7 +19466,7 @@
  
  SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
  		gid_t, group, int, flag)
-@@ -948,6 +989,7 @@ struct file *nameidata_to_filp(struct nameidata *nd, int flags)
+@@ -949,6 +990,7 @@ struct file *nameidata_to_filp(struct na
  	return filp;
  }
  
@@ -19737,7 +19474,7 @@
  /*
   * dentry_open() will have done dput(dentry) and mntput(mnt) if it returns an
   * error.
-@@ -972,6 +1014,9 @@ struct file *dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags,
+@@ -973,6 +1015,9 @@ struct file *dentry_open(struct dentry *
  		return ERR_PTR(-EINVAL);
  	}
  
@@ -19747,7 +19484,7 @@
  	error = -ENFILE;
  	f = get_empty_filp();
  	if (f == NULL) {
-@@ -1062,6 +1107,7 @@ SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
+@@ -1063,6 +1108,7 @@ SYSCALL_DEFINE3(open, const char __user
  	asmlinkage_protect(3, ret, filename, flags, mode);
  	return ret;
  }
@@ -19755,8 +19492,6 @@
  
  SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,
  		int, mode)
-diff --git a/fs/partitions/check.c b/fs/partitions/check.c
-index 7b685e1..20da630 100644
 --- a/fs/partitions/check.c
 +++ b/fs/partitions/check.c
 @@ -20,6 +20,7 @@
@@ -19767,7 +19502,7 @@
  
  #include "check.h"
  
-@@ -132,6 +133,7 @@ char *disk_name(struct gendisk *hd, int partno, char *buf)
+@@ -132,6 +133,7 @@ char *disk_name(struct gendisk *hd, int
  
  	return buf;
  }
@@ -19799,7 +19534,7 @@
  	disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj);
  	disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
  
-@@ -672,8 +676,7 @@ void del_gendisk(struct gendisk *disk)
+@@ -668,8 +672,7 @@ void del_gendisk(struct gendisk *disk)
  	kobject_put(disk->part0.holder_dir);
  	kobject_put(disk->slave_dir);
  	disk->driverfs_dev = NULL;
@@ -19810,8 +19545,6 @@
 +		sysfs_remove_link(block_depr, dev_name(disk_to_dev(disk)));
  	device_del(disk_to_dev(disk));
  }
-diff --git a/fs/pipe.c b/fs/pipe.c
-index d0cc080..352523e 100644
 --- a/fs/pipe.c
 +++ b/fs/pipe.c
 @@ -22,6 +22,8 @@
@@ -19832,7 +19565,7 @@
  				if (unlikely(!page)) {
  					ret = ret ? : -ENOMEM;
  					break;
-@@ -875,7 +877,7 @@ struct pipe_inode_info * alloc_pipe_info(struct inode *inode)
+@@ -875,7 +877,7 @@ struct pipe_inode_info * alloc_pipe_info
  {
  	struct pipe_inode_info *pipe;
  
@@ -19849,8 +19582,6 @@
  
  /*
   * sys_pipe() is the normal C calling standard for creating
-diff --git a/fs/proc/array.c b/fs/proc/array.c
-index 42fdc76..0310840 100644
 --- a/fs/proc/array.c
 +++ b/fs/proc/array.c
 @@ -83,6 +83,8 @@
@@ -19862,7 +19593,7 @@
  #include <asm/pgtable.h>
  #include <asm/processor.h>
  #include "internal.h"
-@@ -154,6 +156,18 @@ static inline const char *get_task_state(struct task_struct *tsk)
+@@ -154,6 +156,18 @@ static inline const char *get_task_state
  	return *p;
  }
  
@@ -19881,7 +19612,7 @@
  static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
  				struct pid *pid, struct task_struct *p)
  {
-@@ -161,7 +175,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
+@@ -161,7 +175,7 @@ static inline void task_state(struct seq
  	int g;
  	struct fdtable *fdt = NULL;
  	const struct cred *cred;
@@ -19890,7 +19621,7 @@
  
  	rcu_read_lock();
  	ppid = pid_alive(p) ?
-@@ -172,6 +186,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
+@@ -172,6 +186,7 @@ static inline void task_state(struct seq
  		if (tracer)
  			tpid = task_pid_nr_ns(tracer, ns);
  	}
@@ -19898,7 +19629,7 @@
  	cred = get_task_cred(p);
  	seq_printf(m,
  		"State:\t%s\n"
-@@ -205,6 +220,11 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
+@@ -205,6 +220,11 @@ static inline void task_state(struct seq
  	put_cred(cred);
  
  	seq_printf(m, "\n");
@@ -19910,7 +19641,7 @@
  }
  
  static void render_sigset_t(struct seq_file *m, const char *header,
-@@ -244,10 +264,10 @@ static void collect_sigign_sigcatch(struct task_struct *p, sigset_t *ign,
+@@ -244,10 +264,10 @@ static void collect_sigign_sigcatch(stru
  	}
  }
  
@@ -19923,7 +19654,7 @@
  	int num_threads = 0;
  	unsigned long qsize = 0;
  	unsigned long qlim = 0;
-@@ -257,11 +277,13 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
+@@ -257,11 +277,13 @@ static inline void task_sig(struct seq_f
  	sigemptyset(&blocked);
  	sigemptyset(&ignored);
  	sigemptyset(&caught);
@@ -19937,7 +19668,7 @@
  		collect_sigign_sigcatch(p, &ignored, &caught);
  		num_threads = atomic_read(&p->signal->count);
  		qsize = atomic_read(&__task_cred(p)->user->sigpending);
-@@ -278,6 +300,7 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
+@@ -278,6 +300,7 @@ static inline void task_sig(struct seq_f
  	render_sigset_t(m, "SigBlk:\t", &blocked);
  	render_sigset_t(m, "SigIgn:\t", &ignored);
  	render_sigset_t(m, "SigCgt:\t", &caught);
@@ -19945,7 +19676,7 @@
  }
  
  static void render_cap_t(struct seq_file *m, const char *header,
-@@ -312,6 +335,20 @@ static inline void task_cap(struct seq_file *m, struct task_struct *p)
+@@ -312,6 +335,20 @@ static inline void task_cap(struct seq_f
  	render_cap_t(m, "CapBnd:\t", &cap_bset);
  }
  
@@ -19966,7 +19697,7 @@
  static inline void task_context_switch_counts(struct seq_file *m,
  						struct task_struct *p)
  {
-@@ -325,6 +362,9 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
+@@ -325,6 +362,9 @@ int proc_pid_status(struct seq_file *m,
  			struct pid *pid, struct task_struct *task)
  {
  	struct mm_struct *mm = get_task_mm(task);
@@ -19991,7 +19722,7 @@
  	return 0;
  }
  
-@@ -363,6 +411,10 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -360,6 +408,10 @@ static int do_task_stat(struct seq_file
  	unsigned long rsslim = 0;
  	char tcomm[sizeof(task->comm)];
  	unsigned long flags;
@@ -20002,7 +19733,7 @@
  
  	state = *get_task_state(task);
  	vsize = eip = esp = 0;
-@@ -441,6 +493,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -438,6 +490,7 @@ static int do_task_stat(struct seq_file
  	priority = task_prio(task);
  	nice = task_nice(task);
  
@@ -20010,7 +19741,7 @@
  	/* Temporary variable needed for gcc-2.96 */
  	/* convert timespec -> nsec*/
  	start_time =
-@@ -448,10 +501,25 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -445,10 +498,25 @@ static int do_task_stat(struct seq_file
  				+ task->real_start_time.tv_nsec;
  	/* convert nsec -> ticks */
  	start_time = nsec_to_clock_t(start_time);
@@ -20037,7 +19768,7 @@
  		pid_nr_ns(pid, ns),
  		tcomm,
  		state,
-@@ -498,7 +566,16 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -495,7 +563,16 @@ static int do_task_stat(struct seq_file
  		task->policy,
  		(unsigned long long)delayacct_blkio_ticks(task),
  		cputime_to_clock_t(gtime),
@@ -20055,8 +19786,6 @@
  	if (mm)
  		mmput(mm);
  	return 0;
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index a1bb0f6..ef6ee19 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
 @@ -49,6 +49,7 @@
@@ -20067,7 +19796,7 @@
  #include <linux/errno.h>
  #include <linux/time.h>
  #include <linux/proc_fs.h>
-@@ -156,10 +157,14 @@ static int get_fs_path(struct task_struct *task, struct path *path, bool root)
+@@ -156,10 +157,14 @@ static int get_fs_path(struct task_struc
  	fs = task->fs;
  	if (fs) {
  		read_lock(&fs->lock);
@@ -20085,7 +19814,7 @@
  	}
  	task_unlock(task);
  	return result;
-@@ -550,17 +555,31 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer)
+@@ -579,17 +584,31 @@ static int proc_pid_syscall(struct task_
  static int proc_fd_access_allowed(struct inode *inode)
  {
  	struct task_struct *task;
@@ -20120,7 +19849,7 @@
  }
  
  static int proc_setattr(struct dentry *dentry, struct iattr *attr)
-@@ -1039,6 +1058,8 @@ static ssize_t oom_adjust_write(struct file *file, const char __user *buf,
+@@ -1066,6 +1085,8 @@ static ssize_t oom_adjust_write(struct f
  	if ((oom_adjust < OOM_ADJUST_MIN || oom_adjust > OOM_ADJUST_MAX) &&
  	     oom_adjust != OOM_DISABLE)
  		return -EINVAL;
@@ -20129,7 +19858,7 @@
  
  	task = get_proc_task(file->f_path.dentry->d_inode);
  	if (!task)
-@@ -1295,6 +1316,7 @@ void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file)
+@@ -1322,6 +1343,7 @@ void set_mm_exe_file(struct mm_struct *m
  	mm->exe_file = new_exe_file;
  	mm->num_exe_file_vmas = 0;
  }
@@ -20137,7 +19866,7 @@
  
  struct file *get_mm_exe_file(struct mm_struct *mm)
  {
-@@ -1333,10 +1355,15 @@ static int proc_exe_link(struct inode *inode, struct path *exe_path)
+@@ -1360,10 +1382,15 @@ static int proc_exe_link(struct inode *i
  	exe_file = get_mm_exe_file(mm);
  	mmput(mm);
  	if (exe_file) {
@@ -20156,7 +19885,7 @@
  	} else
  		return -ENOENT;
  }
-@@ -1344,13 +1371,14 @@ static int proc_exe_link(struct inode *inode, struct path *exe_path)
+@@ -1371,13 +1398,14 @@ static int proc_exe_link(struct inode *i
  static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
  {
  	struct inode *inode = dentry->d_inode;
@@ -20173,7 +19902,7 @@
  		goto out;
  
  	error = PROC_I(inode)->op.proc_get_link(inode, &nd->path);
-@@ -1385,12 +1413,13 @@ static int do_proc_readlink(struct path *path, char __user *buffer, int buflen)
+@@ -1411,12 +1439,13 @@ static int do_proc_readlink(struct path
  
  static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int buflen)
  {
@@ -20189,7 +19918,7 @@
  		goto out;
  
  	error = PROC_I(inode)->op.proc_get_link(inode, &path);
-@@ -1641,6 +1670,7 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
+@@ -1667,6 +1696,7 @@ static int proc_fd_info(struct inode *in
  	struct files_struct *files = NULL;
  	struct file *file;
  	int fd = proc_fd(inode);
@@ -20197,7 +19926,7 @@
  
  	if (task) {
  		files = get_files_struct(task);
-@@ -1653,7 +1683,8 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
+@@ -1679,7 +1709,8 @@ static int proc_fd_info(struct inode *in
  		 */
  		spin_lock(&files->file_lock);
  		file = fcheck_files(files, fd);
@@ -20207,7 +19936,7 @@
  			if (path) {
  				*path = file->f_path;
  				path_get(&file->f_path);
-@@ -1671,7 +1702,7 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
+@@ -1697,7 +1728,7 @@ static int proc_fd_info(struct inode *in
  		spin_unlock(&files->file_lock);
  		put_files_struct(files);
  	}
@@ -20216,7 +19945,7 @@
  }
  
  static int proc_fd_link(struct inode *inode, struct path *path)
-@@ -2458,7 +2489,7 @@ static int do_io_accounting(struct task_struct *task, char *buffer, int whole)
+@@ -2494,7 +2525,7 @@ static int do_io_accounting(struct task_
  		struct task_struct *t = task;
  
  		task_io_accounting_add(&acct, &task->signal->ioac);
@@ -20225,7 +19954,7 @@
  			task_io_accounting_add(&acct, &t->ioac);
  
  		unlock_task_sighand(task, &flags);
-@@ -3161,3 +3192,35 @@ static const struct file_operations proc_task_operations = {
+@@ -3209,3 +3240,35 @@ static const struct file_operations proc
  	.read		= generic_read_dir,
  	.readdir	= proc_task_readdir,
  };
@@ -20261,8 +19990,6 @@
 +
 +EXPORT_SYMBOL(dummy_proc_pid_file_operations);
 +
-diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c
-index 82676e3..2ad657d 100644
 --- a/fs/proc/cmdline.c
 +++ b/fs/proc/cmdline.c
 @@ -2,10 +2,12 @@
@@ -20279,7 +20006,7 @@
  	return 0;
  }
  
-@@ -23,7 +25,7 @@ static const struct file_operations cmdline_proc_fops = {
+@@ -23,7 +25,7 @@ static const struct file_operations cmdl
  
  static int __init proc_cmdline_init(void)
  {
@@ -20288,11 +20015,9 @@
  	return 0;
  }
  module_init(proc_cmdline_init);
-diff --git a/fs/proc/cpuinfo.c b/fs/proc/cpuinfo.c
-index 5a1e539..f7d84b5 100644
 --- a/fs/proc/cpuinfo.c
 +++ b/fs/proc/cpuinfo.c
-@@ -18,7 +18,7 @@ static const struct file_operations proc_cpuinfo_operations = {
+@@ -18,7 +18,7 @@ static const struct file_operations proc
  
  static int __init proc_cpuinfo_init(void)
  {
@@ -20301,8 +20026,6 @@
  	return 0;
  }
  module_init(proc_cpuinfo_init);
-diff --git a/fs/proc/devices.c b/fs/proc/devices.c
-index 59ee7da..d485f24 100644
 --- a/fs/proc/devices.c
 +++ b/fs/proc/devices.c
 @@ -2,6 +2,7 @@
@@ -20313,7 +20036,7 @@
  
  static int devinfo_show(struct seq_file *f, void *v)
  {
-@@ -25,6 +26,9 @@ static int devinfo_show(struct seq_file *f, void *v)
+@@ -25,6 +26,9 @@ static int devinfo_show(struct seq_file
  
  static void *devinfo_start(struct seq_file *f, loff_t *pos)
  {
@@ -20323,7 +20046,7 @@
  	if (*pos < (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE))
  		return pos;
  	return NULL;
-@@ -64,7 +68,7 @@ static const struct file_operations proc_devinfo_operations = {
+@@ -64,7 +68,7 @@ static const struct file_operations proc
  
  static int __init proc_devices_init(void)
  {
@@ -20332,11 +20055,9 @@
  	return 0;
  }
  module_init(proc_devices_init);
-diff --git a/fs/proc/generic.c b/fs/proc/generic.c
-index fa678ab..a66517d 100644
 --- a/fs/proc/generic.c
 +++ b/fs/proc/generic.c
-@@ -255,6 +255,10 @@ static int proc_notify_change(struct dentry *dentry, struct iattr *iattr)
+@@ -255,6 +255,10 @@ static int proc_notify_change(struct den
  	struct proc_dir_entry *de = PDE(inode);
  	int error;
  
@@ -20347,7 +20068,7 @@
  	error = inode_change_ok(inode, iattr);
  	if (error)
  		goto out;
-@@ -263,9 +267,12 @@ static int proc_notify_change(struct dentry *dentry, struct iattr *iattr)
+@@ -263,9 +267,12 @@ static int proc_notify_change(struct den
  	if (error)
  		goto out;
  	
@@ -20363,7 +20084,7 @@
  out:
  	return error;
  }
-@@ -274,11 +281,22 @@ static int proc_getattr(struct vfsmount *mnt, struct dentry *dentry,
+@@ -274,11 +281,22 @@ static int proc_getattr(struct vfsmount
  			struct kstat *stat)
  {
  	struct inode *inode = dentry->d_inode;
@@ -20389,7 +20110,7 @@
  	return 0;
  }
  
-@@ -411,28 +429,60 @@ static const struct dentry_operations proc_dentry_operations =
+@@ -411,28 +429,60 @@ static const struct dentry_operations pr
  	.d_delete	= proc_delete_dentry,
  };
  
@@ -20474,7 +20195,7 @@
  }
  
  /*
-@@ -464,13 +516,14 @@ struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
+@@ -464,13 +516,14 @@ struct dentry *proc_lookup(struct inode
   * value of the readdir() call, as long as it's non-negative
   * for success..
   */
@@ -20491,7 +20212,7 @@
  
  	ino = inode->i_ino;
  	i = filp->f_pos;
-@@ -491,25 +544,19 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
+@@ -491,25 +544,19 @@ int proc_readdir_de(struct proc_dir_entr
  			/* fall through */
  		default:
  			spin_lock(&proc_subdir_lock);
@@ -20526,7 +20247,7 @@
  				spin_unlock(&proc_subdir_lock);
  				if (filldir(dirent, de->name, de->namelen, filp->f_pos,
  					    de->low_ino, de->mode >> 12) < 0) {
-@@ -518,10 +565,17 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
+@@ -518,10 +565,17 @@ int proc_readdir_de(struct proc_dir_entr
  				}
  				spin_lock(&proc_subdir_lock);
  				filp->f_pos++;
@@ -20545,7 +20266,7 @@
  			spin_unlock(&proc_subdir_lock);
  	}
  	ret = 1;
-@@ -533,7 +587,7 @@ int proc_readdir(struct file *filp, void *dirent, filldir_t filldir)
+@@ -533,7 +587,7 @@ int proc_readdir(struct file *filp, void
  {
  	struct inode *inode = filp->f_path.dentry->d_inode;
  
@@ -20554,8 +20275,6 @@
  }
  
  /*
-diff --git a/fs/proc/inode.c b/fs/proc/inode.c
-index d78ade3..20fcc37 100644
 --- a/fs/proc/inode.c
 +++ b/fs/proc/inode.c
 @@ -18,6 +18,8 @@
@@ -20567,7 +20286,7 @@
  
  #include <asm/system.h>
  #include <asm/uaccess.h>
-@@ -442,7 +444,7 @@ static const struct file_operations proc_reg_file_ops_no_compat = {
+@@ -442,7 +444,7 @@ static const struct file_operations proc
  #endif
  
  struct inode *proc_get_inode(struct super_block *sb, unsigned int ino,
@@ -20576,7 +20295,7 @@
  {
  	struct inode * inode;
  
-@@ -453,6 +455,9 @@ struct inode *proc_get_inode(struct super_block *sb, unsigned int ino,
+@@ -453,6 +455,9 @@ struct inode *proc_get_inode(struct supe
  		inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
  		PROC_I(inode)->fd = 0;
  		PROC_I(inode)->pde = de;
@@ -20586,7 +20305,7 @@
  
  		if (de->mode) {
  			inode->i_mode = de->mode;
-@@ -494,9 +499,11 @@ int proc_fill_super(struct super_block *s)
+@@ -494,9 +499,11 @@ int proc_fill_super(struct super_block *
  	s->s_magic = PROC_SUPER_MAGIC;
  	s->s_op = &proc_sops;
  	s->s_time_gran = 1;
@@ -20601,8 +20320,6 @@
  	if (!root_inode)
  		goto out_no_root;
  	root_inode->i_uid = 0;
-diff --git a/fs/proc/internal.h b/fs/proc/internal.h
-index 753ca37..8f9249e 100644
 --- a/fs/proc/internal.h
 +++ b/fs/proc/internal.h
 @@ -12,6 +12,12 @@
@@ -20618,7 +20335,7 @@
  #ifdef CONFIG_PROC_SYSCTL
  extern int proc_sys_init(void);
  #else
-@@ -80,10 +86,11 @@ static inline int proc_fd(struct inode *inode)
+@@ -80,10 +86,11 @@ static inline int proc_fd(struct inode *
  	return PROC_I(inode)->fd;
  }
  
@@ -20643,8 +20360,6 @@
  
  /*
   * These are generic /proc routines that use the internal
-diff --git a/fs/proc/kmsg.c b/fs/proc/kmsg.c
-index 7ca7834..2f7da10 100644
 --- a/fs/proc/kmsg.c
 +++ b/fs/proc/kmsg.c
 @@ -12,6 +12,10 @@
@@ -20658,7 +20373,7 @@
  
  #include <asm/uaccess.h>
  #include <asm/io.h>
-@@ -41,19 +45,20 @@ static ssize_t kmsg_read(struct file *file, char __user *buf,
+@@ -41,19 +45,20 @@ static ssize_t kmsg_read(struct file *fi
  
  static unsigned int kmsg_poll(struct file *file, poll_table *wait)
  {
@@ -20681,8 +20396,6 @@
  
  static int __init proc_kmsg_init(void)
  {
-diff --git a/fs/proc/loadavg.c b/fs/proc/loadavg.c
-index 1afa4dd..cfd8d8b 100644
 --- a/fs/proc/loadavg.c
 +++ b/fs/proc/loadavg.c
 @@ -13,14 +13,25 @@
@@ -20714,7 +20427,7 @@
  		task_active_pid_ns(current)->last_pid);
  	return 0;
  }
-@@ -39,7 +50,7 @@ static const struct file_operations loadavg_proc_fops = {
+@@ -39,7 +50,7 @@ static const struct file_operations load
  
  static int __init proc_loadavg_init(void)
  {
@@ -20723,8 +20436,6 @@
  	return 0;
  }
  module_init(proc_loadavg_init);
-diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
-index a65239c..76206c4 100644
 --- a/fs/proc/meminfo.c
 +++ b/fs/proc/meminfo.c
 @@ -10,6 +10,7 @@
@@ -20735,7 +20446,7 @@
  #include <asm/atomic.h>
  #include <asm/page.h>
  #include <asm/pgtable.h>
-@@ -19,9 +20,28 @@ void __attribute__((weak)) arch_report_meminfo(struct seq_file *m)
+@@ -19,9 +20,28 @@ void __attribute__((weak)) arch_report_m
  {
  }
  
@@ -20764,7 +20475,7 @@
  	unsigned long committed;
  	unsigned long allowed;
  	struct vmalloc_info vmi;
-@@ -29,12 +49,19 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
+@@ -29,12 +49,19 @@ static int meminfo_proc_show(struct seq_
  	unsigned long pages[NR_LRU_LISTS];
  	int lru;
  
@@ -20787,7 +20498,7 @@
  	committed = percpu_counter_read_positive(&vm_committed_as);
  	allowed = ((totalram_pages - hugetlb_total_pages())
  		* sysctl_overcommit_ratio / 100) + total_swap_pages;
-@@ -175,7 +202,7 @@ static const struct file_operations meminfo_proc_fops = {
+@@ -175,7 +202,7 @@ static const struct file_operations memi
  
  static int __init proc_meminfo_init(void)
  {
@@ -20796,11 +20507,9 @@
  	return 0;
  }
  module_init(proc_meminfo_init);
-diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
-index 04d1270..7dfab0b 100644
 --- a/fs/proc/proc_net.c
 +++ b/fs/proc/proc_net.c
-@@ -126,7 +126,7 @@ static struct dentry *proc_tgid_net_lookup(struct inode *dir,
+@@ -126,7 +126,7 @@ static struct dentry *proc_tgid_net_look
  	de = ERR_PTR(-ENOENT);
  	net = get_proc_task_net(dir);
  	if (net != NULL) {
@@ -20809,7 +20518,7 @@
  		put_net(net);
  	}
  	return de;
-@@ -164,7 +164,8 @@ static int proc_tgid_net_readdir(struct file *filp, void *dirent,
+@@ -164,7 +164,8 @@ static int proc_tgid_net_readdir(struct
  	ret = -EINVAL;
  	net = get_proc_task_net(filp->f_path.dentry->d_inode);
  	if (net != NULL) {
@@ -20819,7 +20528,7 @@
  		put_net(net);
  	}
  	return ret;
-@@ -234,7 +235,7 @@ static struct pernet_operations __net_initdata proc_net_ns_ops = {
+@@ -234,7 +235,7 @@ static struct pernet_operations __net_in
  
  int __init proc_net_init(void)
  {
@@ -20828,8 +20537,6 @@
  
  	return register_pernet_subsys(&proc_net_ns_ops);
  }
-diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index f667e8a..e3c13c1 100644
 --- a/fs/proc/proc_sysctl.c
 +++ b/fs/proc/proc_sysctl.c
 @@ -406,7 +406,7 @@ int __init proc_sys_init(void)
@@ -20841,8 +20548,6 @@
  	proc_sys_root->proc_iops = &proc_sys_dir_operations;
  	proc_sys_root->proc_fops = &proc_sys_dir_file_operations;
  	proc_sys_root->nlink = 0;
-diff --git a/fs/proc/proc_tty.c b/fs/proc/proc_tty.c
-index 83adcc8..e9dce9e 100644
 --- a/fs/proc/proc_tty.c
 +++ b/fs/proc/proc_tty.c
 @@ -13,6 +13,7 @@
@@ -20853,7 +20558,7 @@
  #include <linux/bitops.h>
  
  /*
-@@ -70,6 +71,9 @@ static int show_tty_driver(struct seq_file *m, void *v)
+@@ -70,6 +71,9 @@ static int show_tty_driver(struct seq_fi
  	dev_t from = MKDEV(p->major, p->minor_start);
  	dev_t to = from + p->num;
  
@@ -20863,7 +20568,7 @@
  	if (&p->tty_drivers == tty_drivers.next) {
  		/* pseudo-drivers first */
  		seq_printf(m, "%-20s /dev/%-8s ", "/dev/tty", "tty");
-@@ -97,6 +101,7 @@ static int show_tty_driver(struct seq_file *m, void *v)
+@@ -97,6 +101,7 @@ static int show_tty_driver(struct seq_fi
  	}
  	if (from != to)
  		show_tty_range(m, p, from, to - from);
@@ -20871,11 +20576,9 @@
  	return 0;
  }
  
-diff --git a/fs/proc/root.c b/fs/proc/root.c
-index b080b79..36f59af 100644
 --- a/fs/proc/root.c
 +++ b/fs/proc/root.c
-@@ -42,6 +42,9 @@ static int proc_get_sb(struct file_system_type *fs_type,
+@@ -42,6 +42,9 @@ static int proc_get_sb(struct file_syste
  	struct super_block *sb;
  	struct pid_namespace *ns;
  	struct proc_inode *ei;
@@ -20885,7 +20588,7 @@
  
  	if (proc_mnt) {
  		/* Seed the root directory with a pid so it doesn't need
-@@ -95,11 +98,12 @@ static void proc_kill_sb(struct super_block *sb)
+@@ -95,11 +98,12 @@ static void proc_kill_sb(struct super_bl
  	put_pid_ns(ns);
  }
  
@@ -20981,8 +20684,6 @@
  int pid_ns_prepare_proc(struct pid_namespace *ns)
  {
  	struct vfsmount *mnt;
-diff --git a/fs/proc/stat.c b/fs/proc/stat.c
-index 7cc726c..f2dd1fc 100644
 --- a/fs/proc/stat.c
 +++ b/fs/proc/stat.c
 @@ -22,6 +22,62 @@
@@ -21048,7 +20749,7 @@
  static int show_stat(struct seq_file *p, void *v)
  {
  	int i, j;
-@@ -33,12 +89,18 @@ static int show_stat(struct seq_file *p, void *v)
+@@ -33,12 +89,18 @@ static int show_stat(struct seq_file *p,
  	unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
  	struct timespec boottime;
  	unsigned int per_irq_sum;
@@ -21069,7 +20770,7 @@
  
  	for_each_possible_cpu(i) {
  		user = cputime64_add(user, kstat_cpu(i).cpustat.user);
-@@ -166,7 +228,7 @@ static const struct file_operations proc_stat_operations = {
+@@ -166,7 +228,7 @@ static const struct file_operations proc
  
  static int __init proc_stat_init(void)
  {
@@ -21078,11 +20779,9 @@
  	return 0;
  }
  module_init(proc_stat_init);
-diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c
-index 766b1d4..47acfbf 100644
 --- a/fs/proc/uptime.c
 +++ b/fs/proc/uptime.c
-@@ -19,6 +19,13 @@ static int uptime_proc_show(struct seq_file *m, void *v)
+@@ -22,6 +22,13 @@ static int uptime_proc_show(struct seq_f
  
  	do_posix_clock_monotonic_gettime(&uptime);
  	monotonic_to_bootbased(&uptime);
@@ -21096,7 +20795,7 @@
  	nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC;
  	idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
  	idle.tv_nsec = rem;
-@@ -42,7 +49,7 @@ static const struct file_operations uptime_proc_fops = {
+@@ -47,7 +54,7 @@ static const struct file_operations upti
  
  static int __init proc_uptime_init(void)
  {
@@ -21105,11 +20804,9 @@
  	return 0;
  }
  module_init(proc_uptime_init);
-diff --git a/fs/proc/version.c b/fs/proc/version.c
-index 76817a6..e78b783 100644
 --- a/fs/proc/version.c
 +++ b/fs/proc/version.c
-@@ -28,7 +28,7 @@ static const struct file_operations version_proc_fops = {
+@@ -28,7 +28,7 @@ static const struct file_operations vers
  
  static int __init proc_version_init(void)
  {
@@ -21118,8 +20815,6 @@
  	return 0;
  }
  module_init(proc_version_init);
-diff --git a/fs/quota/Kconfig b/fs/quota/Kconfig
-index 8047e01..7a92faf 100644
 --- a/fs/quota/Kconfig
 +++ b/fs/quota/Kconfig
 @@ -26,13 +26,22 @@ config QUOTA_NETLINK_INTERFACE
@@ -21178,8 +20873,6 @@
  config QUOTACTL
  	bool
  	depends on XFS_QUOTA || QUOTA
-diff --git a/fs/quota/Makefile b/fs/quota/Makefile
-index 68d4f6d..4c2159c 100644
 --- a/fs/quota/Makefile
 +++ b/fs/quota/Makefile
 @@ -3,3 +3,5 @@ obj-$(CONFIG_QFMT_V1)		+= quota_v1.o
@@ -21188,11 +20881,9 @@
  obj-$(CONFIG_QUOTACTL)		+= quota.o
 +
 +obj-y				+= vzdquota/
-diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
-index 4fdb0eb..e7aff07 100644
 --- a/fs/quota/dquot.c
 +++ b/fs/quota/dquot.c
-@@ -170,8 +170,9 @@ static struct quota_format_type *find_quota_format(int id)
+@@ -170,8 +170,9 @@ static struct quota_format_type *find_qu
  	struct quota_format_type *actqf;
  
  	spin_lock(&dq_list_lock);
@@ -21204,8 +20895,6 @@
  		;
  	if (!actqf || !try_module_get(actqf->qf_owner)) {
  		int qm;
-diff --git a/fs/quota/quota.c b/fs/quota/quota.c
-index 95c5b42..7d9d4b4 100644
 --- a/fs/quota/quota.c
 +++ b/fs/quota/quota.c
 @@ -18,6 +18,7 @@
@@ -21216,7 +20905,7 @@
  
  /* Check validity of generic quotactl commands */
  static int generic_quotactl_valid(struct super_block *sb, int type, int cmd,
-@@ -83,11 +84,11 @@ static int generic_quotactl_valid(struct super_block *sb, int type, int cmd,
+@@ -83,11 +84,11 @@ static int generic_quotactl_valid(struct
  	if (cmd == Q_GETQUOTA) {
  		if (((type == USRQUOTA && current_euid() != id) ||
  		     (type == GRPQUOTA && !in_egroup_p(id))) &&
@@ -21230,7 +20919,7 @@
  			return -EPERM;
  
  	return 0;
-@@ -135,10 +136,10 @@ static int xqm_quotactl_valid(struct super_block *sb, int type, int cmd,
+@@ -135,10 +136,10 @@ static int xqm_quotactl_valid(struct sup
  	if (cmd == Q_XGETQUOTA) {
  		if (((type == XQM_USRQUOTA && current_euid() != id) ||
  		     (type == XQM_GRPQUOTA && !in_egroup_p(id))) &&
@@ -21243,7 +20932,7 @@
  			return -EPERM;
  	}
  
-@@ -164,7 +165,7 @@ void sync_quota_sb(struct super_block *sb, int type)
+@@ -164,7 +165,7 @@ void sync_quota_sb(struct super_block *s
  {
  	int cnt;
  
@@ -21252,7 +20941,7 @@
  		return;
  
  	sb->s_qcop->quota_sync(sb, type);
-@@ -188,6 +189,8 @@ void sync_quota_sb(struct super_block *sb, int type)
+@@ -188,6 +189,8 @@ void sync_quota_sb(struct super_block *s
  			continue;
  		if (!sb_has_quota_active(sb, cnt))
  			continue;
@@ -21261,7 +20950,7 @@
  		mutex_lock_nested(&sb_dqopt(sb)->files[cnt]->i_mutex,
  				  I_MUTEX_QUOTA);
  		truncate_inode_pages(&sb_dqopt(sb)->files[cnt]->i_data, 0);
-@@ -361,6 +364,7 @@ static struct super_block *quotactl_block(const char __user *special)
+@@ -361,6 +364,7 @@ static struct super_block *quotactl_bloc
  	struct block_device *bdev;
  	struct super_block *sb;
  	char *tmp = getname(special);
@@ -21269,7 +20958,7 @@
  
  	if (IS_ERR(tmp))
  		return ERR_CAST(tmp);
-@@ -368,6 +372,13 @@ static struct super_block *quotactl_block(const char __user *special)
+@@ -368,6 +372,13 @@ static struct super_block *quotactl_bloc
  	putname(tmp);
  	if (IS_ERR(bdev))
  		return ERR_CAST(bdev);
@@ -21283,7 +20972,7 @@
  	sb = get_super(bdev);
  	bdput(bdev);
  	if (!sb)
-@@ -379,6 +390,231 @@ static struct super_block *quotactl_block(const char __user *special)
+@@ -379,6 +390,231 @@ static struct super_block *quotactl_bloc
  #endif
  }
  
@@ -21515,7 +21204,7 @@
  /*
   * This is the system call interface. This communicates with
   * the user-level programs. Currently this only supports diskquota
-@@ -395,6 +631,11 @@ SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special,
+@@ -395,6 +631,11 @@ SYSCALL_DEFINE4(quotactl, unsigned int,
  	cmds = cmd >> SUBCMDSHIFT;
  	type = cmd & SUBCMDMASK;
  
@@ -21527,7 +21216,7 @@
  	if (cmds != Q_SYNC || special) {
  		sb = quotactl_block(special);
  		if (IS_ERR(sb))
-@@ -459,6 +700,11 @@ asmlinkage long sys32_quotactl(unsigned int cmd, const char __user *special,
+@@ -459,6 +700,11 @@ asmlinkage long sys32_quotactl(unsigned
  	compat_uint_t data;
  	u16 xdata;
  	long ret;
@@ -21539,7 +21228,7 @@
  
  	cmds = cmd >> SUBCMDSHIFT;
  
-@@ -519,6 +765,43 @@ asmlinkage long sys32_quotactl(unsigned int cmd, const char __user *special,
+@@ -519,6 +765,43 @@ asmlinkage long sys32_quotactl(unsigned
  			break;
  		ret = 0;
  		break;
@@ -21583,9 +21272,6 @@
  	default:
  		ret = sys_quotactl(cmd, special, id, addr);
  	}
-diff --git a/fs/quota/vzdquota/Makefile b/fs/quota/vzdquota/Makefile
-new file mode 100644
-index 0000000..03fdee3
 --- /dev/null
 +++ b/fs/quota/vzdquota/Makefile
 @@ -0,0 +1,4 @@
@@ -21593,9 +21279,6 @@
 +vzdquota-y			+= vzdquot.o vzdq_mgmt.o vzdq_ops.o vzdq_tree.o
 +vzdquota-$(CONFIG_VZ_QUOTA_UGID) += vzdq_ugid.o
 +vzdquota-$(CONFIG_VZ_QUOTA_UGID) += vzdq_file.o
-diff --git a/fs/quota/vzdquota/vzdq_file.c b/fs/quota/vzdquota/vzdq_file.c
-new file mode 100644
-index 0000000..3ac9f05
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdq_file.c
 @@ -0,0 +1,956 @@
@@ -22555,9 +22238,6 @@
 +{
 +	remove_proc_entry("vz/vzaquota", NULL);
 +}
-diff --git a/fs/quota/vzdquota/vzdq_mgmt.c b/fs/quota/vzdquota/vzdq_mgmt.c
-new file mode 100644
-index 0000000..bd066de
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdq_mgmt.c
 @@ -0,0 +1,754 @@
@@ -23315,9 +22995,6 @@
 +}
 +
 +#endif
-diff --git a/fs/quota/vzdquota/vzdq_ops.c b/fs/quota/vzdquota/vzdq_ops.c
-new file mode 100644
-index 0000000..faa4d96
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdq_ops.c
 @@ -0,0 +1,647 @@
@@ -23968,9 +23645,6 @@
 +	.swap_inode	= vzquota_swap_inode,
 +	.shutdown	= vzquota_shutdown_super,
 +};
-diff --git a/fs/quota/vzdquota/vzdq_tree.c b/fs/quota/vzdquota/vzdq_tree.c
-new file mode 100644
-index 0000000..f4f2152
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdq_tree.c
 @@ -0,0 +1,286 @@
@@ -24260,9 +23934,6 @@
 +	quotatree_free_nodes(tree);
 +	kfree(tree);
 +}
-diff --git a/fs/quota/vzdquota/vzdq_ugid.c b/fs/quota/vzdquota/vzdq_ugid.c
-new file mode 100644
-index 0000000..a3e9e8c
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdq_ugid.c
 @@ -0,0 +1,1216 @@
@@ -25482,9 +25153,6 @@
 +
 +	kmem_cache_destroy(vz_quota_ugid_cachep);
 +}
-diff --git a/fs/quota/vzdquota/vzdquot.c b/fs/quota/vzdquota/vzdquot.c
-new file mode 100644
-index 0000000..f091943
 --- /dev/null
 +++ b/fs/quota/vzdquota/vzdquot.c
 @@ -0,0 +1,1994 @@
@@ -27482,8 +27150,6 @@
 +#if defined(VZ_QUOTA_UNLOAD)
 +module_exit(vzquota_release)
 +#endif
-diff --git a/fs/read_write.c b/fs/read_write.c
-index 3ac2898..618603e 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
 @@ -21,6 +21,8 @@
@@ -27495,7 +27161,7 @@
  const struct file_operations generic_ro_fops = {
  	.llseek		= generic_file_llseek,
  	.read		= do_sync_read,
-@@ -369,6 +371,29 @@ static inline void file_pos_write(struct file *file, loff_t pos)
+@@ -369,6 +371,29 @@ static inline void file_pos_write(struct
  	file->f_pos = pos;
  }
  
@@ -27525,7 +27191,7 @@
  SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
  {
  	struct file *file;
-@@ -381,6 +406,8 @@ SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
+@@ -381,6 +406,8 @@ SYSCALL_DEFINE3(read, unsigned int, fd,
  		ret = vfs_read(file, buf, count, &pos);
  		file_pos_write(file, pos);
  		fput_light(file, fput_needed);
@@ -27534,7 +27200,7 @@
  	}
  
  	return ret;
-@@ -399,6 +426,8 @@ SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
+@@ -399,6 +426,8 @@ SYSCALL_DEFINE3(write, unsigned int, fd,
  		ret = vfs_write(file, buf, count, &pos);
  		file_pos_write(file, pos);
  		fput_light(file, fput_needed);
@@ -27543,7 +27209,7 @@
  	}
  
  	return ret;
-@@ -420,6 +449,8 @@ SYSCALL_DEFINE(pread64)(unsigned int fd, char __user *buf,
+@@ -420,6 +449,8 @@ SYSCALL_DEFINE(pread64)(unsigned int fd,
  		if (file->f_mode & FMODE_PREAD)
  			ret = vfs_read(file, buf, count, &pos);
  		fput_light(file, fput_needed);
@@ -27552,7 +27218,7 @@
  	}
  
  	return ret;
-@@ -449,6 +480,8 @@ SYSCALL_DEFINE(pwrite64)(unsigned int fd, const char __user *buf,
+@@ -449,6 +480,8 @@ SYSCALL_DEFINE(pwrite64)(unsigned int fd
  		if (file->f_mode & FMODE_PWRITE)  
  			ret = vfs_write(file, buf, count, &pos);
  		fput_light(file, fput_needed);
@@ -27561,7 +27227,7 @@
  	}
  
  	return ret;
-@@ -702,6 +735,8 @@ SYSCALL_DEFINE3(readv, unsigned long, fd, const struct iovec __user *, vec,
+@@ -702,6 +735,8 @@ SYSCALL_DEFINE3(readv, unsigned long, fd
  		ret = vfs_readv(file, vec, vlen, &pos);
  		file_pos_write(file, pos);
  		fput_light(file, fput_needed);
@@ -27570,7 +27236,7 @@
  	}
  
  	if (ret > 0)
-@@ -723,6 +758,8 @@ SYSCALL_DEFINE3(writev, unsigned long, fd, const struct iovec __user *, vec,
+@@ -723,6 +758,8 @@ SYSCALL_DEFINE3(writev, unsigned long, f
  		ret = vfs_writev(file, vec, vlen, &pos);
  		file_pos_write(file, pos);
  		fput_light(file, fput_needed);
@@ -27579,11 +27245,9 @@
  	}
  
  	if (ret > 0)
-diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
-index 2715791..b6fa0ea 100644
 --- a/fs/reiserfs/namei.c
 +++ b/fs/reiserfs/namei.c
-@@ -826,6 +826,9 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry)
+@@ -826,6 +826,9 @@ static int reiserfs_rmdir(struct inode *
  	INITIALIZE_PATH(path);
  	struct reiserfs_dir_entry de;
  
@@ -27593,7 +27257,7 @@
  	/* we will be doing 2 balancings and update 2 stat data, we change quotas
  	 * of the owner of the directory and of the owner of the parent directory.
  	 * The quota structure is possibly deleted only on last iput => outside
-@@ -850,8 +853,6 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry)
+@@ -850,8 +853,6 @@ static int reiserfs_rmdir(struct inode *
  		goto end_rmdir;
  	}
  
@@ -27602,7 +27266,7 @@
  	reiserfs_update_inode_transaction(inode);
  	reiserfs_update_inode_transaction(dir);
  
-@@ -915,6 +916,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
+@@ -915,6 +916,7 @@ static int reiserfs_unlink(struct inode
  	unsigned long savelink;
  
  	inode = dentry->d_inode;
@@ -27610,7 +27274,7 @@
  
  	/* in this transaction we can be doing at max two balancings and update
  	 * two stat datas, we change quotas of the owner of the directory and of
-@@ -1228,6 +1230,8 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
+@@ -1228,6 +1230,8 @@ static int reiserfs_rename(struct inode
  
  	old_inode = old_dentry->d_inode;
  	new_dentry_inode = new_dentry->d_inode;
@@ -27619,8 +27283,6 @@
  
  	// make sure, that oldname still exists and points to an object we
  	// are going to rename
-diff --git a/fs/select.c b/fs/select.c
-index fd38ce2..9a9e8b0 100644
 --- a/fs/select.c
 +++ b/fs/select.c
 @@ -29,6 +29,7 @@
@@ -27631,7 +27293,7 @@
  
  /*
   * Estimate expected accuracy in ns from a timeval.
-@@ -551,7 +552,8 @@ int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
+@@ -551,7 +552,8 @@ int core_sys_select(int n, fd_set __user
  	if (size > sizeof(stack_fds) / 6) {
  		/* Not enough space in on-stack array; must use kmalloc */
  		ret = -ENOMEM;
@@ -27641,7 +27303,7 @@
  		if (!bits)
  			goto out_nofds;
  	}
-@@ -841,7 +843,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
+@@ -841,7 +843,7 @@ int do_sys_poll(struct pollfd __user *uf
  
  		len = min(todo, POLLFD_PER_PAGE);
  		size = sizeof(struct poll_list) + sizeof(struct pollfd) * len;
@@ -27659,7 +27321,7 @@
  {
  	struct pollfd __user *ufds = restart_block->poll.ufds;
  	int nfds = restart_block->poll.nfds;
-@@ -894,6 +896,7 @@ static long do_restart_poll(struct restart_block *restart_block)
+@@ -894,6 +896,7 @@ static long do_restart_poll(struct resta
  	}
  	return ret;
  }
@@ -27667,11 +27329,9 @@
  
  SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds,
  		long, timeout_msecs)
-diff --git a/fs/seq_file.c b/fs/seq_file.c
-index eae7d9d..d9a7043 100644
 --- a/fs/seq_file.c
 +++ b/fs/seq_file.c
-@@ -32,7 +32,7 @@ int seq_open(struct file *file, const struct seq_operations *op)
+@@ -32,7 +32,7 @@ int seq_open(struct file *file, const st
  	struct seq_file *p = file->private_data;
  
  	if (!p) {
@@ -27680,7 +27340,7 @@
  		if (!p)
  			return -ENOMEM;
  		file->private_data = p;
-@@ -76,7 +76,7 @@ static int traverse(struct seq_file *m, loff_t offset)
+@@ -76,7 +76,7 @@ static int traverse(struct seq_file *m,
  		return 0;
  	}
  	if (!m->buf) {
@@ -27689,7 +27349,7 @@
  		if (!m->buf)
  			return -ENOMEM;
  	}
-@@ -116,7 +116,7 @@ static int traverse(struct seq_file *m, loff_t offset)
+@@ -116,7 +116,7 @@ static int traverse(struct seq_file *m,
  Eoverflow:
  	m->op->stop(m, p);
  	kfree(m->buf);
@@ -27698,7 +27358,7 @@
  	return !m->buf ? -ENOMEM : -EAGAIN;
  }
  
-@@ -169,7 +169,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
+@@ -169,7 +169,7 @@ ssize_t seq_read(struct file *file, char
  	m->version = file->f_version;
  	/* grab buffer if we didn't have one */
  	if (!m->buf) {
@@ -27707,7 +27367,7 @@
  		if (!m->buf)
  			goto Enomem;
  	}
-@@ -210,7 +210,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
+@@ -210,7 +210,7 @@ ssize_t seq_read(struct file *file, char
  			goto Fill;
  		m->op->stop(m, p);
  		kfree(m->buf);
@@ -27716,7 +27376,7 @@
  		if (!m->buf)
  			goto Enomem;
  		m->count = 0;
-@@ -435,6 +435,8 @@ int seq_path(struct seq_file *m, struct path *path, char *esc)
+@@ -435,6 +435,8 @@ int seq_path(struct seq_file *m, struct
  
  	if (size) {
  		char *p = d_path(path, buf, size);
@@ -27725,7 +27385,7 @@
  		if (!IS_ERR(p)) {
  			char *end = mangle_path(buf, p, esc);
  			if (end)
-@@ -551,7 +553,7 @@ static void single_stop(struct seq_file *p, void *v)
+@@ -551,7 +553,7 @@ static void single_stop(struct seq_file
  int single_open(struct file *file, int (*show)(struct seq_file *, void *),
  		void *data)
  {
@@ -27734,7 +27394,7 @@
  	int res = -ENOMEM;
  
  	if (op) {
-@@ -595,7 +597,7 @@ void *__seq_open_private(struct file *f, const struct seq_operations *ops,
+@@ -595,7 +597,7 @@ void *__seq_open_private(struct file *f,
  	void *private;
  	struct seq_file *seq;
  
@@ -27743,8 +27403,6 @@
  	if (private == NULL)
  		goto out;
  
-diff --git a/fs/signalfd.c b/fs/signalfd.c
-index d98bea8..d0c9670 100644
 --- a/fs/signalfd.c
 +++ b/fs/signalfd.c
 @@ -28,6 +28,7 @@
@@ -27755,7 +27413,7 @@
  
  void signalfd_cleanup(struct sighand_struct *sighand)
  {
-@@ -44,10 +44,6 @@
+@@ -44,10 +45,6 @@ void signalfd_cleanup(struct sighand_str
  	wake_up_poll(wqh, POLLHUP | POLLFREE);
  }
  
@@ -27766,7 +27424,7 @@
  static int signalfd_release(struct inode *inode, struct file *file)
  {
  	kfree(file->private_data);
-@@ -201,17 +198,17 @@ static ssize_t signalfd_read(struct file *file, char __user *buf, size_t count,
+@@ -216,17 +213,17 @@ static ssize_t signalfd_read(struct file
  	return total ? total: ret;
  }
  
@@ -27786,7 +27444,7 @@
  
  	/* Check the SFD_* constants for consistency.  */
  	BUILD_BUG_ON(SFD_CLOEXEC != O_CLOEXEC);
-@@ -226,12 +223,19 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask,
+@@ -241,12 +238,19 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sig
  	sigdelsetmask(&sigmask, sigmask(SIGKILL) | sigmask(SIGSTOP));
  	signotset(&sigmask);
  
@@ -27807,7 +27465,7 @@
  
  		/*
  		 * When we call this, the initialization must be complete, since
-@@ -251,7 +255,7 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask,
+@@ -266,7 +270,7 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sig
  			return -EINVAL;
  		}
  		spin_lock_irq(&current->sighand->siglock);
@@ -27816,7 +27474,7 @@
  		spin_unlock_irq(&current->sighand->siglock);
  
  		wake_up(&current->sighand->signalfd_wqh);
-@@ -260,6 +264,7 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask,
+@@ -275,6 +279,7 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sig
  
  	return ufd;
  }
@@ -27824,9 +27482,6 @@
  
  SYSCALL_DEFINE3(signalfd, int, ufd, sigset_t __user *, user_mask,
  		size_t, sizemask)
-diff --git a/fs/simfs.c b/fs/simfs.c
-new file mode 100644
-index 0000000..e21f911
 --- /dev/null
 +++ b/fs/simfs.c
 @@ -0,0 +1,339 @@
@@ -28169,11 +27824,9 @@
 +
 +module_init(init_simfs);
 +module_exit(exit_simfs);
-diff --git a/fs/smbfs/sock.c b/fs/smbfs/sock.c
-index e37fe4d..1992fc0 100644
 --- a/fs/smbfs/sock.c
 +++ b/fs/smbfs/sock.c
-@@ -99,6 +99,7 @@ smb_close_socket(struct smb_sb_info *server)
+@@ -99,6 +99,7 @@ smb_close_socket(struct smb_sb_info *ser
  
  		VERBOSE("closing socket %p\n", sock);
  		sock->sk->sk_data_ready = server->data_ready;
@@ -28181,8 +27834,6 @@
  		server->sock_file = NULL;
  		fput(file);
  	}
-diff --git a/fs/stat.c b/fs/stat.c
-index c4ecd52..37e6cd9 100644
 --- a/fs/stat.c
 +++ b/fs/stat.c
 @@ -14,6 +14,7 @@
@@ -28193,7 +27844,7 @@
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-@@ -41,11 +42,19 @@ int vfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+@@ -41,11 +42,19 @@ int vfs_getattr(struct vfsmount *mnt, st
  {
  	struct inode *inode = dentry->d_inode;
  	int retval;
@@ -28213,8 +27864,6 @@
  	if (inode->i_op->getattr)
  		return inode->i_op->getattr(mnt, dentry, stat);
  
-diff --git a/fs/super.c b/fs/super.c
-index aff046b..cce99ab 100644
 --- a/fs/super.c
 +++ b/fs/super.c
 @@ -37,12 +37,15 @@
@@ -28233,7 +27882,7 @@
  
  /**
   *	alloc_super	-	create new superblock
-@@ -69,13 +72,15 @@ static struct super_block *alloc_super(struct file_system_type *type)
+@@ -69,13 +72,15 @@ static struct super_block *alloc_super(s
  		INIT_LIST_HEAD(&s->s_dentry_lru);
  		init_rwsem(&s->s_umount);
  		mutex_init(&s->s_lock);
@@ -28251,7 +27900,7 @@
  		/*
  		 * sget() can have s_umount recursion.
  		 *
-@@ -307,11 +312,13 @@ void generic_shutdown_super(struct super_block *sb)
+@@ -307,11 +312,13 @@ void generic_shutdown_super(struct super
  		/* bad name - it should be evict_inodes() */
  		invalidate_inodes(sb);
  
@@ -28311,7 +27960,7 @@
  int set_anon_super(struct super_block *s, void *data)
  {
  	int dev;
-@@ -672,7 +695,7 @@ int set_anon_super(struct super_block *s, void *data)
+@@ -672,7 +695,7 @@ int set_anon_super(struct super_block *s
  	else if (error)
  		return -EAGAIN;
  
@@ -28320,7 +27969,7 @@
  		spin_lock(&unnamed_dev_lock);
  		ida_remove(&unnamed_dev_ida, dev);
  		if (unnamed_dev_start > dev)
-@@ -680,7 +703,7 @@ int set_anon_super(struct super_block *s, void *data)
+@@ -680,7 +703,7 @@ int set_anon_super(struct super_block *s
  		spin_unlock(&unnamed_dev_lock);
  		return -EMFILE;
  	}
@@ -28340,8 +27989,6 @@
  	generic_shutdown_super(sb);
  	spin_lock(&unnamed_dev_lock);
  	ida_remove(&unnamed_dev_ida, slot);
-diff --git a/fs/sync.c b/fs/sync.c
-index d104591..d23ae15 100644
 --- a/fs/sync.c
 +++ b/fs/sync.c
 @@ -15,6 +15,8 @@
@@ -28372,7 +28019,7 @@
  	return 0;
  }
  
-@@ -207,6 +216,7 @@ int vfs_fsync_range(struct file *file, struct dentry *dentry, loff_t start,
+@@ -207,6 +216,7 @@ int vfs_fsync_range(struct file *file, s
  	const struct file_operations *fop;
  	struct address_space *mapping;
  	int err, ret;
@@ -28380,7 +28027,7 @@
  
  	/*
  	 * Get mapping and operations from the file in case we have
-@@ -226,6 +236,12 @@ int vfs_fsync_range(struct file *file, struct dentry *dentry, loff_t start,
+@@ -226,6 +236,12 @@ int vfs_fsync_range(struct file *file, s
  		goto out;
  	}
  
@@ -28393,7 +28040,7 @@
  	ret = filemap_write_and_wait_range(mapping, start, end);
  
  	/*
-@@ -238,6 +254,10 @@ int vfs_fsync_range(struct file *file, struct dentry *dentry, loff_t start,
+@@ -238,6 +254,10 @@ int vfs_fsync_range(struct file *file, s
  		ret = err;
  	mutex_unlock(&mapping->host->i_mutex);
  
@@ -28404,7 +28051,7 @@
  out:
  	return ret;
  }
-@@ -444,12 +464,16 @@ int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
+@@ -444,12 +464,16 @@ int do_sync_mapping_range(struct address
  			  loff_t endbyte, unsigned int flags)
  {
  	int ret;
@@ -28422,7 +28069,7 @@
  	ret = 0;
  	if (flags & SYNC_FILE_RANGE_WAIT_BEFORE) {
  		ret = wait_on_page_writeback_range(mapping,
-@@ -472,6 +496,8 @@ int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
+@@ -472,6 +496,8 @@ int do_sync_mapping_range(struct address
  					endbyte >> PAGE_CACHE_SHIFT);
  	}
  out:
@@ -28431,11 +28078,9 @@
  	return ret;
  }
  EXPORT_SYMBOL_GPL(do_sync_mapping_range);
-diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
-index 60c702b..8c2e052 100644
 --- a/fs/sysfs/bin.c
 +++ b/fs/sysfs/bin.c
-@@ -398,6 +398,9 @@ static int open(struct inode * inode, struct file * file)
+@@ -398,6 +398,9 @@ static int open(struct inode * inode, st
  	struct bin_buffer *bb = NULL;
  	int error;
  
@@ -28445,7 +28090,7 @@
  	/* binary file operations requires both @sd and its parent */
  	if (!sysfs_get_active_two(attr_sd))
  		return -ENODEV;
-@@ -485,6 +488,9 @@ void unmap_bin_file(struct sysfs_dirent *attr_sd)
+@@ -485,6 +488,9 @@ void unmap_bin_file(struct sysfs_dirent
  
  int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr)
  {
@@ -28455,7 +28100,7 @@
  	BUG_ON(!kobj || !kobj->sd || !attr);
  
  	return sysfs_add_file(kobj->sd, &attr->attr, SYSFS_KOBJ_BIN_ATTR);
-@@ -499,6 +505,8 @@ int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr)
+@@ -499,6 +505,8 @@ int sysfs_create_bin_file(struct kobject
  
  void sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr)
  {
@@ -28464,11 +28109,9 @@
  	sysfs_hash_and_remove(kobj->sd, attr->attr.name);
  }
  
-diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
-index e020183..3af502c 100644
 --- a/fs/sysfs/dir.c
 +++ b/fs/sysfs/dir.c
-@@ -539,6 +539,9 @@ static void sysfs_drop_dentry(struct sysfs_dirent *sd)
+@@ -539,6 +539,9 @@ static void sysfs_drop_dentry(struct sys
  	struct inode *inode;
  	struct dentry *dentry;
  
@@ -28478,7 +28121,7 @@
  	inode = ilookup(sysfs_sb, sd->s_ino);
  	if (!inode)
  		return;
-@@ -712,12 +715,15 @@ int sysfs_create_dir(struct kobject * kobj)
+@@ -712,12 +715,15 @@ int sysfs_create_dir(struct kobject * ko
  	struct sysfs_dirent *parent_sd, *sd;
  	int error = 0;
  
@@ -28495,7 +28138,7 @@
  
  	error = create_dir(kobj, parent_sd, kobject_name(kobj), &sd);
  	if (!error)
-@@ -819,6 +825,9 @@ void sysfs_remove_dir(struct kobject * kobj)
+@@ -819,6 +825,9 @@ void sysfs_remove_dir(struct kobject * k
  {
  	struct sysfs_dirent *sd = kobj->sd;
  
@@ -28505,7 +28148,7 @@
  	spin_lock(&sysfs_assoc_lock);
  	kobj->sd = NULL;
  	spin_unlock(&sysfs_assoc_lock);
-@@ -834,6 +843,9 @@ int sysfs_rename_dir(struct kobject * kobj, const char *new_name)
+@@ -834,6 +843,9 @@ int sysfs_rename_dir(struct kobject * ko
  	const char *dup_name = NULL;
  	int error;
  
@@ -28515,7 +28158,7 @@
  	mutex_lock(&sysfs_rename_mutex);
  
  	error = 0;
-@@ -899,7 +911,7 @@ int sysfs_move_dir(struct kobject *kobj, struct kobject *new_parent_kobj)
+@@ -899,7 +911,7 @@ int sysfs_move_dir(struct kobject *kobj,
  	mutex_lock(&sysfs_rename_mutex);
  	BUG_ON(!sd->s_parent);
  	new_parent_sd = (new_parent_kobj && new_parent_kobj->sd) ?
@@ -28524,11 +28167,9 @@
  
  	error = 0;
  	if (sd->s_parent == new_parent_sd)
-diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
-index 7118a38..00bae21 100644
 --- a/fs/sysfs/file.c
 +++ b/fs/sysfs/file.c
-@@ -536,6 +536,8 @@ int sysfs_add_file(struct sysfs_dirent *dir_sd, const struct attribute *attr,
+@@ -536,6 +536,8 @@ int sysfs_add_file(struct sysfs_dirent *
  
  int sysfs_create_file(struct kobject * kobj, const struct attribute * attr)
  {
@@ -28546,11 +28187,9 @@
  	sysfs_hash_and_remove(kobj->sd, attr->name);
  }
  
-diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c
-index fe61194..628afe3 100644
 --- a/fs/sysfs/group.c
 +++ b/fs/sysfs/group.c
-@@ -62,6 +62,8 @@ static int internal_create_group(struct kobject *kobj, int update,
+@@ -62,6 +62,8 @@ static int internal_create_group(struct
  	struct sysfs_dirent *sd;
  	int error;
  
@@ -28559,7 +28198,7 @@
  	BUG_ON(!kobj || (!update && !kobj->sd));
  
  	/* Updates may happen before the object has been instantiated */
-@@ -131,6 +133,9 @@ void sysfs_remove_group(struct kobject * kobj,
+@@ -131,6 +133,9 @@ void sysfs_remove_group(struct kobject *
  	struct sysfs_dirent *dir_sd = kobj->sd;
  	struct sysfs_dirent *sd;
  
@@ -28569,8 +28208,6 @@
  	if (grp->name) {
  		sd = sysfs_get_dirent(dir_sd, grp->name);
  		if (!sd) {
-diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
-index 02a022a..7a68ae0 100644
 --- a/fs/sysfs/inode.c
 +++ b/fs/sysfs/inode.c
 @@ -22,8 +22,6 @@
@@ -28582,8 +28219,6 @@
  static const struct address_space_operations sysfs_aops = {
  	.readpage	= simple_readpage,
  	.write_begin	= simple_write_begin,
-diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
-index 4974995..2b3c67e 100644
 --- a/fs/sysfs/mount.c
 +++ b/fs/sysfs/mount.c
 @@ -22,8 +22,22 @@
@@ -28624,7 +28259,7 @@
  static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
  {
  	struct inode *inode;
-@@ -54,7 +75,7 @@ static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
+@@ -54,7 +75,7 @@ static int sysfs_fill_super(struct super
  
  	/* get root inode, initialize and unlock it */
  	mutex_lock(&sysfs_mutex);
@@ -28633,7 +28268,7 @@
  	mutex_unlock(&sysfs_mutex);
  	if (!inode) {
  		pr_debug("sysfs: could not get root inode\n");
-@@ -68,7 +89,7 @@ static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
+@@ -68,7 +89,7 @@ static int sysfs_fill_super(struct super
  		iput(inode);
  		return -ENOMEM;
  	}
@@ -28642,7 +28277,7 @@
  	sb->s_root = root;
  	return 0;
  }
-@@ -79,16 +100,19 @@ static int sysfs_get_sb(struct file_system_type *fs_type,
+@@ -79,16 +100,19 @@ static int sysfs_get_sb(struct file_syst
  	return get_sb_single(fs_type, flags, data, sysfs_fill_super, mnt);
  }
  
@@ -28663,11 +28298,9 @@
  	sysfs_dir_cachep = kmem_cache_create("sysfs_dir_cache",
  					      sizeof(struct sysfs_dirent),
  					      0, 0, NULL);
-diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
-index c5081ad..c9dc0b0 100644
 --- a/fs/sysfs/symlink.c
 +++ b/fs/sysfs/symlink.c
-@@ -29,10 +29,13 @@ static int sysfs_do_create_link(struct kobject *kobj, struct kobject *target,
+@@ -29,10 +29,13 @@ static int sysfs_do_create_link(struct k
  	struct sysfs_addrm_cxt acxt;
  	int error;
  
@@ -28682,7 +28315,7 @@
  	else
  		parent_sd = kobj->sd;
  
-@@ -115,8 +118,11 @@ void sysfs_remove_link(struct kobject * kobj, const char * name)
+@@ -115,8 +118,11 @@ void sysfs_remove_link(struct kobject *
  {
  	struct sysfs_dirent *parent_sd = NULL;
  
@@ -28695,8 +28328,6 @@
  	else
  		parent_sd = kobj->sd;
  
-diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h
-index af4c4e7..561271d 100644
 --- a/fs/sysfs/sysfs.h
 +++ b/fs/sysfs/sysfs.h
 @@ -10,74 +10,17 @@
@@ -28799,11 +28430,9 @@
  extern struct kmem_cache *sysfs_dir_cachep;
  
  /*
-diff --git a/fs/utimes.c b/fs/utimes.c
-index e4c75db..86a62a1 100644
 --- a/fs/utimes.c
 +++ b/fs/utimes.c
-@@ -40,6 +40,20 @@ SYSCALL_DEFINE2(utime, char __user *, filename, struct utimbuf __user *, times)
+@@ -40,6 +40,20 @@ SYSCALL_DEFINE2(utime, char __user *, fi
  
  #endif
  
@@ -28824,11 +28453,9 @@
  static bool nsec_valid(long nsec)
  {
  	if (nsec == UTIME_OMIT || nsec == UTIME_NOW)
-diff --git a/fs/xattr.c b/fs/xattr.c
-index 6d4f6d3..3243bd7 100644
 --- a/fs/xattr.c
 +++ b/fs/xattr.c
-@@ -115,6 +115,15 @@ vfs_setxattr(struct dentry *dentry, const char *name, const void *value,
+@@ -115,6 +115,15 @@ vfs_setxattr(struct dentry *dentry, cons
  	struct inode *inode = dentry->d_inode;
  	int error;
  
@@ -28844,8 +28471,6 @@
  	error = xattr_permission(inode, name, MAY_WRITE);
  	if (error)
  		return error;
-diff --git a/include/asm-generic/mman.h b/include/asm-generic/mman.h
-index 32c8bd6..cb151a4 100644
 --- a/include/asm-generic/mman.h
 +++ b/include/asm-generic/mman.h
 @@ -12,6 +12,7 @@
@@ -28856,9 +28481,6 @@
  
  #define MCL_CURRENT	1		/* lock all current mappings */
  #define MCL_FUTURE	2		/* lock all future mappings */
-diff --git a/include/bc/beancounter.h b/include/bc/beancounter.h
-new file mode 100644
-index 0000000..7ba4c77
 --- /dev/null
 +++ b/include/bc/beancounter.h
 @@ -0,0 +1,453 @@
@@ -29315,9 +28937,6 @@
 +#endif
 +#endif /* __KERNEL__ */
 +#endif /* _LINUX_BEANCOUNTER_H */
-diff --git a/include/bc/dcache.h b/include/bc/dcache.h
-new file mode 100644
-index 0000000..5ebefff
 --- /dev/null
 +++ b/include/bc/dcache.h
 @@ -0,0 +1,47 @@
@@ -29368,9 +28987,6 @@
 +#define ub_dput_testzero(d)	(0)
 +#endif
 +#endif
-diff --git a/include/bc/dcache_op.h b/include/bc/dcache_op.h
-new file mode 100644
-index 0000000..23306e9
 --- /dev/null
 +++ b/include/bc/dcache_op.h
 @@ -0,0 +1,102 @@
@@ -29476,9 +29092,6 @@
 +#endif /* CONFIG_BEANCOUNTERS */
 +
 +#endif /* __dcache_op.h_ */
-diff --git a/include/bc/debug.h b/include/bc/debug.h
-new file mode 100644
-index 0000000..58c64f3
 --- /dev/null
 +++ b/include/bc/debug.h
 @@ -0,0 +1,103 @@
@@ -29585,9 +29198,6 @@
 +#endif
 +
 +#endif
-diff --git a/include/bc/decl.h b/include/bc/decl.h
-new file mode 100644
-index 0000000..6dd4cb9
 --- /dev/null
 +++ b/include/bc/decl.h
 @@ -0,0 +1,41 @@
@@ -29632,9 +29242,6 @@
 +#endif
 +
 +#endif
-diff --git a/include/bc/hash.h b/include/bc/hash.h
-new file mode 100644
-index 0000000..b2afb69
 --- /dev/null
 +++ b/include/bc/hash.h
 @@ -0,0 +1,36 @@
@@ -29674,9 +29281,6 @@
 +#endif /* CONFIG_BEANCOUNTERS */
 +#endif /* __KERNEL__ */
 +#endif /* _LINUX_UBHASH_H */
-diff --git a/include/bc/io_acct.h b/include/bc/io_acct.h
-new file mode 100644
-index 0000000..361b26c
 --- /dev/null
 +++ b/include/bc/io_acct.h
 @@ -0,0 +1,113 @@
@@ -29793,9 +29397,6 @@
 +#define ub_io_release_debug(pg)	do { } while (0)
 +#endif
 +#endif
-diff --git a/include/bc/kmem.h b/include/bc/kmem.h
-new file mode 100644
-index 0000000..e6a31f2
 --- /dev/null
 +++ b/include/bc/kmem.h
 @@ -0,0 +1,69 @@
@@ -29868,9 +29469,6 @@
 +#endif
 +
 +#endif /* __UB_SLAB_H_ */
-diff --git a/include/bc/misc.h b/include/bc/misc.h
-new file mode 100644
-index 0000000..84082b2
 --- /dev/null
 +++ b/include/bc/misc.h
 @@ -0,0 +1,55 @@
@@ -29929,9 +29527,6 @@
 +#define put_mm_ub(mm)		do { } while (0)
 +#endif
 +#endif
-diff --git a/include/bc/net.h b/include/bc/net.h
-new file mode 100644
-index 0000000..32f33b9
 --- /dev/null
 +++ b/include/bc/net.h
 @@ -0,0 +1,213 @@
@@ -30148,9 +29743,6 @@
 +			struct sock *sk, unsigned long size, int res))
 +
 +#endif
-diff --git a/include/bc/oom_kill.h b/include/bc/oom_kill.h
-new file mode 100644
-index 0000000..c07608f
 --- /dev/null
 +++ b/include/bc/oom_kill.h
 @@ -0,0 +1,26 @@
@@ -30180,9 +29772,6 @@
 +#define ub_oom_start()			do { } while (0)
 +#define ub_oom_task_killed(p)		do { } while (0)
 +#endif
-diff --git a/include/bc/proc.h b/include/bc/proc.h
-new file mode 100644
-index 0000000..f244523
 --- /dev/null
 +++ b/include/bc/proc.h
 @@ -0,0 +1,40 @@
@@ -30226,9 +29815,6 @@
 +extern const char *bc_proc_llu_fmt;
 +extern const char *bc_proc_lu_lu_fmt;
 +#endif
-diff --git a/include/bc/rss_pages.h b/include/bc/rss_pages.h
-new file mode 100644
-index 0000000..b195961
 --- /dev/null
 +++ b/include/bc/rss_pages.h
 @@ -0,0 +1,57 @@
@@ -30289,9 +29875,6 @@
 +extern int is_shmem_mapping(struct address_space *);
 +
 +#endif
-diff --git a/include/bc/sock.h b/include/bc/sock.h
-new file mode 100644
-index 0000000..b314c9b
 --- /dev/null
 +++ b/include/bc/sock.h
 @@ -0,0 +1,47 @@
@@ -30342,9 +29925,6 @@
 +#define sock_has_ubc(__sk)	(sock_bc(__sk)->ub != NULL)
 +
 +#endif
-diff --git a/include/bc/sock_orphan.h b/include/bc/sock_orphan.h
-new file mode 100644
-index 0000000..8f829c3
 --- /dev/null
 +++ b/include/bc/sock_orphan.h
 @@ -0,0 +1,98 @@
@@ -30446,9 +30026,6 @@
 +					__ub_timewait_check(sk))
 +
 +#endif
-diff --git a/include/bc/statd.h b/include/bc/statd.h
-new file mode 100644
-index 0000000..9dafc5e
 --- /dev/null
 +++ b/include/bc/statd.h
 @@ -0,0 +1,70 @@
@@ -30522,9 +30099,6 @@
 +};
 +#endif
 +#endif
-diff --git a/include/bc/task.h b/include/bc/task.h
-new file mode 100644
-index 0000000..f5a2915
 --- /dev/null
 +++ b/include/bc/task.h
 @@ -0,0 +1,69 @@
@@ -30597,9 +30171,6 @@
 +
 +#endif /* CONFIG_BEANCOUNTERS */
 +#endif /* __task.h_ */
-diff --git a/include/bc/tcp.h b/include/bc/tcp.h
-new file mode 100644
-index 0000000..d2bf748
 --- /dev/null
 +++ b/include/bc/tcp.h
 @@ -0,0 +1,76 @@
@@ -30679,9 +30250,6 @@
 +}
 +
 +#endif
-diff --git a/include/bc/vmpages.h b/include/bc/vmpages.h
-new file mode 100644
-index 0000000..09642e3
 --- /dev/null
 +++ b/include/bc/vmpages.h
 @@ -0,0 +1,152 @@
@@ -30837,11 +30405,9 @@
 +SWP_DECLARE_VOID_FUNC(ub_swapentry_inc(struct swap_info_struct *si, pgoff_t n,
 +			struct user_beancounter *ub))
 +SWP_DECLARE_VOID_FUNC(ub_swapentry_dec(struct swap_info_struct *si, pgoff_t n))
-diff --git a/include/linux/aio.h b/include/linux/aio.h
-index aea219d..89cab9b 100644
 --- a/include/linux/aio.h
 +++ b/include/linux/aio.h
-@@ -234,4 +234,8 @@ static inline struct kiocb *list_kiocb(struct list_head *h)
+@@ -234,4 +234,8 @@ static inline struct kiocb *list_kiocb(s
  extern unsigned long aio_nr;
  extern unsigned long aio_max_nr;
  
@@ -30850,8 +30416,6 @@
 +extern void aio_kick_handler(struct work_struct *);
 +
  #endif /* __LINUX__AIO_H */
-diff --git a/include/linux/capability.h b/include/linux/capability.h
-index c8f2a5f7..301d709 100644
 --- a/include/linux/capability.h
 +++ b/include/linux/capability.h
 @@ -197,12 +197,9 @@ struct cpu_vfs_cap_data {
@@ -30980,7 +30544,7 @@
  # define cap_set_init_eff(c)  do { (c) = __cap_init_eff_set; } while (0)
  
  #define cap_raise(c, flag)  ((c).cap[CAP_TO_INDEX(flag)] |= CAP_TO_MASK(flag))
-@@ -536,6 +593,10 @@ extern const kernel_cap_t __cap_empty_set;
+@@ -536,6 +593,10 @@ extern const kernel_cap_t __cap_empty_se
  extern const kernel_cap_t __cap_full_set;
  extern const kernel_cap_t __cap_init_eff_set;
  
@@ -30991,8 +30555,6 @@
  /**
   * has_capability - Determine if a task has a superior capability available
   * @t: The task in question
-diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
-index 0008dee..9665343 100644
 --- a/include/linux/cgroup.h
 +++ b/include/linux/cgroup.h
 @@ -220,6 +220,8 @@ struct cgroup {
@@ -31004,7 +30566,7 @@
  };
  
  /*
-@@ -525,6 +527,7 @@ struct task_struct *cgroup_iter_next(struct cgroup *cgrp,
+@@ -525,6 +527,7 @@ struct task_struct *cgroup_iter_next(str
  void cgroup_iter_end(struct cgroup *cgrp, struct cgroup_iter *it);
  int cgroup_scan_tasks(struct cgroup_scanner *scan);
  int cgroup_attach_task(struct cgroup *, struct task_struct *);
@@ -31012,8 +30574,6 @@
  
  /*
   * CSS ID is ID for cgroup_subsys_state structs under subsys. This only works
-diff --git a/include/linux/cgroup_subsys.h b/include/linux/cgroup_subsys.h
-index 9c8d31b..ccefff0 100644
 --- a/include/linux/cgroup_subsys.h
 +++ b/include/linux/cgroup_subsys.h
 @@ -60,3 +60,9 @@ SUBSYS(net_cls)
@@ -31026,11 +30586,9 @@
 +#endif
 +
 +/* */
-diff --git a/include/linux/compat.h b/include/linux/compat.h
-index cab23f2..9b9fa9c 100644
 --- a/include/linux/compat.h
 +++ b/include/linux/compat.h
-@@ -258,6 +258,7 @@ asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv,
+@@ -258,6 +258,7 @@ asmlinkage long compat_sys_settimeofday(
  asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp);
  
  extern int compat_printk(const char *fmt, ...);
@@ -31038,9 +30596,6 @@
  extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat);
  
  asmlinkage long compat_sys_migrate_pages(compat_pid_t pid,
-diff --git a/include/linux/cpt_export.h b/include/linux/cpt_export.h
-new file mode 100644
-index 0000000..be88d2d
 --- /dev/null
 +++ b/include/linux/cpt_export.h
 @@ -0,0 +1,36 @@
@@ -31080,9 +30635,6 @@
 +
 +#endif
 +
-diff --git a/include/linux/cpt_image.h b/include/linux/cpt_image.h
-new file mode 100644
-index 0000000..8185d4e
 --- /dev/null
 +++ b/include/linux/cpt_image.h
 @@ -0,0 +1,1842 @@
@@ -32928,9 +32480,6 @@
 +#endif
 +
 +#endif /* __CPT_IMAGE_H_ */
-diff --git a/include/linux/cpt_ioctl.h b/include/linux/cpt_ioctl.h
-new file mode 100644
-index 0000000..f31b66c
 --- /dev/null
 +++ b/include/linux/cpt_ioctl.h
 @@ -0,0 +1,45 @@
@@ -32979,8 +32528,6 @@
 +#define CPT_HARDLNK_ON	_IOW(CPTCTLTYPE, 25, int)
 +
 +#endif
-diff --git a/include/linux/dcache.h b/include/linux/dcache.h
-index 30b93b2..44c384a 100644
 --- a/include/linux/dcache.h
 +++ b/include/linux/dcache.h
 @@ -8,6 +8,8 @@
@@ -33013,7 +32560,7 @@
  extern spinlock_t dcache_lock;
  extern seqlock_t rename_lock;
  
-@@ -314,6 +323,7 @@ extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
+@@ -314,6 +323,7 @@ extern char *dynamic_dname(struct dentry
  extern char *__d_path(const struct path *path, struct path *root, char *, int);
  extern char *d_path(const struct path *, char *, int);
  extern char *dentry_path(struct dentry *, char *, int);
@@ -33021,7 +32568,7 @@
  
  /* Allocation counts.. */
  
-@@ -333,6 +343,12 @@ extern char *dentry_path(struct dentry *, char *, int);
+@@ -333,6 +343,12 @@ extern char *dentry_path(struct dentry *
  static inline struct dentry *dget(struct dentry *dentry)
  {
  	if (dentry) {
@@ -33034,14 +32581,12 @@
  		BUG_ON(!atomic_read(&dentry->d_count));
  		atomic_inc(&dentry->d_count);
  	}
-@@ -380,4 +396,5 @@ extern struct dentry *lookup_create(struct nameidata *nd, int is_dir);
+@@ -380,4 +396,5 @@ extern struct dentry *lookup_create(stru
  
  extern int sysctl_vfs_cache_pressure;
  
 +extern int check_area_access_ve(struct path *);
  #endif	/* __LINUX_DCACHE_H */
-diff --git a/include/linux/device.h b/include/linux/device.h
-index 2ea3e49..192db29 100644
 --- a/include/linux/device.h
 +++ b/include/linux/device.h
 @@ -213,8 +213,16 @@ struct class_dev_iter {
@@ -33061,7 +32606,7 @@
  extern int __must_check __class_register(struct class *class,
  					 struct lock_class_key *key);
  extern void class_unregister(struct class *class);
-@@ -279,6 +287,15 @@ extern struct class * __must_check __class_create(struct module *owner,
+@@ -279,6 +287,15 @@ extern struct class * __must_check __cla
  						  struct lock_class_key *key);
  extern void class_destroy(struct class *cls);
  
@@ -33077,11 +32622,9 @@
  /* This is a #define to keep the compiler from merging different
   * instances of the __key variable */
  #define class_create(owner, name)		\
-diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h
-index 5ce0e5f..2d0dfec 100644
 --- a/include/linux/devpts_fs.h
 +++ b/include/linux/devpts_fs.h
-@@ -26,6 +26,7 @@ struct tty_struct *devpts_get_tty(struct inode *pts_inode, int number);
+@@ -26,6 +26,7 @@ struct tty_struct *devpts_get_tty(struct
  /* unlink */
  void devpts_pty_kill(struct tty_struct *tty);
  
@@ -33089,11 +32632,9 @@
  #else
  
  /* Dummy stubs in the no-pty case */
-diff --git a/include/linux/elf.h b/include/linux/elf.h
-index 90a4ed0..ae84971 100644
 --- a/include/linux/elf.h
 +++ b/include/linux/elf.h
-@@ -406,5 +406,7 @@ static inline int elf_coredump_extra_notes_write(struct file *file,
+@@ -406,5 +406,7 @@ static inline int elf_coredump_extra_not
  extern int elf_coredump_extra_notes_size(void);
  extern int elf_coredump_extra_notes_write(struct file *file, loff_t *foffset);
  #endif
@@ -33101,8 +32642,6 @@
 +
  #endif /* __KERNEL__ */
  #endif /* _LINUX_ELF_H */
-diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h
-index f6856a5..a7f552f 100644
 --- a/include/linux/eventpoll.h
 +++ b/include/linux/eventpoll.h
 @@ -17,6 +17,7 @@
@@ -33113,8 +32652,8 @@
  
  /* Flags for epoll_create1.  */
  #define EPOLL_CLOEXEC O_CLOEXEC
-@@ -63,6 +64,106 @@ static inline void eventpoll_init_file(struct file *file)
- 	INIT_LIST_HEAD(&file->f_ep_links);
+@@ -64,6 +65,106 @@ static inline void eventpoll_init_file(s
+ 	INIT_LIST_HEAD(&file->f_tfile_llink);
  }
  
 +struct epoll_filefd {
@@ -33220,7 +32759,7 @@
  
  /* Used to release the epoll bits inside the "struct file" */
  void eventpoll_release_file(struct file *file);
-@@ -95,6 +184,8 @@ static inline void eventpoll_release(struct file *file)
+@@ -96,6 +197,8 @@ static inline void eventpoll_release(str
  	eventpoll_release_file(file);
  }
  
@@ -33229,9 +32768,6 @@
  #else
  
  static inline void eventpoll_init_file(struct file *file) {}
-diff --git a/include/linux/fairsched.h b/include/linux/fairsched.h
-new file mode 100644
-index 0000000..521455c
 --- /dev/null
 +++ b/include/linux/fairsched.h
 @@ -0,0 +1,92 @@
@@ -33327,9 +32863,6 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* __LINUX_FAIRSCHED_H__ */
-diff --git a/include/linux/faudit.h b/include/linux/faudit.h
-new file mode 100644
-index 0000000..631c42e6
 --- /dev/null
 +++ b/include/linux/faudit.h
 @@ -0,0 +1,45 @@
@@ -33378,22 +32911,18 @@
 +#define VIRTINFO_FAUDIT_STATFS		(VIRTINFO_FAUDIT + 1)
 +
 +#endif
-diff --git a/include/linux/file.h b/include/linux/file.h
-index 335a0a5..8e31c51 100644
 --- a/include/linux/file.h
 +++ b/include/linux/file.h
-@@ -41,4 +41,6 @@ extern void put_unused_fd(unsigned int fd);
+@@ -41,4 +41,6 @@ extern void put_unused_fd(unsigned int f
  
  extern void fd_install(unsigned int fd, struct file *file);
  
 +extern struct kmem_cache *filp_cachep;
 +
  #endif /* __LINUX_FILE_H */
-diff --git a/include/linux/freezer.h b/include/linux/freezer.h
-index da7e52b..099191c 100644
 --- a/include/linux/freezer.h
 +++ b/include/linux/freezer.h
-@@ -163,6 +163,8 @@ static inline void set_freezable_with_signal(void)
+@@ -163,6 +163,8 @@ static inline void set_freezable_with_si
  	} while (try_to_freeze());					\
  	__retval;							\
  })
@@ -33402,8 +32931,6 @@
  #else /* !CONFIG_FREEZER */
  static inline int frozen(struct task_struct *p) { return 0; }
  static inline int freezing(struct task_struct *p) { return 0; }
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 1ff0962..6c4a03b 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
 @@ -53,6 +53,7 @@ struct inodes_stat_t {
@@ -33509,7 +33036,7 @@
  #ifndef __GENKSYMS__
  #ifdef CONFIG_EPOLL
  	struct list_head	f_tfile_llink;
-@@ -1063,6 +1083,9 @@ struct file_lock {
+@@ -1068,6 +1088,9 @@ struct file_lock {
  	fl_owner_t fl_owner;
  	unsigned char fl_flags;
  	unsigned char fl_type;
@@ -33519,7 +33046,7 @@
  	unsigned int fl_pid;
  	struct pid *fl_nspid;
  	wait_queue_head_t fl_wait;
-@@ -1511,6 +1534,7 @@ struct file_operations {
+@@ -1516,6 +1539,7 @@ struct file_operations {
  	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
  	ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
  	int (*setlease)(struct file *, long, struct file_lock **);
@@ -33527,7 +33054,7 @@
  };
  
  struct inode_operations {
-@@ -1580,6 +1604,7 @@ struct super_operations {
+@@ -1585,6 +1609,7 @@ struct super_operations {
  #ifdef CONFIG_QUOTA
  	ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
  	ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
@@ -33535,7 +33062,7 @@
  #endif
  	int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
  };
-@@ -1757,8 +1782,14 @@ struct file_system_type {
+@@ -1762,8 +1787,14 @@ struct file_system_type {
  	struct lock_class_key i_mutex_key;
  	struct lock_class_key i_mutex_dir_key;
  	struct lock_class_key i_alloc_sem_key;
@@ -33550,7 +33077,7 @@
  extern int get_sb_ns(struct file_system_type *fs_type, int flags, void *data,
  	int (*fill_super)(struct super_block *, void *, int),
  	struct vfsmount *mnt);
-@@ -1802,13 +1833,20 @@ extern int register_filesystem(struct file_system_type *);
+@@ -1807,13 +1838,20 @@ extern int register_filesystem(struct fi
  extern int unregister_filesystem(struct file_system_type *);
  extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data);
  #define kern_mount(type) kern_mount_data(type, NULL)
@@ -33571,7 +33098,7 @@
  
  extern int current_umask(void);
  
-@@ -2067,7 +2105,8 @@ extern int check_disk_change(struct block_device *);
+@@ -2072,7 +2110,8 @@ extern int check_disk_change(struct bloc
  extern int __invalidate_device(struct block_device *);
  extern int invalidate_partition(struct gendisk *, int);
  #endif
@@ -33581,7 +33108,7 @@
  unsigned long invalidate_mapping_pages(struct address_space *mapping,
  					pgoff_t start, pgoff_t end);
  
-@@ -2480,6 +2519,17 @@ ssize_t simple_attr_read(struct file *file, char __user *buf,
+@@ -2486,6 +2525,17 @@ ssize_t simple_attr_read(struct file *fi
  ssize_t simple_attr_write(struct file *file, const char __user *buf,
  			  size_t len, loff_t *ppos);
  
@@ -33599,8 +33126,6 @@
  struct ctl_table;
  int proc_nr_files(struct ctl_table *table, int write,
  		  void __user *buffer, size_t *lenp, loff_t *ppos);
-diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
-index 4d6f47b..5baeae0 100644
 --- a/include/linux/fsnotify_backend.h
 +++ b/include/linux/fsnotify_backend.h
 @@ -85,6 +85,7 @@ struct fsnotify_ops {
@@ -33611,7 +33136,7 @@
  };
  
  /*
-@@ -348,6 +349,7 @@ extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group);
+@@ -348,6 +349,7 @@ extern void fsnotify_clear_marks_by_grou
  extern void fsnotify_get_mark(struct fsnotify_mark_entry *entry);
  extern void fsnotify_put_mark(struct fsnotify_mark_entry *entry);
  extern void fsnotify_unmount_inodes(struct list_head *list);
@@ -33619,7 +33144,7 @@
  
  /* put here because inotify does some weird stuff when destroying watches */
  extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask,
-@@ -380,6 +382,7 @@ static inline u32 fsnotify_get_cookie(void)
+@@ -380,6 +382,7 @@ static inline u32 fsnotify_get_cookie(vo
  static inline void fsnotify_unmount_inodes(struct list_head *list)
  {}
  
@@ -33627,8 +33152,6 @@
  #endif	/* CONFIG_FSNOTIFY */
  
  #endif	/* __KERNEL __ */
-diff --git a/include/linux/futex.h b/include/linux/futex.h
-index 1e5a26d..40bce74 100644
 --- a/include/linux/futex.h
 +++ b/include/linux/futex.h
 @@ -132,6 +132,7 @@ union ktime;
@@ -33639,8 +33162,6 @@
  extern int
  handle_futex_death(u32 __user *uaddr, struct task_struct *curr, int pi);
  
-diff --git a/include/linux/gfp.h b/include/linux/gfp.h
-index 557bdad..2c691f4 100644
 --- a/include/linux/gfp.h
 +++ b/include/linux/gfp.h
 @@ -52,6 +52,8 @@ struct vm_area_struct;
@@ -33676,8 +33197,6 @@
  #define GFP_HIGHUSER	(__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL | \
  			 __GFP_HIGHMEM)
  #define GFP_HIGHUSER_MOVABLE	(__GFP_WAIT | __GFP_IO | __GFP_FS | \
-diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
-index 6d527ee..f46e01f 100644
 --- a/include/linux/hardirq.h
 +++ b/include/linux/hardirq.h
 @@ -10,6 +10,9 @@
@@ -33731,11 +33250,9 @@
  		sub_preempt_count(HARDIRQ_OFFSET);	\
  	} while (0)
  
-diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index 040b679..70658bc 100644
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
-@@ -416,6 +416,9 @@ extern long hrtimer_nanosleep(struct timespec *rqtp,
+@@ -425,6 +425,9 @@ extern long hrtimer_nanosleep(struct tim
  			      const enum hrtimer_mode mode,
  			      const clockid_t clockid);
  extern long hrtimer_nanosleep_restart(struct restart_block *restart_block);
@@ -33745,8 +33262,6 @@
  
  extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
  				 struct task_struct *tsk);
-diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
-index 6badb3e..50c628d 100644
 --- a/include/linux/if_bridge.h
 +++ b/include/linux/if_bridge.h
 @@ -42,6 +42,7 @@
@@ -33778,8 +33293,6 @@
  extern int (*br_should_route_hook)(struct sk_buff *skb);
  
  #endif
-diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
-index 7ff9af1..7781691 100644
 --- a/include/linux/if_vlan.h
 +++ b/include/linux/if_vlan.h
 @@ -84,6 +84,9 @@ struct vlan_group {
@@ -33792,8 +33305,6 @@
  };
  
  static inline struct net_device *vlan_group_get_device(struct vlan_group *vg,
-diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index 21a6f5d..18a050a 100644
 --- a/include/linux/init_task.h
 +++ b/include/linux/init_task.h
 @@ -11,6 +11,7 @@
@@ -33831,8 +33342,6 @@
  }
  
  
-diff --git a/include/linux/inotify.h b/include/linux/inotify.h
-index 37ea289..c2540bc 100644
 --- a/include/linux/inotify.h
 +++ b/include/linux/inotify.h
 @@ -101,6 +101,11 @@ struct inotify_operations {
@@ -33847,8 +33356,6 @@
  #ifdef CONFIG_INOTIFY
  
  /* Kernel API for producing events */
-diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
-index 4da4a75..d61b0b8 100644
 --- a/include/linux/iocontext.h
 +++ b/include/linux/iocontext.h
 @@ -40,16 +40,11 @@ struct cfq_io_context {
@@ -33879,8 +33386,6 @@
  	/*
  	 * For request batching
  	 */
-diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h
-index 76dad48..c699950 100644
 --- a/include/linux/ioprio.h
 +++ b/include/linux/ioprio.h
 @@ -39,6 +39,7 @@ enum {
@@ -33891,8 +33396,6 @@
  };
  
  /*
-diff --git a/include/linux/ipc.h b/include/linux/ipc.h
-index 3b1594d..9ffdcb5 100644
 --- a/include/linux/ipc.h
 +++ b/include/linux/ipc.h
 @@ -79,6 +79,7 @@ struct ipc_kludge {
@@ -33919,11 +33422,9 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_IPC_H */
-diff --git a/include/linux/kdev_t.h b/include/linux/kdev_t.h
-index 2dacab8..91783a7 100644
 --- a/include/linux/kdev_t.h
 +++ b/include/linux/kdev_t.h
-@@ -87,6 +87,57 @@ static inline unsigned sysv_minor(u32 dev)
+@@ -87,6 +87,57 @@ static inline unsigned sysv_minor(u32 de
  	return dev & 0x3ffff;
  }
  
@@ -33981,11 +33482,9 @@
  #else /* __KERNEL__ */
  
  /*
-diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index f4e3184..1a56950 100644
 --- a/include/linux/kernel.h
 +++ b/include/linux/kernel.h
-@@ -245,6 +245,12 @@ extern struct ratelimit_state printk_ratelimit_state;
+@@ -258,6 +258,12 @@ extern struct ratelimit_state printk_rat
  extern int printk_ratelimit(void);
  extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
  				   unsigned int interval_msec);
@@ -33998,7 +33497,7 @@
  
  extern int printk_delay_msec;
  
-@@ -272,6 +278,15 @@ static inline int printk_ratelimit(void) { return 0; }
+@@ -285,6 +291,15 @@ static inline int printk_ratelimit(void)
  static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, \
  					  unsigned int interval_msec)	\
  		{ return false; }
@@ -34014,7 +33513,7 @@
  
  /* No effect, but we still get type checking even in the !PRINTK case: */
  #define printk_once(x...) printk(x)
-@@ -289,9 +304,17 @@ extern void asmlinkage __attribute__((format(printf, 1, 2)))
+@@ -302,9 +317,17 @@ extern void asmlinkage __attribute__((fo
  
  unsigned long int_sqrt(unsigned long);
  
@@ -34033,7 +33532,7 @@
  }
  
  static inline void console_verbose(void)
-@@ -305,6 +328,7 @@ extern void wake_up_klogd(void);
+@@ -318,6 +341,7 @@ extern void wake_up_klogd(void);
  extern int oops_in_progress;		/* If set, an oops, panic(), BUG() or die() is in progress */
  extern int panic_timeout;
  extern int panic_on_oops;
@@ -34041,8 +33540,6 @@
  extern int panic_on_unrecovered_nmi;
  extern int panic_on_io_nmi;
  extern const char *print_tainted(void);
-diff --git a/include/linux/kobject.h b/include/linux/kobject.h
-index 58ae8e0..092b14e 100644
 --- a/include/linux/kobject.h
 +++ b/include/linux/kobject.h
 @@ -51,6 +51,8 @@ enum kobject_action {
@@ -34054,8 +33551,6 @@
  	KOBJ_ONLINE,
  	KOBJ_OFFLINE,
  	KOBJ_MAX
-diff --git a/include/linux/kthread.h b/include/linux/kthread.h
-index aabc8a1..2bdf77d 100644
 --- a/include/linux/kthread.h
 +++ b/include/linux/kthread.h
 @@ -4,10 +4,19 @@
@@ -34080,10 +33575,12 @@
  
  /**
   * kthread_run - create and wake a thread.
-@@ -27,6 +36,17 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
+@@ -25,6 +34,17 @@ struct task_struct *kthread_create(int (
+ 	if (!IS_ERR(__k))						   \
+ 		wake_up_process(__k);					   \
  	__k;								   \
- })
- 
++})
++
 +/* Like kthread_run() but run a thread in VE context */
 +#define kthread_run_ve(ve, threadfn, data, namefmt, ...)		   \
 +({									   \
@@ -34093,13 +33590,9 @@
 +	if (!IS_ERR(__k))						   \
 +		wake_up_process(__k);					   \
 +	__k;								   \
-+})
-+
+ })
+ 
  void kthread_bind(struct task_struct *k, unsigned int cpu);
- int kthread_stop(struct task_struct *k);
- int kthread_should_stop(void);
-diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
-index a34dea4..cc6cbaf 100644
 --- a/include/linux/lockd/lockd.h
 +++ b/include/linux/lockd/lockd.h
 @@ -66,6 +66,7 @@ struct nlm_host {
@@ -34110,7 +33603,7 @@
  };
  
  /*
-@@ -192,8 +193,10 @@ extern struct svc_procedure	nlmsvc_procedures[];
+@@ -192,8 +193,10 @@ extern struct svc_procedure	nlmsvc_proce
  #ifdef CONFIG_LOCKD_V4
  extern struct svc_procedure	nlmsvc_procedures4[];
  #endif
@@ -34123,8 +33616,6 @@
  extern int			nsm_use_hostnames;
  extern u32			nsm_local_state;
  
-diff --git a/include/linux/major.h b/include/linux/major.h
-index 6a8ca98..ee562c3 100644
 --- a/include/linux/major.h
 +++ b/include/linux/major.h
 @@ -174,4 +174,7 @@
@@ -34135,11 +33626,9 @@
 +#define UNNAMED_EXTRA_MAJOR_COUNT	120
 +
  #endif
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 11e5be6..5a3b9cf 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -716,6 +716,7 @@ extern void pagefault_out_of_memory(void);
+@@ -716,6 +716,7 @@ extern void pagefault_out_of_memory(void
  extern void show_free_areas(void);
  
  int shmem_lock(struct file *file, int lock, struct user_struct *user);
@@ -34147,7 +33636,7 @@
  struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
  int shmem_zero_setup(struct vm_area_struct *);
  
-@@ -780,7 +781,9 @@ int walk_page_range(unsigned long addr, unsigned long end,
+@@ -780,7 +781,9 @@ int walk_page_range(unsigned long addr,
  void free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
  		unsigned long end, unsigned long floor, unsigned long ceiling);
  int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
@@ -34158,7 +33647,7 @@
  void unmap_mapping_range(struct address_space *mapping,
  		loff_t const holebegin, loff_t const holelen, int even_cows);
  int follow_pfn(struct vm_area_struct *vma, unsigned long address,
-@@ -836,7 +839,7 @@ int __set_page_dirty_nobuffers(struct page *page);
+@@ -836,7 +839,7 @@ int __set_page_dirty_nobuffers(struct pa
  int __set_page_dirty_no_writeback(struct page *page);
  int redirty_page_for_writepage(struct writeback_control *wbc,
  				struct page *page);
@@ -34167,7 +33656,7 @@
  int set_page_dirty(struct page *page);
  int set_page_dirty_lock(struct page *page);
  int clear_page_dirty_for_io(struct page *page);
-@@ -1306,7 +1309,12 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
+@@ -1308,7 +1311,12 @@ unsigned long shrink_slab(unsigned long
  #ifndef CONFIG_MMU
  #define randomize_va_space 0
  #else
@@ -34181,8 +33670,6 @@
  #endif
  
  const char * arch_vma_name(struct vm_area_struct *vma);
-diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 9d12ed5..a037e0a 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
 @@ -106,6 +106,14 @@ struct page {
@@ -34200,7 +33687,7 @@
  };
  
  /*
-@@ -260,6 +268,12 @@ struct mm_struct {
+@@ -263,6 +271,12 @@ struct mm_struct {
  
  	unsigned long flags; /* Must use atomic bitops to access the bits */
  
@@ -34213,8 +33700,6 @@
  	struct core_state *core_state; /* coredumping support */
  #ifdef CONFIG_AIO
  	spinlock_t		ioctx_lock;
-diff --git a/include/linux/mman.h b/include/linux/mman.h
-index 9872d6c..e6f415d 100644
 --- a/include/linux/mman.h
 +++ b/include/linux/mman.h
 @@ -85,6 +85,9 @@ static inline unsigned long
@@ -34227,8 +33712,6 @@
  	       _calc_vm_trans(flags, MAP_DENYWRITE,  VM_DENYWRITE ) |
  	       _calc_vm_trans(flags, MAP_EXECUTABLE, VM_EXECUTABLE) |
  	       _calc_vm_trans(flags, MAP_LOCKED,     VM_LOCKED    );
-diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
-index d74785c..21551aa 100644
 --- a/include/linux/mnt_namespace.h
 +++ b/include/linux/mnt_namespace.h
 @@ -26,6 +26,8 @@ struct fs_struct;
@@ -34240,8 +33723,6 @@
  extern void put_mnt_ns(struct mnt_namespace *ns);
  static inline void get_mnt_ns(struct mnt_namespace *ns)
  {
-diff --git a/include/linux/mount.h b/include/linux/mount.h
-index 5d52753..f4bf358 100644
 --- a/include/linux/mount.h
 +++ b/include/linux/mount.h
 @@ -70,6 +70,7 @@ struct vfsmount {
@@ -34252,11 +33733,9 @@
  };
  
  static inline int *get_mnt_writers_ptr(struct vfsmount *mnt)
-diff --git a/include/linux/msg.h b/include/linux/msg.h
-index 56abf15..050f740 100644
 --- a/include/linux/msg.h
 +++ b/include/linux/msg.h
-@@ -107,6 +107,14 @@ extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
+@@ -107,6 +107,14 @@ extern long do_msgsnd(int msqid, long mt
  extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext,
  			size_t msgsz, long msgtyp, int msgflg);
  
@@ -34271,11 +33750,9 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_MSG_H */
-diff --git a/include/linux/namei.h b/include/linux/namei.h
-index ec0f607..e8c5efa 100644
 --- a/include/linux/namei.h
 +++ b/include/linux/namei.h
-@@ -56,6 +56,8 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
+@@ -56,6 +56,8 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LA
  #define LOOKUP_CREATE		0x0200
  #define LOOKUP_EXCL		0x0400
  #define LOOKUP_RENAME_TARGET	0x0800
@@ -34284,11 +33761,9 @@
  
  extern int user_path_at(int, const char __user *, unsigned, struct path *);
  
-diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index ec12f8c..fa2222d 100644
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -300,6 +300,11 @@ enum netdev_state_t
+@@ -306,6 +306,11 @@ enum netdev_state_t
  	__LINK_STATE_DORMANT,
  };
  
@@ -34300,7 +33775,7 @@
  
  /*
   * This structure holds at boot time configured netdevice settings. They
-@@ -485,6 +490,10 @@ struct netdev_queue {
+@@ -492,6 +497,10 @@ struct netdev_queue {
  	unsigned long		tx_dropped;
  } ____cacheline_aligned_in_smp;
  
@@ -34311,7 +33786,7 @@
  
  /*
   * This structure defines the management hooks for network devices.
-@@ -636,8 +645,23 @@ struct net_device_ops {
+@@ -643,8 +652,23 @@ struct net_device_ops {
  	int			(*ndo_fcoe_ddp_done)(struct net_device *dev,
  						     u16 xid);
  #endif
@@ -34335,7 +33810,7 @@
  /*
   *	The DEVICE structure.
   *	Actually, this whole structure is a big mistake.  It mixes I/O
-@@ -708,6 +732,8 @@ struct net_device
+@@ -715,6 +739,8 @@ struct net_device
  #define NETIF_F_FCOE_CRC	(1 << 24) /* FCoE CRC32 */
  #define NETIF_F_SCTP_CSUM	(1 << 25) /* SCTP checksum offload */
  #define NETIF_F_FCOE_MTU	(1 << 26) /* Supports max FCoE MTU, 2158 bytes*/
@@ -34344,7 +33819,7 @@
  
  	/* Segmentation offload features */
  #define NETIF_F_GSO_SHIFT	16
-@@ -892,6 +918,9 @@ struct net_device
+@@ -899,6 +925,9 @@ struct net_device
  	/* GARP */
  	struct garp_port	*garp_port;
  
@@ -34354,7 +33829,7 @@
  	/* class/net/name entry */
  	struct device		dev;
  	/* space for optional statistics and wireless sysfs groups */
-@@ -919,6 +948,20 @@ struct net_device
+@@ -926,6 +955,20 @@ struct net_device
  };
  #define to_net_dev(d) container_of(d, struct net_device, dev)
  
@@ -34375,7 +33850,7 @@
  #define	NETDEV_ALIGN		32
  
  static inline
-@@ -1493,6 +1536,8 @@ extern int		dev_ethtool(struct net *net, struct ifreq *);
+@@ -1504,6 +1547,8 @@ extern int		dev_ethtool(struct net *net,
  extern unsigned		dev_get_flags(const struct net_device *);
  extern int		dev_change_flags(struct net_device *, unsigned);
  extern int		dev_change_name(struct net_device *, const char *);
@@ -34384,7 +33859,7 @@
  extern int		dev_set_alias(struct net_device *, const char *, size_t);
  extern int		dev_change_net_namespace(struct net_device *,
  						 struct net *, const char *);
-@@ -1916,6 +1961,18 @@ unsigned long netdev_increment_features(unsigned long all, unsigned long one,
+@@ -1927,6 +1972,18 @@ unsigned long netdev_increment_features(
  					unsigned long mask);
  unsigned long netdev_fix_features(unsigned long features, const char *name);
  
@@ -34403,11 +33878,9 @@
  static inline int net_gso_ok(int features, int gso_type)
  {
  	int feature = gso_type << NETIF_F_GSO_SHIFT;
-diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
-index 6132b5e..56ec50d 100644
 --- a/include/linux/netfilter.h
 +++ b/include/linux/netfilter.h
-@@ -353,5 +353,28 @@ extern void (*nf_ct_destroy)(struct nf_conntrack *);
+@@ -353,5 +353,28 @@ extern void (*nf_ct_destroy)(struct nf_c
  static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {}
  #endif
  
@@ -34436,8 +33909,6 @@
 +
  #endif /*__KERNEL__*/
  #endif /*__LINUX_NETFILTER_H*/
-diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
-index 812cb15..4339ac7 100644
 --- a/include/linux/netfilter/x_tables.h
 +++ b/include/linux/netfilter/x_tables.h
 @@ -375,6 +375,7 @@ struct xt_table_info
@@ -34448,7 +33919,7 @@
  	/* Number of entries: FIXME. --RR */
  	unsigned int number;
  	/* Initial number of entries. Needed for module usage count */
-@@ -605,6 +606,23 @@ extern int xt_compat_target_to_user(struct xt_entry_target *t,
+@@ -605,6 +606,23 @@ extern int xt_compat_target_to_user(stru
  				    void __user **dstptr, unsigned int *size);
  
  #endif /* CONFIG_COMPAT */
@@ -34472,8 +33943,6 @@
  #endif /* __KERNEL__ */
  
  #endif /* _X_TABLES_H */
-diff --git a/include/linux/netfilter/xt_CONNMARK.h b/include/linux/netfilter/xt_CONNMARK.h
-index 0a85458..7635c8f 100644
 --- a/include/linux/netfilter/xt_CONNMARK.h
 +++ b/include/linux/netfilter/xt_CONNMARK.h
 @@ -18,6 +18,12 @@ enum {
@@ -34489,8 +33958,6 @@
  struct xt_connmark_tginfo1 {
  	__u32 ctmark, ctmask, nfmask;
  	__u8 mode;
-diff --git a/include/linux/netfilter/xt_MARK.h b/include/linux/netfilter/xt_MARK.h
-index bc9561b..028304b 100644
 --- a/include/linux/netfilter/xt_MARK.h
 +++ b/include/linux/netfilter/xt_MARK.h
 @@ -3,6 +3,23 @@
@@ -34517,8 +33984,6 @@
  struct xt_mark_tginfo2 {
  	__u32 mark, mask;
  };
-diff --git a/include/linux/netfilter/xt_connmark.h b/include/linux/netfilter/xt_connmark.h
-index 619e47c..571e266 100644
 --- a/include/linux/netfilter/xt_connmark.h
 +++ b/include/linux/netfilter/xt_connmark.h
 @@ -12,6 +12,11 @@
@@ -34533,8 +33998,6 @@
  struct xt_connmark_mtinfo1 {
  	__u32 mark, mask;
  	__u8 invert;
-diff --git a/include/linux/netfilter/xt_conntrack.h b/include/linux/netfilter/xt_conntrack.h
-index 54f47a2..7ae0533 100644
 --- a/include/linux/netfilter/xt_conntrack.h
 +++ b/include/linux/netfilter/xt_conntrack.h
 @@ -32,6 +32,42 @@ enum {
@@ -34580,8 +34043,6 @@
  struct xt_conntrack_mtinfo1 {
  	union nf_inet_addr origsrc_addr, origsrc_mask;
  	union nf_inet_addr origdst_addr, origdst_mask;
-diff --git a/include/linux/netfilter/xt_hashlimit.h b/include/linux/netfilter/xt_hashlimit.h
-index b1925b5..65eaf2b 100644
 --- a/include/linux/netfilter/xt_hashlimit.h
 +++ b/include/linux/netfilter/xt_hashlimit.h
 @@ -65,4 +65,11 @@ struct xt_hashlimit_mtinfo1 {
@@ -34596,8 +34057,6 @@
 +};
 +#endif
  #endif /*_XT_HASHLIMIT_H*/
-diff --git a/include/linux/netfilter/xt_mark.h b/include/linux/netfilter/xt_mark.h
-index 6607c8f..6fa460a 100644
 --- a/include/linux/netfilter/xt_mark.h
 +++ b/include/linux/netfilter/xt_mark.h
 @@ -3,6 +3,11 @@
@@ -34612,8 +34071,6 @@
  struct xt_mark_mtinfo1 {
  	__u32 mark, mask;
  	__u8 invert;
-diff --git a/include/linux/netfilter/xt_recent.h b/include/linux/netfilter/xt_recent.h
-index d2c2766..8a12181 100644
 --- a/include/linux/netfilter/xt_recent.h
 +++ b/include/linux/netfilter/xt_recent.h
 @@ -25,4 +25,15 @@ struct xt_recent_mtinfo {
@@ -34632,9 +34089,6 @@
 +};
 +#endif
  #endif /* _LINUX_NETFILTER_XT_RECENT_H */
-diff --git a/include/linux/netfilter_ipv4/ipt_TOS.h b/include/linux/netfilter_ipv4/ipt_TOS.h
-new file mode 100644
-index 0000000..6752240
 --- /dev/null
 +++ b/include/linux/netfilter_ipv4/ipt_TOS.h
 @@ -0,0 +1,12 @@
@@ -34650,9 +34104,6 @@
 +};
 +
 +#endif /*_IPT_TOS_H_target*/
-diff --git a/include/linux/netfilter_ipv4/ipt_iprange.h b/include/linux/netfilter_ipv4/ipt_iprange.h
-new file mode 100644
-index 0000000..517e8b1
 --- /dev/null
 +++ b/include/linux/netfilter_ipv4/ipt_iprange.h
 @@ -0,0 +1,23 @@
@@ -34679,9 +34130,6 @@
 +};
 +
 +#endif /* _IPT_IPRANGE_H */
-diff --git a/include/linux/netfilter_ipv4/ipt_owner.h b/include/linux/netfilter_ipv4/ipt_owner.h
-new file mode 100644
-index 0000000..72ea6c3
 --- /dev/null
 +++ b/include/linux/netfilter_ipv4/ipt_owner.h
 @@ -0,0 +1,20 @@
@@ -34705,9 +34153,6 @@
 +};
 +        
 +#endif /*_IPT_OWNER_H*/
-diff --git a/include/linux/netfilter_ipv4/ipt_tos.h b/include/linux/netfilter_ipv4/ipt_tos.h
-new file mode 100644
-index 0000000..a21f5df
 --- /dev/null
 +++ b/include/linux/netfilter_ipv4/ipt_tos.h
 @@ -0,0 +1,13 @@
@@ -34724,9 +34169,6 @@
 +#endif
 +
 +#endif /*_IPT_TOS_H*/
-diff --git a/include/linux/netfilter_ipv6/ip6t_owner.h b/include/linux/netfilter_ipv6/ip6t_owner.h
-new file mode 100644
-index 0000000..e9f10ba
 --- /dev/null
 +++ b/include/linux/netfilter_ipv6/ip6t_owner.h
 @@ -0,0 +1,18 @@
@@ -34748,11 +34190,9 @@
 +};  
 +    
 +#endif /*_IPT_OWNER_H*/
-diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
-index d09db1b..5b36364 100644
 --- a/include/linux/nfs_fs.h
 +++ b/include/linux/nfs_fs.h
-@@ -374,7 +374,7 @@ extern const struct address_space_operations nfs_file_aops;
+@@ -374,7 +374,7 @@ extern const struct address_space_operat
  
  static inline struct nfs_open_context *nfs_file_open_context(struct file *filp)
  {
@@ -34761,8 +34201,6 @@
  }
  
  static inline struct rpc_cred *nfs_file_cred(struct file *file)
-diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
-index b26dc51..643e380 100644
 --- a/include/linux/nfs_fs_sb.h
 +++ b/include/linux/nfs_fs_sb.h
 @@ -91,6 +91,7 @@ struct nfs_client {
@@ -34773,22 +34211,18 @@
  };
  
  /*
-diff --git a/include/linux/nmi.h b/include/linux/nmi.h
-index b752e80..ed9d975 100644
 --- a/include/linux/nmi.h
 +++ b/include/linux/nmi.h
-@@ -47,4 +47,6 @@ static inline bool trigger_all_cpu_backtrace(void)
+@@ -47,4 +47,6 @@ static inline bool trigger_all_cpu_backt
  }
  #endif
  
 +extern void nmi_show_regs(struct pt_regs *regs, int in_nmi);
 +extern int do_nmi_show_regs(struct pt_regs *regs, int cpu);
  #endif
-diff --git a/include/linux/notifier.h b/include/linux/notifier.h
-index 5ecdb50..777b1e9 100644
 --- a/include/linux/notifier.h
 +++ b/include/linux/notifier.h
-@@ -153,8 +153,9 @@ extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh,
+@@ -153,8 +153,9 @@ extern int __srcu_notifier_call_chain(st
  
  #define NOTIFY_DONE		0x0000		/* Don't care */
  #define NOTIFY_OK		0x0001		/* Suits me */
@@ -34799,11 +34233,9 @@
  						/* Bad/Veto action */
  /*
   * Clean way to return from the notifier and stop further calls.
-diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h
-index 7b370c7..fb93025 100644
 --- a/include/linux/nsproxy.h
 +++ b/include/linux/nsproxy.h
-@@ -62,10 +62,11 @@ static inline struct nsproxy *task_nsproxy(struct task_struct *tsk)
+@@ -62,10 +62,11 @@ static inline struct nsproxy *task_nspro
  	return rcu_dereference(tsk->nsproxy);
  }
  
@@ -34816,7 +34248,7 @@
  int unshare_nsproxy_namespaces(unsigned long, struct nsproxy **,
  	struct fs_struct *);
  
-@@ -76,9 +77,10 @@ static inline void put_nsproxy(struct nsproxy *ns)
+@@ -76,9 +77,10 @@ static inline void put_nsproxy(struct ns
  	}
  }
  
@@ -34828,8 +34260,6 @@
  }
  
  #ifdef CONFIG_CGROUP_NS
-diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
-index 6b202b1..ef195a0 100644
 --- a/include/linux/page-flags.h
 +++ b/include/linux/page-flags.h
 @@ -209,6 +209,7 @@ __PAGEFLAG(Slab, slab)
@@ -34840,8 +34270,6 @@
  PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
  PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
  
-diff --git a/include/linux/pid.h b/include/linux/pid.h
-index 49f1c2f..e4de714 100644
 --- a/include/linux/pid.h
 +++ b/include/linux/pid.h
 @@ -60,6 +60,9 @@ struct pid
@@ -34854,7 +34282,7 @@
  	struct rcu_head rcu;
  	struct upid numbers[1];
  };
-@@ -96,6 +99,11 @@ extern void change_pid(struct task_struct *task, enum pid_type,
+@@ -96,6 +99,11 @@ extern void change_pid(struct task_struc
  			struct pid *pid);
  extern void transfer_pid(struct task_struct *old, struct task_struct *new,
  			 enum pid_type);
@@ -34888,8 +34316,6 @@
  		task = tg___;						\
  	} while_each_pid_task(pid, type, task)
  #endif /* _LINUX_PID_H */
-diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
-index 38d1032..411c06d 100644
 --- a/include/linux/pid_namespace.h
 +++ b/include/linux/pid_namespace.h
 @@ -16,6 +16,14 @@ struct pidmap {
@@ -34915,11 +34341,9 @@
  #ifdef CONFIG_PROC_FS
  	struct vfsmount *proc_mnt;
  #endif
-diff --git a/include/linux/poll.h b/include/linux/poll.h
-index 6673743..977e52b 100644
 --- a/include/linux/poll.h
 +++ b/include/linux/poll.h
-@@ -133,6 +133,7 @@ extern int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
+@@ -133,6 +133,7 @@ extern int core_sys_select(int n, fd_set
  			   fd_set __user *exp, struct timespec *end_time);
  
  extern int poll_select_set_timeout(struct timespec *to, long sec, long nsec);
@@ -34927,8 +34351,6 @@
  
  #endif /* KERNEL */
  
-diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
-index 379eaed..80bd26a 100644
 --- a/include/linux/proc_fs.h
 +++ b/include/linux/proc_fs.h
 @@ -103,9 +103,14 @@ struct vmcore {
@@ -34946,7 +34368,7 @@
  extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,
  						struct proc_dir_entry *parent);
  struct proc_dir_entry *proc_create_data(const char *name, mode_t mode,
-@@ -149,6 +154,8 @@ extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *);
+@@ -149,6 +154,8 @@ extern struct proc_dir_entry *proc_mkdir
  extern struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode,
  			struct proc_dir_entry *parent);
  
@@ -34955,7 +34377,7 @@
  static inline struct proc_dir_entry *proc_create(const char *name, mode_t mode,
  	struct proc_dir_entry *parent, const struct file_operations *proc_fops)
  {
-@@ -184,6 +191,8 @@ extern void dup_mm_exe_file(struct mm_struct *oldmm, struct mm_struct *newmm);
+@@ -184,6 +191,8 @@ extern void dup_mm_exe_file(struct mm_st
  #define proc_net_fops_create(net, name, mode, fops)  ({ (void)(mode), NULL; })
  static inline void proc_net_remove(struct net *net, const char *name) {}
  
@@ -34974,7 +34396,7 @@
  	struct inode vfs_inode;
  };
  
-@@ -281,6 +293,15 @@ static inline struct proc_dir_entry *PDE(const struct inode *inode)
+@@ -281,6 +293,15 @@ static inline struct proc_dir_entry *PDE
  	return PROC_I(inode)->pde;
  }
  
@@ -34990,8 +34412,6 @@
  static inline struct net *PDE_NET(struct proc_dir_entry *pde)
  {
  	return pde->parent->data;
-diff --git a/include/linux/quota.h b/include/linux/quota.h
-index 8fd8efc..5fa291e 100644
 --- a/include/linux/quota.h
 +++ b/include/linux/quota.h
 @@ -173,6 +173,10 @@ enum {
@@ -35051,11 +34471,9 @@
  };
  
  int register_quota_format(struct quota_format_type *fmt);
-diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
-index a529d86..bdbe1f7 100644
 --- a/include/linux/quotaops.h
 +++ b/include/linux/quotaops.h
-@@ -264,6 +264,19 @@ static inline void vfs_dq_free_inode(struct inode *inode)
+@@ -264,6 +264,19 @@ static inline void vfs_dq_free_inode(str
  		inode->i_sb->dq_op->free_inode(inode, 1);
  }
  
@@ -35075,7 +34493,7 @@
  /* Cannot be called inside a transaction */
  static inline int vfs_dq_off(struct super_block *sb, int remount)
  {
-@@ -274,6 +287,35 @@ static inline int vfs_dq_off(struct super_block *sb, int remount)
+@@ -274,6 +287,35 @@ static inline int vfs_dq_off(struct supe
  	return ret;
  }
  
@@ -35111,7 +34529,7 @@
  #else
  
  static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type)
-@@ -363,6 +405,12 @@ static inline int vfs_dq_transfer(struct inode *inode, struct iattr *iattr)
+@@ -363,6 +405,12 @@ static inline int vfs_dq_transfer(struct
  	return 0;
  }
  
@@ -35124,7 +34542,7 @@
  static inline int vfs_dq_prealloc_space_nodirty(struct inode *inode, qsize_t nr)
  {
  	inode_add_bytes(inode, nr);
-@@ -416,6 +464,15 @@ static inline void vfs_dq_free_space(struct inode *inode, qsize_t nr)
+@@ -416,6 +464,15 @@ static inline void vfs_dq_free_space(str
  	mark_inode_dirty(inode);
  }	
  
@@ -35140,11 +34558,9 @@
  #endif /* CONFIG_QUOTA */
  
  static inline int vfs_dq_prealloc_block_nodirty(struct inode *inode, qsize_t nr)
-diff --git a/include/linux/rmap.h b/include/linux/rmap.h
-index cb0ba70..b14f124 100644
 --- a/include/linux/rmap.h
 +++ b/include/linux/rmap.h
-@@ -70,6 +70,8 @@ void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
+@@ -70,6 +70,8 @@ void page_add_anon_rmap(struct page *, s
  void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
  void page_add_file_rmap(struct page *);
  void page_remove_rmap(struct page *);
@@ -35153,8 +34569,6 @@
  
  static inline void page_dup_rmap(struct page *page)
  {
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 957a25f..184afdc 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
 @@ -94,6 +94,8 @@ struct sched_param {
@@ -35175,7 +34589,7 @@
  
  #define FSHIFT		11		/* nr of bits of precision */
  #define FIXED_1		(1<<FSHIFT)	/* 1.0 as fixed-point */
-@@ -133,15 +137,38 @@ extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift);
+@@ -133,15 +137,38 @@ extern void get_avenrun(unsigned long *l
  	load += n*(FIXED_1-exp); \
  	load >>= FSHIFT;
  
@@ -35214,7 +34628,7 @@
  
  
  extern void calc_global_load(void);
-@@ -552,6 +579,9 @@ struct thread_group_cputimer {
+@@ -556,6 +583,9 @@ struct thread_group_cputimer {
  	spinlock_t lock;
  };
  
@@ -35224,7 +34638,7 @@
  /*
   * NOTE! "signal_struct" does not have it's own
   * locking, because a shared signal_struct always
-@@ -1289,6 +1319,7 @@ struct task_struct {
+@@ -1336,6 +1366,7 @@ struct task_struct {
  	unsigned in_execve:1;	/* Tell the LSMs that the process is doing an
  				 * execve */
  	unsigned in_iowait:1;
@@ -35232,7 +34646,7 @@
  
  
  	/* Revert to default priority/policy when forking */
-@@ -1504,6 +1535,14 @@ struct task_struct {
+@@ -1551,6 +1582,14 @@ struct task_struct {
  	struct rcu_head rcu;
  
  	/*
@@ -35247,7 +34661,7 @@
  	 * cache last used pipe for splice
  	 */
  	struct pipe_inode_info *splice_pipe;
-@@ -1547,6 +1586,19 @@ struct task_struct {
+@@ -1595,6 +1634,19 @@ struct task_struct {
  	unsigned long trace_recursion;
  #endif /* CONFIG_TRACING */
  	unsigned long stack_start;
@@ -35267,7 +34681,7 @@
  };
  
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
-@@ -1733,6 +1785,43 @@ extern cputime_t task_stime(struct task_struct *p);
+@@ -1781,6 +1833,43 @@ extern cputime_t task_stime(struct task_
  extern cputime_t task_gtime(struct task_struct *p);
  extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st);
  
@@ -35311,7 +34725,7 @@
  /*
   * Per process flags
   */
-@@ -1742,6 +1831,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
+@@ -1790,6 +1879,7 @@ extern void thread_group_times(struct ta
  #define PF_EXITING	0x00000004	/* getting shut down */
  #define PF_EXITPIDONE	0x00000008	/* pi exit done on shut down */
  #define PF_VCPU		0x00000010	/* I'm a virtual CPU */
@@ -35319,7 +34733,7 @@
  #define PF_FORKNOEXEC	0x00000040	/* forked but didn't exec */
  #define PF_MCE_PROCESS  0x00000080      /* process policy on mce errors */
  #define PF_SUPERPRIV	0x00000100	/* used super-user privileges */
-@@ -1878,6 +1968,21 @@ extern unsigned long long
+@@ -1926,6 +2016,21 @@ extern unsigned long long
  task_sched_runtime(struct task_struct *task);
  extern unsigned long long thread_group_sched_runtime(struct task_struct *task);
  
@@ -35341,7 +34755,7 @@
  /* sched_exec is called by processes performing an exec */
  #ifdef CONFIG_SMP
  extern void sched_exec(void);
-@@ -2158,6 +2263,13 @@ extern int disallow_signal(int);
+@@ -2206,6 +2311,13 @@ extern int disallow_signal(int);
  
  extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
  extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
@@ -35355,7 +34769,7 @@
  struct task_struct *fork_idle(int);
  
  extern void set_task_comm(struct task_struct *tsk, char *from);
-@@ -2175,11 +2287,11 @@ static inline unsigned long wait_task_inactive(struct task_struct *p,
+@@ -2223,11 +2335,11 @@ static inline unsigned long wait_task_in
  }
  #endif
  
@@ -35370,7 +34784,7 @@
  
  extern bool current_is_single_threaded(void);
  
-@@ -2187,10 +2299,10 @@ extern bool current_is_single_threaded(void);
+@@ -2235,10 +2347,10 @@ extern bool current_is_single_threaded(v
   * Careful: do_each_thread/while_each_thread is a double loop so
   *          'break' will not work as expected - use goto instead.
   */
@@ -35384,7 +34798,7 @@
  	while ((t = next_thread(t)) != g)
  
  /* de_thread depends on thread_group_leader not being a pid based check */
-@@ -2215,8 +2327,14 @@ int same_thread_group(struct task_struct *p1, struct task_struct *p2)
+@@ -2263,8 +2375,14 @@ int same_thread_group(struct task_struct
  
  static inline struct task_struct *next_thread(const struct task_struct *p)
  {
@@ -35400,7 +34814,7 @@
  }
  
  static inline int thread_group_empty(struct task_struct *p)
-@@ -2261,6 +2379,98 @@ static inline void unlock_task_sighand(struct task_struct *tsk,
+@@ -2309,6 +2427,98 @@ static inline void unlock_task_sighand(s
  	spin_unlock_irqrestore(&tsk->sighand->siglock, *flags);
  }
  
@@ -35499,11 +34913,9 @@
  #ifndef __HAVE_THREAD_FUNCTIONS
  
  #define task_thread_info(task)	((struct thread_info *)(task)->stack)
-diff --git a/include/linux/sem.h b/include/linux/sem.h
-index 1b191c1..64f30a9 100644
 --- a/include/linux/sem.h
 +++ b/include/linux/sem.h
-@@ -154,6 +154,9 @@ static inline void exit_sem(struct task_struct *tsk)
+@@ -154,6 +154,9 @@ static inline void exit_sem(struct task_
  }
  #endif
  
@@ -35513,8 +34925,6 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_SEM_H */
-diff --git a/include/linux/shm.h b/include/linux/shm.h
-index eca6235..c2b3bb5 100644
 --- a/include/linux/shm.h
 +++ b/include/linux/shm.h
 @@ -83,6 +83,22 @@ struct shm_info {
@@ -35540,7 +34950,7 @@
  struct shmid_kernel /* private to the kernel */
  {	
  	struct kern_ipc_perm	shm_perm;
-@@ -97,6 +113,23 @@ struct shmid_kernel /* private to the kernel */
+@@ -97,6 +113,23 @@ struct shmid_kernel /* private to the ke
  	struct user_struct	*mlock_user;
  };
  
@@ -35564,7 +34974,7 @@
  /* shm_mode upper byte flags */
  #define	SHM_DEST	01000	/* segment will be destroyed on last detach */
  #define SHM_LOCKED      02000   /* segment will not be swapped */
-@@ -118,6 +151,12 @@ static inline int is_file_shm_hugepages(struct file *file)
+@@ -118,6 +151,12 @@ static inline int is_file_shm_hugepages(
  }
  #endif
  
@@ -35577,8 +34987,6 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_SHM_H_ */
-diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
-index deee7af..2f00bb3 100644
 --- a/include/linux/shmem_fs.h
 +++ b/include/linux/shmem_fs.h
 @@ -18,6 +18,9 @@ struct shmem_inode_info {
@@ -35591,7 +34999,7 @@
  	struct inode		vfs_inode;
  };
  
-@@ -57,4 +60,7 @@ static inline int shmem_acl_init(struct inode *inode, struct inode *dir)
+@@ -57,4 +60,7 @@ static inline int shmem_acl_init(struct
  }
  #endif  /* CONFIG_TMPFS_POSIX_ACL */
  
@@ -35599,8 +35007,6 @@
 +		     swp_entry_t swap);
 +
  #endif
-diff --git a/include/linux/signal.h b/include/linux/signal.h
-index ab9272c..0acba1f 100644
 --- a/include/linux/signal.h
 +++ b/include/linux/signal.h
 @@ -6,6 +6,8 @@
@@ -35622,7 +35028,7 @@
  };
  
  /* flags values. */
-@@ -376,6 +381,8 @@ int unhandled_signal(struct task_struct *tsk, int sig);
+@@ -376,6 +381,8 @@ int unhandled_signal(struct task_struct
  
  void signals_init(void);
  
@@ -35631,11 +35037,9 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_SIGNAL_H */
-diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h
-index b363b91..d04dcb5 100644
 --- a/include/linux/signalfd.h
 +++ b/include/linux/signalfd.h
-@@ -60,6 +60,12 @@ static inline void signalfd_notify(struct task_struct *tsk, int sig)
+@@ -62,6 +62,12 @@ static inline void signalfd_notify(struc
  
  extern void signalfd_cleanup(struct sighand_struct *sighand);
  
@@ -35648,8 +35052,6 @@
  #else /* CONFIG_SIGNALFD */
  
  static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index bcdd660..109cf6c 100644
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 @@ -310,6 +310,8 @@ typedef unsigned char *sk_buff_data_t;
@@ -35692,7 +35094,7 @@
  
  #include <asm/system.h>
  
-@@ -1422,6 +1434,9 @@ static inline void pskb_trim_unique(struct sk_buff *skb, unsigned int len)
+@@ -1442,6 +1454,9 @@ static inline void pskb_trim_unique(stru
   */
  static inline void skb_orphan(struct sk_buff *skb)
  {
@@ -35702,7 +35104,7 @@
  	if (skb->destructor)
  		skb->destructor(skb);
  	skb->destructor = NULL;
-@@ -2008,6 +2023,26 @@ static inline void skb_init_secmark(struct sk_buff *skb)
+@@ -2038,6 +2053,26 @@ static inline void skb_init_secmark(stru
  { }
  #endif
  
@@ -35729,8 +35131,6 @@
  static inline void skb_set_queue_mapping(struct sk_buff *skb, u16 queue_mapping)
  {
  	skb->queue_mapping = queue_mapping;
-diff --git a/include/linux/slab.h b/include/linux/slab.h
-index 2da8372..426eec4 100644
 --- a/include/linux/slab.h
 +++ b/include/linux/slab.h
 @@ -88,6 +88,26 @@
@@ -35760,7 +35160,7 @@
   * struct kmem_cache related prototypes
   */
  void __init kmem_cache_init(void);
-@@ -102,7 +122,24 @@ void kmem_cache_free(struct kmem_cache *, void *);
+@@ -102,7 +122,24 @@ void kmem_cache_free(struct kmem_cache *
  unsigned int kmem_cache_size(struct kmem_cache *);
  const char *kmem_cache_name(struct kmem_cache *);
  int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr);
@@ -35785,8 +35185,6 @@
  /*
   * Please use this macro to create slab caches. Simply specify the
   * name of the structure and maybe some flags that are listed above.
-diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
-index 850d057..1bc1812 100644
 --- a/include/linux/slab_def.h
 +++ b/include/linux/slab_def.h
 @@ -17,6 +17,26 @@
@@ -35842,7 +35240,7 @@
  
  void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
  void *__kmalloc(size_t size, gfp_t flags);
-@@ -145,6 +170,8 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
+@@ -145,6 +170,8 @@ static __always_inline void *kmalloc(siz
  #undef CACHE
  		return NULL;
  found:
@@ -35851,8 +35249,6 @@
  #ifdef CONFIG_ZONE_DMA
  		if (flags & GFP_DMA)
  			cachep = malloc_sizes[i].cs_dmacachep;
-diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
-index 5ad70a6..8f3d203 100644
 --- a/include/linux/slub_def.h
 +++ b/include/linux/slub_def.h
 @@ -97,6 +97,10 @@ struct kmem_cache {
@@ -35886,7 +35282,7 @@
  /*
   * Sorry that the following has to be that ugly but some versions of GCC
   * have trouble with constant propagation and loops.
-@@ -197,14 +214,14 @@ static __always_inline int kmalloc_index(size_t size)
+@@ -197,14 +214,14 @@ static __always_inline int kmalloc_index
   * This ought to end up with a global pointer to the right cache
   * in kmalloc_caches.
   */
@@ -35903,7 +35299,7 @@
  }
  
  #ifdef CONFIG_ZONE_DMA
-@@ -247,7 +264,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
+@@ -247,7 +264,7 @@ static __always_inline void *kmalloc(siz
  			return kmalloc_large(size, flags);
  
  		if (!(flags & SLUB_DMA)) {
@@ -35912,7 +35308,7 @@
  
  			if (!s)
  				return ZERO_SIZE_PTR;
-@@ -286,7 +303,7 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
+@@ -286,7 +303,7 @@ static __always_inline void *kmalloc_nod
  
  	if (__builtin_constant_p(size) &&
  		size <= SLUB_MAX_SIZE && !(flags & SLUB_DMA)) {
@@ -35921,8 +35317,6 @@
  
  		if (!s)
  			return ZERO_SIZE_PTR;
-diff --git a/include/linux/socket.h b/include/linux/socket.h
-index 3273a0c..87cf3d1 100644
 --- a/include/linux/socket.h
 +++ b/include/linux/socket.h
 @@ -296,6 +296,16 @@ struct ucred {
@@ -35942,7 +35336,7 @@
  extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
  extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
  			       int offset, int len);
-@@ -311,6 +321,8 @@ extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata,
+@@ -311,6 +321,8 @@ extern int memcpy_toiovecend(const struc
  extern int move_addr_to_user(struct sockaddr *kaddr, int klen, void __user *uaddr, int __user *ulen);
  extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr);
  extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
@@ -35951,8 +35345,6 @@
  
  #endif
  #endif /* not kernel and not glibc */
-diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
-index 8ed9642..4cf823c 100644
 --- a/include/linux/sunrpc/clnt.h
 +++ b/include/linux/sunrpc/clnt.h
 @@ -50,6 +50,7 @@ struct rpc_clnt {
@@ -35971,8 +35363,6 @@
  	char			cl_inline_name[32];
  	char			*cl_principal;	/* target to authenticate to */
  };
-diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
-index 6f9457a..ce08bbf 100644
 --- a/include/linux/sunrpc/xprt.h
 +++ b/include/linux/sunrpc/xprt.h
 @@ -24,6 +24,14 @@
@@ -35998,8 +35388,6 @@
  
  	const struct rpc_timeout *timeout;	/* timeout parms */
  	struct sockaddr_storage	addr;		/* server address */
-diff --git a/include/linux/swap.h b/include/linux/swap.h
-index 977d150..2589995 100644
 --- a/include/linux/swap.h
 +++ b/include/linux/swap.h
 @@ -19,6 +19,7 @@ struct bio;
@@ -36074,7 +35462,7 @@
  extern void delete_from_swap_cache(struct page *);
  extern void free_page_and_swap_cache(struct page *);
  extern void free_pages_and_swap_cache(struct page **, int);
-@@ -297,7 +317,7 @@ extern struct page *swapin_readahead(swp_entry_t, gfp_t,
+@@ -297,7 +317,7 @@ extern struct page *swapin_readahead(swp
  extern long nr_swap_pages;
  extern long total_swap_pages;
  extern void si_swapinfo(struct sysinfo *);
@@ -36083,7 +35471,7 @@
  extern swp_entry_t get_swap_page_of_type(int);
  extern void swap_duplicate(swp_entry_t);
  extern int swapcache_prepare(swp_entry_t);
-@@ -312,6 +332,7 @@ extern sector_t swapdev_block(int, pgoff_t);
+@@ -312,6 +332,7 @@ extern sector_t swapdev_block(int, pgoff
  extern struct swap_info_struct *get_swap_info_struct(unsigned);
  extern int reuse_swap_page(struct page *);
  extern int try_to_free_swap(struct page *);
@@ -36091,7 +35479,7 @@
  struct backing_dev_info;
  
  /* linux/mm/thrash.c */
-@@ -428,7 +449,7 @@ static inline int try_to_free_swap(struct page *page)
+@@ -428,7 +449,7 @@ static inline int try_to_free_swap(struc
  	return 0;
  }
  
@@ -36100,11 +35488,9 @@
  {
  	swp_entry_t entry;
  	entry.val = 0;
-diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
-index 0eb6942..5ae7ab3 100644
 --- a/include/linux/sysctl.h
 +++ b/include/linux/sysctl.h
-@@ -1103,10 +1103,15 @@ struct ctl_table_header *__register_sysctl_paths(
+@@ -1103,10 +1103,15 @@ struct ctl_table_header *__register_sysc
  struct ctl_table_header *register_sysctl_table(struct ctl_table * table);
  struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
  						struct ctl_table *table);
@@ -36120,8 +35506,6 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_SYSCTL_H */
-diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
-index 9d68fed..7e522fc 100644
 --- a/include/linux/sysfs.h
 +++ b/include/linux/sysfs.h
 @@ -17,8 +17,23 @@
@@ -36240,8 +35624,6 @@
  #else /* CONFIG_SYSFS */
  
  static inline int sysfs_schedule_callback(struct kobject *kobj,
-diff --git a/include/linux/task_io_accounting_ops.h b/include/linux/task_io_accounting_ops.h
-index 4d090f9..ba40964 100644
 --- a/include/linux/task_io_accounting_ops.h
 +++ b/include/linux/task_io_accounting_ops.h
 @@ -5,10 +5,12 @@
@@ -36257,7 +35639,7 @@
  	current->ioac.read_bytes += bytes;
  }
  
-@@ -21,8 +23,14 @@ static inline unsigned long task_io_get_inblock(const struct task_struct *p)
+@@ -21,8 +23,14 @@ static inline unsigned long task_io_get_
  	return p->ioac.read_bytes >> 9;
  }
  
@@ -36273,7 +35655,7 @@
  	current->ioac.write_bytes += bytes;
  }
  
-@@ -37,6 +45,7 @@ static inline unsigned long task_io_get_oublock(const struct task_struct *p)
+@@ -37,6 +45,7 @@ static inline unsigned long task_io_get_
  
  static inline void task_io_account_cancelled_write(size_t bytes)
  {
@@ -36281,7 +35663,7 @@
  	current->ioac.cancelled_write_bytes += bytes;
  }
  
-@@ -64,7 +73,8 @@ static inline unsigned long task_io_get_inblock(const struct task_struct *p)
+@@ -64,7 +73,8 @@ static inline unsigned long task_io_get_
  	return 0;
  }
  
@@ -36291,11 +35673,9 @@
  {
  }
  
-diff --git a/include/linux/tcp.h b/include/linux/tcp.h
-index 61723a7..fe8494b 100644
 --- a/include/linux/tcp.h
 +++ b/include/linux/tcp.h
-@@ -413,6 +413,11 @@ static inline struct tcp_sock *tcp_sk(const struct sock *sk)
+@@ -413,6 +413,11 @@ static inline struct tcp_sock *tcp_sk(co
  	return (struct tcp_sock *)sk;
  }
  
@@ -36307,8 +35687,6 @@
  struct tcp_timewait_sock {
  	struct inet_timewait_sock tw_sk;
  	u32			  tw_rcv_nxt;
-diff --git a/include/linux/tty.h b/include/linux/tty.h
-index e9c57e9..cc60313 100644
 --- a/include/linux/tty.h
 +++ b/include/linux/tty.h
 @@ -313,6 +313,7 @@ struct tty_struct {
@@ -36327,7 +35705,7 @@
  
  #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
  
-@@ -449,7 +451,7 @@ extern void free_tty_struct(struct tty_struct *tty);
+@@ -449,7 +451,7 @@ extern void free_tty_struct(struct tty_s
  extern void initialize_tty_struct(struct tty_struct *tty,
  		struct tty_driver *driver, int idx);
  extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx,
@@ -36336,11 +35714,9 @@
  extern void tty_release_dev(struct file *filp);
  extern int tty_init_termios(struct tty_struct *tty);
  
-diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
-index b086779..327875b 100644
 --- a/include/linux/tty_driver.h
 +++ b/include/linux/tty_driver.h
-@@ -309,8 +309,19 @@ struct tty_driver {
+@@ -320,8 +320,19 @@ struct tty_driver {
  
  	const struct tty_operations *ops;
  	struct list_head tty_drivers;
@@ -36360,7 +35736,7 @@
  extern struct list_head tty_drivers;
  
  extern struct tty_driver *alloc_tty_driver(int lines);
-@@ -319,6 +330,9 @@ extern void tty_set_operations(struct tty_driver *driver,
+@@ -330,6 +341,9 @@ extern void tty_set_operations(struct tt
  			const struct tty_operations *op);
  extern struct tty_driver *tty_find_polling_driver(char *name, int *line);
  
@@ -36370,8 +35746,6 @@
  extern void tty_driver_kref_put(struct tty_driver *driver);
  
  static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d)
-diff --git a/include/linux/types.h b/include/linux/types.h
-index c42724f..0f8c88b 100644
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
 @@ -31,6 +31,11 @@ typedef __kernel_timer_t	timer_t;
@@ -36386,8 +35760,6 @@
  typedef _Bool			bool;
  
  typedef __kernel_uid32_t	uid_t;
-diff --git a/include/linux/utsname.h b/include/linux/utsname.h
-index 69f3997..6c74733 100644
 --- a/include/linux/utsname.h
 +++ b/include/linux/utsname.h
 @@ -42,6 +42,7 @@ struct uts_namespace {
@@ -36398,9 +35770,6 @@
  
  #ifdef CONFIG_UTS_NS
  static inline void get_uts_ns(struct uts_namespace *ns)
-diff --git a/include/linux/ve.h b/include/linux/ve.h
-new file mode 100644
-index 0000000..c4ba1d0
 --- /dev/null
 +++ b/include/linux/ve.h
 @@ -0,0 +1,364 @@
@@ -36768,9 +36137,6 @@
 +#endif	/* CONFIG_VE */
 +
 +#endif /* _LINUX_VE_H */
-diff --git a/include/linux/ve_nfs.h b/include/linux/ve_nfs.h
-new file mode 100644
-index 0000000..8f2e8f8
 --- /dev/null
 +++ b/include/linux/ve_nfs.h
 @@ -0,0 +1,30 @@
@@ -36804,9 +36170,6 @@
 +#define nlmsvc_rqst		NFS_CTX_FIELD(nlmsvc_rqst)
 +
 +#endif
-diff --git a/include/linux/ve_proto.h b/include/linux/ve_proto.h
-new file mode 100644
-index 0000000..5bb93e8
 --- /dev/null
 +++ b/include/linux/ve_proto.h
 @@ -0,0 +1,100 @@
@@ -36910,9 +36273,6 @@
 +#define get_device_perms_ve(t, d, a)	(0)
 +#endif /* CONFIG_VE */
 +#endif
-diff --git a/include/linux/ve_task.h b/include/linux/ve_task.h
-new file mode 100644
-index 0000000..4b7d722
 --- /dev/null
 +++ b/include/linux/ve_task.h
 @@ -0,0 +1,73 @@
@@ -36989,9 +36349,6 @@
 +#endif
 +
 +#endif /* __VE_TASK_H__ */
-diff --git a/include/linux/veip.h b/include/linux/veip.h
-new file mode 100644
-index 0000000..745f1ec
 --- /dev/null
 +++ b/include/linux/veip.h
 @@ -0,0 +1,15 @@
@@ -37010,9 +36367,6 @@
 +		struct ve_addr_struct *veaddr);
 +
 +#endif
-diff --git a/include/linux/venet.h b/include/linux/venet.h
-new file mode 100644
-index 0000000..dd26f11
 --- /dev/null
 +++ b/include/linux/venet.h
 @@ -0,0 +1,95 @@
@@ -37111,9 +36465,6 @@
 +#endif
 +
 +#endif
-diff --git a/include/linux/veprintk.h b/include/linux/veprintk.h
-new file mode 100644
-index 0000000..5669d7b
 --- /dev/null
 +++ b/include/linux/veprintk.h
 @@ -0,0 +1,38 @@
@@ -37155,8 +36506,6 @@
 +
 +#endif /* CONFIG_VE */
 +#endif /* __VE_PRINTK_H__ */
-diff --git a/include/linux/veth.h b/include/linux/veth.h
-index 3354c1e..caa35c1 100644
 --- a/include/linux/veth.h
 +++ b/include/linux/veth.h
 @@ -1,3 +1,12 @@
@@ -37202,9 +36551,6 @@
 +}
 +
  #endif
-diff --git a/include/linux/virtinfo.h b/include/linux/virtinfo.h
-new file mode 100644
-index 0000000..b0dad07
 --- /dev/null
 +++ b/include/linux/virtinfo.h
 @@ -0,0 +1,100 @@
@@ -37308,9 +36654,6 @@
 +#endif
 +
 +#endif /* __LINUX_VIRTINFO_H */
-diff --git a/include/linux/virtinfoscp.h b/include/linux/virtinfoscp.h
-new file mode 100644
-index 0000000..5661c0d
 --- /dev/null
 +++ b/include/linux/virtinfoscp.h
 @@ -0,0 +1,23 @@
@@ -37337,11 +36680,9 @@
 +#define VIRTNOTIFY_CHANGE       0x100 
 +
 +#endif /* __VIRTINFO_SCP_H__ */
-diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
-index 3c123c3..6cf99e7 100644
 --- a/include/linux/vmalloc.h
 +++ b/include/linux/vmalloc.h
-@@ -23,6 +23,10 @@ struct vm_area_struct;		/* vma defining user mapping in mm_types.h */
+@@ -24,6 +24,10 @@ struct vm_area_struct;		/* vma defining
  #define IOREMAP_MAX_ORDER	(7 + PAGE_SHIFT)	/* 128 pages */
  #endif
  
@@ -37352,7 +36693,7 @@
  struct vm_struct {
  	struct vm_struct	*next;
  	void			*addr;
-@@ -51,12 +55,16 @@ static inline void vmalloc_init(void)
+@@ -52,12 +56,16 @@ static inline void vmalloc_init(void)
  #endif
  
  extern void *vmalloc(unsigned long size);
@@ -37369,7 +36710,7 @@
  extern void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask,
  				pgprot_t prot);
  extern void vfree(const void *addr);
-@@ -68,6 +76,7 @@ extern void vunmap(const void *addr);
+@@ -69,6 +77,7 @@ extern void vunmap(const void *addr);
  extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
  							unsigned long pgoff);
  void vmalloc_sync_all(void);
@@ -37377,11 +36718,9 @@
   
  /*
   *	Lowlevel-APIs (not for driver use!)
-diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
-index 13070d6..6cd3612 100644
 --- a/include/linux/vmstat.h
 +++ b/include/linux/vmstat.h
-@@ -105,6 +105,7 @@ static inline void vm_events_fold_cpu(int cpu)
+@@ -105,6 +105,7 @@ static inline void vm_events_fold_cpu(in
  }
  #endif
  
@@ -37389,7 +36728,7 @@
  #else
  
  /* Disable counters */
-@@ -127,6 +128,7 @@ static inline void vm_events_fold_cpu(int cpu)
+@@ -127,6 +128,7 @@ static inline void vm_events_fold_cpu(in
  {
  }
  
@@ -37397,9 +36736,6 @@
  #endif /* CONFIG_VM_EVENT_COUNTERS */
  
  #define __count_zone_vm_events(item, zone, delta) \
-diff --git a/include/linux/vzcalluser.h b/include/linux/vzcalluser.h
-new file mode 100644
-index 0000000..d093112
 --- /dev/null
 +++ b/include/linux/vzcalluser.h
 @@ -0,0 +1,201 @@
@@ -37604,9 +36940,6 @@
 +#endif
 +
 +#endif
-diff --git a/include/linux/vzctl.h b/include/linux/vzctl.h
-new file mode 100644
-index 0000000..ad967ed
 --- /dev/null
 +++ b/include/linux/vzctl.h
 @@ -0,0 +1,30 @@
@@ -37640,9 +36973,6 @@
 +extern void vzioctl_unregister(struct vzioctlinfo *inf);
 +
 +#endif
-diff --git a/include/linux/vzctl_quota.h b/include/linux/vzctl_quota.h
-new file mode 100644
-index 0000000..6d36cdd
 --- /dev/null
 +++ b/include/linux/vzctl_quota.h
 @@ -0,0 +1,74 @@
@@ -37720,9 +37050,6 @@
 +#endif
 +
 +#endif /* __LINUX_VZCTL_QUOTA_H__ */
-diff --git a/include/linux/vzctl_venet.h b/include/linux/vzctl_venet.h
-new file mode 100644
-index 0000000..8c02cd4
 --- /dev/null
 +++ b/include/linux/vzctl_venet.h
 @@ -0,0 +1,53 @@
@@ -37779,9 +37106,6 @@
 +#endif
 +
 +#endif
-diff --git a/include/linux/vzctl_veth.h b/include/linux/vzctl_veth.h
-new file mode 100644
-index 0000000..1480c5b
 --- /dev/null
 +++ b/include/linux/vzctl_veth.h
 @@ -0,0 +1,42 @@
@@ -37827,9 +37151,6 @@
 +					struct vzctl_ve_hwaddr)
 +
 +#endif
-diff --git a/include/linux/vzdq_tree.h b/include/linux/vzdq_tree.h
-new file mode 100644
-index 0000000..c019e09
 --- /dev/null
 +++ b/include/linux/vzdq_tree.h
 @@ -0,0 +1,99 @@
@@ -37932,9 +37253,6 @@
 +
 +#endif /* _VZDQ_TREE_H */
 +
-diff --git a/include/linux/vzevent.h b/include/linux/vzevent.h
-new file mode 100644
-index 0000000..a13688b
 --- /dev/null
 +++ b/include/linux/vzevent.h
 @@ -0,0 +1,21 @@
@@ -37959,9 +37277,6 @@
 +};
 +
 +#endif /* __LINUX_VZ_EVENT_H__ */
-diff --git a/include/linux/vziptable_defs.h b/include/linux/vziptable_defs.h
-new file mode 100644
-index 0000000..204e9d8
 --- /dev/null
 +++ b/include/linux/vziptable_defs.h
 @@ -0,0 +1,81 @@
@@ -38046,9 +37361,6 @@
 +}
 +
 +#endif /* _LINUX_VZIPTABLE_DEFS_H */
-diff --git a/include/linux/vzquota.h b/include/linux/vzquota.h
-new file mode 100644
-index 0000000..1dba5fa
 --- /dev/null
 +++ b/include/linux/vzquota.h
 @@ -0,0 +1,380 @@
@@ -38432,9 +37744,6 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* _VZDQUOTA_H */
-diff --git a/include/linux/vzquota_qlnk.h b/include/linux/vzquota_qlnk.h
-new file mode 100644
-index 0000000..2788c41
 --- /dev/null
 +++ b/include/linux/vzquota_qlnk.h
 @@ -0,0 +1,25 @@
@@ -38463,9 +37772,6 @@
 +};
 +
 +#endif /* _VZDQUOTA_QLNK_H */
-diff --git a/include/linux/vzratelimit.h b/include/linux/vzratelimit.h
-new file mode 100644
-index 0000000..f26baad
 --- /dev/null
 +++ b/include/linux/vzratelimit.h
 @@ -0,0 +1,28 @@
@@ -38497,9 +37803,6 @@
 +int vz_ratelimit(struct vz_rate_info *p);
 +
 +#endif /* __VZ_RATELIMIT_H__ */
-diff --git a/include/linux/vzstat.h b/include/linux/vzstat.h
-new file mode 100644
-index 0000000..c7dfd1f
 --- /dev/null
 +++ b/include/linux/vzstat.h
 @@ -0,0 +1,182 @@
@@ -38685,8 +37988,6 @@
 +}
 +
 +#endif /* __VZSTAT_H__ */
-diff --git a/include/linux/xattr.h b/include/linux/xattr.h
-index 5c84af8..12bd3c3 100644
 --- a/include/linux/xattr.h
 +++ b/include/linux/xattr.h
 @@ -10,6 +10,13 @@
@@ -38703,8 +38004,6 @@
  #define XATTR_CREATE	0x1	/* set value, fail if attr already exists */
  #define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */
  
-diff --git a/include/net/addrconf.h b/include/net/addrconf.h
-index 0f7c378..e2a9043 100644
 --- a/include/net/addrconf.h
 +++ b/include/net/addrconf.h
 @@ -262,5 +262,9 @@ extern int if6_proc_init(void);
@@ -38717,11 +38016,9 @@
 +
  #endif
  #endif
-diff --git a/include/net/af_unix.h b/include/net/af_unix.h
-index 1614d78..660a221 100644
 --- a/include/net/af_unix.h
 +++ b/include/net/af_unix.h
-@@ -10,6 +10,7 @@ extern void unix_inflight(struct file *fp);
+@@ -11,6 +11,7 @@ extern void unix_notinflight(struct file
  extern void unix_gc(void);
  extern void wait_for_unix_gc(void);
  extern struct sock *unix_get_socket(struct file *filp);
@@ -38729,8 +38026,6 @@
  
  #define UNIX_HASH_SIZE	256
  
-diff --git a/include/net/flow.h b/include/net/flow.h
-index 809970b..d60647a 100644
 --- a/include/net/flow.h
 +++ b/include/net/flow.h
 @@ -10,6 +10,7 @@
@@ -38751,8 +38046,6 @@
  	__u32           secid;	/* used by xfrm; see secid.txt */
  } __attribute__((__aligned__(BITS_PER_LONG/8)));
  
-diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
-index 39f2dc9..da58ede 100644
 --- a/include/net/inet_frag.h
 +++ b/include/net/inet_frag.h
 @@ -15,6 +15,9 @@ struct netns_frags {
@@ -38765,8 +38058,6 @@
  	struct list_head	lru_list;   /* lru list member */
  	spinlock_t		lock;
  	atomic_t		refcnt;
-diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
-index f93ad90..02d7c27 100644
 --- a/include/net/inet_timewait_sock.h
 +++ b/include/net/inet_timewait_sock.h
 @@ -82,6 +82,7 @@ struct inet_timewait_death_row {
@@ -38785,8 +38076,6 @@
  };
  
  static inline void inet_twsk_add_node_rcu(struct inet_timewait_sock *tw,
-diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
-index 15b492a..ebaab2d 100644
 --- a/include/net/ip6_fib.h
 +++ b/include/net/ip6_fib.h
 @@ -162,6 +162,7 @@ struct fib6_table {
@@ -38797,8 +38086,6 @@
  };
  
  #define RT6_TABLE_UNSPEC	RT_TABLE_UNSPEC
-diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
-index a120284..d0222f3 100644
 --- a/include/net/net_namespace.h
 +++ b/include/net/net_namespace.h
 @@ -53,6 +53,13 @@ struct net {
@@ -38815,11 +38102,9 @@
  	/* core fib_rules */
  	struct list_head	rules_ops;
  	spinlock_t		rules_mod_lock;
-diff --git a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
-index 1ee717e..beb916c 100644
 --- a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
 +++ b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
-@@ -9,7 +9,7 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6;
+@@ -9,7 +9,7 @@ extern struct nf_conntrack_l4proto nf_co
  
  extern int nf_ct_frag6_init(void);
  extern void nf_ct_frag6_cleanup(void);
@@ -38828,8 +38113,6 @@
  extern void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
  			       struct net_device *in,
  			       struct net_device *out,
-diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
-index 5cf7270..c8a94dc 100644
 --- a/include/net/netfilter/nf_conntrack.h
 +++ b/include/net/netfilter/nf_conntrack.h
 @@ -270,6 +270,7 @@ extern struct nf_conn *
@@ -38840,7 +38123,7 @@
  		   gfp_t gfp);
  
  /* It's confirmed if it is, or has been in the hash table. */
-@@ -291,6 +292,7 @@ static inline int nf_ct_is_untracked(const struct sk_buff *skb)
+@@ -291,6 +292,7 @@ static inline int nf_ct_is_untracked(con
  extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp);
  extern unsigned int nf_conntrack_htable_size;
  extern unsigned int nf_conntrack_max;
@@ -38848,11 +38131,9 @@
  
  #define NF_CT_STAT_INC(net, count)	\
  	(per_cpu_ptr((net)->ct.stat, raw_smp_processor_id())->count++)
-diff --git a/include/net/netfilter/nf_conntrack_expect.h b/include/net/netfilter/nf_conntrack_expect.h
-index a965280..bf3b73c 100644
 --- a/include/net/netfilter/nf_conntrack_expect.h
 +++ b/include/net/netfilter/nf_conntrack_expect.h
-@@ -81,6 +81,8 @@ void nf_conntrack_expect_fini(struct net *net);
+@@ -81,6 +81,8 @@ void nf_conntrack_expect_fini(struct net
  struct nf_conntrack_expect *
  __nf_ct_expect_find(struct net *net, const struct nf_conntrack_tuple *tuple);
  
@@ -38861,8 +38142,6 @@
  struct nf_conntrack_expect *
  nf_ct_expect_find_get(struct net *net, const struct nf_conntrack_tuple *tuple);
  
-diff --git a/include/net/netfilter/nf_nat.h b/include/net/netfilter/nf_nat.h
-index 8df0b7f..0c818b4 100644
 --- a/include/net/netfilter/nf_nat.h
 +++ b/include/net/netfilter/nf_nat.h
 @@ -78,6 +78,8 @@ struct nf_conn_nat
@@ -38874,9 +38153,6 @@
  /* Set up the info structure to map into this range. */
  extern unsigned int nf_nat_setup_info(struct nf_conn *ct,
  				      const struct nf_nat_range *range,
-diff --git a/include/net/netlink_sock.h b/include/net/netlink_sock.h
-new file mode 100644
-index 0000000..ce4701a
 --- /dev/null
 +++ b/include/net/netlink_sock.h
 @@ -0,0 +1,23 @@
@@ -38903,8 +38179,6 @@
 +};
 +
 +#endif /* __NET_NETLINK_SOCK_H */
-diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
-index dfeb2d7..2cd0e7a 100644
 --- a/include/net/netns/ipv6.h
 +++ b/include/net/netns/ipv6.h
 @@ -14,6 +14,7 @@ struct netns_sysctl_ipv6 {
@@ -38923,11 +38197,9 @@
  #ifdef CONFIG_NETFILTER
  	struct xt_table		*ip6table_filter;
  	struct xt_table		*ip6table_mangle;
-diff --git a/include/net/route.h b/include/net/route.h
-index 40f6346..1520d3c 100644
 --- a/include/net/route.h
 +++ b/include/net/route.h
-@@ -138,6 +138,7 @@ static inline void ip_rt_put(struct rtable * rt)
+@@ -138,6 +138,7 @@ static inline void ip_rt_put(struct rtab
  #define IPTOS_RT_MASK	(IPTOS_TOS_MASK & ~3)
  
  extern const __u8 ip_tos2prio[16];
@@ -38935,8 +38207,6 @@
  
  static inline char rt_tos2priority(u8 tos)
  {
-diff --git a/include/net/sock.h b/include/net/sock.h
-index 9f96394..7515fc8 100644
 --- a/include/net/sock.h
 +++ b/include/net/sock.h
 @@ -60,6 +60,8 @@
@@ -38957,7 +38227,7 @@
  };
  
  /*
-@@ -591,6 +595,8 @@ static inline int sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -615,6 +619,8 @@ static inline int sk_backlog_rcv(struct
  	})
  
  extern int sk_stream_wait_connect(struct sock *sk, long *timeo_p);
@@ -38966,7 +38236,7 @@
  extern int sk_stream_wait_memory(struct sock *sk, long *timeo_p);
  extern void sk_stream_wait_close(struct sock *sk, long timeo_p);
  extern int sk_stream_error(struct sock *sk, int flags, int err);
-@@ -828,7 +834,8 @@ static inline int sk_has_account(struct sock *sk)
+@@ -852,7 +858,8 @@ static inline int sk_has_account(struct
  	return !!sk->sk_prot->memory_allocated;
  }
  
@@ -38976,7 +38246,7 @@
  {
  	if (!sk_has_account(sk))
  		return 1;
-@@ -836,12 +843,15 @@ static inline int sk_wmem_schedule(struct sock *sk, int size)
+@@ -860,12 +867,15 @@ static inline int sk_wmem_schedule(struc
  		__sk_mem_schedule(sk, size, SK_MEM_SEND);
  }
  
@@ -38995,7 +38265,7 @@
  }
  
  static inline void sk_mem_reclaim(struct sock *sk)
-@@ -965,6 +975,11 @@ extern struct sk_buff 		*sock_alloc_send_pskb(struct sock *sk,
+@@ -989,6 +999,11 @@ extern struct sk_buff 		*sock_alloc_send
  						      unsigned long data_len,
  						      int noblock,
  						      int *errcode);
@@ -39007,7 +38277,7 @@
  extern void *sock_kmalloc(struct sock *sk, int size,
  			  gfp_t priority);
  extern void sock_kfree_s(struct sock *sk, void *mem, int size);
-@@ -1327,6 +1342,7 @@ static inline void sock_poll_wait(struct file *filp,
+@@ -1351,6 +1366,7 @@ static inline void sock_poll_wait(struct
  
  static inline void skb_set_owner_w(struct sk_buff *skb, struct sock *sk)
  {
@@ -39015,7 +38285,7 @@
  	skb_orphan(skb);
  	skb->sk = sk;
  	skb->destructor = sock_wfree;
-@@ -1340,6 +1356,7 @@ static inline void skb_set_owner_w(struct sk_buff *skb, struct sock *sk)
+@@ -1364,6 +1380,7 @@ static inline void skb_set_owner_w(struc
  
  static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
  {
@@ -39023,7 +38293,7 @@
  	skb_orphan(skb);
  	skb->sk = sk;
  	skb->destructor = sock_rfree;
-@@ -1562,6 +1579,13 @@ static inline void sk_change_net(struct sock *sk, struct net *net)
+@@ -1573,6 +1590,13 @@ static inline void sk_change_net(struct
  	sock_net_set(sk, hold_net(net));
  }
  
@@ -39037,8 +38307,6 @@
  static inline struct sock *skb_steal_sock(struct sk_buff *skb)
  {
  	if (unlikely(skb->sk)) {
-diff --git a/include/net/tcp.h b/include/net/tcp.h
-index 6cfe18b..ac5f07d 100644
 --- a/include/net/tcp.h
 +++ b/include/net/tcp.h
 @@ -44,6 +44,13 @@
@@ -39076,7 +38344,7 @@
  
  extern atomic_t tcp_memory_allocated;
  extern struct percpu_counter tcp_sockets_allocated;
-@@ -259,9 +272,9 @@ static inline int between(__u32 seq1, __u32 seq2, __u32 seq3)
+@@ -259,9 +272,9 @@ static inline int between(__u32 seq1, __
  	return seq3 - seq2 >= seq1 - seq2;
  }
  
@@ -39088,7 +38356,7 @@
  	int orphans = percpu_counter_read_positive(ocp);
  
  	if (orphans << shift > sysctl_tcp_max_orphans) {
-@@ -616,7 +629,11 @@ extern u32	__tcp_select_window(struct sock *sk);
+@@ -616,7 +629,11 @@ extern u32	__tcp_select_window(struct so
   * to use only the low 32-bits of jiffies and hide the ugly
   * casts with the following macro.
   */
@@ -39100,8 +38368,6 @@
  
  /* This is what the send packet queuing engine uses to pass
   * TCP per-packet control information to the transmission
-diff --git a/init/Kconfig b/init/Kconfig
-index eb4b337..b480300 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
 @@ -279,7 +279,7 @@ config TASK_XACCT
@@ -39207,8 +38473,6 @@
  config RELAY
  	bool "Kernel->user space relay support (formerly relayfs)"
  	help
-diff --git a/init/calibrate.c b/init/calibrate.c
-index 6eb48e5..b07e8d6 100644
 --- a/init/calibrate.c
 +++ b/init/calibrate.c
 @@ -9,6 +9,7 @@
@@ -39219,7 +38483,7 @@
  
  unsigned long lpj_fine;
  unsigned long preset_lpj;
-@@ -108,6 +109,60 @@ static unsigned long __cpuinit calibrate_delay_direct(void)
+@@ -108,6 +109,60 @@ static unsigned long __cpuinit calibrate
  static unsigned long __cpuinit calibrate_delay_direct(void) {return 0;}
  #endif
  
@@ -39287,8 +38551,6 @@
 +	calc_cycles_per_jiffy();
  	printed = true;
  }
-diff --git a/init/main.c b/init/main.c
-index bc109c7..d06cdc8 100644
 --- a/init/main.c
 +++ b/init/main.c
 @@ -70,6 +70,9 @@
@@ -39318,7 +38580,7 @@
  /*
   * Boot command-line arguments
   */
-@@ -516,6 +529,8 @@ asmlinkage void __init start_kernel(void)
+@@ -524,6 +537,8 @@ asmlinkage void __init start_kernel(void
  
  	smp_setup_processor_id();
  
@@ -39327,7 +38589,7 @@
  	/*
  	 * Need to run as early as possible, to initialize the
  	 * lockdep hash:
-@@ -548,6 +563,8 @@ asmlinkage void __init start_kernel(void)
+@@ -556,6 +571,8 @@ asmlinkage void __init start_kernel(void
  	setup_command_line(command_line);
  	setup_nr_cpu_ids();
  	setup_per_cpu_areas();
@@ -39336,7 +38598,7 @@
  	smp_prepare_boot_cpu();	/* arch-specific boot-cpu hooks */
  
  	build_all_zonelists();
-@@ -655,6 +672,7 @@ asmlinkage void __init start_kernel(void)
+@@ -663,6 +680,7 @@ asmlinkage void __init start_kernel(void
  	cred_init();
  	fork_init(totalram_pages);
  	proc_caches_init();
@@ -39344,7 +38606,7 @@
  	buffer_init();
  	key_init();
  	security_init();
-@@ -678,6 +696,10 @@ asmlinkage void __init start_kernel(void)
+@@ -686,6 +704,10 @@ asmlinkage void __init start_kernel(void
  
  	ftrace_init();
  
@@ -39355,7 +38617,7 @@
  	/* Do the rest non-__init'ed, we're now alive */
  	rest_init();
  }
-@@ -768,6 +790,7 @@ static void __init do_initcalls(void)
+@@ -776,6 +798,7 @@ static void __init do_initcalls(void)
   */
  static void __init do_basic_setup(void)
  {
@@ -39363,7 +38625,7 @@
  	init_workqueues();
  	cpuset_init_smp();
  	usermodehelper_init();
-@@ -869,6 +892,7 @@ static int __init kernel_init(void * unused)
+@@ -881,6 +904,7 @@ static int __init kernel_init(void * unu
  	start_boot_trace();
  
  	smp_init();
@@ -39371,8 +38633,6 @@
  	sched_init_smp();
  
  	do_basic_setup();
-diff --git a/init/version.c b/init/version.c
-index 52a8b98..ccc6262 100644
 --- a/init/version.c
 +++ b/init/version.c
 @@ -36,6 +36,12 @@ struct uts_namespace init_uts_ns = {
@@ -39388,11 +38648,9 @@
  const char linux_banner[] =
  	"Linux version " UTS_RELEASE
  #ifdef LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD
-diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
-index 7d37047..9202672 100644
 --- a/ipc/ipc_sysctl.c
 +++ b/ipc/ipc_sysctl.c
-@@ -270,19 +270,14 @@ static struct ctl_table ipc_kern_table[] = {
+@@ -270,19 +270,14 @@ static struct ctl_table ipc_kern_table[]
  	{}
  };
  
@@ -39415,11 +38673,9 @@
  	return 0;
  }
  
-diff --git a/ipc/msg.c b/ipc/msg.c
-index 779f762..2d6b826 100644
 --- a/ipc/msg.c
 +++ b/ipc/msg.c
-@@ -184,6 +184,7 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -184,6 +184,7 @@ static int newque(struct ipc_namespace *
  	int id, retval;
  	key_t key = params->key;
  	int msgflg = params->flg;
@@ -39427,7 +38683,7 @@
  
  	msq = ipc_rcu_alloc(sizeof(*msq));
  	if (!msq)
-@@ -202,7 +203,7 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -202,7 +203,7 @@ static int newque(struct ipc_namespace *
  	/*
  	 * ipc_addid() locks msq
  	 */
@@ -39436,7 +38692,7 @@
  	if (id < 0) {
  		security_msg_queue_free(msq);
  		ipc_rcu_putref(msq);
-@@ -324,6 +325,7 @@ SYSCALL_DEFINE2(msgget, key_t, key, int, msgflg)
+@@ -324,6 +325,7 @@ SYSCALL_DEFINE2(msgget, key_t, key, int,
  
  	msg_params.key = key;
  	msg_params.flg = msgflg;
@@ -39444,7 +38700,7 @@
  
  	return ipcget(ns, &msg_ids(ns), &msg_ops, &msg_params);
  }
-@@ -943,3 +945,55 @@ static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
+@@ -943,3 +945,55 @@ static int sysvipc_msg_proc_show(struct
  			msq->q_ctime);
  }
  #endif
@@ -39500,8 +38756,6 @@
 +}
 +EXPORT_SYMBOL_GPL(sysvipc_walk_msg);
 +#endif
-diff --git a/ipc/msgutil.c b/ipc/msgutil.c
-index f095ee2..e9fc268 100644
 --- a/ipc/msgutil.c
 +++ b/ipc/msgutil.c
 @@ -8,6 +8,7 @@
@@ -39648,8 +38902,6 @@
  
  void free_msg(struct msg_msg *msg)
  {
-diff --git a/ipc/sem.c b/ipc/sem.c
-index b781007..b2086e0 100644
 --- a/ipc/sem.c
 +++ b/ipc/sem.c
 @@ -87,6 +87,8 @@
@@ -39661,7 +38913,7 @@
  #define sem_ids(ns)	((ns)->ids[IPC_SEM_IDS])
  
  #define sem_unlock(sma)		ipc_unlock(&(sma)->sem_perm)
-@@ -241,6 +243,7 @@ static int newary(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -241,6 +243,7 @@ static int newary(struct ipc_namespace *
  	key_t key = params->key;
  	int nsems = params->u.nsems;
  	int semflg = params->flg;
@@ -39669,7 +38921,7 @@
  
  	if (!nsems)
  		return -EINVAL;
-@@ -264,7 +267,7 @@ static int newary(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -264,7 +267,7 @@ static int newary(struct ipc_namespace *
  		return retval;
  	}
  
@@ -39678,7 +38930,7 @@
  	if (id < 0) {
  		security_sem_free(sma);
  		ipc_rcu_putref(sma);
-@@ -327,6 +330,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
+@@ -327,6 +330,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int,
  	sem_params.key = key;
  	sem_params.flg = semflg;
  	sem_params.u.nsems = nsems;
@@ -39686,7 +38938,7 @@
  
  	return ipcget(ns, &sem_ids(ns), &sem_ops, &sem_params);
  }
-@@ -951,7 +955,7 @@ static inline int get_undo_list(struct sem_undo_list **undo_listp)
+@@ -951,7 +955,7 @@ static inline int get_undo_list(struct s
  
  	undo_list = current->sysvsem.undo_list;
  	if (!undo_list) {
@@ -39695,7 +38947,7 @@
  		if (undo_list == NULL)
  			return -ENOMEM;
  		spin_lock_init(&undo_list->lock);
-@@ -1016,7 +1020,8 @@ static struct sem_undo *find_alloc_undo(struct ipc_namespace *ns, int semid)
+@@ -1016,7 +1020,8 @@ static struct sem_undo *find_alloc_undo(
  	sem_getref_and_unlock(sma);
  
  	/* step 2: allocate new undo structure */
@@ -39705,7 +38957,7 @@
  	if (!new) {
  		sem_putref(sma);
  		return ERR_PTR(-ENOMEM);
-@@ -1078,7 +1083,7 @@ SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
+@@ -1078,7 +1083,7 @@ SYSCALL_DEFINE4(semtimedop, int, semid,
  	if (nsops > ns->sc_semopm)
  		return -E2BIG;
  	if(nsops > SEMOPM_FAST) {
@@ -39714,7 +38966,7 @@
  		if(sops==NULL)
  			return -ENOMEM;
  	}
-@@ -1381,3 +1386,57 @@ static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
+@@ -1381,3 +1386,57 @@ static int sysvipc_sem_proc_show(struct
  			  sma->sem_ctime);
  }
  #endif
@@ -39772,8 +39024,6 @@
 +EXPORT_SYMBOL_GPL(sysvipc_walk_sem);
 +EXPORT_SYMBOL_GPL(exit_sem);
 +#endif
-diff --git a/ipc/shm.c b/ipc/shm.c
-index d30732c..5300fb8 100644
 --- a/ipc/shm.c
 +++ b/ipc/shm.c
 @@ -40,27 +40,17 @@
@@ -39829,7 +39079,7 @@
  static inline struct shmid_kernel *shm_lock_check(struct ipc_namespace *ns,
  						int id)
  {
-@@ -295,7 +271,7 @@ static unsigned long shm_get_unmapped_area(struct file *file,
+@@ -295,7 +271,7 @@ static unsigned long shm_get_unmapped_ar
  						pgoff, flags);
  }
  
@@ -39838,7 +39088,7 @@
  	.mmap		= shm_mmap,
  	.fsync		= shm_fsync,
  	.release	= shm_release,
-@@ -307,6 +283,7 @@ static const struct file_operations shm_file_operations_huge = {
+@@ -307,6 +283,7 @@ static const struct file_operations shm_
  	.release	= shm_release,
  	.get_unmapped_area	= shm_get_unmapped_area,
  };
@@ -39846,7 +39096,7 @@
  
  int is_file_shm_hugepages(struct file *file)
  {
-@@ -336,11 +313,12 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -336,11 +313,12 @@ static int newseg(struct ipc_namespace *
  	key_t key = params->key;
  	int shmflg = params->flg;
  	size_t size = params->u.size;
@@ -39860,7 +39110,7 @@
  	int id;
  	int acctflag = 0;
  
-@@ -365,7 +343,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -365,7 +343,7 @@ static int newseg(struct ipc_namespace *
  		return error;
  	}
  
@@ -39869,7 +39119,7 @@
  	if (shmflg & SHM_HUGETLB) {
  		/* hugetlb_file_setup applies strict accounting */
  		if (shmflg & SHM_NORESERVE)
-@@ -386,7 +364,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -386,7 +364,7 @@ static int newseg(struct ipc_namespace *
  	if (IS_ERR(file))
  		goto no_file;
  
@@ -39878,7 +39128,7 @@
  	if (id < 0) {
  		error = id;
  		goto no_id;
-@@ -461,6 +439,7 @@ SYSCALL_DEFINE3(shmget, key_t, key, size_t, size, int, shmflg)
+@@ -461,6 +439,7 @@ SYSCALL_DEFINE3(shmget, key_t, key, size
  	shm_params.key = key;
  	shm_params.flg = shmflg;
  	shm_params.u.size = size;
@@ -39886,7 +39136,7 @@
  
  	return ipcget(ns, &shm_ids(ns), &shm_ops, &shm_params);
  }
-@@ -1100,3 +1079,67 @@ static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
+@@ -1100,3 +1079,67 @@ static int sysvipc_shm_proc_show(struct
  			  shp->shm_ctim);
  }
  #endif
@@ -39954,8 +39204,6 @@
 +}
 +EXPORT_SYMBOL_GPL(sysvipc_walk_shm);
 +#endif
-diff --git a/ipc/util.c b/ipc/util.c
-index 79ce84e..4979374 100644
 --- a/ipc/util.c
 +++ b/ipc/util.c
 @@ -38,6 +38,8 @@
@@ -39984,7 +39232,7 @@
  {
  	uid_t euid;
  	gid_t egid;
-@@ -264,7 +267,16 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size)
+@@ -264,7 +267,16 @@ int ipc_addid(struct ipc_ids* ids, struc
  	rcu_read_lock();
  	spin_lock(&new->lock);
  
@@ -40002,7 +39250,7 @@
  	if (err) {
  		spin_unlock(&new->lock);
  		rcu_read_unlock();
-@@ -277,9 +289,13 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size)
+@@ -277,9 +289,13 @@ int ipc_addid(struct ipc_ids* ids, struc
  	new->cuid = new->uid = euid;
  	new->gid = new->cgid = egid;
  
@@ -40048,7 +39296,7 @@
  		if (out) {
  			out += HDRLEN_KMALLOC;
  			container_of(out, struct ipc_rcu_hdr, data)->is_vmalloc = 0;
-@@ -714,6 +730,7 @@ struct kern_ipc_perm *ipc_lock(struct ipc_ids *ids, int id)
+@@ -714,6 +730,7 @@ struct kern_ipc_perm *ipc_lock(struct ip
  
  	return out;
  }
@@ -40056,7 +39304,7 @@
  
  struct kern_ipc_perm *ipc_lock_check(struct ipc_ids *ids, int id)
  {
-@@ -800,7 +817,7 @@ struct kern_ipc_perm *ipcctl_pre_down(struct ipc_ids *ids, int id, int cmd,
+@@ -800,7 +817,7 @@ struct kern_ipc_perm *ipcctl_pre_down(st
  
  	euid = current_euid();
  	if (euid == ipcp->cuid ||
@@ -40065,8 +39313,6 @@
  		return ipcp;
  
  	err = -EPERM;
-diff --git a/ipc/util.h b/ipc/util.h
-index 764b51a..15e02c8 100644
 --- a/ipc/util.h
 +++ b/ipc/util.h
 @@ -58,6 +58,7 @@ struct ipc_params {
@@ -40077,7 +39323,7 @@
  };
  
  /*
-@@ -87,14 +88,10 @@ void __init ipc_init_proc_interface(const char *path, const char *header,
+@@ -87,14 +88,10 @@ void __init ipc_init_proc_interface(cons
  #define ipc_init_proc_interface(path, header, ids, show) do {} while (0)
  #endif
  
@@ -40101,7 +39347,7 @@
  
  void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out);
  void ipc64_perm_to_ipc_perm(struct ipc64_perm *in, struct ipc_perm *out);
-@@ -163,12 +159,6 @@ static inline void ipc_lock_by_ptr(struct kern_ipc_perm *perm)
+@@ -163,12 +159,6 @@ static inline void ipc_lock_by_ptr(struc
  	spin_lock(&perm->lock);
  }
  
@@ -40114,9 +39360,6 @@
  struct kern_ipc_perm *ipc_lock_check(struct ipc_ids *ids, int id);
  int ipcget(struct ipc_namespace *ns, struct ipc_ids *ids,
  			struct ipc_ops *ops, struct ipc_params *params);
-diff --git a/kernel/Kconfig.openvz b/kernel/Kconfig.openvz
-new file mode 100644
-index 0000000..86f81ac
 --- /dev/null
 +++ b/kernel/Kconfig.openvz
 @@ -0,0 +1,103 @@
@@ -40223,8 +39466,6 @@
 + 	  the VE essensial status changes are being sent.
 +
 +endmenu
-diff --git a/kernel/Makefile b/kernel/Makefile
-index d7c13d2..59704fe 100644
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
 @@ -28,6 +28,10 @@ obj-$(CONFIG_PROFILING) += profile.o
@@ -40250,7 +39491,7 @@
  obj-$(CONFIG_CGROUP_FREEZER) += cgroup_freezer.o
  obj-$(CONFIG_CPUSETS) += cpuset.o
  obj-$(CONFIG_CGROUP_NS) += ns_cgroup.o
-@@ -88,6 +96,7 @@ obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
+@@ -88,6 +96,7 @@ obj-$(CONFIG_TASK_DELAY_ACCT) += delayac
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
  obj-$(CONFIG_TRACEPOINTS) += tracepoint.o
  obj-$(CONFIG_LATENCYTOP) += latencytop.o
@@ -40258,11 +39499,9 @@
  obj-$(CONFIG_FUNCTION_TRACER) += trace/
  obj-$(CONFIG_TRACING) += trace/
  obj-$(CONFIG_X86_DS) += trace/
-diff --git a/kernel/audit.c b/kernel/audit.c
-index 5feed23..fc40f1b 100644
 --- a/kernel/audit.c
 +++ b/kernel/audit.c
-@@ -662,6 +662,9 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -662,6 +662,9 @@ static int audit_receive_msg(struct sk_b
  	char			*ctx = NULL;
  	u32			len;
  
@@ -40272,9 +39511,6 @@
  	err = audit_netlink_ok(skb, msg_type);
  	if (err)
  		return err;
-diff --git a/kernel/bc/Kconfig b/kernel/bc/Kconfig
-new file mode 100644
-index 0000000..962574c
 --- /dev/null
 +++ b/kernel/bc/Kconfig
 @@ -0,0 +1,103 @@
@@ -40381,9 +39617,6 @@
 +	help
 +	  When ON all limits and barriers are set to max values.
 +endmenu
-diff --git a/kernel/bc/Makefile b/kernel/bc/Makefile
-new file mode 100644
-index 0000000..95ee497
 --- /dev/null
 +++ b/kernel/bc/Makefile
 @@ -0,0 +1,15 @@
@@ -40402,9 +39635,6 @@
 +obj-$(CONFIG_BC_RSS_ACCOUNTING) += rss_pages.o
 +obj-$(CONFIG_BC_PROC)  += proc.o
 +obj-$(CONFIG_BC_IO_ACCOUNTING) += io_acct.o
-diff --git a/kernel/bc/beancounter.c b/kernel/bc/beancounter.c
-new file mode 100644
-index 0000000..fdf3bb8
 --- /dev/null
 +++ b/kernel/bc/beancounter.c
 @@ -0,0 +1,715 @@
@@ -41123,9 +40353,6 @@
 +	init_beancounter_store(&default_beancounter);
 +	init_beancounter_struct(&default_beancounter);
 +}
-diff --git a/kernel/bc/dcache.c b/kernel/bc/dcache.c
-new file mode 100644
-index 0000000..58ace1c
 --- /dev/null
 +++ b/kernel/bc/dcache.c
 @@ -0,0 +1,399 @@
@@ -41528,9 +40755,6 @@
 +	return 0;
 +}
 +__initcall(ub_dentry_init);
-diff --git a/kernel/bc/io_acct.c b/kernel/bc/io_acct.c
-new file mode 100644
-index 0000000..428220f
 --- /dev/null
 +++ b/kernel/bc/io_acct.c
 @@ -0,0 +1,501 @@
@@ -42035,9 +41259,6 @@
 +
 +late_initcall(bc_ioacct_init);
 +#endif
-diff --git a/kernel/bc/kmem.c b/kernel/bc/kmem.c
-new file mode 100644
-index 0000000..7068e57
 --- /dev/null
 +++ b/kernel/bc/kmem.c
 @@ -0,0 +1,405 @@
@@ -42446,9 +41667,6 @@
 +}
 +
 +EXPORT_SYMBOL(mem_ub);
-diff --git a/kernel/bc/misc.c b/kernel/bc/misc.c
-new file mode 100644
-index 0000000..15e7aa4
 --- /dev/null
 +++ b/kernel/bc/misc.c
 @@ -0,0 +1,460 @@
@@ -42912,9 +42130,6 @@
 +		clear_bit(TTY_CHARGED, &tty->flags);
 +	}
 +}
-diff --git a/kernel/bc/net.c b/kernel/bc/net.c
-new file mode 100644
-index 0000000..427fc42
 --- /dev/null
 +++ b/kernel/bc/net.c
 @@ -0,0 +1,1167 @@
@@ -44085,9 +43300,6 @@
 +{
 +	return 0;
 +}
-diff --git a/kernel/bc/oom_kill.c b/kernel/bc/oom_kill.c
-new file mode 100644
-index 0000000..106e41f
 --- /dev/null
 +++ b/kernel/bc/oom_kill.c
 @@ -0,0 +1,195 @@
@@ -44286,9 +43498,6 @@
 +	spin_unlock(&oom_lock);
 +}
 +EXPORT_SYMBOL(ub_out_of_memory);
-diff --git a/kernel/bc/proc.c b/kernel/bc/proc.c
-new file mode 100644
-index 0000000..dd96e38
 --- /dev/null
 +++ b/kernel/bc/proc.c
 @@ -0,0 +1,703 @@
@@ -44995,9 +44204,6 @@
 +}
 +
 +core_initcall(ub_init_proc);
-diff --git a/kernel/bc/rss_pages.c b/kernel/bc/rss_pages.c
-new file mode 100644
-index 0000000..2f64be5
 --- /dev/null
 +++ b/kernel/bc/rss_pages.c
 @@ -0,0 +1,454 @@
@@ -45455,9 +44661,6 @@
 +
 +	ub_init_io(pb_cachep);
 +}
-diff --git a/kernel/bc/statd.c b/kernel/bc/statd.c
-new file mode 100644
-index 0000000..bf6354b
 --- /dev/null
 +++ b/kernel/bc/statd.c
 @@ -0,0 +1,453 @@
@@ -45914,9 +45117,6 @@
 +}
 +
 +module_init(ubstatd_init);
-diff --git a/kernel/bc/sys.c b/kernel/bc/sys.c
-new file mode 100644
-index 0000000..8fb942e
 --- /dev/null
 +++ b/kernel/bc/sys.c
 @@ -0,0 +1,184 @@
@@ -46104,9 +45304,6 @@
 +	return sys_ubstat(func, arg1, arg2, buf, size);
 +}
 +#endif
-diff --git a/kernel/bc/vm_pages.c b/kernel/bc/vm_pages.c
-new file mode 100644
-index 0000000..9b4ef0e
 --- /dev/null
 +++ b/kernel/bc/vm_pages.c
 @@ -0,0 +1,546 @@
@@ -46656,11 +45853,9 @@
 +
 +late_initcall(bc_vmaux_init);
 +#endif
-diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index 1fbcc74..7d06272 100644
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -2127,7 +2127,7 @@ static void cgroup_enable_task_cg_lists(void)
+@@ -2127,7 +2127,7 @@ static void cgroup_enable_task_cg_lists(
  	struct task_struct *p, *g;
  	write_lock(&css_set_lock);
  	use_task_css_set_links = 1;
@@ -46669,7 +45864,7 @@
  		task_lock(p);
  		/*
  		 * We should check if the process is exiting, otherwise
-@@ -2137,7 +2137,7 @@ static void cgroup_enable_task_cg_lists(void)
+@@ -2137,7 +2137,7 @@ static void cgroup_enable_task_cg_lists(
  		if (!(p->flags & PF_EXITING) && list_empty(&p->cg_list))
  			list_add(&p->cg_list, &p->cgroups->tasks);
  		task_unlock(p);
@@ -46678,9 +45873,6 @@
  	write_unlock(&css_set_lock);
  }
  
-diff --git a/kernel/cgroup_lite.c b/kernel/cgroup_lite.c
-new file mode 100644
-index 0000000..d299cf6
 --- /dev/null
 +++ b/kernel/cgroup_lite.c
 @@ -0,0 +1,342 @@
@@ -47026,8 +46218,6 @@
 +		panic("CG: Can't init initial set\n");
 +	return 0;
 +}
-diff --git a/kernel/compat.c b/kernel/compat.c
-index 8bc5578..4a5f07f 100644
 --- a/kernel/compat.c
 +++ b/kernel/compat.c
 @@ -22,6 +22,7 @@
@@ -47038,7 +46228,7 @@
  #include <linux/posix-timers.h>
  #include <linux/times.h>
  #include <linux/ptrace.h>
-@@ -101,7 +102,7 @@ int put_compat_timespec(const struct timespec *ts, struct compat_timespec __user
+@@ -101,7 +102,7 @@ int put_compat_timespec(const struct tim
  			__put_user(ts->tv_nsec, &cts->tv_nsec)) ? -EFAULT : 0;
  }
  
@@ -47047,7 +46237,7 @@
  {
  	struct compat_timespec __user *rmtp;
  	struct timespec rmt;
-@@ -123,6 +124,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
+@@ -123,6 +124,7 @@ static long compat_nanosleep_restart(str
  
  	return ret;
  }
@@ -47055,9 +46245,6 @@
  
  asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp,
  				     struct compat_timespec __user *rmtp)
-diff --git a/kernel/cpt/Makefile b/kernel/cpt/Makefile
-new file mode 100644
-index 0000000..d97cc31
 --- /dev/null
 +++ b/kernel/cpt/Makefile
 @@ -0,0 +1,53 @@
@@ -47114,9 +46301,6 @@
 +vzrst-objs += cpt_x8664.o
 +endif
 +endif
-diff --git a/kernel/cpt/cpt_conntrack.c b/kernel/cpt/cpt_conntrack.c
-new file mode 100644
-index 0000000..19dcf32
 --- /dev/null
 +++ b/kernel/cpt/cpt_conntrack.c
 @@ -0,0 +1,365 @@
@@ -47485,9 +46669,6 @@
 +}
 +
 +#endif
-diff --git a/kernel/cpt/cpt_context.c b/kernel/cpt/cpt_context.c
-new file mode 100644
-index 0000000..f095a73
 --- /dev/null
 +++ b/kernel/cpt/cpt_context.c
 @@ -0,0 +1,285 @@
@@ -47776,9 +46957,6 @@
 +	cpt_close_section(ctx);
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_context.h b/kernel/cpt/cpt_context.h
-new file mode 100644
-index 0000000..9eb851a
 --- /dev/null
 +++ b/kernel/cpt/cpt_context.h
 @@ -0,0 +1,225 @@
@@ -48007,9 +47185,6 @@
 +		ctx->err_offset = 0;
 +	}
 +}
-diff --git a/kernel/cpt/cpt_dump.c b/kernel/cpt/cpt_dump.c
-new file mode 100644
-index 0000000..9a52c1a
 --- /dev/null
 +++ b/kernel/cpt/cpt_dump.c
 @@ -0,0 +1,1271 @@
@@ -49284,9 +48459,6 @@
 +
 +	return err;
 +}
-diff --git a/kernel/cpt/cpt_dump.h b/kernel/cpt/cpt_dump.h
-new file mode 100644
-index 0000000..71f6d94
 --- /dev/null
 +++ b/kernel/cpt/cpt_dump.h
 @@ -0,0 +1,16 @@
@@ -49306,9 +48478,6 @@
 +int cpt_vps_caps(struct cpt_context *ctx, __u32 *caps);
 +
 +int cpt_check_unsupported(struct task_struct *tsk, struct cpt_context *ctx);
-diff --git a/kernel/cpt/cpt_epoll.c b/kernel/cpt/cpt_epoll.c
-new file mode 100644
-index 0000000..81d2b98
 --- /dev/null
 +++ b/kernel/cpt/cpt_epoll.c
 @@ -0,0 +1,113 @@
@@ -49425,9 +48594,6 @@
 +	return err;
 +}
 +
-diff --git a/kernel/cpt/cpt_exports.c b/kernel/cpt/cpt_exports.c
-new file mode 100644
-index 0000000..f492331
 --- /dev/null
 +++ b/kernel/cpt/cpt_exports.c
 @@ -0,0 +1,13 @@
@@ -49444,9 +48610,6 @@
 +EXPORT_SYMBOL(cpt_object_get);
 +EXPORT_SYMBOL(lookup_cpt_object);
 +EXPORT_SYMBOL(lookup_cpt_obj_bypos);
-diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c
-new file mode 100644
-index 0000000..927a4e3
 --- /dev/null
 +++ b/kernel/cpt/cpt_files.c
 @@ -0,0 +1,1782 @@
@@ -51232,9 +50395,6 @@
 +	cpt_close_section(ctx);
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_files.h b/kernel/cpt/cpt_files.h
-new file mode 100644
-index 0000000..bc66731
 --- /dev/null
 +++ b/kernel/cpt/cpt_files.h
 @@ -0,0 +1,77 @@
@@ -51315,9 +50475,6 @@
 +	 strcmp(mnt->mnt_sb->s_type->name, "proc") != 0 && \
 +	 strcmp(mnt->mnt_sb->s_type->name, "sysfs") != 0 && \
 +	 strcmp(mnt->mnt_sb->s_type->name, "binfmt_misc") != 0)
-diff --git a/kernel/cpt/cpt_fsmagic.h b/kernel/cpt/cpt_fsmagic.h
-new file mode 100644
-index 0000000..7e79789
 --- /dev/null
 +++ b/kernel/cpt/cpt_fsmagic.h
 @@ -0,0 +1,17 @@
@@ -51338,9 +50495,6 @@
 +#define FSMAGIC_REISER	0x52654973
 +#define FSMAGIC_VEFS    0x565a4653
 +#define FSMAGIC_ANON	0x09041934
-diff --git a/kernel/cpt/cpt_inotify.c b/kernel/cpt/cpt_inotify.c
-new file mode 100644
-index 0000000..4f2abb0
 --- /dev/null
 +++ b/kernel/cpt/cpt_inotify.c
 @@ -0,0 +1,174 @@
@@ -51518,9 +50672,6 @@
 +
 +	return err;
 +}
-diff --git a/kernel/cpt/cpt_kernel.c b/kernel/cpt/cpt_kernel.c
-new file mode 100644
-index 0000000..10fa5d6
 --- /dev/null
 +++ b/kernel/cpt/cpt_kernel.c
 @@ -0,0 +1,185 @@
@@ -51709,9 +50860,6 @@
 +#endif
 +	return flags;
 +}
-diff --git a/kernel/cpt/cpt_kernel.h b/kernel/cpt/cpt_kernel.h
-new file mode 100644
-index 0000000..8bbd402
 --- /dev/null
 +++ b/kernel/cpt/cpt_kernel.h
 @@ -0,0 +1,99 @@
@@ -51814,9 +50962,6 @@
 +
 +	return ts;
 +}
-diff --git a/kernel/cpt/cpt_mm.c b/kernel/cpt/cpt_mm.c
-new file mode 100644
-index 0000000..1164358
 --- /dev/null
 +++ b/kernel/cpt/cpt_mm.c
 @@ -0,0 +1,923 @@
@@ -52743,9 +51888,6 @@
 +		dprintk_ctx("cpt_dump_vm: %d silly pages canceled\n", zcnt);
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_mm.h b/kernel/cpt/cpt_mm.h
-new file mode 100644
-index 0000000..10e4a9c
 --- /dev/null
 +++ b/kernel/cpt/cpt_mm.h
 @@ -0,0 +1,35 @@
@@ -52784,9 +51926,6 @@
 +#endif
 +
 +extern struct vm_operations_struct special_mapping_vmops;
-diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c
-new file mode 100644
-index 0000000..473a294
 --- /dev/null
 +++ b/kernel/cpt/cpt_net.c
 @@ -0,0 +1,652 @@
@@ -53442,9 +52581,6 @@
 +		err = cpt_dump_snmp(ctx);
 +	return err;
 +}
-diff --git a/kernel/cpt/cpt_net.h b/kernel/cpt/cpt_net.h
-new file mode 100644
-index 0000000..5d33877
 --- /dev/null
 +++ b/kernel/cpt/cpt_net.h
 @@ -0,0 +1,7 @@
@@ -53455,9 +52591,6 @@
 +int rst_resume_network(struct cpt_context *ctx);
 +int cpt_dump_ip_conntrack(struct cpt_context *ctx);
 +int rst_restore_ip_conntrack(struct cpt_context * ctx);
-diff --git a/kernel/cpt/cpt_obj.c b/kernel/cpt/cpt_obj.c
-new file mode 100644
-index 0000000..341d2ab
 --- /dev/null
 +++ b/kernel/cpt/cpt_obj.c
 @@ -0,0 +1,163 @@
@@ -53624,9 +52757,6 @@
 +	}
 +	return NULL;
 +}
-diff --git a/kernel/cpt/cpt_obj.h b/kernel/cpt/cpt_obj.h
-new file mode 100644
-index 0000000..2dca39b
 --- /dev/null
 +++ b/kernel/cpt/cpt_obj.h
 @@ -0,0 +1,64 @@
@@ -53694,9 +52824,6 @@
 +extern int cpt_object_destroy(struct cpt_context *ctx);
 +
 +#endif /* __CPT_OBJ_H_ */
-diff --git a/kernel/cpt/cpt_proc.c b/kernel/cpt/cpt_proc.c
-new file mode 100644
-index 0000000..a7d2d82
 --- /dev/null
 +++ b/kernel/cpt/cpt_proc.c
 @@ -0,0 +1,623 @@
@@ -54323,9 +53450,6 @@
 +	spin_unlock(&cpt_context_lock);
 +}
 +module_exit(exit_cpt);
-diff --git a/kernel/cpt/cpt_process.c b/kernel/cpt/cpt_process.c
-new file mode 100644
-index 0000000..7ca083c
 --- /dev/null
 +++ b/kernel/cpt/cpt_process.c
 @@ -0,0 +1,1380 @@
@@ -55709,9 +54833,6 @@
 +	cpt_close_section(ctx);
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_process.h b/kernel/cpt/cpt_process.h
-new file mode 100644
-index 0000000..b9f28af
 --- /dev/null
 +++ b/kernel/cpt/cpt_process.h
 @@ -0,0 +1,13 @@
@@ -55728,9 +54849,6 @@
 +
 +int check_task_state(struct task_struct *tsk, struct cpt_context *ctx);
 +struct pid *alloc_vpid_safe(pid_t vnr);
-diff --git a/kernel/cpt/cpt_socket.c b/kernel/cpt/cpt_socket.c
-new file mode 100644
-index 0000000..3943b60
 --- /dev/null
 +++ b/kernel/cpt/cpt_socket.c
 @@ -0,0 +1,802 @@
@@ -56536,9 +55654,6 @@
 +	}
 +	return -1;
 +}
-diff --git a/kernel/cpt/cpt_socket.h b/kernel/cpt/cpt_socket.h
-new file mode 100644
-index 0000000..9c64399
 --- /dev/null
 +++ b/kernel/cpt/cpt_socket.h
 @@ -0,0 +1,37 @@
@@ -56579,9 +55694,6 @@
 +		       loff_t pos, cpt_context_t *ctx);
 +int rst_sk_mcfilter_in6(struct sock *sk, struct cpt_sockmc_image *v,
 +			loff_t pos, cpt_context_t *ctx);
-diff --git a/kernel/cpt/cpt_socket_in.c b/kernel/cpt/cpt_socket_in.c
-new file mode 100644
-index 0000000..d565745
 --- /dev/null
 +++ b/kernel/cpt/cpt_socket_in.c
 @@ -0,0 +1,448 @@
@@ -57033,9 +56145,6 @@
 +#endif
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_syscalls.h b/kernel/cpt/cpt_syscalls.h
-new file mode 100644
-index 0000000..8cc0925
 --- /dev/null
 +++ b/kernel/cpt/cpt_syscalls.h
 @@ -0,0 +1,101 @@
@@ -57140,9 +56249,6 @@
 +}
 +
 +extern int sc_execve(char *cms, char **argv, char **env);
-diff --git a/kernel/cpt/cpt_sysvipc.c b/kernel/cpt/cpt_sysvipc.c
-new file mode 100644
-index 0000000..820f1ac
 --- /dev/null
 +++ b/kernel/cpt/cpt_sysvipc.c
 @@ -0,0 +1,403 @@
@@ -57549,9 +56655,6 @@
 +
 +	return 0;
 +}
-diff --git a/kernel/cpt/cpt_tty.c b/kernel/cpt/cpt_tty.c
-new file mode 100644
-index 0000000..8ac9417
 --- /dev/null
 +++ b/kernel/cpt/cpt_tty.c
 @@ -0,0 +1,215 @@
@@ -57770,9 +56873,6 @@
 +	}
 +	return -1;
 +}
-diff --git a/kernel/cpt/cpt_ubc.c b/kernel/cpt/cpt_ubc.c
-new file mode 100644
-index 0000000..0fc4f5f
 --- /dev/null
 +++ b/kernel/cpt/cpt_ubc.c
 @@ -0,0 +1,135 @@
@@ -57911,9 +57011,6 @@
 +	for_each_object(obj, CPT_OBJ_UBC)
 +		put_beancounter(obj->o_obj);
 +}
-diff --git a/kernel/cpt/cpt_ubc.h b/kernel/cpt/cpt_ubc.h
-new file mode 100644
-index 0000000..645ba79
 --- /dev/null
 +++ b/kernel/cpt/cpt_ubc.h
 @@ -0,0 +1,23 @@
@@ -57940,9 +57037,6 @@
 +{ return; }
 +#endif
 +
-diff --git a/kernel/cpt/cpt_x8664.S b/kernel/cpt/cpt_x8664.S
-new file mode 100644
-index 0000000..0d5e361
 --- /dev/null
 +++ b/kernel/cpt/cpt_x8664.S
 @@ -0,0 +1,67 @@
@@ -58013,9 +57107,6 @@
 +	CFI_ENDPROC
 +ENDPROC(child_rip)
 +
-diff --git a/kernel/cpt/rst_conntrack.c b/kernel/cpt/rst_conntrack.c
-new file mode 100644
-index 0000000..b863ac4
 --- /dev/null
 +++ b/kernel/cpt/rst_conntrack.c
 @@ -0,0 +1,328 @@
@@ -58347,9 +57438,6 @@
 +}
 +
 +#endif
-diff --git a/kernel/cpt/rst_context.c b/kernel/cpt/rst_context.c
-new file mode 100644
-index 0000000..0007197
 --- /dev/null
 +++ b/kernel/cpt/rst_context.c
 @@ -0,0 +1,331 @@
@@ -58684,9 +57772,6 @@
 +	.get_object = _rst_get_object,
 +	.rst_file = rst_file,
 +};
-diff --git a/kernel/cpt/rst_epoll.c b/kernel/cpt/rst_epoll.c
-new file mode 100644
-index 0000000..0ac4cae
 --- /dev/null
 +++ b/kernel/cpt/rst_epoll.c
 @@ -0,0 +1,169 @@
@@ -58859,9 +57944,6 @@
 +	return 0;
 +	
 +}
-diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c
-new file mode 100644
-index 0000000..2981b1c
 --- /dev/null
 +++ b/kernel/cpt/rst_files.c
 @@ -0,0 +1,1799 @@
@@ -60664,9 +59746,6 @@
 +
 +	return err;
 +}
-diff --git a/kernel/cpt/rst_inotify.c b/kernel/cpt/rst_inotify.c
-new file mode 100644
-index 0000000..bcea486
 --- /dev/null
 +++ b/kernel/cpt/rst_inotify.c
 @@ -0,0 +1,188 @@
@@ -60858,9 +59937,6 @@
 +
 +	return 0;
 +}
-diff --git a/kernel/cpt/rst_mm.c b/kernel/cpt/rst_mm.c
-new file mode 100644
-index 0000000..2250903
 --- /dev/null
 +++ b/kernel/cpt/rst_mm.c
 @@ -0,0 +1,1152 @@
@@ -62016,9 +61092,6 @@
 +		return CLONE_VM;
 +	return 0;
 +}
-diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c
-new file mode 100644
-index 0000000..5da7a8c
 --- /dev/null
 +++ b/kernel/cpt/rst_net.c
 @@ -0,0 +1,745 @@
@@ -62767,9 +61840,6 @@
 +		err = rst_restore_snmp(ctx);
 +	return err;
 +}
-diff --git a/kernel/cpt/rst_proc.c b/kernel/cpt/rst_proc.c
-new file mode 100644
-index 0000000..beaaa3f
 --- /dev/null
 +++ b/kernel/cpt/rst_proc.c
 @@ -0,0 +1,582 @@
@@ -63355,9 +62425,6 @@
 +	spin_unlock(&cpt_context_lock);
 +}
 +module_exit(exit_rst);
-diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c
-new file mode 100644
-index 0000000..d9e7b75
 --- /dev/null
 +++ b/kernel/cpt/rst_process.c
 @@ -0,0 +1,1663 @@
@@ -65024,9 +64091,6 @@
 +	}
 +	return 0;
 +}
-diff --git a/kernel/cpt/rst_socket.c b/kernel/cpt/rst_socket.c
-new file mode 100644
-index 0000000..78cc4ff
 --- /dev/null
 +++ b/kernel/cpt/rst_socket.c
 @@ -0,0 +1,993 @@
@@ -66023,9 +65087,6 @@
 +	return 0;
 +}
 +
-diff --git a/kernel/cpt/rst_socket_in.c b/kernel/cpt/rst_socket_in.c
-new file mode 100644
-index 0000000..08bf907
 --- /dev/null
 +++ b/kernel/cpt/rst_socket_in.c
 @@ -0,0 +1,578 @@
@@ -66607,9 +65668,6 @@
 +				 (struct in6_addr*)v->cpt_mcaddr);
 +}
 +#endif
-diff --git a/kernel/cpt/rst_sysvipc.c b/kernel/cpt/rst_sysvipc.c
-new file mode 100644
-index 0000000..b5e62a7
 --- /dev/null
 +++ b/kernel/cpt/rst_sysvipc.c
 @@ -0,0 +1,639 @@
@@ -67252,9 +66310,6 @@
 +
 +	return err;
 +}
-diff --git a/kernel/cpt/rst_tty.c b/kernel/cpt/rst_tty.c
-new file mode 100644
-index 0000000..929ca26
 --- /dev/null
 +++ b/kernel/cpt/rst_tty.c
 @@ -0,0 +1,384 @@
@@ -67642,9 +66697,6 @@
 +	}
 +	return 0;
 +}
-diff --git a/kernel/cpt/rst_ubc.c b/kernel/cpt/rst_ubc.c
-new file mode 100644
-index 0000000..db1f982
 --- /dev/null
 +++ b/kernel/cpt/rst_ubc.c
 @@ -0,0 +1,144 @@
@@ -67792,9 +66844,6 @@
 +	for_each_object(obj, CPT_OBJ_UBC)
 +		put_beancounter(obj->o_obj);
 +}
-diff --git a/kernel/cpt/rst_undump.c b/kernel/cpt/rst_undump.c
-new file mode 100644
-index 0000000..84257e2
 --- /dev/null
 +++ b/kernel/cpt/rst_undump.c
 @@ -0,0 +1,1074 @@
@@ -68872,11 +67921,9 @@
 +
 +	return 0;
 +}
-diff --git a/kernel/cpu.c b/kernel/cpu.c
-index 7e8b6ac..cc7cdaf 100644
 --- a/kernel/cpu.c
 +++ b/kernel/cpu.c
-@@ -150,7 +150,7 @@ static inline void check_for_tasks(int cpu)
+@@ -151,7 +151,7 @@ static inline void check_for_tasks(int c
  	struct task_struct *p;
  
  	write_lock_irq(&tasklist_lock);
@@ -68885,8 +67932,6 @@
  		if (task_cpu(p) == cpu && p->state == TASK_RUNNING &&
  		    (!cputime_eq(p->utime, cputime_zero) ||
  		     !cputime_eq(p->stime, cputime_zero)))
-diff --git a/kernel/cred.c b/kernel/cred.c
-index 099f5e6..cc20c96 100644
 --- a/kernel/cred.c
 +++ b/kernel/cred.c
 @@ -63,6 +63,7 @@ struct cred init_cred = {
@@ -68897,8 +67942,6 @@
  
  static inline void set_cred_subscribers(struct cred *cred, int n)
  {
-diff --git a/kernel/exit.c b/kernel/exit.c
-index d890628..32791f3 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
 @@ -22,6 +22,9 @@
@@ -68929,7 +67972,7 @@
  
  static void __unhash_process(struct task_struct *p)
  {
-@@ -67,6 +73,9 @@ static void __unhash_process(struct task_struct *p)
+@@ -67,6 +73,9 @@ static void __unhash_process(struct task
  		detach_pid(p, PIDTYPE_SID);
  
  		list_del_rcu(&p->tasks);
@@ -68970,7 +68013,7 @@
  	va_start(args, name);
  	vsnprintf(current->comm, sizeof(current->comm), name, args);
  	va_end(args);
-@@ -534,6 +550,7 @@ void put_files_struct(struct files_struct *files)
+@@ -534,6 +550,7 @@ void put_files_struct(struct files_struc
  		free_fdtable(fdt);
  	}
  }
@@ -69000,7 +68043,7 @@
  {
  	struct mm_struct *mm = tsk->mm;
  	struct core_state *core_state;
-@@ -656,6 +673,10 @@ static void exit_mm(struct task_struct * tsk)
+@@ -656,6 +673,10 @@ static void exit_mm(struct task_struct *
  	mm_release(tsk, mm);
  	if (!mm)
  		return;
@@ -69011,7 +68054,7 @@
  	/*
  	 * Serialize with any possible pending coredump.
  	 * We must hold mmap_sem around checking core_state
-@@ -700,6 +721,7 @@ static void exit_mm(struct task_struct * tsk)
+@@ -700,6 +721,7 @@ static void exit_mm(struct task_struct *
  	mm_update_next_owner(mm);
  	mmput(mm);
  }
@@ -69019,7 +68062,7 @@
  
  /*
   * When we die, we re-parent all our children.
-@@ -714,7 +736,7 @@ static struct task_struct *find_new_reaper(struct task_struct *father)
+@@ -714,7 +736,7 @@ static struct task_struct *find_new_reap
  	struct task_struct *thread;
  
  	thread = father;
@@ -69028,7 +68071,7 @@
  		if (thread->flags & PF_EXITING)
  			continue;
  		if (unlikely(pid_ns->child_reaper == father))
-@@ -847,11 +869,16 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
+@@ -847,11 +869,16 @@ static void exit_notify(struct task_stru
  	     tsk->self_exec_id != tsk->parent_exec_id))
  		tsk->exit_signal = SIGCHLD;
  
@@ -69079,7 +68122,7 @@
  	read_unlock(&tasklist_lock);
  
  notask:
-@@ -1773,6 +1809,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
+@@ -1773,6 +1809,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int
  	asmlinkage_protect(4, ret, upid, stat_addr, options, ru);
  	return ret;
  }
@@ -69087,9 +68130,6 @@
  
  #ifdef __ARCH_WANT_SYS_WAITPID
  
-diff --git a/kernel/fairsched.c b/kernel/fairsched.c
-new file mode 100644
-index 0000000..7cbd309
 --- /dev/null
 +++ b/kernel/fairsched.c
 @@ -0,0 +1,683 @@
@@ -69776,11 +68816,9 @@
 +void __init fairsched_init_late(void) { }
 +
 +#endif /* CONFIG_PROC_FS */
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 4bde56f..b091ef4 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -64,6 +64,8 @@
+@@ -65,6 +65,8 @@
  #include <linux/perf_event.h>
  #include <linux/posix-timers.h>
  #include <linux/signalfd.h>
@@ -69789,7 +68827,7 @@
  
  #include <asm/pgtable.h>
  #include <asm/pgalloc.h>
-@@ -72,6 +74,10 @@
+@@ -73,6 +75,10 @@
  #include <asm/cacheflush.h>
  #include <asm/tlbflush.h>
  
@@ -69800,7 +68838,7 @@
  #include <trace/events/sched.h>
  
  /*
-@@ -79,12 +85,14 @@
+@@ -80,12 +86,14 @@
   */
  unsigned long total_forks;	/* Handle normal Linux uptimes. */
  int nr_threads; 		/* The idle threads do not count.. */
@@ -69815,7 +68853,7 @@
  
  int nr_processes(void)
  {
-@@ -162,12 +170,18 @@ void __put_task_struct(struct task_struct *tsk)
+@@ -163,12 +171,18 @@ void __put_task_struct(struct task_struc
  	WARN_ON(atomic_read(&tsk->usage));
  	WARN_ON(tsk == current);
  
@@ -69834,7 +68872,7 @@
  
  /*
   * macro override instead of weak attribute alias, to workaround
-@@ -186,7 +200,7 @@ void __init fork_init(unsigned long mempages)
+@@ -187,7 +201,7 @@ void __init fork_init(unsigned long memp
  	/* create a slab on which task_structs can be allocated */
  	task_struct_cachep =
  		kmem_cache_create("task_struct", sizeof(struct task_struct),
@@ -69843,7 +68881,7 @@
  #endif
  
  	/* do the arch specific task caches init */
-@@ -317,6 +331,10 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -318,6 +332,10 @@ static int dup_mmap(struct mm_struct *mm
  			continue;
  		}
  		charge = 0;
@@ -69854,7 +68892,7 @@
  		if (mpnt->vm_flags & VM_ACCOUNT) {
  			unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
  			if (security_vm_enough_memory(len))
-@@ -376,7 +394,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -377,7 +395,7 @@ static int dup_mmap(struct mm_struct *mm
  		rb_parent = &tmp->vm_rb;
  
  		mm->map_count++;
@@ -69863,7 +68901,7 @@
  
  		if (tmp->vm_ops && tmp->vm_ops->open)
  			tmp->vm_ops->open(tmp);
-@@ -395,6 +413,9 @@ out:
+@@ -396,6 +414,9 @@ out:
  fail_nomem_policy:
  	kmem_cache_free(vm_area_cachep, tmp);
  fail_nomem:
@@ -69873,7 +68911,7 @@
  	retval = -ENOMEM;
  	vm_unacct_memory(charge);
  	goto out;
-@@ -462,6 +483,15 @@ static struct mm_struct * mm_init(struct mm_struct * mm, struct task_struct *p)
+@@ -463,6 +484,15 @@ static struct mm_struct * mm_init(struct
  	mm->cached_hole_size = ~0UL;
  	mm_init_aio(mm);
  	mm_init_owner(mm, p);
@@ -69889,7 +68927,7 @@
  
  	if (likely(!mm_alloc_pgd(mm))) {
  		mm->def_flags = 0;
-@@ -469,6 +499,7 @@ static struct mm_struct * mm_init(struct mm_struct * mm, struct task_struct *p)
+@@ -470,6 +500,7 @@ static struct mm_struct * mm_init(struct
  		return mm;
  	}
  
@@ -69897,7 +68935,7 @@
  	free_mm(mm);
  	return NULL;
  }
-@@ -487,6 +518,7 @@ struct mm_struct * mm_alloc(void)
+@@ -488,6 +519,7 @@ struct mm_struct * mm_alloc(void)
  	}
  	return mm;
  }
@@ -69905,7 +68943,7 @@
  
  /*
   * Called when the last reference to the mm
-@@ -499,6 +531,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -500,6 +532,7 @@ void __mmdrop(struct mm_struct *mm)
  	mm_free_pgd(mm);
  	destroy_context(mm);
  	mmu_notifier_mm_destroy(mm);
@@ -69913,7 +68951,7 @@
  	free_mm(mm);
  }
  EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -523,6 +556,9 @@ void mmput(struct mm_struct *mm)
+@@ -524,6 +557,9 @@ void mmput(struct mm_struct *mm)
  		put_swap_token(mm);
  		if (mm->binfmt)
  			module_put(mm->binfmt->module);
@@ -69923,7 +68961,7 @@
  		mmdrop(mm);
  	}
  }
-@@ -573,18 +609,20 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm)
+@@ -574,18 +610,20 @@ void mm_release(struct task_struct *tsk,
  
  	/* Get rid of any futexes when releasing the mm */
  #ifdef CONFIG_FUTEX
@@ -69954,7 +68992,7 @@
  #endif
  
  	/* Get rid of any cached register state */
-@@ -673,6 +711,7 @@ fail_nocontext:
+@@ -674,6 +712,7 @@ fail_nocontext:
  	 * because it calls destroy_context()
  	 */
  	mm_free_pgd(mm);
@@ -69962,7 +69000,7 @@
  	free_mm(mm);
  	return NULL;
  }
-@@ -981,6 +1020,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -984,6 +1023,7 @@ static struct task_struct *copy_process(
  					unsigned long stack_size,
  					int __user *child_tidptr,
  					struct pid *pid,
@@ -69970,7 +69008,7 @@
  					int trace)
  {
  	int retval;
-@@ -1028,6 +1068,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1031,6 +1071,9 @@ static struct task_struct *copy_process(
  
  	rt_mutex_init_task(p);
  
@@ -69980,7 +69018,7 @@
  #ifdef CONFIG_PROVE_LOCKING
  	DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
  	DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
-@@ -1151,7 +1194,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1154,7 +1197,7 @@ static struct task_struct *copy_process(
  		goto bad_fork_cleanup_sighand;
  	if ((retval = copy_mm(clone_flags, p)))
  		goto bad_fork_cleanup_signal;
@@ -69989,7 +69027,7 @@
  		goto bad_fork_cleanup_mm;
  	if ((retval = copy_io(clone_flags, p)))
  		goto bad_fork_cleanup_namespaces;
-@@ -1161,7 +1204,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1164,7 +1207,7 @@ static struct task_struct *copy_process(
  
  	if (pid != &init_struct_pid) {
  		retval = -ENOMEM;
@@ -69998,7 +69036,7 @@
  		if (!pid)
  			goto bad_fork_cleanup_io;
  
-@@ -1169,6 +1212,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1172,6 +1215,8 @@ static struct task_struct *copy_process(
  			retval = pid_ns_prepare_proc(p->nsproxy->pid_ns);
  			if (retval < 0)
  				goto bad_fork_free_pid;
@@ -70007,7 +69045,7 @@
  		}
  	}
  
-@@ -1253,7 +1298,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1256,7 +1301,7 @@ static struct task_struct *copy_process(
  	 * thread can't slip out of an OOM kill (or normal SIGKILL).
   	 */
  	recalc_sigpending();
@@ -70016,7 +69054,7 @@
  		spin_unlock(&current->sighand->siglock);
  		write_unlock_irq(&tasklist_lock);
  		retval = -ERESTARTNOINTR;
-@@ -1281,14 +1326,24 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1284,14 +1329,24 @@ static struct task_struct *copy_process(
  			attach_pid(p, PIDTYPE_PGID, task_pgrp(current));
  			attach_pid(p, PIDTYPE_SID, task_session(current));
  			list_add_tail_rcu(&p->tasks, &init_task.tasks);
@@ -70041,7 +69079,7 @@
  	write_unlock_irq(&tasklist_lock);
  	proc_fork_connector(p);
  	cgroup_post_fork(p);
-@@ -1331,6 +1386,9 @@ bad_fork_cleanup_count:
+@@ -1335,6 +1390,9 @@ bad_fork_cleanup_count:
  	atomic_dec(&p->cred->user->processes);
  	exit_creds(p);
  bad_fork_free:
@@ -70051,7 +69089,7 @@
  	free_task(p);
  fork_out:
  	return ERR_PTR(retval);
-@@ -1348,7 +1406,7 @@ struct task_struct * __cpuinit fork_idle(int cpu)
+@@ -1352,7 +1410,7 @@ struct task_struct * __cpuinit fork_idle
  	struct pt_regs regs;
  
  	task = copy_process(CLONE_VM, 0, idle_regs(&regs), 0, NULL,
@@ -70060,7 +69098,7 @@
  	if (!IS_ERR(task))
  		init_idle(task, cpu);
  
-@@ -1361,12 +1419,13 @@ struct task_struct * __cpuinit fork_idle(int cpu)
+@@ -1365,12 +1423,13 @@ struct task_struct * __cpuinit fork_idle
   * It copies the process, and if successful kick-starts
   * it and waits for it to finish using the VM if required.
   */
@@ -70076,7 +69114,7 @@
  {
  	struct task_struct *p;
  	int trace = 0;
-@@ -1404,6 +1463,10 @@ long do_fork(unsigned long clone_flags,
+@@ -1408,6 +1467,10 @@ long do_fork(unsigned long clone_flags,
  		}
  	}
  
@@ -70087,7 +69125,7 @@
  	/*
  	 * When called from kernel_thread, don't do user tracing stuff.
  	 */
-@@ -1411,7 +1474,7 @@ long do_fork(unsigned long clone_flags,
+@@ -1415,7 +1478,7 @@ long do_fork(unsigned long clone_flags,
  		trace = tracehook_prepare_clone(clone_flags);
  
  	p = copy_process(clone_flags, stack_start, regs, stack_size,
@@ -70096,7 +69134,7 @@
  	/*
  	 * Do this prior waking up the new thread - the thread pointer
  	 * might get invalid after that point, if the thread exits quickly.
-@@ -1442,6 +1505,8 @@ long do_fork(unsigned long clone_flags,
+@@ -1446,6 +1509,8 @@ long do_fork(unsigned long clone_flags,
  		 */
  		p->flags &= ~PF_STARTING;
  
@@ -70105,7 +69143,7 @@
  		if (unlikely(clone_flags & CLONE_STOPPED)) {
  			/*
  			 * We'll start up with an immediate SIGSTOP.
-@@ -1465,6 +1530,8 @@ long do_fork(unsigned long clone_flags,
+@@ -1469,6 +1534,8 @@ long do_fork(unsigned long clone_flags,
  	} else {
  		nr = PTR_ERR(p);
  	}
@@ -70114,7 +69152,7 @@
  	return nr;
  }
  
-@@ -1480,25 +1547,38 @@ static void sighand_ctor(void *data)
+@@ -1484,25 +1551,38 @@ static void sighand_ctor(void *data)
  	init_waitqueue_head(&sighand->signalfd_wqh);
  }
  
@@ -70159,8 +69197,6 @@
  	mmap_init();
  }
  
-diff --git a/kernel/freezer.c b/kernel/freezer.c
-index bd1d42b..90bbf45 100644
 --- a/kernel/freezer.c
 +++ b/kernel/freezer.c
 @@ -29,6 +29,28 @@ void refrigerator(void)
@@ -70200,11 +69236,9 @@
  	pr_debug("%s left refrigerator\n", current->comm);
  	__set_current_state(save);
  }
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 09dbee2..2431de5 100644
 --- a/kernel/futex.c
 +++ b/kernel/futex.c
-@@ -1588,8 +1588,6 @@ handle_fault:
+@@ -1755,8 +1755,6 @@ handle_fault:
  #define FLAGS_CLOCKRT		0x02
  #define FLAGS_HAS_TIMEOUT	0x04
  
@@ -70213,7 +69247,7 @@
  /**
   * fixup_owner() - Post lock pi_state and corner case management
   * @uaddr:	user address of the futex
-@@ -1863,7 +1861,7 @@ out:
+@@ -2030,7 +2028,7 @@ out:
  }
  
  
@@ -70222,7 +69256,7 @@
  {
  	u32 __user *uaddr = (u32 __user *)restart->futex.uaddr;
  	int fshared = 0;
-@@ -1880,6 +1878,7 @@ static long futex_wait_restart(struct restart_block *restart)
+@@ -2047,6 +2045,7 @@ static long futex_wait_restart(struct re
  				restart->futex.bitset,
  				restart->futex.flags & FLAGS_CLOCKRT);
  }
@@ -70230,11 +69264,9 @@
  
  
  /*
-diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index a6e9d00..e908845 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
-@@ -1554,6 +1554,7 @@ out:
+@@ -1572,6 +1572,7 @@ out:
  	destroy_hrtimer_on_stack(&t.timer);
  	return ret;
  }
@@ -70242,11 +69274,9 @@
  
  long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
  		       const enum hrtimer_mode mode, const clockid_t clockid)
-diff --git a/kernel/hung_task.c b/kernel/hung_task.c
-index d4e8417..102a8df 100644
 --- a/kernel/hung_task.c
 +++ b/kernel/hung_task.c
-@@ -143,7 +143,7 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout)
+@@ -149,7 +149,7 @@ static void check_hung_uninterruptible_t
  		return;
  
  	rcu_read_lock();
@@ -70255,7 +69285,7 @@
  		if (!--max_count)
  			goto unlock;
  		if (!--batch_count) {
-@@ -156,7 +156,7 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout)
+@@ -162,7 +162,7 @@ static void check_hung_uninterruptible_t
  		/* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
  		if (t->state == TASK_UNINTERRUPTIBLE)
  			check_hung_task(t, timeout);
@@ -70264,11 +69294,9 @@
   unlock:
  	rcu_read_unlock();
  }
-diff --git a/kernel/kgdb.c b/kernel/kgdb.c
-index 9147a31..64cef00 100644
 --- a/kernel/kgdb.c
 +++ b/kernel/kgdb.c
-@@ -1021,7 +1021,7 @@ static void gdb_cmd_query(struct kgdb_state *ks)
+@@ -1019,7 +1019,7 @@ static void gdb_cmd_query(struct kgdb_st
  			}
  		}
  
@@ -70277,7 +69305,7 @@
  			if (i >= ks->thr_query && !finished) {
  				int_to_threadref(thref, p->pid);
  				pack_threadid(ptr, thref);
-@@ -1032,7 +1032,7 @@ static void gdb_cmd_query(struct kgdb_state *ks)
+@@ -1030,7 +1030,7 @@ static void gdb_cmd_query(struct kgdb_st
  					finished = 1;
  			}
  			i++;
@@ -70286,11 +69314,9 @@
  
  		*(--ptr) = '\0';
  		break;
-diff --git a/kernel/kmod.c b/kernel/kmod.c
-index 9fcb53a..43c8f01 100644
 --- a/kernel/kmod.c
 +++ b/kernel/kmod.c
-@@ -80,6 +80,10 @@ int __request_module(bool wait, const char *fmt, ...)
+@@ -122,6 +122,10 @@ int __request_module(bool wait, const ch
  #define MAX_KMOD_CONCURRENT 50	/* Completely arbitrary value - KAO */
  	static int kmod_loop_msg;
  
@@ -70301,7 +69327,7 @@
  	ret = security_kernel_module_request();
  	if (ret)
  		return ret;
-@@ -469,6 +473,9 @@ int call_usermodehelper_exec(struct subprocess_info *sub_info,
+@@ -557,6 +561,9 @@ int call_usermodehelper_exec(struct subp
  	DECLARE_COMPLETION_ONSTACK(done);
  	int retval = 0;
  
@@ -70311,8 +69337,6 @@
  	BUG_ON(atomic_read(&sub_info->cred->usage) != 1);
  	validate_creds(sub_info->cred);
  
-diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index 5240d75..064a191 100644
 --- a/kernel/kprobes.c
 +++ b/kernel/kprobes.c
 @@ -128,14 +128,14 @@ static int __kprobes check_safety(void)
@@ -70332,8 +69356,6 @@
  	}
  loop_end:
  	thaw_processes();
-diff --git a/kernel/kthread.c b/kernel/kthread.c
-index 84027cf..d3151a1 100644
 --- a/kernel/kthread.c
 +++ b/kernel/kthread.c
 @@ -14,6 +14,7 @@
@@ -70378,7 +69400,7 @@
  	/* we can't just return, we must preserve "self" on stack */
  	do_exit(ret);
  }
-@@ -94,7 +106,7 @@ static void create_kthread(struct kthread_create_info *create)
+@@ -94,7 +106,7 @@ static void create_kthread(struct kthrea
  }
  
  /**
@@ -70387,7 +69409,7 @@
   * @threadfn: the function to run until signal_pending(current).
   * @data: data ptr for @threadfn.
   * @namefmt: printf-style name for the thread.
-@@ -112,7 +124,8 @@ static void create_kthread(struct kthread_create_info *create)
+@@ -112,7 +124,8 @@ static void create_kthread(struct kthrea
   *
   * Returns a task_struct or ERR_PTR(-ENOMEM).
   */
@@ -70397,7 +69419,7 @@
  				   void *data,
  				   const char namefmt[],
  				   ...)
-@@ -121,6 +134,7 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
+@@ -121,6 +134,7 @@ struct task_struct *kthread_create(int (
  
  	create.threadfn = threadfn;
  	create.data = data;
@@ -70405,7 +69427,7 @@
  	init_completion(&create.done);
  
  	spin_lock(&kthread_create_lock);
-@@ -147,7 +161,7 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
+@@ -147,7 +161,7 @@ struct task_struct *kthread_create(int (
  	}
  	return create.result;
  }
@@ -70414,8 +69436,6 @@
  
  /**
   * kthread_stop - stop a thread created by kthread_create().
-diff --git a/kernel/lockdep.c b/kernel/lockdep.c
-index 9af5672..99c3c9b 100644
 --- a/kernel/lockdep.c
 +++ b/kernel/lockdep.c
 @@ -3742,7 +3742,7 @@ retry:
@@ -70436,11 +69456,9 @@
  
  	printk("\n");
  	printk("=============================================\n\n");
-diff --git a/kernel/module.c b/kernel/module.c
-index 4b270e6..94cbbde 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -2917,6 +2917,8 @@ static char *module_flags(struct module *mod, char *buf)
+@@ -2917,6 +2917,8 @@ static char *module_flags(struct module
  static void *m_start(struct seq_file *m, loff_t *pos)
  {
  	mutex_lock(&module_mutex);
@@ -70449,7 +69467,7 @@
  	return seq_list_start(&modules, *pos);
  }
  
-@@ -2981,7 +2983,7 @@ static const struct file_operations proc_modules_operations = {
+@@ -2981,7 +2983,7 @@ static const struct file_operations proc
  
  static int __init proc_modules_init(void)
  {
@@ -70458,11 +69476,9 @@
  	return 0;
  }
  module_init(proc_modules_init);
-diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c
-index 09b4ff9..73524d0 100644
 --- a/kernel/nsproxy.c
 +++ b/kernel/nsproxy.c
-@@ -26,6 +26,14 @@ static struct kmem_cache *nsproxy_cachep;
+@@ -26,6 +26,14 @@ static struct kmem_cache *nsproxy_cachep
  
  struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);
  
@@ -70477,7 +69493,7 @@
  static inline struct nsproxy *create_nsproxy(void)
  {
  	struct nsproxy *nsproxy;
-@@ -69,7 +77,7 @@ static struct nsproxy *create_new_namespaces(unsigned long flags,
+@@ -69,7 +77,7 @@ static struct nsproxy *create_new_namesp
  		goto out_ipc;
  	}
  
@@ -70496,7 +69512,7 @@
  {
  	struct nsproxy *old_ns = tsk->nsproxy;
  	struct nsproxy *new_ns;
-@@ -119,9 +128,20 @@ int copy_namespaces(unsigned long flags, struct task_struct *tsk)
+@@ -119,9 +128,20 @@ int copy_namespaces(unsigned long flags,
  				CLONE_NEWPID | CLONE_NEWNET)))
  		return 0;
  
@@ -70551,7 +69567,7 @@
  
  /*
   * Called from unshare. Unshare all the namespaces part of nsproxy.
-@@ -179,6 +216,9 @@ int unshare_nsproxy_namespaces(unsigned long unshare_flags,
+@@ -179,6 +216,9 @@ int unshare_nsproxy_namespaces(unsigned
  	if (!capable(CAP_SYS_ADMIN))
  		return -EPERM;
  
@@ -70561,8 +69577,6 @@
  	*new_nsp = create_new_namespaces(unshare_flags, current,
  				new_fs ? new_fs : current->fs);
  	if (IS_ERR(*new_nsp)) {
-diff --git a/kernel/pid.c b/kernel/pid.c
-index d3f722d..be987e7 100644
 --- a/kernel/pid.c
 +++ b/kernel/pid.c
 @@ -33,6 +33,7 @@
@@ -70582,7 +69596,7 @@
  
  static void free_pidmap(struct upid *upid)
  {
-@@ -121,8 +122,9 @@ static void free_pidmap(struct upid *upid)
+@@ -121,8 +122,9 @@ static void free_pidmap(struct upid *upi
  	clear_bit(offset, map->page);
  	atomic_inc(&map->nr_free);
  }
@@ -70630,7 +69644,7 @@
  int next_pidmap(struct pid_namespace *pid_ns, unsigned int last)
  {
  	int offset;
-@@ -227,25 +259,34 @@ void free_pid(struct pid *pid)
+@@ -230,25 +262,34 @@ void free_pid(struct pid *pid)
  	/* We can be called with write_lock_irq(&tasklist_lock) held */
  	int i;
  	unsigned long flags;
@@ -70670,7 +69684,7 @@
  
  	pid = kmem_cache_alloc(ns->pid_cachep, GFP_KERNEL);
  	if (!pid)
-@@ -253,7 +294,10 @@ struct pid *alloc_pid(struct pid_namespace *ns)
+@@ -256,7 +297,10 @@ struct pid *alloc_pid(struct pid_namespa
  
  	tmp = ns;
  	for (i = ns->level; i >= 0; i--) {
@@ -70682,7 +69696,7 @@
  		if (nr < 0)
  			goto out_free;
  
-@@ -268,17 +312,32 @@ struct pid *alloc_pid(struct pid_namespace *ns)
+@@ -271,17 +315,32 @@ struct pid *alloc_pid(struct pid_namespa
  	for (type = 0; type < PIDTYPE_MAX; ++type)
  		INIT_HLIST_HEAD(&pid->tasks[type]);
  
@@ -70715,7 +69729,7 @@
  out_free:
  	while (++i <= ns->level)
  		free_pidmap(pid->numbers + i);
-@@ -287,6 +346,7 @@ out_free:
+@@ -290,6 +349,7 @@ out_free:
  	pid = NULL;
  	goto out;
  }
@@ -70723,7 +69737,7 @@
  
  struct pid *find_pid_ns(int nr, struct pid_namespace *ns)
  {
-@@ -309,6 +369,45 @@ struct pid *find_vpid(int nr)
+@@ -312,6 +372,45 @@ struct pid *find_vpid(int nr)
  }
  EXPORT_SYMBOL_GPL(find_vpid);
  
@@ -70769,7 +69783,7 @@
  /*
   * attach_pid() must be called with the tasklist_lock write-held.
   */
-@@ -321,6 +420,7 @@ void attach_pid(struct task_struct *task, enum pid_type type,
+@@ -324,6 +423,7 @@ void attach_pid(struct task_struct *task
  	link->pid = pid;
  	hlist_add_head_rcu(&link->node, &pid->tasks[type]);
  }
@@ -70777,7 +69791,7 @@
  
  static void __change_pid(struct task_struct *task, enum pid_type type,
  			struct pid *new)
-@@ -341,6 +441,7 @@ static void __change_pid(struct task_struct *task, enum pid_type type,
+@@ -344,6 +444,7 @@ static void __change_pid(struct task_str
  
  	free_pid(pid);
  }
@@ -70785,7 +69799,7 @@
  
  void detach_pid(struct task_struct *task, enum pid_type type)
  {
-@@ -387,6 +488,7 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
+@@ -390,6 +491,7 @@ struct task_struct *find_task_by_vpid(pi
  {
  	return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns);
  }
@@ -70793,7 +69807,7 @@
  
  struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
  {
-@@ -422,6 +524,17 @@ struct pid *find_get_pid(pid_t nr)
+@@ -425,6 +527,17 @@ struct pid *find_get_pid(pid_t nr)
  }
  EXPORT_SYMBOL_GPL(find_get_pid);
  
@@ -70811,8 +69825,6 @@
  pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)
  {
  	struct upid *upid;
-diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
-index 86b3796..6d3f029 100644
 --- a/kernel/pid_namespace.c
 +++ b/kernel/pid_namespace.c
 @@ -13,6 +13,9 @@
@@ -70982,7 +69994,7 @@
  void zap_pid_ns_processes(struct pid_namespace *pid_ns)
  {
  	int nr;
-@@ -181,6 +334,11 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
+@@ -181,6 +334,11 @@ void zap_pid_ns_processes(struct pid_nam
  	} while (rc != -ECHILD);
  
  	acct_exit_ns(pid_ns);
@@ -70994,8 +70006,6 @@
  	return;
  }
  
-diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
-index 5e76d22..2ec2a6f 100644
 --- a/kernel/posix-timers.c
 +++ b/kernel/posix-timers.c
 @@ -31,6 +31,8 @@
@@ -71017,7 +70027,7 @@
  
  /*
   * Management arrays for POSIX timers.	 Timers are kept in slab memory
-@@ -303,8 +308,8 @@ static __init int init_posix_timers(void)
+@@ -303,8 +308,8 @@ static __init int init_posix_timers(void
  	register_posix_clock(CLOCK_MONOTONIC_COARSE, &clock_monotonic_coarse);
  
  	posix_timers_cache = kmem_cache_create("posix_timers_cache",
@@ -71028,7 +70038,7 @@
  	idr_init(&posix_timers_id);
  	return 0;
  }
-@@ -363,6 +368,7 @@ int posix_timer_event(struct k_itimer *timr, int si_private)
+@@ -363,6 +368,7 @@ int posix_timer_event(struct k_itimer *t
  {
  	struct task_struct *task;
  	int shared, ret = -1;
@@ -71036,7 +70046,7 @@
  	/*
  	 * FIXME: if ->sigq is queued we can race with
  	 * dequeue_signal()->do_schedule_next_timer().
-@@ -379,8 +385,17 @@ int posix_timer_event(struct k_itimer *timr, int si_private)
+@@ -379,8 +385,17 @@ int posix_timer_event(struct k_itimer *t
  	rcu_read_lock();
  	task = pid_task(timr->it_pid, PIDTYPE_PID);
  	if (task) {
@@ -71054,8 +70064,6 @@
  	}
  	rcu_read_unlock();
  	/* If we failed to send the signal the timer stops. */
-diff --git a/kernel/power/process.c b/kernel/power/process.c
-index e7cd671..732f532 100644
 --- a/kernel/power/process.c
 +++ b/kernel/power/process.c
 @@ -15,6 +15,8 @@
@@ -71067,7 +70075,7 @@
  /* 
   * Timeout for stopping processes
   */
-@@ -24,7 +26,9 @@ static inline int freezeable(struct task_struct * p)
+@@ -24,7 +26,9 @@ static inline int freezeable(struct task
  {
  	if ((p == current) ||
  	    (p->flags & PF_NOFREEZE) ||
@@ -71078,7 +70086,7 @@
  		return 0;
  	return 1;
  }
-@@ -44,7 +48,7 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -44,7 +48,7 @@ static int try_to_freeze_tasks(bool sig_
  	do {
  		todo = 0;
  		read_lock(&tasklist_lock);
@@ -71087,7 +70095,7 @@
  			if (frozen(p) || !freezeable(p))
  				continue;
  
-@@ -60,7 +64,7 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -60,7 +64,7 @@ static int try_to_freeze_tasks(bool sig_
  			if (!task_is_stopped_or_traced(p) &&
  			    !freezer_should_skip(p))
  				todo++;
@@ -71096,7 +70104,7 @@
  		read_unlock(&tasklist_lock);
  		yield();			/* Yield is okay here */
  		if (time_after(jiffies, end_time))
-@@ -84,13 +88,13 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -84,13 +88,13 @@ static int try_to_freeze_tasks(bool sig_
  				elapsed_csecs / 100, elapsed_csecs % 100, todo);
  		show_state();
  		read_lock(&tasklist_lock);
@@ -71150,8 +70158,6 @@
  	read_unlock(&tasklist_lock);
  }
  
-diff --git a/kernel/printk.c b/kernel/printk.c
-index 4cade47..5486e01 100644
 --- a/kernel/printk.c
 +++ b/kernel/printk.c
 @@ -31,7 +31,9 @@
@@ -71164,7 +70170,7 @@
  #include <linux/kexec.h>
  
  #include <asm/uaccess.h>
-@@ -100,7 +102,7 @@ static int console_locked, console_suspended;
+@@ -100,7 +102,7 @@ static int console_locked, console_suspe
   * It is also used in interesting ways to provide interlocking in
   * release_console_sem().
   */
@@ -71201,7 +70207,7 @@
  static int __init log_buf_len_setup(char *str)
  {
  	unsigned size = memparse(str, &str);
-@@ -182,6 +198,9 @@ static int __init log_buf_len_setup(char *str)
+@@ -182,6 +198,9 @@ static int __init log_buf_len_setup(char
  		spin_lock_irqsave(&logbuf_lock, flags);
  		log_buf_len = size;
  		log_buf = new_log_buf;
@@ -71211,7 +70217,7 @@
  
  		offset = start = min(con_start, log_start);
  		dest_idx = 0;
-@@ -278,6 +297,9 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -278,6 +297,9 @@ int do_syslog(int type, char __user *buf
  	char c;
  	int error = 0;
  
@@ -71221,7 +70227,7 @@
  	error = security_syslog(type);
  	if (error)
  		return error;
-@@ -298,15 +320,15 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -298,15 +320,15 @@ int do_syslog(int type, char __user *buf
  			error = -EFAULT;
  			goto out;
  		}
@@ -71242,7 +70248,7 @@
  			spin_unlock_irq(&logbuf_lock);
  			error = __put_user(c,buf);
  			buf++;
-@@ -332,15 +354,17 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -332,15 +354,17 @@ int do_syslog(int type, char __user *buf
  			error = -EFAULT;
  			goto out;
  		}
@@ -71266,7 +70272,7 @@
  		/*
  		 * __put_user() could sleep, and while we sleep
  		 * printk() could overwrite the messages
-@@ -349,9 +373,9 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -349,9 +373,9 @@ int do_syslog(int type, char __user *buf
  		 */
  		for (i = 0; i < count && !error; i++) {
  			j = limit-1-i;
@@ -71278,7 +70284,7 @@
  			spin_unlock_irq(&logbuf_lock);
  			error = __put_user(c,&buf[count-1-i]);
  			cond_resched();
-@@ -375,7 +399,7 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -375,7 +399,7 @@ int do_syslog(int type, char __user *buf
  		}
  		break;
  	case 5:		/* Clear ring buffer */
@@ -71287,7 +70293,7 @@
  		break;
  	case 6:		/* Disable logging to console */
  		if (saved_console_loglevel == -1)
-@@ -392,18 +416,21 @@ int do_syslog(int type, char __user *buf, int len)
+@@ -392,18 +416,21 @@ int do_syslog(int type, char __user *buf
  		error = -EINVAL;
  		if (len < 1 || len > 8)
  			goto out;
@@ -71312,7 +70318,7 @@
  		break;
  	default:
  		error = -EINVAL;
-@@ -514,14 +541,14 @@ static void call_console_drivers(unsigned start, unsigned end)
+@@ -514,14 +541,14 @@ static void call_console_drivers(unsigne
  
  static void emit_log_char(char c)
  {
@@ -71382,7 +70388,7 @@
  
  	boot_delay_msec();
  	printk_delay();
-@@ -705,6 +757,13 @@ asmlinkage int vprintk(const char *fmt, va_list args)
+@@ -705,6 +757,13 @@ asmlinkage int vprintk(const char *fmt,
  	spin_lock(&logbuf_lock);
  	printk_cpu = this_cpu;
  
@@ -71396,7 +70402,7 @@
  	if (recursion_bug) {
  		recursion_bug = 0;
  		strcpy(printk_buf, recursion_bug_msg);
-@@ -788,19 +847,67 @@ asmlinkage int vprintk(const char *fmt, va_list args)
+@@ -788,19 +847,67 @@ asmlinkage int vprintk(const char *fmt,
  	 * will release 'logbuf_lock' regardless of whether it
  	 * actually gets the semaphore or not.
  	 */
@@ -71518,7 +70524,7 @@
  /**
   * printk_timed_ratelimit - caller-controlled printk ratelimiting
   * @caller_jiffies: pointer to caller's state
-@@ -1407,3 +1546,65 @@ bool printk_timed_ratelimit(unsigned long *caller_jiffies,
+@@ -1407,3 +1546,65 @@ bool printk_timed_ratelimit(unsigned lon
  }
  EXPORT_SYMBOL(printk_timed_ratelimit);
  #endif
@@ -71584,11 +70590,9 @@
 +	spin_unlock(&nmi_show_regs_lock);
 +	return 1;
 +}
-diff --git a/kernel/ptrace.c b/kernel/ptrace.c
-index 23bd09c..8967db7 100644
 --- a/kernel/ptrace.c
 +++ b/kernel/ptrace.c
-@@ -130,6 +130,8 @@ int __ptrace_may_access(struct task_struct *task, unsigned int mode)
+@@ -168,6 +168,8 @@ int __ptrace_may_access(struct task_stru
  	 * or halting the specified task is impossible.
  	 */
  	int dumpable = 0;
@@ -71617,7 +70621,7 @@
  	return security_ptrace_access_check(task, mode);
  }
  
-@@ -190,6 +198,9 @@ int ptrace_attach(struct task_struct *task)
+@@ -228,6 +236,9 @@ int ptrace_attach(struct task_struct *ta
  	task_unlock(task);
  	if (retval)
  		goto unlock_creds;
@@ -71627,7 +70631,7 @@
  
  	write_lock_irq(&tasklist_lock);
  	retval = -EPERM;
-@@ -396,6 +407,7 @@ int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long ds
+@@ -434,6 +445,7 @@ int ptrace_writedata(struct task_struct
  	}
  	return copied;
  }
@@ -71635,7 +70639,7 @@
  
  static int ptrace_setoptions(struct task_struct *child, long data)
  {
-@@ -584,6 +596,10 @@ static struct task_struct *ptrace_get_task_struct(pid_t pid)
+@@ -622,6 +634,10 @@ static struct task_struct *ptrace_get_ta
  {
  	struct task_struct *child;
  
@@ -71646,8 +70650,6 @@
  	rcu_read_lock();
  	child = find_task_by_vpid(pid);
  	if (child)
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 9652eca..ffcf147 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
 @@ -71,6 +71,8 @@
@@ -71659,7 +70661,7 @@
  
  #include <asm/tlb.h>
  #include <asm/irq_regs.h>
-@@ -355,6 +357,8 @@ static inline struct task_group *task_group(struct task_struct *p)
+@@ -355,6 +357,8 @@ static inline struct task_group *task_gr
  #elif defined(CONFIG_CGROUP_SCHED)
  	tg = container_of(task_subsys_state(p, cpu_cgroup_subsys_id),
  				struct task_group, css);
@@ -71668,7 +70670,7 @@
  #else
  	tg = &init_task_group;
  #endif
-@@ -562,6 +566,9 @@ struct rq {
+@@ -565,6 +569,9 @@ struct rq {
  	 */
  	unsigned long nr_uninterruptible;
  
@@ -71678,7 +70680,7 @@
  	struct task_struct *curr, *idle;
  	unsigned long next_balance;
  	struct mm_struct *prev_mm;
-@@ -646,6 +653,12 @@ static inline int cpu_of(struct rq *rq)
+@@ -649,6 +656,12 @@ static inline int cpu_of(struct rq *rq)
  #endif
  }
  
@@ -71691,7 +70693,7 @@
  /*
   * The domain tree (rq->sd) is protected by RCU's quiescent state transition.
   * See detach_destroy_domains: synchronize_sched for details.
-@@ -1007,6 +1020,220 @@ static inline void task_rq_unlock(struct rq *rq, unsigned long *flags)
+@@ -1010,6 +1023,220 @@ static inline void task_rq_unlock(struct
  	spin_unlock_irqrestore(&rq->lock, *flags);
  }
  
@@ -71912,7 +70914,7 @@
  /*
   * this_rq_lock - lock this runqueue and disable interrupts.
   */
-@@ -1974,11 +2201,21 @@ static int effective_prio(struct task_struct *p)
+@@ -1977,11 +2204,21 @@ static int effective_prio(struct task_st
   */
  static void activate_task(struct rq *rq, struct task_struct *p, int wakeup)
  {
@@ -71935,7 +70937,7 @@
  }
  
  /*
-@@ -1986,11 +2223,31 @@ static void activate_task(struct rq *rq, struct task_struct *p, int wakeup)
+@@ -1989,11 +2226,31 @@ static void activate_task(struct rq *rq,
   */
  static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep)
  {
@@ -71968,7 +70970,7 @@
  }
  
  /**
-@@ -2275,6 +2532,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+@@ -2278,6 +2535,7 @@ unsigned long wait_task_inactive(struct
  
  	return ncsw;
  }
@@ -71976,7 +70978,7 @@
  
  /***
   * kick_process - kick a running thread to enter/exit the kernel
-@@ -2435,6 +2693,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
+@@ -2438,6 +2696,7 @@ static int try_to_wake_up(struct task_st
  	 * First fix up the nr_uninterruptible count:
  	 */
  	if (task_contributes_to_load(p)) {
@@ -71984,7 +70986,7 @@
  		if (likely(cpu_online(orig_cpu)))
  			rq->nr_uninterruptible--;
  		else
-@@ -2678,6 +2937,10 @@ void sched_fork(struct task_struct *p, int clone_flags)
+@@ -2682,6 +2941,10 @@ void sched_fork(struct task_struct *p, i
  	/* Want to start with kernel preemption disabled. */
  	task_thread_info(p)->preempt_count = 1;
  #endif
@@ -71995,7 +70997,7 @@
  	plist_node_init(&p->pushable_tasks, MAX_PRIO);
  
  	put_cpu();
-@@ -2920,6 +3183,7 @@ asmlinkage void schedule_tail(struct task_struct *prev)
+@@ -2924,6 +3187,7 @@ asmlinkage void schedule_tail(struct tas
  	if (current->set_child_tid)
  		put_user(task_pid_vnr(current), current->set_child_tid);
  }
@@ -72003,7 +71005,7 @@
  
  /*
   * context_switch - switch to the new MM and the new
-@@ -2991,6 +3255,7 @@ unsigned long nr_running(void)
+@@ -2995,6 +3259,7 @@ unsigned long nr_running(void)
  
  	return sum;
  }
@@ -72011,7 +71013,7 @@
  
  unsigned long nr_uninterruptible(void)
  {
-@@ -3008,6 +3273,7 @@ unsigned long nr_uninterruptible(void)
+@@ -3012,6 +3277,7 @@ unsigned long nr_uninterruptible(void)
  
  	return sum;
  }
@@ -72019,7 +71021,7 @@
  
  unsigned long long nr_context_switches(void)
  {
-@@ -3043,6 +3309,72 @@ unsigned long this_cpu_load(void)
+@@ -3047,6 +3313,72 @@ unsigned long this_cpu_load(void)
  }
  
  
@@ -72092,7 +71094,7 @@
  /* Variables and functions for calc_load */
  static atomic_long_t calc_load_tasks;
  static unsigned long calc_load_update;
-@@ -3064,6 +3396,16 @@ void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
+@@ -3068,6 +3400,16 @@ void get_avenrun(unsigned long *loads, u
  	loads[2] = (avenrun[2] + offset) << shift;
  }
  
@@ -72109,7 +71111,7 @@
  static unsigned long
  calc_load(unsigned long load, unsigned long exp, unsigned long active)
  {
-@@ -3072,6 +3414,35 @@ calc_load(unsigned long load, unsigned long exp, unsigned long active)
+@@ -3076,6 +3418,35 @@ calc_load(unsigned long load, unsigned l
  	return load >> FSHIFT;
  }
  
@@ -72145,7 +71147,7 @@
  /*
   * calc_load - update the avenrun load estimates 10 ticks after the
   * CPUs have updated calc_load_tasks.
-@@ -3091,6 +3462,8 @@ void calc_global_load(void)
+@@ -3095,6 +3466,8 @@ void calc_global_load(void)
  	avenrun[1] = calc_load(avenrun[1], EXP_5, active);
  	avenrun[2] = calc_load(avenrun[2], EXP_15, active);
  
@@ -72154,7 +71156,7 @@
  	calc_load_update += LOAD_FREQ;
  }
  
-@@ -3146,6 +3519,16 @@ static void update_cpu_load(struct rq *this_rq)
+@@ -3150,6 +3523,16 @@ static void update_cpu_load(struct rq *t
  	}
  }
  
@@ -72171,7 +71173,7 @@
  #ifdef CONFIG_SMP
  
  /*
-@@ -3237,8 +3620,15 @@ unlock:
+@@ -3241,8 +3624,15 @@ unlock:
  static void pull_task(struct rq *src_rq, struct task_struct *p,
  		      struct rq *this_rq, int this_cpu)
  {
@@ -72187,7 +71189,7 @@
  	activate_task(this_rq, p, 0);
  	check_preempt_curr(this_rq, p, 0);
  }
-@@ -5115,10 +5505,13 @@ void account_user_time(struct task_struct *p, cputime_t cputime,
+@@ -5119,10 +5509,13 @@ void account_user_time(struct task_struc
  
  	/* Add user time to cpustat. */
  	tmp = cputime_to_cputime64(cputime);
@@ -72203,7 +71205,7 @@
  
  	cpuacct_update_stats(p, CPUACCT_STAT_USER, cputime);
  	/* Account for user time used */
-@@ -5175,6 +5568,7 @@ void account_system_time(struct task_struct *p, int hardirq_offset,
+@@ -5179,6 +5572,7 @@ void account_system_time(struct task_str
  
  	/* Add system time to cpustat. */
  	tmp = cputime_to_cputime64(cputime);
@@ -72211,7 +71213,7 @@
  	if (hardirq_count() - hardirq_offset)
  		cpustat->irq = cputime64_add(cpustat->irq, tmp);
  	else if (softirq_count())
-@@ -5598,6 +5992,8 @@ need_resched_nonpreemptible:
+@@ -5602,6 +5996,8 @@ need_resched_nonpreemptible:
  	next = pick_next_task(rq);
  
  	if (likely(prev != next)) {
@@ -72220,7 +71222,7 @@
  		sched_info_switch(prev, next);
  		perf_event_task_sched_out(prev, next, cpu);
  
-@@ -5605,6 +6001,22 @@ need_resched_nonpreemptible:
+@@ -5609,6 +6005,22 @@ need_resched_nonpreemptible:
  		rq->curr = next;
  		++*switch_count;
  
@@ -72243,7 +71245,7 @@
  		context_switch(rq, prev, next); /* unlocks the rq */
  		/*
  		 * the context switch might have flipped the stack from under
-@@ -5612,8 +6024,10 @@ need_resched_nonpreemptible:
+@@ -5616,8 +6028,10 @@ need_resched_nonpreemptible:
  		 */
  		cpu = smp_processor_id();
  		rq = cpu_rq(cpu);
@@ -72255,7 +71257,7 @@
  
  	post_schedule(rq);
  
-@@ -6399,7 +6813,7 @@ recheck:
+@@ -6403,7 +6817,7 @@ recheck:
  	/*
  	 * Allow unprivileged RT tasks to decrease priority:
  	 */
@@ -72264,7 +71266,7 @@
  		if (rt_policy(policy)) {
  			unsigned long rlim_rtprio;
  
-@@ -6910,11 +7324,16 @@ EXPORT_SYMBOL(yield);
+@@ -6914,11 +7328,16 @@ EXPORT_SYMBOL(yield);
  void __sched io_schedule(void)
  {
  	struct rq *rq = raw_rq();
@@ -72281,7 +71283,7 @@
  	current->in_iowait = 0;
  	atomic_dec(&rq->nr_iowait);
  	delayacct_blkio_end();
-@@ -6925,11 +7344,16 @@ long __sched io_schedule_timeout(long timeout)
+@@ -6929,11 +7348,16 @@ long __sched io_schedule_timeout(long ti
  {
  	struct rq *rq = raw_rq();
  	long ret;
@@ -72298,7 +71300,7 @@
  	current->in_iowait = 0;
  	atomic_dec(&rq->nr_iowait);
  	delayacct_blkio_end();
-@@ -7040,17 +7464,7 @@ void sched_show_task(struct task_struct *p)
+@@ -7044,17 +7468,7 @@ void sched_show_task(struct task_struct
  	state = p->state ? __ffs(p->state) + 1 : 0;
  	printk(KERN_INFO "%-13.13s %c", p->comm,
  		state < sizeof(stat_nam) - 1 ? stat_nam[state] : '?');
@@ -72317,7 +71319,7 @@
  #ifdef CONFIG_DEBUG_STACK_USAGE
  	free = stack_not_used(p);
  #endif
-@@ -7067,13 +7481,13 @@ void show_state_filter(unsigned long state_filter)
+@@ -7071,13 +7485,13 @@ void show_state_filter(unsigned long sta
  
  #if BITS_PER_LONG == 32
  	printk(KERN_INFO
@@ -72334,7 +71336,7 @@
  		/*
  		 * reset the NMI-timeout, listing all files on a slow
  		 * console might take alot of time:
-@@ -7081,7 +7495,7 @@ void show_state_filter(unsigned long state_filter)
+@@ -7085,7 +7499,7 @@ void show_state_filter(unsigned long sta
  		touch_nmi_watchdog();
  		if (!state_filter || (p->state & state_filter))
  			sched_show_task(p);
@@ -72343,7 +71345,7 @@
  
  	touch_all_softlockup_watchdogs();
  
-@@ -7433,13 +7847,13 @@ static void migrate_live_tasks(int src_cpu)
+@@ -7437,13 +7851,13 @@ static void migrate_live_tasks(int src_c
  
  	read_lock(&tasklist_lock);
  
@@ -72359,7 +71361,7 @@
  
  	read_unlock(&tasklist_lock);
  }
-@@ -9593,6 +10007,7 @@ void __init sched_init(void)
+@@ -9594,6 +10008,7 @@ void __init sched_init(void)
  	update_shares_data = __alloc_percpu(nr_cpu_ids * sizeof(unsigned long),
  					    __alignof__(unsigned long));
  #endif
@@ -72367,7 +71369,7 @@
  	for_each_possible_cpu(i) {
  		struct rq *rq;
  
-@@ -9606,7 +10021,7 @@ void __init sched_init(void)
+@@ -9607,7 +10022,7 @@ void __init sched_init(void)
  #ifdef CONFIG_FAIR_GROUP_SCHED
  		init_task_group.shares = init_task_group_load;
  		INIT_LIST_HEAD(&rq->leaf_cfs_rq_list);
@@ -72376,7 +71378,7 @@
  		/*
  		 * How much cpu bandwidth does init_task_group get?
  		 *
-@@ -9652,7 +10067,7 @@ void __init sched_init(void)
+@@ -9653,7 +10068,7 @@ void __init sched_init(void)
  		rq->rt.rt_runtime = def_rt_bandwidth.rt_runtime;
  #ifdef CONFIG_RT_GROUP_SCHED
  		INIT_LIST_HEAD(&rq->leaf_rt_rq_list);
@@ -72385,7 +71387,7 @@
  		init_tg_rt_entry(&init_task_group, &rq->rt, NULL, i, 1, NULL);
  #elif defined CONFIG_USER_SCHED
  		init_tg_rt_entry(&root_task_group, &rq->rt, NULL, i, 0, NULL);
-@@ -9718,6 +10133,7 @@ void __init sched_init(void)
+@@ -9719,6 +10134,7 @@ void __init sched_init(void)
  	 * During early bootup we pretend to be a normal task:
  	 */
  	current->sched_class = &fair_sched_class;
@@ -72393,7 +71395,7 @@
  
  	/* Allocate the nohz_cpu_mask if CONFIG_CPUMASK_OFFSTACK */
  	zalloc_cpumask_var(&nohz_cpu_mask, GFP_NOWAIT);
-@@ -9796,7 +10212,7 @@ void normalize_rt_tasks(void)
+@@ -9797,7 +10213,7 @@ void normalize_rt_tasks(void)
  	struct rq *rq;
  
  	read_lock_irqsave(&tasklist_lock, flags);
@@ -72402,7 +71404,7 @@
  		/*
  		 * Only normalize user tasks:
  		 */
-@@ -9827,7 +10243,7 @@ void normalize_rt_tasks(void)
+@@ -9828,7 +10244,7 @@ void normalize_rt_tasks(void)
  
  		__task_rq_unlock(rq);
  		spin_unlock(&p->pi_lock);
@@ -72411,7 +71413,7 @@
  
  	read_unlock_irqrestore(&tasklist_lock, flags);
  }
-@@ -10273,10 +10689,10 @@ static inline int tg_has_rt_tasks(struct task_group *tg)
+@@ -10274,10 +10690,10 @@ static inline int tg_has_rt_tasks(struct
  {
  	struct task_struct *g, *p;
  
@@ -72424,11 +71426,9 @@
  
  	return 0;
  }
-diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
-index 6f836a8..755b1f9 100644
 --- a/kernel/sched_debug.c
 +++ b/kernel/sched_debug.c
-@@ -135,12 +135,12 @@ static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu)
+@@ -135,12 +135,12 @@ static void print_rq(struct seq_file *m,
  
  	read_lock_irqsave(&tasklist_lock, flags);
  
@@ -72443,8 +71443,6 @@
  
  	read_unlock_irqrestore(&tasklist_lock, flags);
  }
-diff --git a/kernel/signal.c b/kernel/signal.c
-index 423655a..07e7db6 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
 @@ -33,13 +33,32 @@
@@ -72481,7 +71479,7 @@
  
  static void __user *sig_handler(struct task_struct *t, int sig)
  {
-@@ -118,7 +137,7 @@ static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked)
+@@ -118,7 +137,7 @@ static inline int has_pending_signals(si
  
  #define PENDING(p,b) has_pending_signals(&(p)->signal, (b))
  
@@ -72490,7 +71488,7 @@
  {
  	if (t->signal->group_stop_count > 0 ||
  	    PENDING(&t->pending, &t->blocked) ||
-@@ -143,6 +162,7 @@ void recalc_sigpending_and_wake(struct task_struct *t)
+@@ -143,6 +162,7 @@ void recalc_sigpending_and_wake(struct t
  	if (recalc_sigpending_tsk(t))
  		signal_wake_up(t, 0);
  }
@@ -72498,7 +71496,7 @@
  
  void recalc_sigpending(void)
  {
-@@ -209,8 +229,13 @@ static struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags,
+@@ -209,8 +229,13 @@ static struct sigqueue *__sigqueue_alloc
  	atomic_inc(&user->sigpending);
  	if (override_rlimit ||
  	    atomic_read(&user->sigpending) <=
@@ -72513,7 +71511,7 @@
  	if (unlikely(q == NULL)) {
  		atomic_dec(&user->sigpending);
  		free_uid(user);
-@@ -229,6 +254,7 @@ static void __sigqueue_free(struct sigqueue *q)
+@@ -229,6 +254,7 @@ static void __sigqueue_free(struct sigqu
  		return;
  	atomic_dec(&q->user->sigpending);
  	free_uid(q->user);
@@ -72521,7 +71519,7 @@
  	kmem_cache_free(sigqueue_cachep, q);
  }
  
-@@ -409,7 +435,18 @@ still_pending:
+@@ -412,7 +438,18 @@ still_pending:
  static int __dequeue_signal(struct sigpending *pending, sigset_t *mask,
  			siginfo_t *info)
  {
@@ -72541,15 +71539,15 @@
  
  	if (sig) {
  		if (current->notifier) {
-@@ -532,6 +569,7 @@ void signal_wake_up_state(struct task_struct *t, int resume)
- 	if (!wake_up_state(t, mask))
+@@ -529,6 +566,7 @@ void signal_wake_up_state(struct task_st
+ 	if (!wake_up_state(t, state | TASK_INTERRUPTIBLE))
  		kick_process(t);
  }
 +EXPORT_SYMBOL_GPL(signal_wake_up_state);
  
  /*
   * Remove signals in mask from the pending set and queue.
-@@ -657,7 +695,7 @@ static int prepare_signal(int sig, struct task_struct *p, int from_ancestor_ns)
+@@ -654,7 +692,7 @@ static int prepare_signal(int sig, struc
  		t = p;
  		do {
  			rm_from_queue(sigmask(SIGCONT), &t->pending);
@@ -72558,7 +71556,7 @@
  	} else if (sig == SIGCONT) {
  		unsigned int why;
  		/*
-@@ -689,7 +727,7 @@ static int prepare_signal(int sig, struct task_struct *p, int from_ancestor_ns)
+@@ -686,7 +724,7 @@ static int prepare_signal(int sig, struc
  				state |= TASK_INTERRUPTIBLE;
  			}
  			wake_up_state(t, state);
@@ -72567,7 +71565,7 @@
  
  		/*
  		 * Notify the parent with CLD_CONTINUED if we were stopped.
-@@ -811,7 +849,7 @@ static void complete_signal(int sig, struct task_struct *p, int group)
+@@ -808,7 +846,7 @@ static void complete_signal(int sig, str
  			do {
  				sigaddset(&t->pending.signal, SIGKILL);
  				signal_wake_up(t, 1);
@@ -72576,7 +71574,7 @@
  			return;
  		}
  	}
-@@ -1082,7 +1120,8 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
+@@ -1079,7 +1117,8 @@ int group_send_sig_info(int sig, struct
  	int ret = check_kill_permission(sig, info, p);
  
  	if (!ret && sig)
@@ -72586,7 +71584,7 @@
  
  	return ret;
  }
-@@ -1207,7 +1246,7 @@ static int kill_something_info(int sig, struct siginfo *info, pid_t pid)
+@@ -1204,7 +1243,7 @@ static int kill_something_info(int sig,
  		int retval = 0, count = 0;
  		struct task_struct * p;
  
@@ -72595,7 +71593,7 @@
  			if (task_pid_vnr(p) > 1 &&
  					!same_thread_group(p, current)) {
  				int err = group_send_sig_info(sig, info, p);
-@@ -1398,6 +1437,14 @@ int do_notify_parent(struct task_struct *tsk, int sig)
+@@ -1395,6 +1434,14 @@ int do_notify_parent(struct task_struct
  	BUG_ON(!task_ptrace(tsk) &&
  	       (tsk->group_leader != tsk || !thread_group_empty(tsk)));
  
@@ -72610,7 +71608,7 @@
  	info.si_signo = sig;
  	info.si_errno = 0;
  	/*
-@@ -1722,7 +1769,9 @@ static int do_signal_stop(int signr)
+@@ -1723,7 +1770,9 @@ static int do_signal_stop(int signr)
  
  	/* Now we don't run again until woken by SIGCONT or SIGKILL */
  	do {
@@ -72620,7 +71618,7 @@
  	} while (try_to_freeze());
  
  	tracehook_finish_jctl();
-@@ -1784,8 +1833,6 @@ relock:
+@@ -1785,8 +1834,6 @@ relock:
  	 * Now that we woke up, it's crucial if we're supposed to be
  	 * frozen that we freeze now before running anything substantial.
  	 */
@@ -72629,7 +71627,7 @@
  	spin_lock_irq(&sighand->siglock);
  	/*
  	 * Every stopped thread goes here after wakeup. Check to see if
-@@ -2283,7 +2330,8 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
+@@ -2284,7 +2331,8 @@ do_send_specific(pid_t tgid, pid_t pid,
  		 * probe.  No signal is actually delivered.
  		 */
  		if (!error && sig) {
@@ -72639,15 +71637,13 @@
  			/*
  			 * If lock_task_sighand() failed we pretend the task
  			 * dies after receiving the signal. The window is tiny,
-@@ -2680,5 +2728,5 @@ __attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma)
+@@ -2689,5 +2737,5 @@ __attribute__((weak)) const char *arch_v
  
  void __init signals_init(void)
  {
 -	sigqueue_cachep = KMEM_CACHE(sigqueue, SLAB_PANIC);
 +	sigqueue_cachep = KMEM_CACHE(sigqueue, SLAB_PANIC|SLAB_UBC);
  }
-diff --git a/kernel/softirq.c b/kernel/softirq.c
-index f8749e5..c9aeeb5 100644
 --- a/kernel/softirq.c
 +++ b/kernel/softirq.c
 @@ -25,6 +25,8 @@
@@ -72659,22 +71655,23 @@
  #define CREATE_TRACE_POINTS
  #include <trace/events/irq.h>
  
-@@ -190,10 +192,14 @@ EXPORT_SYMBOL(local_bh_enable_ip);
+@@ -195,11 +197,15 @@ EXPORT_SYMBOL(local_bh_enable_ip);
  
  asmlinkage void __do_softirq(void)
  {
-+	struct user_beancounter *ub;
++        struct user_beancounter *ub;
  	struct softirq_action *h;
  	__u32 pending;
- 	int max_restart = MAX_SOFTIRQ_RESTART;
+ 	unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
  	int cpu;
+ 	int max_restart = MAX_SOFTIRQ_RESTART;
 +	struct ve_struct *envid;
 +
 +	envid = set_exec_env(get_ve0());
  
  	pending = local_softirq_pending();
  	account_system_vtime(current);
-@@ -210,6 +216,7 @@ restart:
+@@ -216,6 +222,7 @@ restart:
  
  	h = softirq_vec;
  
@@ -72682,7 +71679,7 @@
  	do {
  		if (pending & 1) {
  			int prev_count = preempt_count();
-@@ -232,6 +239,7 @@ restart:
+@@ -238,6 +245,7 @@ restart:
  		h++;
  		pending >>= 1;
  	} while (pending);
@@ -72690,7 +71687,7 @@
  
  	local_irq_disable();
  
-@@ -245,6 +253,7 @@ restart:
+@@ -253,6 +261,7 @@ restart:
  	lockdep_softirq_exit();
  
  	account_system_vtime(current);
@@ -72698,7 +71695,7 @@
  	_local_bh_enable();
  }
  
-@@ -298,6 +307,7 @@ void irq_exit(void)
+@@ -306,6 +315,7 @@ void irq_exit(void)
  {
  	account_system_vtime(current);
  	trace_hardirq_exit();
@@ -72706,8 +71703,6 @@
  	sub_preempt_count(IRQ_EXIT_OFFSET);
  	if (!in_interrupt() && local_softirq_pending())
  		invoke_softirq();
-diff --git a/kernel/sys.c b/kernel/sys.c
-index 440ca69..4e24efc 100644
 --- a/kernel/sys.c
 +++ b/kernel/sys.c
 @@ -10,6 +10,8 @@
@@ -72822,7 +71817,7 @@
  /*
   * set the priority of a task
   * - the caller must hold the RCU read lock
-@@ -190,10 +288,10 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
+@@ -190,10 +288,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
  				 !(user = find_user(who)))
  				goto out_unlock;	/* No processes for this user */
  
@@ -72835,7 +71830,7 @@
  			if (who != cred->uid)
  				free_uid(user);		/* For find_user() */
  			break;
-@@ -253,13 +351,13 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
+@@ -253,13 +351,13 @@ SYSCALL_DEFINE2(getpriority, int, which,
  				 !(user = find_user(who)))
  				goto out_unlock;	/* No processes for this user */
  
@@ -72851,7 +71846,7 @@
  			if (who != cred->uid)
  				free_uid(user);		/* for find_user() */
  			break;
-@@ -375,6 +473,27 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
+@@ -376,6 +474,27 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
  	                magic2 != LINUX_REBOOT_MAGIC2C))
  		return -EINVAL;
  
@@ -72879,7 +71874,7 @@
  	/* Instead of trying to make the power_off code look like
  	 * halt when pm_power_off is not set do it the easy way.
  	 */
-@@ -924,8 +1043,27 @@ void do_sys_times(struct tms *tms)
+@@ -925,8 +1044,27 @@ void do_sys_times(struct tms *tms)
  	tms->tms_cstime = cputime_to_clock_t(cstime);
  }
  
@@ -72907,7 +71902,7 @@
  	if (tbuf) {
  		struct tms tmp;
  
-@@ -933,8 +1071,15 @@ SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
+@@ -934,8 +1072,15 @@ SYSCALL_DEFINE1(times, struct tms __user
  		if (copy_to_user(tbuf, &tmp, sizeof(struct tms)))
  			return -EFAULT;
  	}
@@ -72923,7 +71918,7 @@
  }
  
  /*
-@@ -1134,7 +1279,7 @@ SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
+@@ -1135,7 +1280,7 @@ SYSCALL_DEFINE2(sethostname, char __user
  	int errno;
  	char tmp[__NEW_UTS_LEN];
  
@@ -72932,7 +71927,7 @@
  		return -EPERM;
  	if (len < 0 || len > __NEW_UTS_LEN)
  		return -EINVAL;
-@@ -1183,7 +1328,7 @@ SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
+@@ -1184,7 +1329,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
  	int errno;
  	char tmp[__NEW_UTS_LEN];
  
@@ -72941,8 +71936,6 @@
  		return -EPERM;
  	if (len < 0 || len > __NEW_UTS_LEN)
  		return -EINVAL;
-diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
-index e06d0b8..7216e06 100644
 --- a/kernel/sys_ni.c
 +++ b/kernel/sys_ni.c
 @@ -179,3 +179,17 @@ cond_syscall(sys_eventfd2);
@@ -72963,8 +71956,6 @@
 +cond_syscall(sys_fairsched_vcpus);
 +cond_syscall(sys_fairsched_chwt);
 +cond_syscall(sys_fairsched_rate);
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index b8bd058..5b754e4 100644
 --- a/kernel/sysctl.c
 +++ b/kernel/sysctl.c
 @@ -50,6 +50,7 @@
@@ -72997,7 +71988,7 @@
  extern int latencytop_enabled;
  extern int sysctl_nr_open_min, sysctl_nr_open_max;
  #ifndef CONFIG_MMU
-@@ -169,6 +185,12 @@ static int proc_taint(struct ctl_table *table, int write,
+@@ -169,6 +185,12 @@ static int proc_taint(struct ctl_table *
  			       void __user *buffer, size_t *lenp, loff_t *ppos);
  #endif
  
@@ -73010,7 +72001,7 @@
  static struct ctl_table root_table[];
  static struct ctl_table_root sysctl_table_root;
  static struct ctl_table_header root_table_header = {
-@@ -178,9 +200,31 @@ static struct ctl_table_header root_table_header = {
+@@ -178,9 +200,31 @@ static struct ctl_table_header root_tabl
  	.root = &sysctl_table_root,
  	.set = &sysctl_table_root.default_set,
  };
@@ -73141,7 +72132,7 @@
  #if defined(CONFIG_X86) || defined(CONFIG_PPC)
  	{
  		.ctl_name	= CTL_UNNUMBERED,
-@@ -2150,10 +2251,27 @@ struct ctl_table_header *__register_sysctl_paths(
+@@ -2150,10 +2251,27 @@ struct ctl_table_header *__register_sysc
  struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
  						struct ctl_table *table)
  {
@@ -73169,7 +72160,7 @@
  /**
   * register_sysctl_table - register a sysctl table hierarchy
   * @table: the top-level table structure
-@@ -2170,6 +2288,14 @@ struct ctl_table_header *register_sysctl_table(struct ctl_table *table)
+@@ -2170,6 +2288,14 @@ struct ctl_table_header *register_sysctl
  	return register_sysctl_paths(null_path, table);
  }
  
@@ -73184,7 +72175,7 @@
  /**
   * unregister_sysctl_table - unregister a sysctl table hierarchy
   * @header: the header returned from register_sysctl_table
-@@ -2231,6 +2357,18 @@ struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
+@@ -2231,6 +2357,18 @@ struct ctl_table_header *register_sysctl
  	return NULL;
  }
  
@@ -73203,7 +72194,7 @@
  void unregister_sysctl_table(struct ctl_table_header * table)
  {
  }
-@@ -2902,6 +3040,25 @@ static int proc_do_cad_pid(struct ctl_table *table, int write,
+@@ -2902,6 +3040,25 @@ static int proc_do_cad_pid(struct ctl_ta
  	return 0;
  }
  
@@ -73271,7 +72262,7 @@
  int sysctl_string(struct ctl_table *table,
  		  void __user *oldval, size_t __user *oldlenp,
  		  void __user *newval, size_t newlen)
-@@ -3236,6 +3421,56 @@ static int deprecated_sysctl_warning(struct __sysctl_args *args)
+@@ -3236,6 +3421,56 @@ static int deprecated_sysctl_warning(str
  	return 0;
  }
  
@@ -73338,11 +72329,9 @@
  EXPORT_SYMBOL(sysctl_intvec);
  EXPORT_SYMBOL(sysctl_jiffies);
  EXPORT_SYMBOL(sysctl_ms_jiffies);
-diff --git a/kernel/taskstats.c b/kernel/taskstats.c
-index ea8384d..d1ff8ff 100644
 --- a/kernel/taskstats.c
 +++ b/kernel/taskstats.c
-@@ -254,7 +254,7 @@ static int fill_tgid(pid_t tgid, struct task_struct *first,
+@@ -254,7 +254,7 @@ static int fill_tgid(pid_t tgid, struct
  
  		stats->nvcsw += tsk->nvcsw;
  		stats->nivcsw += tsk->nivcsw;
@@ -73351,11 +72340,9 @@
  
  	unlock_task_sighand(first, &flags);
  	rc = 0;
-diff --git a/kernel/time.c b/kernel/time.c
-index 2e2e469..c0cce6d 100644
 --- a/kernel/time.c
 +++ b/kernel/time.c
-@@ -610,10 +610,12 @@ EXPORT_SYMBOL(jiffies_to_clock_t);
+@@ -611,10 +611,12 @@ EXPORT_SYMBOL(jiffies_to_clock_t);
  unsigned long clock_t_to_jiffies(unsigned long x)
  {
  #if (HZ % USER_HZ)==0
@@ -73368,7 +72355,7 @@
  	/* Don't worry about loss of precision here .. */
  	if (x >= ~0UL / HZ * USER_HZ)
  		return ~0UL;
-@@ -626,6 +628,7 @@ EXPORT_SYMBOL(clock_t_to_jiffies);
+@@ -627,6 +629,7 @@ EXPORT_SYMBOL(clock_t_to_jiffies);
  
  u64 jiffies_64_to_clock_t(u64 x)
  {
@@ -73376,7 +72363,7 @@
  #if (TICK_NSEC % (NSEC_PER_SEC / USER_HZ)) == 0
  # if HZ < USER_HZ
  	x = div_u64(x * USER_HZ, HZ);
-@@ -648,6 +651,7 @@ EXPORT_SYMBOL(jiffies_64_to_clock_t);
+@@ -649,6 +652,7 @@ EXPORT_SYMBOL(jiffies_64_to_clock_t);
  
  u64 nsec_to_clock_t(u64 x)
  {
@@ -73384,11 +72371,9 @@
  #if (NSEC_PER_SEC % USER_HZ) == 0
  	return div_u64(x, NSEC_PER_SEC / USER_HZ);
  #elif (USER_HZ % 512) == 0
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 26e2f37..5c773b3 100644
 --- a/kernel/time/timekeeping.c
 +++ b/kernel/time/timekeeping.c
-@@ -154,6 +154,7 @@ __cacheline_aligned_in_smp DEFINE_SEQLOCK(xtime_lock);
+@@ -158,6 +158,7 @@ __cacheline_aligned_in_smp DEFINE_SEQLOC
   * used instead.
   */
  struct timespec xtime __attribute__ ((aligned (16)));
@@ -73396,8 +72381,6 @@
  struct timespec wall_to_monotonic __attribute__ ((aligned (16)));
  static struct timespec total_sleep_time;
  
-diff --git a/kernel/timer.c b/kernel/timer.c
-index cb3c1f1..683349c 100644
 --- a/kernel/timer.c
 +++ b/kernel/timer.c
 @@ -39,6 +39,7 @@
@@ -73408,7 +72391,7 @@
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-@@ -1000,6 +1001,7 @@ static inline void __run_timers(struct tvec_base *base)
+@@ -1000,6 +1001,7 @@ static inline void __run_timers(struct t
  			spin_unlock_irq(&base->lock);
  			{
  				int preempt_count = preempt_count();
@@ -73416,7 +72399,7 @@
  
  #ifdef CONFIG_LOCKDEP
  				/*
-@@ -1023,7 +1025,9 @@ static inline void __run_timers(struct tvec_base *base)
+@@ -1023,7 +1025,9 @@ static inline void __run_timers(struct t
  				lock_map_acquire(&lockdep_map);
  
  				trace_timer_expire_entry(timer);
@@ -73464,11 +72447,9 @@
  	/*
  	 * If the sum of all the available memory (i.e. ram + swap)
  	 * is less than can be stored in a 32 bit unsigned long then
-diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 22cf21e..a01e1db 100644
 --- a/kernel/trace/ftrace.c
 +++ b/kernel/trace/ftrace.c
-@@ -3100,7 +3100,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
+@@ -3101,7 +3101,7 @@ static int alloc_retstack_tasklist(struc
  	}
  
  	read_lock_irqsave(&tasklist_lock, flags);
@@ -73477,7 +72458,7 @@
  		if (start == end) {
  			ret = -EAGAIN;
  			goto unlock;
-@@ -3114,7 +3114,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
+@@ -3115,7 +3115,7 @@ static int alloc_retstack_tasklist(struc
  			smp_wmb();
  			t->ret_stack = ret_stack_list[start++];
  		}
@@ -73486,8 +72467,6 @@
  
  unlock:
  	read_unlock_irqrestore(&tasklist_lock, flags);
-diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
-index cc89be5..b328e97 100644
 --- a/kernel/tracepoint.c
 +++ b/kernel/tracepoint.c
 @@ -596,11 +596,11 @@ void syscall_regfunc(void)
@@ -73516,11 +72495,9 @@
  		read_unlock_irqrestore(&tasklist_lock, flags);
  	}
  }
-diff --git a/kernel/user.c b/kernel/user.c
-index 46d0165..23f4e4a 100644
 --- a/kernel/user.c
 +++ b/kernel/user.c
-@@ -323,6 +323,7 @@ static void cleanup_user_struct(struct work_struct *w)
+@@ -323,6 +323,7 @@ static void cleanup_user_struct(struct w
  done:
  	uids_mutex_unlock();
  }
@@ -73552,8 +72529,6 @@
  
  	for(n = 0; n < UIDHASH_SZ; ++n)
  		INIT_HLIST_HEAD(init_user_ns.uidhash_table + n);
-diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index 076c7c8..3c24b38 100644
 --- a/kernel/user_namespace.c
 +++ b/kernel/user_namespace.c
 @@ -59,6 +59,7 @@ int create_user_ns(struct cred *new)
@@ -73564,11 +72539,9 @@
  
  /*
   * Deferred destructor for a user namespace.  This is required because
-diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
-index 69eae35..678dd61 100644
 --- a/kernel/utsname_sysctl.c
 +++ b/kernel/utsname_sysctl.c
-@@ -26,6 +26,10 @@ static void *get_uts(ctl_table *table, int write)
+@@ -26,6 +26,10 @@ static void *get_uts(ctl_table *table, i
  		down_read(&uts_sem);
  	else
  		down_write(&uts_sem);
@@ -73579,7 +72552,7 @@
  	return which;
  }
  
-@@ -126,19 +130,27 @@ static struct ctl_table uts_kern_table[] = {
+@@ -126,19 +130,27 @@ static struct ctl_table uts_kern_table[]
  	{}
  };
  
@@ -73613,9 +72586,6 @@
  	return 0;
  }
  
-diff --git a/kernel/ve/Makefile b/kernel/ve/Makefile
-new file mode 100644
-index 0000000..5513981
 --- /dev/null
 +++ b/kernel/ve/Makefile
 @@ -0,0 +1,17 @@
@@ -73636,9 +72606,6 @@
 +
 +obj-$(CONFIG_VZ_DEV) += vzdev.o
 +obj-$(CONFIG_VZ_EVENT) += vzevent.o
-diff --git a/kernel/ve/hooks.c b/kernel/ve/hooks.c
-new file mode 100644
-index 0000000..1b82c35
 --- /dev/null
 +++ b/kernel/ve/hooks.c
 @@ -0,0 +1,114 @@
@@ -73756,9 +72723,6 @@
 +
 +core_initcall(ve_hooks_init);
 +
-diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
-new file mode 100644
-index 0000000..907d944
 --- /dev/null
 +++ b/kernel/ve/ve.c
 @@ -0,0 +1,161 @@
@@ -73923,9 +72887,6 @@
 +	return -EINVAL;
 +}
 +#endif /* CONFIG_BLK_CGROUP */
-diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c
-new file mode 100644
-index 0000000..9947b57
 --- /dev/null
 +++ b/kernel/ve/vecalls.c
 @@ -0,0 +1,2335 @@
@@ -76264,9 +75225,6 @@
 +
 +module_init(vecalls_init)
 +module_exit(vecalls_exit)
-diff --git a/kernel/ve/veowner.c b/kernel/ve/veowner.c
-new file mode 100644
-index 0000000..0726e44
 --- /dev/null
 +++ b/kernel/ve/veowner.c
 @@ -0,0 +1,160 @@
@@ -76430,9 +75388,6 @@
 +#endif
 +	prepare_sysctl();
 +}
-diff --git a/kernel/ve/vzdev.c b/kernel/ve/vzdev.c
-new file mode 100644
-index 0000000..cc4b1b7
 --- /dev/null
 +++ b/kernel/ve/vzdev.c
 @@ -0,0 +1,154 @@
@@ -76590,9 +75545,6 @@
 +
 +module_init(vzctl_init)
 +module_exit(vzctl_exit);
-diff --git a/kernel/ve/vzevent.c b/kernel/ve/vzevent.c
-new file mode 100644
-index 0000000..dc2fc20
 --- /dev/null
 +++ b/kernel/ve/vzevent.c
 @@ -0,0 +1,139 @@
@@ -76735,9 +75687,6 @@
 +
 +module_init(init_vzevent);
 +module_exit(exit_vzevent);
-diff --git a/kernel/ve/vzwdog.c b/kernel/ve/vzwdog.c
-new file mode 100644
-index 0000000..7cbef81
 --- /dev/null
 +++ b/kernel/ve/vzwdog.c
 @@ -0,0 +1,322 @@
@@ -77063,11 +76012,9 @@
 +
 +module_init(wdog_init)
 +module_exit(wdog_exit)
-diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index 234ceb1..789f5b9 100644
 --- a/lib/Kconfig.debug
 +++ b/lib/Kconfig.debug
-@@ -136,6 +136,15 @@ config DEBUG_SECTION_MISMATCH
+@@ -144,6 +144,15 @@ config DEBUG_SECTION_MISMATCH
  	  - Enable verbose reporting from modpost to help solving
  	    the section mismatches reported.
  
@@ -77083,8 +76030,6 @@
  config DEBUG_KERNEL
  	bool "Kernel debugging"
  	help
-diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
-index bd2bea9..397a3ce 100644
 --- a/lib/is_single_threaded.c
 +++ b/lib/is_single_threaded.c
 @@ -30,7 +30,7 @@ bool current_is_single_threaded(void)
@@ -77105,8 +76050,6 @@
  	}
  	ret = true;
  found:
-diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
-index 920a3ca..ff954e7 100644
 --- a/lib/kobject_uevent.c
 +++ b/lib/kobject_uevent.c
 @@ -38,6 +38,8 @@ static const char *kobject_actions[] = {
@@ -77118,11 +76061,9 @@
  	[KOBJ_ONLINE] =		"online",
  	[KOBJ_OFFLINE] =	"offline",
  };
-diff --git a/lib/nlattr.c b/lib/nlattr.c
-index c4706eb..fcb694e 100644
 --- a/lib/nlattr.c
 +++ b/lib/nlattr.c
-@@ -196,7 +196,7 @@ int nla_parse(struct nlattr *tb[], int maxtype, struct nlattr *head, int len,
+@@ -197,7 +197,7 @@ int nla_parse(struct nlattr *tb[], int m
  	}
  
  	if (unlikely(rem > 0))
@@ -77131,8 +76072,6 @@
  		       "attributes.\n", rem);
  
  	err = 0;
-diff --git a/lib/show_mem.c b/lib/show_mem.c
-index 238e72a..57c038d 100644
 --- a/lib/show_mem.c
 +++ b/lib/show_mem.c
 @@ -8,6 +8,7 @@
@@ -77148,8 +76087,6 @@
  #endif
  }
 +EXPORT_SYMBOL_GPL(show_mem);
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 9e0826e..ac46043 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
 @@ -42,6 +42,7 @@
@@ -77160,7 +76097,7 @@
  
  /*
   * Shared mappings implemented 30.11.1994. It's not fully working yet,
-@@ -121,6 +122,7 @@ void __remove_from_page_cache(struct page *page)
+@@ -121,6 +122,7 @@ void __remove_from_page_cache(struct pag
  
  	radix_tree_delete(&mapping->page_tree, page->index);
  	page->mapping = NULL;
@@ -77168,8 +76105,6 @@
  	mapping->nrpages--;
  	__dec_zone_page_state(page, NR_FILE_PAGES);
  	if (PageSwapBacked(page))
-diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
-index 1888b2d..c2f4508 100644
 --- a/mm/filemap_xip.c
 +++ b/mm/filemap_xip.c
 @@ -19,6 +19,7 @@
@@ -77189,8 +76124,6 @@
  			dec_mm_counter(mm, file_rss);
  			BUG_ON(pte_dirty(pteval));
  			pte_unmap_unlock(pte, ptl);
-diff --git a/mm/fremap.c b/mm/fremap.c
-index b6ec85a..92d38a6 100644
 --- a/mm/fremap.c
 +++ b/mm/fremap.c
 @@ -21,6 +21,8 @@
@@ -77202,7 +76135,7 @@
  #include "internal.h"
  
  static void zap_pte(struct mm_struct *mm, struct vm_area_struct *vma,
-@@ -38,6 +40,7 @@ static void zap_pte(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -38,6 +40,7 @@ static void zap_pte(struct mm_struct *mm
  			if (pte_dirty(pte))
  				set_page_dirty(page);
  			page_remove_rmap(page);
@@ -77210,7 +76143,7 @@
  			page_cache_release(page);
  			update_hiwater_rss(mm);
  			dec_mm_counter(mm, file_rss);
-@@ -64,8 +67,10 @@ static int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -64,8 +67,10 @@ static int install_file_pte(struct mm_st
  	if (!pte)
  		goto out;
  
@@ -77222,7 +76155,7 @@
  
  	set_pte_at(mm, addr, pte, pgoff_to_pte(pgoff));
  	/*
-@@ -222,7 +227,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -222,7 +227,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
  		 * drop PG_Mlocked flag for over-mapped range
  		 */
  		unsigned int saved_flags = vma->vm_flags;
@@ -77236,11 +76169,9 @@
  	return err;
  }
 +EXPORT_SYMBOL_GPL(sys_remap_file_pages);
-diff --git a/mm/internal.h b/mm/internal.h
-index f03e8e2..9340c95 100644
 --- a/mm/internal.h
 +++ b/mm/internal.h
-@@ -66,8 +66,14 @@ static inline unsigned long page_order(struct page *page)
+@@ -66,8 +66,14 @@ static inline unsigned long page_order(s
  #ifdef CONFIG_HAVE_MLOCK
  extern long mlock_vma_pages_range(struct vm_area_struct *vma,
  			unsigned long start, unsigned long end);
@@ -77257,11 +76188,9 @@
  static inline void munlock_vma_pages_all(struct vm_area_struct *vma)
  {
  	munlock_vma_pages_range(vma, vma->vm_start, vma->vm_end);
-diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index 8aeba53..9b753fe 100644
 --- a/mm/memory-failure.c
 +++ b/mm/memory-failure.c
-@@ -226,7 +226,7 @@ static void collect_procs_anon(struct page *page, struct list_head *to_kill,
+@@ -226,7 +226,7 @@ static void collect_procs_anon(struct pa
  	av = page_lock_anon_vma(page);
  	if (av == NULL)	/* Not actually mapped anymore */
  		goto out;
@@ -77270,7 +76199,7 @@
  		if (!task_early_kill(tsk))
  			continue;
  		list_for_each_entry (vma, &av->head, anon_vma_node) {
-@@ -263,7 +263,7 @@ static void collect_procs_file(struct page *page, struct list_head *to_kill,
+@@ -263,7 +263,7 @@ static void collect_procs_file(struct pa
  
  	read_lock(&tasklist_lock);
  	spin_lock(&mapping->i_mmap_lock);
@@ -77279,8 +76208,6 @@
  		pgoff_t pgoff = page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
  
  		if (!task_early_kill(tsk))
-diff --git a/mm/memory.c b/mm/memory.c
-index 53c1da0..2d1b2df 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
 @@ -42,6 +42,9 @@
@@ -77336,7 +76263,7 @@
  
  /*
   * Note: this doesn't free the actual pages themselves. That
-@@ -356,6 +367,7 @@ int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address)
+@@ -356,6 +367,7 @@ int __pte_alloc(struct mm_struct *mm, pm
  		pte_free(mm, new);
  	return 0;
  }
@@ -77361,7 +76288,7 @@
  {
  	unsigned long vm_flags = vma->vm_flags;
  	pte_t pte = *src_pte;
-@@ -630,6 +643,7 @@ copy_one_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
+@@ -630,6 +643,7 @@ copy_one_pte(struct mm_struct *dst_mm, s
  	if (page) {
  		get_page(page);
  		page_dup_rmap(page);
@@ -77445,7 +76372,7 @@
  		unsigned long addr, unsigned long end)
  {
  	pmd_t *src_pmd, *dst_pmd;
-@@ -705,14 +743,16 @@ static inline int copy_pmd_range(struct mm_struct *dst_mm, struct mm_struct *src
+@@ -705,14 +743,16 @@ static inline int copy_pmd_range(struct
  		if (pmd_none_or_clear_bad(src_pmd))
  			continue;
  		if (copy_pte_range(dst_mm, src_mm, dst_pmd, src_pmd,
@@ -77464,7 +76391,7 @@
  		unsigned long addr, unsigned long end)
  {
  	pud_t *src_pud, *dst_pud;
-@@ -727,19 +767,21 @@ static inline int copy_pud_range(struct mm_struct *dst_mm, struct mm_struct *src
+@@ -727,19 +767,21 @@ static inline int copy_pud_range(struct
  		if (pud_none_or_clear_bad(src_pud))
  			continue;
  		if (copy_pmd_range(dst_mm, src_mm, dst_pud, src_pud,
@@ -77491,7 +76418,7 @@
  	int ret;
  
  	/*
-@@ -783,7 +825,7 @@ int copy_page_range(struct mm_struct *dst_mm, struct mm_struct *src_mm,
+@@ -783,7 +825,7 @@ int copy_page_range(struct mm_struct *ds
  		if (pgd_none_or_clear_bad(src_pgd))
  			continue;
  		if (unlikely(copy_pud_range(dst_mm, src_mm, dst_pgd, src_pgd,
@@ -77500,7 +76427,7 @@
  			ret = -ENOMEM;
  			break;
  		}
-@@ -794,6 +836,17 @@ int copy_page_range(struct mm_struct *dst_mm, struct mm_struct *src_mm,
+@@ -794,6 +836,17 @@ int copy_page_range(struct mm_struct *ds
  						  vma->vm_start, end);
  	return ret;
  }
@@ -77518,7 +76445,7 @@
  
  static unsigned long zap_pte_range(struct mmu_gather *tlb,
  				struct vm_area_struct *vma, pmd_t *pmd,
-@@ -805,6 +858,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
+@@ -805,6 +858,7 @@ static unsigned long zap_pte_range(struc
  	spinlock_t *ptl;
  	int file_rss = 0;
  	int anon_rss = 0;
@@ -77526,7 +76453,7 @@
  
  	pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
  	arch_enter_lazy_mmu_mode();
-@@ -860,6 +914,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
+@@ -860,6 +914,7 @@ static unsigned long zap_pte_range(struc
  				file_rss--;
  			}
  			page_remove_rmap(page);
@@ -77534,7 +76461,7 @@
  			if (unlikely(page_mapcount(page) < 0))
  				print_bad_pte(vma, addr, ptent, page);
  			tlb_remove_page(tlb, page);
-@@ -880,6 +935,8 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
+@@ -880,6 +935,8 @@ static unsigned long zap_pte_range(struc
  		pte_clear_not_present_full(mm, addr, pte, tlb->fullmm);
  	} while (pte++, addr += PAGE_SIZE, (addr != end && *zap_work > 0));
  
@@ -77543,7 +76470,7 @@
  	add_mm_rss(mm, file_rss, anon_rss);
  	arch_leave_lazy_mmu_mode();
  	pte_unmap_unlock(pte - 1, ptl);
-@@ -2004,6 +2061,7 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2051,6 +2108,7 @@ static int do_wp_page(struct mm_struct *
  	int reuse = 0, ret = 0;
  	int page_mkwrite = 0;
  	struct page *dirty_page = NULL;
@@ -77551,7 +76478,7 @@
  
  	old_page = vm_normal_page(vma, address, orig_pte);
  	if (!old_page) {
-@@ -2110,6 +2168,8 @@ reuse:
+@@ -2157,6 +2215,8 @@ reuse:
  		flush_cache_page(vma, address, pte_pfn(orig_pte));
  		entry = pte_mkyoung(orig_pte);
  		entry = maybe_mkwrite(pte_mkdirty(entry), vma);
@@ -77560,7 +76487,7 @@
  		if (ptep_set_access_flags(vma, address, page_table, entry,1))
  			update_mmu_cache(vma, address, entry);
  		ret |= VM_FAULT_WRITE;
-@@ -2123,6 +2183,9 @@ reuse:
+@@ -2170,6 +2230,9 @@ reuse:
  gotten:
  	pte_unmap_unlock(page_table, ptl);
  
@@ -77570,7 +76497,7 @@
  	if (unlikely(anon_vma_prepare(vma)))
  		goto oom;
  
-@@ -2157,12 +2220,15 @@ gotten:
+@@ -2204,12 +2267,15 @@ gotten:
  	page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
  	if (likely(pte_same(*page_table, orig_pte))) {
  		if (old_page) {
@@ -77587,7 +76514,7 @@
  		flush_cache_page(vma, address, pte_pfn(orig_pte));
  		entry = mk_pte(new_page, vma->vm_page_prot);
  		entry = maybe_mkwrite(pte_mkdirty(entry), vma);
-@@ -2174,6 +2240,7 @@ gotten:
+@@ -2221,6 +2287,7 @@ gotten:
  		 */
  		ptep_clear_flush(vma, address, page_table);
  		page_add_new_anon_rmap(new_page, vma, address);
@@ -77595,7 +76522,7 @@
  		/*
  		 * We call the notify macro here because, when using secondary
  		 * mmu page tables (such as kvm shadow page tables), we want the
-@@ -2217,6 +2284,7 @@ gotten:
+@@ -2264,6 +2331,7 @@ gotten:
  		page_cache_release(new_page);
  	if (old_page)
  		page_cache_release(old_page);
@@ -77603,7 +76530,7 @@
  unlock:
  	pte_unmap_unlock(page_table, ptl);
  	if (dirty_page) {
-@@ -2256,6 +2324,8 @@ unlock:
+@@ -2303,6 +2371,8 @@ unlock:
  oom_free_new:
  	page_cache_release(new_page);
  oom:
@@ -77612,7 +76539,7 @@
  	if (old_page) {
  		if (page_mkwrite) {
  			unlock_page(old_page);
-@@ -2512,10 +2582,16 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2563,10 +2633,16 @@ static int do_swap_page(struct mm_struct
  	pte_t pte;
  	struct mem_cgroup *ptr = NULL;
  	int ret = 0;
@@ -77630,7 +76557,7 @@
  	entry = pte_to_swp_entry(orig_pte);
  	if (unlikely(non_swap_entry(entry))) {
  		if (is_migration_entry(entry)) {
-@@ -2590,6 +2666,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2641,6 +2717,7 @@ static int do_swap_page(struct mm_struct
  	 */
  
  	inc_mm_counter(mm, anon_rss);
@@ -77638,7 +76565,7 @@
  	pte = mk_pte(page, vma->vm_page_prot);
  	if ((flags & FAULT_FLAG_WRITE) && reuse_swap_page(page)) {
  		pte = maybe_mkwrite(pte_mkdirty(pte), vma);
-@@ -2598,11 +2675,14 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2649,11 +2726,14 @@ static int do_swap_page(struct mm_struct
  	flush_icache_page(vma, page);
  	set_pte_at(mm, address, page_table, pte);
  	page_add_anon_rmap(page, vma, address);
@@ -77654,7 +76581,7 @@
  		try_to_free_swap(page);
  	unlock_page(page);
  
-@@ -2618,6 +2698,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2669,6 +2749,11 @@ static int do_swap_page(struct mm_struct
  unlock:
  	pte_unmap_unlock(page_table, ptl);
  out:
@@ -77666,7 +76593,7 @@
  	return ret;
  out_nomap:
  	mem_cgroup_cancel_charge_swapin(ptr);
-@@ -2625,6 +2710,7 @@ out_nomap:
+@@ -2676,6 +2761,7 @@ out_nomap:
  out_page:
  	unlock_page(page);
  out_release:
@@ -77674,7 +76601,7 @@
  	page_cache_release(page);
  	return ret;
  }
-@@ -2675,6 +2761,7 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2726,6 +2812,7 @@ static int do_anonymous_page(struct mm_s
  	struct page *page;
  	spinlock_t *ptl;
  	pte_t entry;
@@ -77682,7 +76609,7 @@
  
  	pte_unmap(page_table);
  
-@@ -2693,6 +2780,9 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2744,6 +2831,9 @@ static int do_anonymous_page(struct mm_s
  	}
  
  	/* Allocate our own private page. */
@@ -77692,7 +76619,7 @@
  	if (unlikely(anon_vma_prepare(vma)))
  		goto oom;
  	page = alloc_zeroed_user_highpage_movable(vma, address);
-@@ -2713,12 +2803,15 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2764,12 +2854,15 @@ static int do_anonymous_page(struct mm_s
  
  	inc_mm_counter(mm, anon_rss);
  	page_add_new_anon_rmap(page, vma, address);
@@ -77708,7 +76635,7 @@
  	pte_unmap_unlock(page_table, ptl);
  	return 0;
  release:
-@@ -2728,6 +2821,8 @@ release:
+@@ -2779,6 +2872,8 @@ release:
  oom_free_page:
  	page_cache_release(page);
  oom:
@@ -77717,7 +76644,7 @@
  	return VM_FAULT_OOM;
  }
  
-@@ -2755,6 +2850,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2806,6 +2901,7 @@ static int __do_fault(struct mm_struct *
  	int anon = 0;
  	int charged = 0;
  	struct page *dirty_page = NULL;
@@ -77725,7 +76652,7 @@
  	struct vm_fault vmf;
  	int ret;
  	int page_mkwrite = 0;
-@@ -2764,9 +2860,13 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2815,9 +2911,13 @@ static int __do_fault(struct mm_struct *
  	vmf.flags = flags;
  	vmf.page = NULL;
  
@@ -77740,7 +76667,7 @@
  
  	if (unlikely(PageHWPoison(vmf.page))) {
  		if (ret & VM_FAULT_LOCKED)
-@@ -2860,6 +2960,8 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2911,6 +3011,8 @@ static int __do_fault(struct mm_struct *
  	 */
  	/* Only go through if we didn't race with anybody else... */
  	if (likely(pte_same(*page_table, orig_pte))) {
@@ -77749,7 +76676,7 @@
  		flush_icache_page(vma, page);
  		entry = mk_pte(page, vma->vm_page_prot);
  		if (flags & FAULT_FLAG_WRITE)
-@@ -2876,6 +2978,25 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2927,6 +3029,25 @@ static int __do_fault(struct mm_struct *
  			}
  		}
  		set_pte_at(mm, address, page_table, entry);
@@ -77775,7 +76702,7 @@
  
  		/* no need to invalidate: a not-present page won't be cached */
  		update_mmu_cache(vma, address, entry);
-@@ -2915,6 +3036,9 @@ out:
+@@ -2966,6 +3087,9 @@ out:
  			page_cache_release(vmf.page);
  	}
  
@@ -77785,7 +76712,7 @@
  	return ret;
  
  unwritable_page:
-@@ -3042,6 +3166,27 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3093,6 +3217,27 @@ int handle_mm_fault(struct mm_struct *mm
  	pmd_t *pmd;
  	pte_t *pte;
  
@@ -77813,7 +76740,7 @@
  	__set_current_state(TASK_RUNNING);
  
  	count_vm_event(PGFAULT);
-@@ -3086,6 +3231,8 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
+@@ -3137,6 +3282,8 @@ int __pud_alloc(struct mm_struct *mm, pg
  }
  #endif /* __PAGETABLE_PUD_FOLDED */
  
@@ -77822,7 +76749,7 @@
  #ifndef __PAGETABLE_PMD_FOLDED
  /*
   * Allocate page middle directory.
-@@ -3116,6 +3263,8 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
+@@ -3167,6 +3314,8 @@ int __pmd_alloc(struct mm_struct *mm, pu
  }
  #endif /* __PAGETABLE_PMD_FOLDED */
  
@@ -77831,7 +76758,7 @@
  int make_pages_present(unsigned long addr, unsigned long end)
  {
  	int ret, len, write;
-@@ -3135,6 +3284,8 @@ int make_pages_present(unsigned long addr, unsigned long end)
+@@ -3186,6 +3335,8 @@ int make_pages_present(unsigned long add
  	return ret == len ? 0 : -EFAULT;
  }
  
@@ -77840,11 +76767,9 @@
  #if !defined(__HAVE_ARCH_GATE_AREA)
  
  #if defined(AT_SYSINFO_EHDR)
-diff --git a/mm/mempool.c b/mm/mempool.c
-index 1a3bc3d..cafc267 100644
 --- a/mm/mempool.c
 +++ b/mm/mempool.c
-@@ -77,6 +77,8 @@ mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn,
+@@ -77,6 +77,8 @@ mempool_t *mempool_create_node(int min_n
  	init_waitqueue_head(&pool->wait);
  	pool->alloc = alloc_fn;
  	pool->free = free_fn;
@@ -77853,7 +76778,7 @@
  
  	/*
  	 * First pre-allocate the guaranteed number of buffers.
-@@ -118,6 +120,7 @@ int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask)
+@@ -118,6 +120,7 @@ int mempool_resize(mempool_t *pool, int
  	unsigned long flags;
  
  	BUG_ON(new_min_nr <= 0);
@@ -77861,7 +76786,7 @@
  
  	spin_lock_irqsave(&pool->lock, flags);
  	if (new_min_nr <= pool->min_nr) {
-@@ -211,6 +214,7 @@ void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask)
+@@ -211,6 +214,7 @@ void * mempool_alloc(mempool_t *pool, gf
  	gfp_mask |= __GFP_NOMEMALLOC;	/* don't allocate emergency reserves */
  	gfp_mask |= __GFP_NORETRY;	/* don't loop in __alloc_pages */
  	gfp_mask |= __GFP_NOWARN;	/* failures are OK */
@@ -77869,8 +76794,6 @@
  
  	gfp_temp = gfp_mask & ~(__GFP_WAIT|__GFP_IO);
  
-diff --git a/mm/mlock.c b/mm/mlock.c
-index 2d846cf..9cefc84 100644
 --- a/mm/mlock.c
 +++ b/mm/mlock.c
 @@ -18,6 +18,7 @@
@@ -77881,7 +76804,7 @@
  
  #include "internal.h"
  
-@@ -322,12 +323,14 @@ no_mlock:
+@@ -324,12 +325,14 @@ no_mlock:
   * and re-mlocked by try_to_{munlock|unmap} before we unmap and
   * free them.  This will result in freeing mlocked pages.
   */
@@ -77898,7 +76821,7 @@
  	vma->vm_flags &= ~VM_LOCKED;
  
  	for (addr = start; addr < end; addr += PAGE_SIZE) {
-@@ -387,6 +390,12 @@ static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev,
+@@ -389,6 +392,12 @@ static int mlock_fixup(struct vm_area_st
  		goto out;	/* don't set VM_LOCKED,  don't count */
  	}
  
@@ -77911,7 +76834,7 @@
  	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
  	*prev = vma_merge(mm, *prev, start, end, newflags, vma->anon_vma,
  			  vma->vm_file, pgoff, vma_policy(vma));
-@@ -398,13 +407,13 @@ static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev,
+@@ -400,13 +409,13 @@ static int mlock_fixup(struct vm_area_st
  	if (start != vma->vm_start) {
  		ret = split_vma(mm, vma, start, 1);
  		if (ret)
@@ -77927,7 +76850,7 @@
  	}
  
  success:
-@@ -434,6 +443,11 @@ success:
+@@ -436,6 +445,11 @@ success:
  out:
  	*prev = vma;
  	return ret;
@@ -77939,7 +76862,7 @@
  }
  
  static int do_mlock(unsigned long start, size_t len, int on)
-@@ -512,6 +526,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
+@@ -514,6 +528,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
  	up_write(&current->mm->mmap_sem);
  	return error;
  }
@@ -77947,7 +76870,7 @@
  
  SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
  {
-@@ -524,6 +539,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
+@@ -526,6 +541,7 @@ SYSCALL_DEFINE2(munlock, unsigned long,
  	up_write(&current->mm->mmap_sem);
  	return ret;
  }
@@ -77955,8 +76878,6 @@
  
  static int do_mlockall(int flags)
  {
-diff --git a/mm/mmap.c b/mm/mmap.c
-index 292afec..6ac2b12 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -29,6 +29,7 @@
@@ -77981,7 +76902,7 @@
  static void unmap_region(struct mm_struct *mm,
  		struct vm_area_struct *vma, struct vm_area_struct *prev,
  		unsigned long start, unsigned long end);
-@@ -110,6 +114,18 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
+@@ -110,6 +114,18 @@ int __vm_enough_memory(struct mm_struct
  
  	vm_acct_memory(pages);
  
@@ -78000,7 +76921,7 @@
  	/*
  	 * Sometimes we want to use more memory than we have
  	 */
-@@ -231,6 +247,9 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+@@ -231,6 +247,9 @@ static struct vm_area_struct *remove_vma
  	struct vm_area_struct *next = vma->vm_next;
  
  	might_sleep();
@@ -78019,7 +76940,7 @@
  		goto out;
  set_brk:
  	mm->brk = brk;
-@@ -1116,6 +1135,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+@@ -1116,6 +1135,7 @@ unsigned long mmap_region(struct file *f
  	struct rb_node **rb_link, *rb_parent;
  	unsigned long charged = 0;
  	struct inode *inode =  file ? file->f_path.dentry->d_inode : NULL;
@@ -78079,7 +77000,7 @@
  	if (charged)
  		vm_unacct_memory(charged);
  	return error;
-@@ -1580,12 +1622,16 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -1580,12 +1622,16 @@ static int acct_stack_growth(struct vm_a
  	if (is_hugepage_only_range(vma->vm_mm, new_start, size))
  		return -EFAULT;
  
@@ -78097,7 +77018,7 @@
  
  	/* Ok, everything looks good - let it rip */
  	mm->total_vm += grow;
-@@ -1593,6 +1639,11 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -1593,6 +1639,11 @@ static int acct_stack_growth(struct vm_a
  		mm->locked_vm += grow;
  	vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow);
  	return 0;
@@ -78109,7 +77030,7 @@
  }
  
  #if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
-@@ -1879,6 +1930,7 @@ int split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -1885,6 +1936,7 @@ int split_vma(struct mm_struct * mm, str
  
  	return 0;
  }
@@ -78117,7 +77038,7 @@
  
  /* Munmap is split into 2 main parts -- this part which finds
   * what needs doing, and the areas themselves, which do the
-@@ -1986,7 +2038,7 @@ static inline void verify_mm_writelocked(struct mm_struct *mm)
+@@ -1992,7 +2044,7 @@ static inline void verify_mm_writelocked
   *  anonymous maps.  eventually we may be able to do some
   *  brk-specific accounting here.
   */
@@ -78126,7 +77047,7 @@
  {
  	struct mm_struct * mm = current->mm;
  	struct vm_area_struct * vma, * prev;
-@@ -2046,8 +2098,11 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2052,8 +2104,11 @@ unsigned long do_brk(unsigned long addr,
  	if (mm->map_count > sysctl_max_map_count)
  		return -ENOMEM;
  
@@ -78139,7 +77060,7 @@
  
  	/* Can we just expand an old private anonymous mapping? */
  	vma = vma_merge(mm, prev, addr, addr + len, flags,
-@@ -2058,11 +2113,10 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2064,11 +2119,10 @@ unsigned long do_brk(unsigned long addr,
  	/*
  	 * create a vma struct for an anonymous mapping
  	 */
@@ -78155,7 +77076,7 @@
  
  	vma->vm_mm = mm;
  	vma->vm_start = addr;
-@@ -2078,8 +2132,19 @@ out:
+@@ -2084,8 +2138,19 @@ out:
  			mm->locked_vm += (len >> PAGE_SHIFT);
  	}
  	return addr;
@@ -78175,7 +77096,7 @@
  EXPORT_SYMBOL(do_brk);
  
  /* Release all mmaps. */
-@@ -2272,10 +2337,11 @@ static void special_mapping_close(struct vm_area_struct *vma)
+@@ -2278,10 +2343,11 @@ static void special_mapping_close(struct
  {
  }
  
@@ -78188,11 +77109,9 @@
  
  /*
   * Called with mm->mmap_sem held for writing.
-diff --git a/mm/mmzone.c b/mm/mmzone.c
-index e35bfb8..e0d5174 100644
 --- a/mm/mmzone.c
 +++ b/mm/mmzone.c
-@@ -14,6 +14,7 @@ struct pglist_data *first_online_pgdat(void)
+@@ -14,6 +14,7 @@ struct pglist_data *first_online_pgdat(v
  {
  	return NODE_DATA(first_online_node);
  }
@@ -78200,7 +77119,7 @@
  
  struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
  {
-@@ -23,6 +24,7 @@ struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
+@@ -23,6 +24,7 @@ struct pglist_data *next_online_pgdat(st
  		return NULL;
  	return NODE_DATA(nid);
  }
@@ -78208,8 +77127,6 @@
  
  /*
   * next_zone - helper magic for for_each_zone()
-diff --git a/mm/mprotect.c b/mm/mprotect.c
-index 1737c7e..bde59ac 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
 @@ -9,6 +9,7 @@
@@ -78229,7 +77146,7 @@
  #ifndef pgprot_modify
  static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
  {
-@@ -142,6 +145,8 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -142,6 +145,8 @@ mprotect_fixup(struct vm_area_struct *vm
  	unsigned long charged = 0;
  	pgoff_t pgoff;
  	int error;
@@ -78238,7 +77155,7 @@
  	int dirty_accountable = 0;
  
  	if (newflags == oldflags) {
-@@ -149,6 +154,12 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -149,6 +154,12 @@ mprotect_fixup(struct vm_area_struct *vm
  		return 0;
  	}
  
@@ -78251,7 +77168,7 @@
  	/*
  	 * If we make a private mapping writable we increase our commit;
  	 * but (without finer accounting) cannot reduce our commit if we
-@@ -160,7 +171,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -160,7 +171,7 @@ mprotect_fixup(struct vm_area_struct *vm
  						VM_SHARED|VM_NORESERVE))) {
  			charged = nrpages;
  			if (security_vm_enough_memory(charged))
@@ -78283,8 +77200,6 @@
  	return error;
  }
 +EXPORT_SYMBOL_GPL(sys_mprotect);
-diff --git a/mm/mremap.c b/mm/mremap.c
-index 8451908..8e19c85 100644
 --- a/mm/mremap.c
 +++ b/mm/mremap.c
 @@ -27,6 +27,8 @@
@@ -78296,7 +77211,7 @@
  static pmd_t *get_old_pmd(struct mm_struct *mm, unsigned long addr)
  {
  	pgd_t *pgd;
-@@ -177,12 +179,16 @@ static unsigned long move_vma(struct vm_area_struct *vma,
+@@ -175,12 +177,16 @@ static unsigned long move_vma(struct vm_
  	int split = 0;
  	int err;
  
@@ -78314,7 +77229,7 @@
  
  	/*
  	 * Advise KSM to break any KSM pages in the area to be moved:
-@@ -194,12 +200,12 @@ static unsigned long move_vma(struct vm_area_struct *vma,
+@@ -192,12 +198,12 @@ static unsigned long move_vma(struct vm_
  	err = ksm_madvise(vma, old_addr, old_addr + old_len,
  						MADV_UNMERGEABLE, &vm_flags);
  	if (err)
@@ -78329,7 +77244,7 @@
  
  	moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len);
  	if (moved_len < old_len) {
-@@ -258,7 +264,13 @@ static unsigned long move_vma(struct vm_area_struct *vma,
+@@ -256,7 +262,13 @@ static unsigned long move_vma(struct vm_
  						       new_addr + new_len);
  	}
  
@@ -78344,7 +77259,7 @@
  }
  
  static struct vm_area_struct *vma_to_resize(unsigned long addr,
-@@ -458,7 +470,13 @@ unsigned long do_mremap(unsigned long addr,
+@@ -463,7 +475,13 @@ unsigned long do_mremap(unsigned long ad
  	if (old_len == vma->vm_end - addr) {
  		/* can we just expand the current mapping? */
  		if (vma_expandable(vma, new_len - old_len)) {
@@ -78359,8 +77274,6 @@
  
  			vma_adjust(vma, vma->vm_start,
  				addr + new_len, vma->vm_pgoff, NULL);
-diff --git a/mm/oom_kill.c b/mm/oom_kill.c
-index 83cd9bb..c54799e 100644
 --- a/mm/oom_kill.c
 +++ b/mm/oom_kill.c
 @@ -19,6 +19,8 @@
@@ -78382,7 +77295,7 @@
  int sysctl_panic_on_oom;
  int sysctl_oom_kill_allocating_task;
  int sysctl_oom_dump_tasks;
-@@ -224,16 +229,16 @@ static inline enum oom_constraint constrained_alloc(struct zonelist *zonelist,
+@@ -224,16 +229,16 @@ static inline enum oom_constraint constr
   *
   * (not docbooked, we don't want this one cluttering up the manual)
   */
@@ -78402,7 +77315,7 @@
  		unsigned long points;
  
  		/*
-@@ -247,6 +252,8 @@ static struct task_struct *select_bad_process(unsigned long *ppoints,
+@@ -247,6 +252,8 @@ static struct task_struct *select_bad_pr
  			continue;
  		if (mem && !task_in_mem_cgroup(p, mem))
  			continue;
@@ -78411,7 +77324,7 @@
  
  		/*
  		 * This task already has access to memory reserves and is
-@@ -275,16 +282,16 @@ static struct task_struct *select_bad_process(unsigned long *ppoints,
+@@ -275,16 +282,16 @@ static struct task_struct *select_bad_pr
  				return ERR_PTR(-1UL);
  
  			chosen = p;
@@ -78431,7 +77344,7 @@
  		}
  	}
  
-@@ -310,7 +317,7 @@ static void dump_tasks(const struct mem_cgroup *mem)
+@@ -310,7 +317,7 @@ static void dump_tasks(const struct mem_
  
  	printk(KERN_INFO "[ pid ]   uid  tgid total_vm      rss cpu oom_adj "
  	       "name\n");
@@ -78440,7 +77353,7 @@
  		struct mm_struct *mm;
  
  		if (mem && !task_in_mem_cgroup(p, mem))
-@@ -334,7 +341,7 @@ static void dump_tasks(const struct mem_cgroup *mem)
+@@ -334,7 +341,7 @@ static void dump_tasks(const struct mem_
  		       get_mm_rss(mm), (int)task_cpu(p), p->signal->oom_adj,
  		       p->comm);
  		task_unlock(p);
@@ -78449,7 +77362,7 @@
  }
  
  /*
-@@ -369,10 +376,22 @@ static void __oom_kill_task(struct task_struct *p, int verbose)
+@@ -369,10 +376,22 @@ static void __oom_kill_task(struct task_
  	set_tsk_thread_flag(p, TIF_MEMDIE);
  
  	force_sig(SIGKILL, p);
@@ -78472,7 +77385,7 @@
  	/* WARNING: mm may not be dereferenced since we did not obtain its
  	 * value from get_task_mm(p).  This is OK since all we need to do is
  	 * compare mm to q->mm below.
-@@ -381,17 +400,18 @@ static int oom_kill_task(struct task_struct *p)
+@@ -381,17 +400,18 @@ static int oom_kill_task(struct task_str
  	 * change to NULL at any time since we do not hold task_lock(p).
  	 * However, this is of no concern to us.
  	 */
@@ -78495,7 +77408,7 @@
  {
  	struct task_struct *c;
  
-@@ -419,8 +439,8 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
+@@ -419,8 +439,8 @@ static int oom_kill_process(struct task_
  		return 0;
  	}
  
@@ -78515,7 +77428,7 @@
  				"Memory cgroup out of memory"))
  		goto retry;
  out:
-@@ -527,31 +547,39 @@ void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_mask)
+@@ -527,31 +547,39 @@ void clear_zonelist_oom(struct zonelist
  static void __out_of_memory(gfp_t gfp_mask, int order)
  {
  	struct task_struct *p;
@@ -78588,7 +77501,7 @@
  	/*
  	 * Give "p" a good chance of killing itself before we
  	 * retry to allocate memory.
-@@ -614,6 +659,23 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order)
+@@ -614,6 +659,23 @@ void out_of_memory(struct zonelist *zone
  	if (sysctl_panic_on_oom == 2)
  		panic("out of memory. Compulsory panic_on_oom is selected.\n");
  
@@ -78612,7 +77525,7 @@
  	/*
  	 * Check if there were limitations on the allocation (only relevant for
  	 * NUMA) that may require different handling.
-@@ -623,7 +685,7 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order)
+@@ -623,7 +685,7 @@ void out_of_memory(struct zonelist *zone
  
  	switch (constraint) {
  	case CONSTRAINT_MEMORY_POLICY:
@@ -78621,7 +77534,7 @@
  				"No available memory (MPOL_BIND)");
  		break;
  
-@@ -637,7 +699,9 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order)
+@@ -637,7 +699,9 @@ void out_of_memory(struct zonelist *zone
  	}
  
  	read_unlock(&tasklist_lock);
@@ -78631,8 +77544,6 @@
  	/*
  	 * Give "p" a good chance of killing itself before we
  	 * retry to allocate memory unless "p" is current
-diff --git a/mm/page-writeback.c b/mm/page-writeback.c
-index 2c5d792..45641b9 100644
 --- a/mm/page-writeback.c
 +++ b/mm/page-writeback.c
 @@ -35,6 +35,8 @@
@@ -78644,7 +77555,7 @@
  /*
   * After a CPU has dirtied this many pages, balance_dirty_pages_ratelimited
   * will look to see if it needs to force writeback or throttling.
-@@ -1069,6 +1071,7 @@ int write_one_page(struct page *page, int wait)
+@@ -1070,6 +1072,7 @@ int write_one_page(struct page *page, in
  	} else {
  		unlock_page(page);
  	}
@@ -78652,7 +77563,7 @@
  	return ret;
  }
  EXPORT_SYMBOL(write_one_page);
-@@ -1087,14 +1090,15 @@ int __set_page_dirty_no_writeback(struct page *page)
+@@ -1088,14 +1091,15 @@ int __set_page_dirty_no_writeback(struct
   * Helper function for set_page_dirty family.
   * NOTE: This relies on being atomic wrt interrupts.
   */
@@ -78670,7 +77581,7 @@
  }
  
  /*
-@@ -1114,6 +1118,9 @@ void account_page_dirtied(struct page *page, struct address_space *mapping)
+@@ -1115,6 +1119,9 @@ void account_page_dirtied(struct page *p
   */
  int __set_page_dirty_nobuffers(struct page *page)
  {
@@ -78680,7 +77591,7 @@
  	if (!TestSetPageDirty(page)) {
  		struct address_space *mapping = page_mapping(page);
  		struct address_space *mapping2;
-@@ -1121,16 +1128,19 @@ int __set_page_dirty_nobuffers(struct page *page)
+@@ -1122,16 +1129,19 @@ int __set_page_dirty_nobuffers(struct pa
  		if (!mapping)
  			return 1;
  
@@ -78701,7 +77612,7 @@
  		if (mapping->host) {
  			/* !PageAnon && !swapper_space */
  			__mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
-@@ -1268,6 +1278,7 @@ int clear_page_dirty_for_io(struct page *page)
+@@ -1269,6 +1279,7 @@ int clear_page_dirty_for_io(struct page
  			dec_zone_page_state(page, NR_FILE_DIRTY);
  			dec_bdi_stat(mapping->backing_dev_info,
  					BDI_RECLAIMABLE);
@@ -78709,8 +77620,6 @@
  			return 1;
  		}
  		return 0;
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 902e5fc..1c562d4 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -54,6 +54,9 @@
@@ -78723,7 +77632,7 @@
  /*
   * Array of node states.
   */
-@@ -105,6 +108,7 @@ int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1] = {
+@@ -105,6 +108,7 @@ int sysctl_lowmem_reserve_ratio[MAX_NR_Z
  	 32,
  };
  
@@ -78731,7 +77640,7 @@
  EXPORT_SYMBOL(totalram_pages);
  
  static char * const zone_names[MAX_NR_ZONES] = {
-@@ -510,6 +514,7 @@ static inline int free_pages_check(struct page *page)
+@@ -510,6 +514,7 @@ static inline int free_pages_check(struc
  		bad_page(page);
  		return 1;
  	}
@@ -78739,7 +77648,7 @@
  	if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
  		page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
  	return 0;
-@@ -602,6 +607,7 @@ static void __free_pages_ok(struct page *page, unsigned int order)
+@@ -602,6 +607,7 @@ static void __free_pages_ok(struct page
  	arch_free_page(page, order);
  	kernel_map_pages(page, 1 << order, 0);
  
@@ -78747,7 +77656,7 @@
  	local_irq_save(flags);
  	if (unlikely(wasMlocked))
  		free_page_mlock(page);
-@@ -1103,6 +1109,7 @@ static void free_hot_cold_page(struct page *page, int cold)
+@@ -1103,6 +1109,7 @@ static void free_hot_cold_page(struct pa
  	pcp = &zone_pcp(zone, get_cpu())->pcp;
  	migratetype = get_pageblock_migratetype(page);
  	set_page_private(page, migratetype);
@@ -78803,7 +77712,7 @@
  /*
   * This is the 'heart' of the zoned buddy allocator.
   */
-@@ -1943,6 +1975,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
+@@ -1943,6 +1975,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, u
  	struct zone *preferred_zone;
  	struct page *page;
  	int migratetype = allocflags_to_migratetype(gfp_mask);
@@ -78811,7 +77720,7 @@
  
  	gfp_mask &= gfp_allowed_mask;
  
-@@ -1966,6 +1999,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
+@@ -1966,6 +1999,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, u
  	if (!preferred_zone)
  		return NULL;
  
@@ -78819,7 +77728,7 @@
  	/* First allocation attempt */
  	page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
  			zonelist, high_zoneidx, ALLOC_WMARK_LOW|ALLOC_CPUSET,
-@@ -1975,6 +2009,12 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
+@@ -1975,6 +2009,12 @@ __alloc_pages_nodemask(gfp_t gfp_mask, u
  				zonelist, high_zoneidx, nodemask,
  				preferred_zone, migratetype);
  
@@ -78832,8 +77741,6 @@
  	trace_mm_page_alloc(page, order, gfp_mask, migratetype);
  	return page;
  }
-diff --git a/mm/rmap.c b/mm/rmap.c
-index dd43373..c9752f0 100644
 --- a/mm/rmap.c
 +++ b/mm/rmap.c
 @@ -56,6 +56,9 @@
@@ -78846,7 +77753,7 @@
  #include <asm/tlbflush.h>
  
  #include "internal.h"
-@@ -133,6 +136,7 @@ int anon_vma_prepare(struct vm_area_struct *vma)
+@@ -133,6 +136,7 @@ int anon_vma_prepare(struct vm_area_stru
  	}
  	return 0;
  }
@@ -78854,7 +77761,7 @@
  
  void __anon_vma_merge(struct vm_area_struct *vma, struct vm_area_struct *next)
  {
-@@ -158,6 +162,7 @@ void anon_vma_link(struct vm_area_struct *vma)
+@@ -158,6 +162,7 @@ void anon_vma_link(struct vm_area_struct
  		spin_unlock(&anon_vma->lock);
  	}
  }
@@ -78899,7 +77806,7 @@
  	if (PageAnon(page)) {
  		mem_cgroup_uncharge_page(page);
  		__dec_zone_page_state(page, NR_ANON_PAGES);
-@@ -851,6 +864,9 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
+@@ -851,6 +864,9 @@ static int try_to_unmap_one(struct page
  
  
  	page_remove_rmap(page);
@@ -78909,7 +77816,7 @@
  	page_cache_release(page);
  
  out_unmap:
-@@ -966,6 +982,9 @@ static int try_to_unmap_cluster(unsigned long cursor, unsigned int *mapcount,
+@@ -976,6 +992,9 @@ static int try_to_unmap_cluster(unsigned
  			set_page_dirty(page);
  
  		page_remove_rmap(page);
@@ -78919,8 +77826,6 @@
  		page_cache_release(page);
  		dec_mm_counter(mm, file_rss);
  		(*mapcount)--;
-diff --git a/mm/shmem.c b/mm/shmem.c
-index 356dd99..bc74e50 100644
 --- a/mm/shmem.c
 +++ b/mm/shmem.c
 @@ -31,7 +31,11 @@
@@ -78978,7 +77883,7 @@
  }
  #endif
  
-@@ -214,7 +237,7 @@ static inline void shmem_unacct_blocks(unsigned long flags, long pages)
+@@ -214,7 +237,7 @@ static inline void shmem_unacct_blocks(u
  
  static const struct super_operations shmem_ops;
  static const struct address_space_operations shmem_aops;
@@ -78987,7 +77892,7 @@
  static const struct inode_operations shmem_inode_operations;
  static const struct inode_operations shmem_dir_inode_operations;
  static const struct inode_operations shmem_special_inode_operations;
-@@ -277,7 +300,7 @@ static void shmem_free_inode(struct super_block *sb)
+@@ -277,7 +300,7 @@ static void shmem_free_inode(struct supe
   *
   * It has to be called with the spinlock held.
   */
@@ -78996,7 +77901,7 @@
  {
  	struct shmem_inode_info *info = SHMEM_I(inode);
  	long freed;
-@@ -287,6 +310,8 @@ static void shmem_recalc_inode(struct inode *inode)
+@@ -287,6 +310,8 @@ static void shmem_recalc_inode(struct in
  		info->alloced -= freed;
  		shmem_unacct_blocks(info->flags, freed);
  		shmem_free_blocks(inode, freed);
@@ -79005,7 +77910,7 @@
  	}
  }
  
-@@ -391,6 +416,11 @@ static void shmem_swp_set(struct shmem_inode_info *info, swp_entry_t *entry, uns
+@@ -391,6 +416,11 @@ static void shmem_swp_set(struct shmem_i
  		struct page *page = kmap_atomic_to_page(entry);
  		set_page_private(page, page_private(page) + incdec);
  	}
@@ -79017,7 +77922,7 @@
  }
  
  /**
-@@ -407,14 +437,24 @@ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long
+@@ -407,14 +437,24 @@ static swp_entry_t *shmem_swp_alloc(stru
  	struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
  	struct page *page = NULL;
  	swp_entry_t *entry;
@@ -79044,7 +77949,7 @@
  		/*
  		 * Test free_blocks against 1 not 0, since we have 1 data
  		 * page (and perhaps indirect index pages) yet to allocate:
-@@ -424,7 +464,8 @@ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long
+@@ -424,7 +464,8 @@ static swp_entry_t *shmem_swp_alloc(stru
  			spin_lock(&sbinfo->stat_lock);
  			if (sbinfo->free_blocks <= 1) {
  				spin_unlock(&sbinfo->stat_lock);
@@ -79054,7 +77959,7 @@
  			}
  			sbinfo->free_blocks--;
  			inode->i_blocks += BLOCKS_PER_PAGE;
-@@ -432,31 +473,43 @@ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long
+@@ -432,31 +473,43 @@ static swp_entry_t *shmem_swp_alloc(stru
  		}
  
  		spin_unlock(&info->lock);
@@ -79104,7 +78009,7 @@
  }
  
  /**
-@@ -564,6 +617,7 @@ static void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end)
+@@ -564,6 +617,7 @@ static void shmem_truncate_range(struct
  		return;
  
  	spin_lock(&info->lock);
@@ -79121,7 +78026,7 @@
  	spin_unlock(&info->lock);
  
  	/*
-@@ -833,6 +887,7 @@ static void shmem_delete_inode(struct inode *inode)
+@@ -833,6 +887,7 @@ static void shmem_delete_inode(struct in
  		}
  	}
  	BUG_ON(inode->i_blocks);
@@ -79129,7 +78034,7 @@
  	shmem_free_inode(inode->i_sb);
  	clear_inode(inode);
  }
-@@ -1020,6 +1075,12 @@ int shmem_unuse(swp_entry_t entry, struct page *page)
+@@ -1020,6 +1075,12 @@ int shmem_unuse(swp_entry_t entry, struc
  out:	return found;	/* 0 or 1 or -ENOMEM */
  }
  
@@ -79142,7 +78047,7 @@
  /*
   * Move the page from the page cache to the swap cache.
   */
-@@ -1051,7 +1112,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
+@@ -1051,7 +1112,7 @@ static int shmem_writepage(struct page *
  	 * discarded.
  	 */
  	if (wbc->for_reclaim)
@@ -79151,7 +78056,7 @@
  	else
  		swap.val = 0;
  
-@@ -1069,7 +1130,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
+@@ -1069,7 +1130,7 @@ static int shmem_writepage(struct page *
  		free_swap_and_cache(*entry);
  		shmem_swp_set(info, entry, 0);
  	}
@@ -79177,7 +78082,7 @@
  		if (sgp == SGP_DIRTY)
  			set_page_dirty(filepage);
  	}
-@@ -1512,20 +1574,27 @@ int shmem_lock(struct file *file, int lock, struct user_struct *user)
+@@ -1512,20 +1574,27 @@ int shmem_lock(struct file *file, int lo
  
  	spin_lock(&info->lock);
  	if (lock && !(info->flags & VM_LOCKED)) {
@@ -79206,7 +78111,7 @@
  	spin_unlock(&info->lock);
  	return retval;
  }
-@@ -1559,6 +1628,7 @@ static struct inode *shmem_get_inode(struct super_block *sb, int mode,
+@@ -1559,6 +1628,7 @@ static struct inode *shmem_get_inode(str
  		inode->i_generation = get_seconds();
  		info = SHMEM_I(inode);
  		memset(info, 0, (char *)inode - (char *)info);
@@ -79214,7 +78119,7 @@
  		spin_lock_init(&info->lock);
  		info->flags = flags & VM_NORESERVE;
  		INIT_LIST_HEAD(&info->swaplist);
-@@ -2182,7 +2252,7 @@ static int shmem_parse_options(char *options, struct shmem_sb_info *sbinfo,
+@@ -2182,7 +2252,7 @@ static int shmem_parse_options(char *opt
  			size = memparse(value,&rest);
  			if (*rest == '%') {
  				size <<= PAGE_SHIFT;
@@ -79223,7 +78128,7 @@
  				do_div(size, 100);
  				rest++;
  			}
-@@ -2424,7 +2494,7 @@ static const struct address_space_operations shmem_aops = {
+@@ -2430,7 +2500,7 @@ static const struct address_space_operat
  	.error_remove_page = generic_error_remove_page,
  };
  
@@ -79232,7 +78137,7 @@
  	.mmap		= shmem_mmap,
  #ifdef CONFIG_TMPFS
  	.llseek		= generic_file_llseek,
-@@ -2437,6 +2507,7 @@ static const struct file_operations shmem_file_operations = {
+@@ -2443,6 +2513,7 @@ static const struct file_operations shme
  	.splice_write	= generic_file_splice_write,
  #endif
  };
@@ -79240,7 +78145,7 @@
  
  static const struct inode_operations shmem_inode_operations = {
  	.truncate	= shmem_truncate,
-@@ -2506,6 +2577,10 @@ static const struct vm_operations_struct shmem_vm_ops = {
+@@ -2512,6 +2583,10 @@ static const struct vm_operations_struct
  #endif
  };
  
@@ -79251,7 +78156,7 @@
  
  static int shmem_get_sb(struct file_system_type *fs_type,
  	int flags, const char *dev_name, void *data, struct vfsmount *mnt)
-@@ -2513,12 +2588,13 @@ static int shmem_get_sb(struct file_system_type *fs_type,
+@@ -2519,12 +2594,13 @@ static int shmem_get_sb(struct file_syst
  	return get_sb_nodev(fs_type, flags, data, shmem_fill_super, mnt);
  }
  
@@ -79266,7 +78171,7 @@
  
  int __init init_tmpfs(void)
  {
-@@ -2608,6 +2684,36 @@ int shmem_lock(struct file *file, int lock, struct user_struct *user)
+@@ -2614,6 +2690,36 @@ int shmem_lock(struct file *file, int lo
  
  /* common code */
  
@@ -79303,7 +78208,7 @@
  /**
   * shmem_file_setup - get an unlinked file living in tmpfs
   * @name: name for dentry (to be seen in /proc/<pid>/maps
-@@ -2653,6 +2759,9 @@ struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags
+@@ -2659,6 +2765,9 @@ struct file *shmem_file_setup(const char
  	d_instantiate(dentry, inode);
  	inode->i_size = size;
  	inode->i_nlink = 0;	/* It is unlinked */
@@ -79313,7 +78218,7 @@
  	init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ,
  		  &shmem_file_operations);
  
-@@ -2689,6 +2798,8 @@ int shmem_zero_setup(struct vm_area_struct *vma)
+@@ -2695,6 +2804,8 @@ int shmem_zero_setup(struct vm_area_stru
  
  	if (vma->vm_file)
  		fput(vma->vm_file);
@@ -79321,9 +78226,7 @@
 +		__ub_unused_privvm_dec(vma->vm_mm, size >> PAGE_SHIFT);
  	vma->vm_file = file;
  	vma->vm_ops = &shmem_vm_ops;
- 	return 0;
-diff --git a/mm/slab.c b/mm/slab.c
-index c8d466a..3336a30 100644
+ 	vma->vm_flags |= VM_CAN_NONLINEAR;
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -115,30 +115,14 @@
@@ -79383,7 +78286,7 @@
  			 SLAB_DEBUG_OBJECTS | SLAB_NOLEAKTRACE | SLAB_NOTRACK)
  #endif
  
-@@ -389,12 +375,14 @@ static void kmem_list3_init(struct kmem_list3 *parent)
+@@ -389,12 +375,14 @@ static void kmem_list3_init(struct kmem_
  #define REAPTIMEOUT_CPUC	(2*HZ)
  #define REAPTIMEOUT_LIST3	(4*HZ)
  
@@ -79401,7 +78304,7 @@
  #define	STATS_SET_HIGH(x)						\
  	do {								\
  		if ((x)->num_active > (x)->high_mark)			\
-@@ -414,11 +402,12 @@ static void kmem_list3_init(struct kmem_list3 *parent)
+@@ -414,11 +402,12 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEHIT(x)	atomic_inc(&(x)->freehit)
  #define STATS_INC_FREEMISS(x)	atomic_inc(&(x)->freemiss)
  #else
@@ -79416,7 +78319,7 @@
  #define	STATS_SET_HIGH(x)	do { } while (0)
  #define	STATS_INC_ERR(x)	do { } while (0)
  #define	STATS_INC_NODEALLOCS(x)	do { } while (0)
-@@ -431,7 +420,7 @@ static void kmem_list3_init(struct kmem_list3 *parent)
+@@ -431,7 +420,7 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEMISS(x)	do { } while (0)
  #endif
  
@@ -79462,7 +78365,7 @@
  
  /*
   * chicken and egg problem: delay the per-cpu array allocation
-@@ -697,7 +696,9 @@ static inline struct kmem_cache *__find_general_cachep(size_t size,
+@@ -697,7 +696,9 @@ static inline struct kmem_cache *__find_
  {
  	struct cache_sizes *csizep = malloc_sizes;
  
@@ -79473,7 +78376,7 @@
  	/* This happens if someone tries to call
  	 * kmem_cache_create(), or __kmalloc(), before
  	 * the generic caches are initialized.
-@@ -727,9 +728,102 @@ static struct kmem_cache *kmem_find_general_cachep(size_t size, gfp_t gfpflags)
+@@ -727,9 +728,102 @@ static struct kmem_cache *kmem_find_gene
  	return __find_general_cachep(size, gfpflags);
  }
  
@@ -79578,7 +78481,7 @@
  }
  
  /*
-@@ -774,20 +868,23 @@ static void cache_estimate(unsigned long gfporder, size_t buffer_size,
+@@ -774,20 +868,23 @@ static void cache_estimate(unsigned long
  		 * into account.
  		 */
  		nr_objs = (slab_size - sizeof(struct slab)) /
@@ -79606,7 +78509,7 @@
  	}
  	*num = nr_objs;
  	*left_over = slab_size - nr_objs*buffer_size - mgmt_size;
-@@ -1338,6 +1435,7 @@ static void init_list(struct kmem_cache *cachep, struct kmem_list3 *list,
+@@ -1338,6 +1435,7 @@ static void init_list(struct kmem_cache
  	MAKE_ALL_LISTS(cachep, ptr, nodeid);
  	cachep->nodelists[nodeid] = ptr;
  }
@@ -79673,7 +78576,7 @@
  	/* 4) Replace the bootstrap head arrays */
  	{
  		struct array_cache *ptr;
-@@ -1674,7 +1781,7 @@ static void kmem_rcu_free(struct rcu_head *head)
+@@ -1674,7 +1781,7 @@ static void kmem_rcu_free(struct rcu_hea
  		kmem_cache_free(cachep->slabp_cache, slab_rcu);
  }
  
@@ -79682,7 +78585,7 @@
  
  #ifdef CONFIG_DEBUG_PAGEALLOC
  static void store_stackinfo(struct kmem_cache *cachep, unsigned long *addr,
-@@ -1751,7 +1858,7 @@ static void dump_line(char *data, int offset, int limit)
+@@ -1751,7 +1858,7 @@ static void dump_line(char *data, int of
  }
  #endif
  
@@ -79691,7 +78594,7 @@
  
  static void print_objinfo(struct kmem_cache *cachep, void *objp, int lines)
  {
-@@ -1844,7 +1951,7 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
+@@ -1844,7 +1951,7 @@ static void check_poison_obj(struct kmem
  }
  #endif
  
@@ -79700,7 +78603,7 @@
  static void slab_destroy_debugcheck(struct kmem_cache *cachep, struct slab *slabp)
  {
  	int i;
-@@ -1944,7 +2051,6 @@ static void __kmem_cache_destroy(struct kmem_cache *cachep)
+@@ -1944,7 +2051,6 @@ static void __kmem_cache_destroy(struct
  static size_t calculate_slab_order(struct kmem_cache *cachep,
  			size_t size, size_t align, unsigned long flags)
  {
@@ -79708,7 +78611,7 @@
  	size_t left_over = 0;
  	int gfporder;
  
-@@ -1957,15 +2063,10 @@ static size_t calculate_slab_order(struct kmem_cache *cachep,
+@@ -1957,15 +2063,10 @@ static size_t calculate_slab_order(struc
  			continue;
  
  		if (flags & CFLGS_OFF_SLAB) {
@@ -79727,7 +78630,7 @@
  				break;
  		}
  
-@@ -2133,9 +2234,9 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2133,9 +2234,9 @@ kmem_cache_create (const char *name, siz
  		}
  	}
  
@@ -79739,7 +78642,7 @@
  	/*
  	 * Enable redzoning and last user accounting, except for caches with
  	 * large objects, if the increased size would increase the object size
-@@ -2225,7 +2326,7 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2225,7 +2326,7 @@ kmem_cache_create (const char *name, siz
  	if (!cachep)
  		goto oops;
  
@@ -79748,7 +78651,7 @@
  	cachep->obj_size = size;
  
  	/*
-@@ -2247,7 +2348,7 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2247,7 +2348,7 @@ kmem_cache_create (const char *name, siz
  		else
  			size += BYTES_PER_WORD;
  	}
@@ -79757,7 +78660,7 @@
  	if (size >= malloc_sizes[INDEX_L3 + 1].cs_size
  	    && cachep->obj_size > cache_line_size() && ALIGN(size, align) < PAGE_SIZE) {
  		cachep->obj_offset += PAGE_SIZE - ALIGN(size, align);
-@@ -2279,8 +2380,7 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2279,8 +2380,7 @@ kmem_cache_create (const char *name, siz
  		cachep = NULL;
  		goto oops;
  	}
@@ -79767,7 +78670,7 @@
  
  	/*
  	 * If the slab has been placed off-slab, and we have enough space then
-@@ -2293,8 +2393,7 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2293,8 +2393,7 @@ kmem_cache_create (const char *name, siz
  
  	if (flags & CFLGS_OFF_SLAB) {
  		/* really off slab. No need for manual alignment */
@@ -79777,7 +78680,7 @@
  
  #ifdef CONFIG_PAGE_POISONING
  		/* If we're going to use the generic kernel_map_pages()
-@@ -2340,7 +2439,10 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+@@ -2340,7 +2439,10 @@ kmem_cache_create (const char *name, siz
  	}
  
  	/* cache setup completed, link it into the list */
@@ -79797,7 +78700,7 @@
  static void check_irq_off(void)
  {
  	BUG_ON(!irqs_disabled());
-@@ -2449,10 +2551,11 @@ static int drain_freelist(struct kmem_cache *cache,
+@@ -2449,10 +2551,11 @@ static int drain_freelist(struct kmem_ca
  		}
  
  		slabp = list_entry(p, struct slab, list);
@@ -79810,7 +78713,7 @@
  		/*
  		 * Safe to drop the lock. The slab is no longer linked
  		 * to the cache.
-@@ -2535,10 +2638,14 @@ void kmem_cache_destroy(struct kmem_cache *cachep)
+@@ -2535,10 +2638,14 @@ void kmem_cache_destroy(struct kmem_cach
  	/*
  	 * the chain is never empty, cache_cache is never destroyed
  	 */
@@ -79825,7 +78728,7 @@
  		mutex_unlock(&cache_chain_mutex);
  		put_online_cpus();
  		return;
-@@ -2547,6 +2654,8 @@ void kmem_cache_destroy(struct kmem_cache *cachep)
+@@ -2547,6 +2654,8 @@ void kmem_cache_destroy(struct kmem_cach
  	if (unlikely(cachep->flags & SLAB_DESTROY_BY_RCU))
  		rcu_barrier();
  
@@ -79834,7 +78737,7 @@
  	__kmem_cache_destroy(cachep);
  	mutex_unlock(&cache_chain_mutex);
  	put_online_cpus();
-@@ -2573,7 +2682,7 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep, void *objp,
+@@ -2573,7 +2682,7 @@ static struct slab *alloc_slabmgmt(struc
  	if (OFF_SLAB(cachep)) {
  		/* Slab management obj is off-slab. */
  		slabp = kmem_cache_alloc_node(cachep->slabp_cache,
@@ -79843,7 +78746,7 @@
  		/*
  		 * If the first object in the slab is leaked (it's allocated
  		 * but no one has a reference to it), we want to make sure
-@@ -2593,14 +2702,10 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep, void *objp,
+@@ -2593,14 +2702,10 @@ static struct slab *alloc_slabmgmt(struc
  	slabp->s_mem = objp + colour_off;
  	slabp->nodeid = nodeid;
  	slabp->free = 0;
@@ -79859,7 +78762,7 @@
  static void cache_init_objs(struct kmem_cache *cachep,
  			    struct slab *slabp)
  {
-@@ -2608,7 +2713,7 @@ static void cache_init_objs(struct kmem_cache *cachep,
+@@ -2608,7 +2713,7 @@ static void cache_init_objs(struct kmem_
  
  	for (i = 0; i < cachep->num; i++) {
  		void *objp = index_to_obj(cachep, slabp, i);
@@ -79868,7 +78771,7 @@
  		/* need to poison the objs? */
  		if (cachep->flags & SLAB_POISON)
  			poison_obj(cachep, objp, POISON_FREE);
-@@ -2666,7 +2771,7 @@ static void *slab_get_obj(struct kmem_cache *cachep, struct slab *slabp,
+@@ -2666,7 +2771,7 @@ static void *slab_get_obj(struct kmem_ca
  
  	slabp->inuse++;
  	next = slab_bufctl(slabp)[slabp->free];
@@ -79877,7 +78780,7 @@
  	slab_bufctl(slabp)[slabp->free] = BUFCTL_FREE;
  	WARN_ON(slabp->nodeid != nodeid);
  #endif
-@@ -2680,7 +2785,7 @@ static void slab_put_obj(struct kmem_cache *cachep, struct slab *slabp,
+@@ -2680,7 +2785,7 @@ static void slab_put_obj(struct kmem_cac
  {
  	unsigned int objnr = obj_to_index(cachep, slabp, objp);
  
@@ -79886,7 +78789,7 @@
  	/* Verify that the slab belongs to the intended node */
  	WARN_ON(slabp->nodeid != nodeid);
  
-@@ -2768,7 +2873,7 @@ static int cache_grow(struct kmem_cache *cachep,
+@@ -2768,7 +2873,7 @@ static int cache_grow(struct kmem_cache
  	 * 'nodeid'.
  	 */
  	if (!objp)
@@ -79904,7 +78807,7 @@
  
  /*
   * Perform extra freeing checks:
-@@ -3014,12 +3119,12 @@ static inline void cache_alloc_debugcheck_before(struct kmem_cache *cachep,
+@@ -3014,12 +3119,12 @@ static inline void cache_alloc_debugchec
  						gfp_t flags)
  {
  	might_sleep_if(flags & __GFP_WAIT);
@@ -79919,7 +78822,7 @@
  static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep,
  				gfp_t flags, void *objp, void *caller)
  {
-@@ -3389,11 +3494,16 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
+@@ -3389,11 +3494,16 @@ __cache_alloc(struct kmem_cache *cachep,
  	cache_alloc_debugcheck_before(cachep, flags);
  	local_irq_save(save_flags);
  	objp = __do_cache_alloc(cachep, flags);
@@ -79937,7 +78840,7 @@
  
  	if (likely(objp))
  		kmemcheck_slab_alloc(cachep, flags, objp, obj_size(cachep));
-@@ -3430,6 +3540,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
+@@ -3430,6 +3540,7 @@ static void free_block(struct kmem_cache
  		/* fixup slab chains */
  		if (slabp->inuse == 0) {
  			if (l3->free_objects > l3->free_limit) {
@@ -79945,7 +78848,7 @@
  				l3->free_objects -= cachep->num;
  				/* No need to drop any previously held
  				 * lock here, even if we have a off-slab slab
-@@ -3458,7 +3569,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
+@@ -3458,7 +3569,7 @@ static void cache_flusharray(struct kmem
  	int node = numa_node_id();
  
  	batchcount = ac->batchcount;
@@ -79954,7 +78857,7 @@
  	BUG_ON(!batchcount || batchcount > ac->avail);
  #endif
  	check_irq_off();
-@@ -3479,7 +3590,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
+@@ -3479,7 +3590,7 @@ static void cache_flusharray(struct kmem
  
  	free_block(cachep, ac->entry, batchcount, node);
  free_done:
@@ -79963,7 +78866,7 @@
  	{
  		int i = 0;
  		struct list_head *p;
-@@ -3516,6 +3627,9 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp)
+@@ -3516,6 +3627,9 @@ static inline void __cache_free(struct k
  
  	kmemcheck_slab_free(cachep, objp, obj_size(cachep));
  
@@ -79973,7 +78876,7 @@
  	/*
  	 * Skip calling cache_free_alien() when the platform is not numa.
  	 * This will avoid cache misses that happen while accessing slabp (which
-@@ -3970,7 +4084,7 @@ static int enable_cpucache(struct kmem_cache *cachep, gfp_t gfp)
+@@ -3970,7 +4084,7 @@ static int enable_cpucache(struct kmem_c
  	if (cachep->buffer_size <= PAGE_SIZE && num_possible_cpus() > 1)
  		shared = 8;
  
@@ -79982,7 +78885,7 @@
  	/*
  	 * With debugging enabled, large batchcount lead to excessively long
  	 * periods with disabled local interrupts. Limit the batchcount
-@@ -4037,6 +4151,7 @@ static void cache_reap(struct work_struct *w)
+@@ -4037,6 +4151,7 @@ static void cache_reap(struct work_struc
  		/* Give up. Setup the next iteration. */
  		goto out;
  
@@ -79998,7 +78901,7 @@
  out:
  	/* Set up the next iteration */
  	schedule_delayed_work(work, round_jiffies_relative(REAPTIMEOUT_CPUC));
-@@ -4090,7 +4206,7 @@ static void print_slabinfo_header(struct seq_file *m)
+@@ -4090,7 +4206,7 @@ static void print_slabinfo_header(struct
  	 * Output format version, so at least we can change it
  	 * without _too_ many complaints.
  	 */
@@ -80007,7 +78910,7 @@
  	seq_puts(m, "slabinfo - version: 2.1 (statistics)\n");
  #else
  	seq_puts(m, "slabinfo - version: 2.1\n");
-@@ -4099,14 +4215,82 @@ static void print_slabinfo_header(struct seq_file *m)
+@@ -4099,14 +4215,82 @@ static void print_slabinfo_header(struct
  		 "<objperslab> <pagesperslab>");
  	seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
  	seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
@@ -80092,7 +78995,7 @@
  static void *s_start(struct seq_file *m, loff_t *pos)
  {
  	loff_t n = *pos;
-@@ -4185,19 +4369,20 @@ static int s_show(struct seq_file *m, void *p)
+@@ -4185,19 +4369,20 @@ static int s_show(struct seq_file *m, vo
  	if (error)
  		printk(KERN_ERR "slab: cache %s error: %s\n", name, error);
  
@@ -80115,7 +79018,7 @@
  		unsigned long errors = cachep->errors;
  		unsigned long max_freeable = cachep->max_freeable;
  		unsigned long node_allocs = cachep->node_allocs;
-@@ -4205,9 +4390,10 @@ static int s_show(struct seq_file *m, void *p)
+@@ -4205,9 +4390,10 @@ static int s_show(struct seq_file *m, vo
  		unsigned long overflows = cachep->node_overflow;
  
  		seq_printf(m, " : globalstat %7lu %6lu %5lu %4lu \
@@ -80128,8 +79031,6 @@
  	}
  	/* cpu stats */
  	{
-diff --git a/mm/slub.c b/mm/slub.c
-index 4996fc7..22ae4a8 100644
 --- a/mm/slub.c
 +++ b/mm/slub.c
 @@ -29,6 +29,8 @@
@@ -80163,7 +79064,7 @@
  #ifdef CONFIG_SLUB_DEBUG
  static int sysfs_slab_add(struct kmem_cache *);
  static int sysfs_slab_alias(struct kmem_cache *, const char *);
-@@ -321,6 +327,90 @@ static inline int oo_objects(struct kmem_cache_order_objects x)
+@@ -321,6 +327,90 @@ static inline int oo_objects(struct kmem
  	return x.x & OO_MASK;
  }
  
@@ -80254,7 +79155,7 @@
  #ifdef CONFIG_SLUB_DEBUG
  /*
   * Debug settings:
-@@ -1105,6 +1195,7 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
+@@ -1105,6 +1195,7 @@ static struct page *allocate_slab(struct
  	struct kmem_cache_order_objects oo = s->oo;
  	gfp_t alloc_gfp;
  
@@ -80262,7 +79163,7 @@
  	flags |= s->allocflags;
  
  	/*
-@@ -1149,9 +1240,12 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
+@@ -1149,9 +1240,12 @@ static struct page *allocate_slab(struct
  		NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE,
  		1 << oo_order(oo));
  
@@ -80275,7 +79176,7 @@
  static void setup_object(struct kmem_cache *s, struct page *page,
  				void *object)
  {
-@@ -1174,6 +1268,18 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
+@@ -1174,6 +1268,18 @@ static struct page *new_slab(struct kmem
  	if (!page)
  		goto out;
  
@@ -80294,7 +79195,7 @@
  	inc_slabs_node(s, page_to_nid(page), page->objects);
  	page->slab = s;
  	page->flags |= 1 << PG_slab;
-@@ -1225,6 +1331,13 @@ static void __free_slab(struct kmem_cache *s, struct page *page)
+@@ -1225,6 +1331,13 @@ static void __free_slab(struct kmem_cach
  
  	__ClearPageSlab(page);
  	reset_page_mapcount(page);
@@ -80308,7 +79209,7 @@
  	if (current->reclaim_state)
  		current->reclaim_state->reclaimed_slab += pages;
  	__free_pages(page, order);
-@@ -1249,6 +1362,8 @@ static void free_slab(struct kmem_cache *s, struct page *page)
+@@ -1249,6 +1362,8 @@ static void free_slab(struct kmem_cache
  		call_rcu(head, rcu_free_slab);
  	} else
  		__free_slab(s, page);
@@ -80317,7 +79218,7 @@
  }
  
  static void discard_slab(struct kmem_cache *s, struct page *page)
-@@ -1733,6 +1848,13 @@ static __always_inline void *slab_alloc(struct kmem_cache *s,
+@@ -1733,6 +1848,13 @@ static __always_inline void *slab_alloc(
  		c->freelist = object[c->offset];
  		stat(c, ALLOC_FASTPATH);
  	}
@@ -80331,7 +79232,7 @@
  	local_irq_restore(flags);
  
  	if (unlikely((gfpflags & __GFP_ZERO) && object))
-@@ -1875,6 +1997,9 @@ static __always_inline void slab_free(struct kmem_cache *s,
+@@ -1875,6 +1997,9 @@ static __always_inline void slab_free(st
  	c = get_cpu_slab(s, smp_processor_id());
  	kmemcheck_slab_free(s, object, c->objsize);
  	debug_check_no_locks_freed(object, c->objsize);
@@ -80341,7 +79242,7 @@
  	if (!(s->flags & SLAB_DEBUG_OBJECTS))
  		debug_check_no_obj_freed(object, c->objsize);
  	if (likely(page == c->page && c->node >= 0)) {
-@@ -2497,6 +2622,9 @@ static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags,
+@@ -2497,6 +2622,9 @@ static int kmem_cache_open(struct kmem_c
  #ifdef CONFIG_NUMA
  	s->remote_node_defrag_ratio = 1000;
  #endif
@@ -80351,7 +79252,7 @@
  	if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA))
  		goto error;
  
-@@ -2630,9 +2758,11 @@ static inline int kmem_cache_close(struct kmem_cache *s)
+@@ -2630,9 +2758,11 @@ static inline int kmem_cache_close(struc
  void kmem_cache_destroy(struct kmem_cache *s)
  {
  	down_write(&slub_lock);
@@ -80363,7 +79264,7 @@
  		up_write(&slub_lock);
  		if (kmem_cache_close(s)) {
  			printk(KERN_ERR "SLUB %s: %s called for cache that "
-@@ -2642,8 +2772,10 @@ void kmem_cache_destroy(struct kmem_cache *s)
+@@ -2642,8 +2772,10 @@ void kmem_cache_destroy(struct kmem_cach
  		if (s->flags & SLAB_DESTROY_BY_RCU)
  			rcu_barrier();
  		sysfs_slab_remove(s);
@@ -80386,7 +79287,7 @@
  
  static int __init setup_slub_min_order(char *str)
  {
-@@ -2695,6 +2831,11 @@ static struct kmem_cache *create_kmalloc_cache(struct kmem_cache *s,
+@@ -2695,6 +2831,11 @@ static struct kmem_cache *create_kmalloc
  {
  	unsigned int flags = 0;
  
@@ -80398,7 +79299,7 @@
  	if (gfp_flags & SLUB_DMA)
  		flags = SLAB_CACHE_DMA;
  
-@@ -2706,7 +2847,9 @@ static struct kmem_cache *create_kmalloc_cache(struct kmem_cache *s,
+@@ -2706,7 +2847,9 @@ static struct kmem_cache *create_kmalloc
  								flags, NULL))
  		goto panic;
  
@@ -80408,7 +79309,7 @@
  
  	if (sysfs_slab_add(s))
  		goto panic;
-@@ -2779,7 +2922,9 @@ static noinline struct kmem_cache *dma_kmalloc_cache(int index, gfp_t flags)
+@@ -2779,7 +2922,9 @@ static noinline struct kmem_cache *dma_k
  		goto unlock_out;
  	}
  
@@ -80418,7 +79319,7 @@
  	kmalloc_caches_dma[index] = s;
  
  	if (slab_state >= SYSFS)
-@@ -2843,11 +2988,14 @@ static struct kmem_cache *get_slab(size_t size, gfp_t flags)
+@@ -2843,11 +2988,14 @@ static struct kmem_cache *get_slab(size_
  		index = fls(size - 1);
  
  #ifdef CONFIG_ZONE_DMA
@@ -80493,7 +79394,7 @@
  
  #ifdef CONFIG_SMP
  	register_cpu_notifier(&slab_notifier);
-@@ -3383,11 +3553,15 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
+@@ -3383,11 +3553,15 @@ struct kmem_cache *kmem_cache_create(con
  	if (s) {
  		if (kmem_cache_open(s, GFP_KERNEL, name,
  				size, align, flags, ctor)) {
@@ -80509,7 +79410,7 @@
  				up_write(&slub_lock);
  				kfree(s);
  				goto err;
-@@ -4555,6 +4729,8 @@ static char *create_unique_id(struct kmem_cache *s)
+@@ -4555,6 +4729,8 @@ static char *create_unique_id(struct kme
  		*p++ = 'a';
  	if (s->flags & SLAB_DEBUG_FREE)
  		*p++ = 'F';
@@ -80518,7 +79419,7 @@
  	if (!(s->flags & SLAB_NOTRACK))
  		*p++ = 't';
  	if (p != name + 1)
-@@ -4707,6 +4883,76 @@ static void print_slabinfo_header(struct seq_file *m)
+@@ -4707,6 +4883,76 @@ static void print_slabinfo_header(struct
  	seq_putc(m, '\n');
  }
  
@@ -80595,8 +79496,6 @@
  static void *s_start(struct seq_file *m, loff_t *pos)
  {
  	loff_t n = *pos;
-diff --git a/mm/swap_state.c b/mm/swap_state.c
-index 6d1daeb..8e4805b 100644
 --- a/mm/swap_state.c
 +++ b/mm/swap_state.c
 @@ -21,6 +21,9 @@
@@ -80626,7 +79525,7 @@
  {
  	int error;
  
-@@ -119,6 +123,8 @@ int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp_mask)
+@@ -119,6 +123,8 @@ int add_to_swap_cache(struct page *page,
  	return error;
  }
  
@@ -80655,7 +79554,7 @@
  	if (!entry.val)
  		return 0;
  
-@@ -348,6 +361,8 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
+@@ -348,6 +361,8 @@ struct page *read_swap_cache_async(swp_e
  	return found_page;
  }
  
@@ -80664,8 +79563,6 @@
  /**
   * swapin_readahead - swap in pages in hope we need them soon
   * @entry: swap entry of this memory
-diff --git a/mm/swapfile.c b/mm/swapfile.c
-index 270e136..07fd436 100644
 --- a/mm/swapfile.c
 +++ b/mm/swapfile.c
 @@ -35,6 +35,8 @@
@@ -80677,7 +79574,7 @@
  static DEFINE_SPINLOCK(swap_lock);
  static unsigned int nr_swapfiles;
  long nr_swap_pages;
-@@ -47,9 +49,13 @@ static const char Unused_file[] = "Unused swap file entry ";
+@@ -47,9 +49,13 @@ static const char Unused_file[] = "Unuse
  static const char Bad_offset[] = "Bad swap offset entry ";
  static const char Unused_offset[] = "Unused swap offset entry ";
  
@@ -80728,7 +79625,7 @@
  /* The only caller of this function is now susupend routine */
  swp_entry_t get_swap_page_of_type(int type)
  {
-@@ -506,7 +517,7 @@ swp_entry_t get_swap_page_of_type(int type)
+@@ -506,7 +517,7 @@ swp_entry_t get_swap_page_of_type(int ty
  
  	spin_lock(&swap_lock);
  	si = swap_info + type;
@@ -80737,7 +79634,7 @@
  		nr_swap_pages--;
  		/* This is called for allocating swap entry, not cache */
  		offset = scan_swap_map(si, SWAP_MAP);
-@@ -579,6 +590,7 @@ static int swap_entry_free(struct swap_info_struct *p,
+@@ -579,6 +590,7 @@ static int swap_entry_free(struct swap_i
  	count = p->swap_map[offset];
  	/* free if no reference */
  	if (!count) {
@@ -80780,7 +79677,7 @@
  /*
   * Free the swap entry like above, but also try to
   * free the page cache entry if it is the last user.
-@@ -730,6 +763,7 @@ int free_swap_and_cache(swp_entry_t entry)
+@@ -730,6 +763,7 @@ int free_swap_and_cache(swp_entry_t entr
  	}
  	return p != NULL;
  }
@@ -80788,7 +79685,7 @@
  
  #ifdef CONFIG_HIBERNATION
  /*
-@@ -813,12 +847,14 @@ unsigned int count_swap_pages(int type, int free)
+@@ -813,12 +847,14 @@ unsigned int count_swap_pages(int type,
   * force COW, vm_page_prot omits write permission from any private vma.
   */
  static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd,
@@ -80804,7 +79701,7 @@
  
  	if (mem_cgroup_try_charge_swapin(vma->vm_mm, page, GFP_KERNEL, &ptr)) {
  		ret = -ENOMEM;
-@@ -833,9 +869,11 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd,
+@@ -833,9 +869,11 @@ static int unuse_pte(struct vm_area_stru
  		goto out;
  	}
  
@@ -80828,7 +79725,7 @@
  {
  	pte_t swp_pte = swp_entry_to_pte(entry);
  	pte_t *pte;
-@@ -876,7 +915,7 @@ static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
+@@ -876,7 +915,7 @@ static int unuse_pte_range(struct vm_are
  		 */
  		if (unlikely(pte_same(*pte, swp_pte))) {
  			pte_unmap(pte);
@@ -80847,7 +79744,7 @@
  {
  	pmd_t *pmd;
  	unsigned long next;
-@@ -900,7 +940,7 @@ static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud,
+@@ -900,7 +940,7 @@ static inline int unuse_pmd_range(struct
  		next = pmd_addr_end(addr, end);
  		if (pmd_none_or_clear_bad(pmd))
  			continue;
@@ -80856,7 +79753,7 @@
  		if (ret)
  			return ret;
  	} while (pmd++, addr = next, addr != end);
-@@ -909,7 +949,8 @@ static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud,
+@@ -909,7 +949,8 @@ static inline int unuse_pmd_range(struct
  
  static inline int unuse_pud_range(struct vm_area_struct *vma, pgd_t *pgd,
  				unsigned long addr, unsigned long end,
@@ -80866,7 +79763,7 @@
  {
  	pud_t *pud;
  	unsigned long next;
-@@ -920,7 +961,7 @@ static inline int unuse_pud_range(struct vm_area_struct *vma, pgd_t *pgd,
+@@ -920,7 +961,7 @@ static inline int unuse_pud_range(struct
  		next = pud_addr_end(addr, end);
  		if (pud_none_or_clear_bad(pud))
  			continue;
@@ -80875,7 +79772,7 @@
  		if (ret)
  			return ret;
  	} while (pud++, addr = next, addr != end);
-@@ -928,7 +969,8 @@ static inline int unuse_pud_range(struct vm_area_struct *vma, pgd_t *pgd,
+@@ -928,7 +969,8 @@ static inline int unuse_pud_range(struct
  }
  
  static int unuse_vma(struct vm_area_struct *vma,
@@ -80885,7 +79782,7 @@
  {
  	pgd_t *pgd;
  	unsigned long addr, end, next;
-@@ -950,7 +992,7 @@ static int unuse_vma(struct vm_area_struct *vma,
+@@ -950,7 +992,7 @@ static int unuse_vma(struct vm_area_stru
  		next = pgd_addr_end(addr, end);
  		if (pgd_none_or_clear_bad(pgd))
  			continue;
@@ -80894,7 +79791,7 @@
  		if (ret)
  			return ret;
  	} while (pgd++, addr = next, addr != end);
-@@ -958,7 +1000,8 @@ static int unuse_vma(struct vm_area_struct *vma,
+@@ -958,7 +1000,8 @@ static int unuse_vma(struct vm_area_stru
  }
  
  static int unuse_mm(struct mm_struct *mm,
@@ -80904,7 +79801,7 @@
  {
  	struct vm_area_struct *vma;
  	int ret = 0;
-@@ -974,7 +1017,7 @@ static int unuse_mm(struct mm_struct *mm,
+@@ -974,7 +1017,7 @@ static int unuse_mm(struct mm_struct *mm
  		lock_page(page);
  	}
  	for (vma = mm->mmap; vma; vma = vma->vm_next) {
@@ -80913,7 +79810,7 @@
  			break;
  	}
  	up_read(&mm->mmap_sem);
-@@ -1036,6 +1079,7 @@ static int try_to_unuse(unsigned int type)
+@@ -1036,6 +1079,7 @@ static int try_to_unuse(unsigned int typ
  	int retval = 0;
  	int reset_overflow = 0;
  	int shmem;
@@ -80921,7 +79818,7 @@
  
  	/*
  	 * When searching mms for an entry, a good strategy is to
-@@ -1088,6 +1132,13 @@ static int try_to_unuse(unsigned int type)
+@@ -1088,6 +1132,13 @@ static int try_to_unuse(unsigned int typ
  			break;
  		}
  
@@ -80935,7 +79832,7 @@
  		/*
  		 * Don't hold on to start_mm if it looks like exiting.
  		 */
-@@ -1110,6 +1161,20 @@ static int try_to_unuse(unsigned int type)
+@@ -1110,6 +1161,20 @@ static int try_to_unuse(unsigned int typ
  		lock_page(page);
  		wait_on_page_writeback(page);
  
@@ -80956,7 +79853,7 @@
  		/*
  		 * Remove all references to entry.
  		 * Whenever we reach init_mm, there's no address space
-@@ -1121,7 +1186,7 @@ static int try_to_unuse(unsigned int type)
+@@ -1121,7 +1186,7 @@ static int try_to_unuse(unsigned int typ
  			if (start_mm == &init_mm)
  				shmem = shmem_unuse(entry, page);
  			else
@@ -80965,7 +79862,7 @@
  		}
  		if (swap_count(*swap_map)) {
  			int set_start_mm = (*swap_map >= swcount);
-@@ -1151,7 +1216,7 @@ static int try_to_unuse(unsigned int type)
+@@ -1151,7 +1216,7 @@ static int try_to_unuse(unsigned int typ
  					set_start_mm = 1;
  					shmem = shmem_unuse(entry, page);
  				} else
@@ -80974,7 +79871,7 @@
  
  				if (set_start_mm && *swap_map < swcount) {
  					mmput(new_start_mm);
-@@ -1173,6 +1238,8 @@ static int try_to_unuse(unsigned int type)
+@@ -1173,6 +1238,8 @@ static int try_to_unuse(unsigned int typ
  			retval = shmem;
  			break;
  		}
@@ -80983,7 +79880,7 @@
  		if (retval) {
  			unlock_page(page);
  			page_cache_release(page);
-@@ -1520,6 +1587,10 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
+@@ -1520,6 +1587,10 @@ SYSCALL_DEFINE1(swapoff, const char __us
  	int i, type, prev;
  	int err;
  
@@ -80994,7 +79891,7 @@
  	if (!capable(CAP_SYS_ADMIN))
  		return -EPERM;
  
-@@ -1629,6 +1700,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
+@@ -1629,6 +1700,7 @@ SYSCALL_DEFINE1(swapoff, const char __us
  	spin_unlock(&swap_lock);
  	mutex_unlock(&swapon_mutex);
  	vfree(swap_map);
@@ -81011,7 +79908,7 @@
  #ifdef CONFIG_PROC_FS
  /* iterator */
  static void *swap_start(struct seq_file *swap, loff_t *pos)
-@@ -1731,21 +1805,55 @@ static const struct seq_operations swaps_op = {
+@@ -1731,21 +1805,55 @@ static const struct seq_operations swaps
  	.show =		swap_show
  };
  
@@ -81069,7 +79966,7 @@
  	return 0;
  }
  __initcall(procswaps_init);
-@@ -1975,6 +2083,11 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
+@@ -1975,6 +2083,11 @@ SYSCALL_DEFINE2(swapon, const char __use
  		goto bad_swap;
  	}
  
@@ -81081,7 +79978,7 @@
  	if (p->bdev) {
  		if (blk_queue_nonrot(bdev_get_queue(p->bdev))) {
  			p->flags |= SWP_SOLIDSTATE;
-@@ -1993,6 +2106,8 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
+@@ -1993,6 +2106,8 @@ SYSCALL_DEFINE2(swapon, const char __use
  		p->prio = --least_priority;
  	p->swap_map = swap_map;
  	p->flags |= SWP_WRITEOK;
@@ -81108,11 +80005,9 @@
  /*
   * @entry: swap entry for which we allocate swap cache.
   *
-diff --git a/mm/truncate.c b/mm/truncate.c
-index 258bda7..a09fa8c 100644
 --- a/mm/truncate.c
 +++ b/mm/truncate.c
-@@ -78,6 +78,7 @@ void cancel_dirty_page(struct page *page, unsigned int account_size)
+@@ -78,6 +78,7 @@ void cancel_dirty_page(struct page *page
  					BDI_RECLAIMABLE);
  			if (account_size)
  				task_io_account_cancelled_write(account_size);
@@ -81120,8 +80015,6 @@
  		}
  	}
  }
-diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 680dcbb..4921a63 100644
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
 @@ -31,6 +31,9 @@
@@ -81134,7 +80027,7 @@
  
  /*** Page table manipulation functions ***/
  
-@@ -1358,7 +1361,7 @@ struct vm_struct *remove_vm_area(const void *addr)
+@@ -1396,7 +1399,7 @@ struct vm_struct *remove_vm_area(const v
  	return NULL;
  }
  
@@ -81143,7 +80036,7 @@
  {
  	struct vm_struct *area;
  
-@@ -1383,6 +1386,8 @@ static void __vunmap(const void *addr, int deallocate_pages)
+@@ -1421,6 +1424,8 @@ static void __vunmap(const void *addr, i
  	if (deallocate_pages) {
  		int i;
  
@@ -81152,7 +80045,7 @@
  		for (i = 0; i < area->nr_pages; i++) {
  			struct page *page = area->pages[i];
  
-@@ -1416,7 +1421,7 @@ void vfree(const void *addr)
+@@ -1454,7 +1459,7 @@ void vfree(const void *addr)
  
  	kmemleak_free(addr);
  
@@ -81161,7 +80054,7 @@
  }
  EXPORT_SYMBOL(vfree);
  
-@@ -1433,7 +1438,7 @@ void vunmap(const void *addr)
+@@ -1471,7 +1476,7 @@ void vunmap(const void *addr)
  {
  	BUG_ON(in_interrupt());
  	might_sleep();
@@ -81170,7 +80063,7 @@
  }
  EXPORT_SYMBOL(vunmap);
  
-@@ -1520,10 +1525,12 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
+@@ -1558,10 +1563,12 @@ static void *__vmalloc_area_node(struct
  
  	if (map_vm_area(area, prot, &pages))
  		goto fail;
@@ -81184,7 +80077,7 @@
  	return NULL;
  }
  
-@@ -1608,6 +1615,26 @@ void *vmalloc(unsigned long size)
+@@ -1653,6 +1660,26 @@ void *vmalloc(unsigned long size)
  }
  EXPORT_SYMBOL(vmalloc);
  
@@ -81211,7 +80104,7 @@
  /**
   * vmalloc_user - allocate zeroed virtually contiguous memory for userspace
   * @size: allocation size
-@@ -1649,6 +1676,13 @@ void *vmalloc_node(unsigned long size, int node)
+@@ -1694,6 +1721,13 @@ void *vmalloc_node(unsigned long size, i
  }
  EXPORT_SYMBOL(vmalloc_node);
  
@@ -81225,7 +80118,7 @@
  #ifndef PAGE_KERNEL_EXEC
  # define PAGE_KERNEL_EXEC PAGE_KERNEL
  #endif
-@@ -2344,6 +2378,40 @@ void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
+@@ -2389,6 +2423,40 @@ void pcpu_free_vm_areas(struct vm_struct
  	kfree(vms);
  }
  
@@ -81266,8 +80159,6 @@
  #ifdef CONFIG_PROC_FS
  static void *s_start(struct seq_file *m, loff_t *pos)
  {
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 4649929..a3371d2 100644
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
 @@ -41,10 +41,14 @@
@@ -81285,7 +80176,7 @@
  
  #include "internal.h"
  
-@@ -210,6 +214,9 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
+@@ -210,6 +214,9 @@ unsigned long shrink_slab(unsigned long
  	if (scanned == 0)
  		scanned = SWAP_CLUSTER_MAX;
  
@@ -81295,7 +80186,7 @@
  	if (!down_read_trylock(&shrinker_rwsem))
  		return 1;	/* Assume we'll be able to shrink next time */
  
-@@ -245,6 +252,9 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
+@@ -245,6 +252,9 @@ unsigned long shrink_slab(unsigned long
  			int shrink_ret;
  			int nr_before;
  
@@ -81305,7 +80196,7 @@
  			nr_before = (*shrinker->shrink)(0, gfp_mask);
  			shrink_ret = (*shrinker->shrink)(this_scan, gfp_mask);
  			if (shrink_ret == -1)
-@@ -259,6 +269,7 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
+@@ -259,6 +269,7 @@ unsigned long shrink_slab(unsigned long
  
  		shrinker->nr += total_scan;
  	}
@@ -81313,7 +80204,7 @@
  	up_read(&shrinker_rwsem);
  	return ret;
  }
-@@ -376,6 +387,7 @@ static pageout_t pageout(struct page *page, struct address_space *mapping,
+@@ -376,6 +387,7 @@ static pageout_t pageout(struct page *pa
  		 */
  		if (page_has_private(page)) {
  			if (try_to_free_buffers(page)) {
@@ -81321,7 +80212,7 @@
  				ClearPageDirty(page);
  				printk("%s: orphaned page\n", __func__);
  				return PAGE_CLEAN;
-@@ -1358,6 +1370,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
+@@ -1358,6 +1370,7 @@ static void shrink_active_list(unsigned
  	struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc);
  	unsigned long nr_rotated = 0;
  
@@ -81329,7 +80220,7 @@
  	lru_add_drain();
  	spin_lock_irq(&zone->lru_lock);
  	nr_taken = sc->isolate_pages(nr_pages, &l_hold, &pgscanned, sc->order,
-@@ -1431,6 +1444,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
+@@ -1431,6 +1444,7 @@ static void shrink_active_list(unsigned
  						LRU_BASE   + file * LRU_FILE);
  	__mod_zone_page_state(zone, NR_ISOLATED_ANON + file, -nr_taken);
  	spin_unlock_irq(&zone->lru_lock);
@@ -81337,7 +80228,7 @@
  }
  
  static int inactive_anon_is_low_global(struct zone *zone)
-@@ -1673,6 +1687,8 @@ static void shrink_zone(int priority, struct zone *zone,
+@@ -1673,6 +1687,8 @@ static void shrink_zone(int priority, st
  				nr_reclaimed += shrink_list(l, nr_to_scan,
  							    zone, sc, priority);
  			}
@@ -81346,7 +80237,7 @@
  		}
  		/*
  		 * On large memory systems, scan >> priority can become
-@@ -1751,6 +1767,9 @@ static void shrink_zones(int priority, struct zonelist *zonelist,
+@@ -1751,6 +1767,9 @@ static void shrink_zones(int priority, s
  		}
  
  		shrink_zone(priority, zone, sc);
@@ -81356,7 +80247,7 @@
  	}
  }
  
-@@ -1782,10 +1801,13 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
+@@ -1782,10 +1801,13 @@ static unsigned long do_try_to_free_page
  	struct zone *zone;
  	enum zone_type high_zoneidx = gfp_zone(sc->gfp_mask);
  
@@ -81370,7 +80261,7 @@
  	/*
  	 * mem_cgroup will not do shrink_slab.
  	 */
-@@ -1834,6 +1856,11 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
+@@ -1834,6 +1856,11 @@ static unsigned long do_try_to_free_page
  			sc->may_writepage = 1;
  		}
  
@@ -81390,8 +80281,6 @@
  	return ret;
  }
  
-diff --git a/mm/vmstat.c b/mm/vmstat.c
-index 42d76c6..d6e4281 100644
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
 @@ -15,6 +15,7 @@
@@ -81402,7 +80291,7 @@
  
  #ifdef CONFIG_VM_EVENT_COUNTERS
  DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}};
-@@ -35,6 +36,20 @@ static void sum_vm_events(unsigned long *ret, const struct cpumask *cpumask)
+@@ -35,6 +36,20 @@ static void sum_vm_events(unsigned long
  	}
  }
  
@@ -81423,7 +80312,7 @@
  /*
   * Accumulate the vm event counters across all CPUs.
   * The result is unavoidably approximate - it can change
-@@ -813,30 +828,40 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
+@@ -813,30 +828,40 @@ static void *vmstat_start(struct seq_fil
  	unsigned long *v;
  #ifdef CONFIG_VM_EVENT_COUNTERS
  	unsigned long *e;
@@ -81459,11 +80348,12 @@
 -	all_vm_events(e);
 -	e[PGPGIN] /= 2;		/* sectors -> kbytes */
 -	e[PGPGOUT] /= 2;
+-#endif
 +		e = v + NR_VM_ZONE_STAT_ITEMS;
 +		all_vm_events(e);
 +		e[PGPGIN] /= 2;		/* sectors -> kbytes */
 +		e[PGPGOUT] /= 2;
- #endif
++#endif
 +	} else
 +		memset(v, 0, VMSTAT_BUFSIZE);
 +
@@ -81486,8 +80376,6 @@
  	proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
  #endif
  	return 0;
-diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
-index a29c5ab..d56a1ea 100644
 --- a/net/8021q/vlan.c
 +++ b/net/8021q/vlan.c
 @@ -22,6 +22,7 @@
@@ -81498,7 +80386,7 @@
  #include <linux/init.h>
  #include <linux/rculist.h>
  #include <net/p8022.h>
-@@ -105,7 +106,7 @@ static struct vlan_group *vlan_group_alloc(struct net_device *real_dev)
+@@ -105,7 +106,7 @@ static struct vlan_group *vlan_group_all
  {
  	struct vlan_group *grp;
  
@@ -81507,7 +80395,7 @@
  	if (!grp)
  		return NULL;
  
-@@ -127,7 +128,7 @@ static int vlan_group_prealloc_vid(struct vlan_group *vg, u16 vlan_id)
+@@ -127,7 +128,7 @@ static int vlan_group_prealloc_vid(struc
  		return 0;
  
  	size = sizeof(struct net_device *) * VLAN_GROUP_ARRAY_PART_LEN;
@@ -81516,7 +80404,7 @@
  	if (array == NULL)
  		return -ENOBUFS;
  
-@@ -147,6 +148,7 @@ void unregister_vlan_dev(struct net_device *dev)
+@@ -147,6 +148,7 @@ void unregister_vlan_dev(struct net_devi
  	const struct net_device_ops *ops = real_dev->netdev_ops;
  	struct vlan_group *grp;
  	u16 vlan_id = vlan->vlan_id;
@@ -81524,7 +80412,7 @@
  
  	ASSERT_RTNL();
  
-@@ -164,7 +166,9 @@ void unregister_vlan_dev(struct net_device *dev)
+@@ -164,7 +166,9 @@ void unregister_vlan_dev(struct net_devi
  
  	synchronize_net();
  
@@ -81534,7 +80422,7 @@
  
  	/* If the group is now empty, kill off the group. */
  	if (grp->nr_vlans == 0) {
-@@ -551,6 +555,17 @@ static struct notifier_block vlan_notifier_block __read_mostly = {
+@@ -551,6 +555,17 @@ static struct notifier_block vlan_notifi
  	.notifier_call = vlan_device_event,
  };
  
@@ -81552,7 +80440,7 @@
  /*
   *	VLAN IOCTL handler.
   *	o execute requested action or pass command to the device driver
-@@ -592,7 +607,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -592,7 +607,7 @@ static int vlan_ioctl_handler(struct net
  	switch (args.cmd) {
  	case SET_VLAN_INGRESS_PRIORITY_CMD:
  		err = -EPERM;
@@ -81561,7 +80449,7 @@
  			break;
  		vlan_dev_set_ingress_priority(dev,
  					      args.u.skb_priority,
-@@ -602,7 +617,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -602,7 +617,7 @@ static int vlan_ioctl_handler(struct net
  
  	case SET_VLAN_EGRESS_PRIORITY_CMD:
  		err = -EPERM;
@@ -81570,7 +80458,7 @@
  			break;
  		err = vlan_dev_set_egress_priority(dev,
  						   args.u.skb_priority,
-@@ -611,7 +626,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -611,7 +626,7 @@ static int vlan_ioctl_handler(struct net
  
  	case SET_VLAN_FLAG_CMD:
  		err = -EPERM;
@@ -81579,7 +80467,7 @@
  			break;
  		err = vlan_dev_change_flags(dev,
  					    args.vlan_qos ? args.u.flag : 0,
-@@ -620,7 +635,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -620,7 +635,7 @@ static int vlan_ioctl_handler(struct net
  
  	case SET_VLAN_NAME_TYPE_CMD:
  		err = -EPERM;
@@ -81588,7 +80476,7 @@
  			break;
  		if ((args.u.name_type >= 0) &&
  		    (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) {
-@@ -636,14 +651,14 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -636,14 +651,14 @@ static int vlan_ioctl_handler(struct net
  
  	case ADD_VLAN_CMD:
  		err = -EPERM;
@@ -81605,8 +80493,6 @@
  			break;
  		unregister_vlan_dev(dev);
  		err = 0;
-diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
-index 4198ec5..c8f0ca2 100644
 --- a/net/8021q/vlan_dev.c
 +++ b/net/8021q/vlan_dev.c
 @@ -24,6 +24,7 @@
@@ -81617,7 +80503,7 @@
  #include <linux/ethtool.h>
  #include <net/arp.h>
  
-@@ -291,6 +292,7 @@ static int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev,
+@@ -293,6 +294,7 @@ static int vlan_dev_hard_header(struct s
  static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
  					    struct net_device *dev)
  {
@@ -81625,7 +80511,7 @@
  	int i = skb_get_queue_mapping(skb);
  	struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
  	struct vlan_ethhdr *veth = (struct vlan_ethhdr *)(skb->data);
-@@ -324,7 +326,10 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
+@@ -326,7 +328,10 @@ static netdev_tx_t vlan_dev_hard_start_x
  
  	skb->dev = vlan_dev_info(dev)->real_dev;
  	len = skb->len;
@@ -81636,7 +80522,7 @@
  
  	if (likely(ret == NET_XMIT_SUCCESS)) {
  		txq->tx_packets++;
-@@ -338,6 +343,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
+@@ -340,6 +345,7 @@ static netdev_tx_t vlan_dev_hard_start_x
  static netdev_tx_t vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
  						    struct net_device *dev)
  {
@@ -81644,7 +80530,7 @@
  	int i = skb_get_queue_mapping(skb);
  	struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
  	u16 vlan_tci;
-@@ -350,7 +356,10 @@ static netdev_tx_t vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
+@@ -352,7 +358,10 @@ static netdev_tx_t vlan_dev_hwaccel_hard
  
  	skb->dev = vlan_dev_info(dev)->real_dev;
  	len = skb->len;
@@ -81655,15 +80541,13 @@
  
  	if (likely(ret == NET_XMIT_SUCCESS)) {
  		txq->tx_packets++;
-@@ -829,4 +838,6 @@ void vlan_setup(struct net_device *dev)
+@@ -836,4 +845,6 @@ void vlan_setup(struct net_device *dev)
  	dev->ethtool_ops	= &vlan_ethtool_ops;
  
  	memset(dev->broadcast, 0, ETH_ALEN);
 +	if (!ve_is_super(get_exec_env()))
 +		dev->features |= NETIF_F_VIRTUAL;
  }
-diff --git a/net/bridge/br.c b/net/bridge/br.c
-index e1241c7..455a4e6 100644
 --- a/net/bridge/br.c
 +++ b/net/bridge/br.c
 @@ -62,8 +62,11 @@ static int __init br_init(void)
@@ -81686,11 +80570,9 @@
  	br_fdb_fini();
  }
  
-diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
-index 07a0777..ce33b80 100644
 --- a/net/bridge/br_device.c
 +++ b/net/bridge/br_device.c
-@@ -32,16 +32,47 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
+@@ -32,16 +32,47 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
  	skb_reset_mac_header(skb);
  	skb_pull(skb, ETH_HLEN);
  
@@ -81739,11 +80621,9 @@
  static int br_dev_open(struct net_device *dev)
  {
  	struct net_bridge *br = netdev_priv(dev);
-diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
-index bc1704a..2c9f7f1 100644
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -82,14 +82,24 @@ static void __br_forward(const struct net_bridge_port *to, struct sk_buff *skb)
+@@ -82,14 +82,24 @@ static void __br_forward(const struct ne
  }
  
  /* called with rcu_read_lock */
@@ -81770,7 +80650,7 @@
  }
  
  /* called with rcu_read_lock */
-@@ -105,6 +115,7 @@ void br_forward(const struct net_bridge_port *to, struct sk_buff *skb)
+@@ -105,6 +115,7 @@ void br_forward(const struct net_bridge_
  
  /* called under bridge lock */
  static void br_flood(struct net_bridge *br, struct sk_buff *skb,
@@ -81778,7 +80658,7 @@
  	void (*__packet_hook)(const struct net_bridge_port *p,
  			      struct sk_buff *skb))
  {
-@@ -136,18 +147,41 @@ static void br_flood(struct net_bridge *br, struct sk_buff *skb,
+@@ -136,18 +147,41 @@ static void br_flood(struct net_bridge *
  		return;
  	}
  
@@ -81823,8 +80703,6 @@
 +	skb->brmark = BR_ALREADY_SEEN;
 +	br_flood(br, skb, 1, __br_forward);
  }
-diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
-index 4a9f527..c8d499e 100644
 --- a/net/bridge/br_if.c
 +++ b/net/bridge/br_if.c
 @@ -12,6 +12,7 @@
@@ -81835,7 +80713,7 @@
  #include <linux/netdevice.h>
  #include <linux/ethtool.h>
  #include <linux/if_arp.h>
-@@ -158,6 +159,11 @@ static void del_br(struct net_bridge *br)
+@@ -158,6 +159,11 @@ static void del_br(struct net_bridge *br
  {
  	struct net_bridge_port *p, *n;
  
@@ -81847,7 +80725,7 @@
  	list_for_each_entry_safe(p, n, &br->port_list, list) {
  		del_nbp(p);
  	}
-@@ -423,6 +429,10 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
+@@ -425,6 +431,10 @@ int br_add_if(struct net_bridge *br, str
  	if ((dev->flags & IFF_UP) && netif_carrier_ok(dev) &&
  	    (br->dev->flags & IFF_UP))
  		br_stp_enable_port(p);
@@ -81858,7 +80736,7 @@
  	spin_unlock_bh(&br->lock);
  
  	br_ifinfo_notify(RTM_NEWLINK, p);
-@@ -458,6 +468,16 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
+@@ -460,6 +470,16 @@ int br_del_if(struct net_bridge *br, str
  	spin_lock_bh(&br->lock);
  	br_stp_recalculate_bridge_id(br);
  	br_features_recompute(br);
@@ -81875,11 +80753,9 @@
  	spin_unlock_bh(&br->lock);
  
  	return 0;
-diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
-index 5ee1a36..0fc65bf 100644
 --- a/net/bridge/br_input.c
 +++ b/net/bridge/br_input.c
-@@ -28,7 +28,13 @@ static void br_pass_frame_up(struct net_bridge *br, struct sk_buff *skb)
+@@ -28,7 +28,13 @@ static void br_pass_frame_up(struct net_
  	brdev->stats.rx_bytes += skb->len;
  
  	indev = skb->dev;
@@ -81894,7 +80770,7 @@
  
  	NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, indev, NULL,
  		netif_receive_skb);
-@@ -56,7 +62,7 @@ int br_handle_frame_finish(struct sk_buff *skb)
+@@ -56,7 +62,7 @@ int br_handle_frame_finish(struct sk_buf
  	/* The packet skb2 goes to the local host (NULL to skip). */
  	skb2 = NULL;
  
@@ -81903,7 +80779,7 @@
  		skb2 = skb;
  
  	dst = NULL;
-@@ -147,6 +153,8 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
+@@ -147,6 +153,8 @@ struct sk_buff *br_handle_frame(struct n
  
  forward:
  	switch (p->state) {
@@ -81926,8 +80802,6 @@
  			skb->pkt_type = PACKET_HOST;
  
  		NF_HOOK(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
-diff --git a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c
-index 6a6433d..5a12508 100644
 --- a/net/bridge/br_ioctl.c
 +++ b/net/bridge/br_ioctl.c
 @@ -15,6 +15,7 @@
@@ -81938,7 +80812,7 @@
  #include <linux/times.h>
  #include <net/net_namespace.h>
  #include <asm/uaccess.h>
-@@ -140,6 +141,7 @@ static int old_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+@@ -140,6 +141,7 @@ static int old_dev_ioctl(struct net_devi
  		b.root_port = br->root_port;
  
  		b.stp_enabled = (br->stp_enabled != BR_NO_STP);
@@ -81946,7 +80820,7 @@
  		b.ageing_time = jiffies_to_clock_t(br->ageing_time);
  		b.hello_timer_value = br_timer_value(&br->hello_timer);
  		b.tcn_timer_value = br_timer_value(&br->tcn_timer);
-@@ -262,6 +264,13 @@ static int old_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+@@ -262,6 +264,13 @@ static int old_dev_ioctl(struct net_devi
  		br_stp_set_enabled(br, args[1]);
  		return 0;
  
@@ -81960,7 +80834,7 @@
  	case BRCTL_SET_BRIDGE_PRIORITY:
  		if (!capable(CAP_NET_ADMIN))
  			return -EPERM;
-@@ -371,6 +380,9 @@ static int old_deviceless(struct net *net, void __user *uarg)
+@@ -371,6 +380,9 @@ static int old_deviceless(struct net *ne
  
  int br_ioctl_deviceless_stub(struct net *net, unsigned int cmd, void __user *uarg)
  {
@@ -81970,8 +80844,6 @@
  	switch (cmd) {
  	case SIOCGIFBR:
  	case SIOCSIFBR:
-diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
-index 2114e45..fd8d422 100644
 --- a/net/bridge/br_private.h
 +++ b/net/bridge/br_private.h
 @@ -17,6 +17,10 @@
@@ -81985,7 +80857,7 @@
  #define BR_HASH_BITS 8
  #define BR_HASH_SIZE (1 << BR_HASH_BITS)
  
-@@ -91,6 +95,8 @@ struct net_bridge
+@@ -95,6 +99,8 @@ struct net_bridge
  	spinlock_t			lock;
  	struct list_head		port_list;
  	struct net_device		*dev;
@@ -81994,7 +80866,7 @@
  	spinlock_t			hash_lock;
  	struct hlist_head		hash[BR_HASH_SIZE];
  	struct list_head		age_list;
-@@ -145,6 +151,7 @@ static inline int br_is_root_bridge(const struct net_bridge *br)
+@@ -149,6 +155,7 @@ static inline int br_is_root_bridge(cons
  extern void br_dev_setup(struct net_device *dev);
  extern netdev_tx_t br_dev_xmit(struct sk_buff *skb,
  			       struct net_device *dev);
@@ -82002,7 +80874,7 @@
  
  /* br_fdb.c */
  extern int br_fdb_init(void);
-@@ -169,12 +176,13 @@ extern void br_fdb_update(struct net_bridge *br,
+@@ -173,12 +180,13 @@ extern void br_fdb_update(struct net_bri
  
  /* br_forward.c */
  extern void br_deliver(const struct net_bridge_port *to,
@@ -82017,11 +80889,9 @@
  extern void br_flood_forward(struct net_bridge *br, struct sk_buff *skb);
  
  /* br_if.c */
-diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
-index ee4820a..d45a726 100644
 --- a/net/bridge/br_sysfs_br.c
 +++ b/net/bridge/br_sysfs_br.c
-@@ -182,6 +182,28 @@ static ssize_t store_stp_state(struct device *d,
+@@ -182,6 +182,28 @@ static ssize_t store_stp_state(struct de
  static DEVICE_ATTR(stp_state, S_IRUGO | S_IWUSR, show_stp_state,
  		   store_stp_state);
  
@@ -82050,7 +80920,7 @@
  static ssize_t show_priority(struct device *d, struct device_attribute *attr,
  			     char *buf)
  {
-@@ -351,6 +373,7 @@ static struct attribute *bridge_attrs[] = {
+@@ -351,6 +373,7 @@ static struct attribute *bridge_attrs[]
  	&dev_attr_max_age.attr,
  	&dev_attr_ageing_time.attr,
  	&dev_attr_stp_state.attr,
@@ -82058,8 +80928,6 @@
  	&dev_attr_priority.attr,
  	&dev_attr_bridge_id.attr,
  	&dev_attr_root_id.attr,
-diff --git a/net/core/datagram.c b/net/core/datagram.c
-index 4ade301..9732b07 100644
 --- a/net/core/datagram.c
 +++ b/net/core/datagram.c
 @@ -57,6 +57,8 @@
@@ -82071,7 +80939,7 @@
  /*
   *	Is a socket 'connection oriented' ?
   */
-@@ -723,6 +725,7 @@ unsigned int datagram_poll(struct file *file, struct socket *sock,
+@@ -723,6 +725,7 @@ unsigned int datagram_poll(struct file *
  {
  	struct sock *sk = sock->sk;
  	unsigned int mask;
@@ -82079,7 +80947,7 @@
  
  	sock_poll_wait(file, sk->sk_sleep, wait);
  	mask = 0;
-@@ -732,8 +735,14 @@ unsigned int datagram_poll(struct file *file, struct socket *sock,
+@@ -732,8 +735,14 @@ unsigned int datagram_poll(struct file *
  		mask |= POLLERR;
  	if (sk->sk_shutdown & RCV_SHUTDOWN)
  		mask |= POLLRDHUP;
@@ -82095,7 +80963,7 @@
  
  	/* readable? */
  	if (!skb_queue_empty(&sk->sk_receive_queue) ||
-@@ -750,7 +759,7 @@ unsigned int datagram_poll(struct file *file, struct socket *sock,
+@@ -750,7 +759,7 @@ unsigned int datagram_poll(struct file *
  	}
  
  	/* writable? */
@@ -82104,8 +80972,6 @@
  		mask |= POLLOUT | POLLWRNORM | POLLWRBAND;
  	else
  		set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags);
-diff --git a/net/core/dev.c b/net/core/dev.c
-index fd4c1e7..6e37837 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 @@ -130,6 +130,9 @@
@@ -82118,7 +80984,7 @@
  /* Instead of increasing this, you should create a hash table. */
  #define MAX_GRO_SKBS 8
  
-@@ -193,20 +196,6 @@ static struct list_head ptype_all __read_mostly;	/* Taps */
+@@ -193,20 +196,6 @@ static struct list_head ptype_all __read
  DEFINE_RWLOCK(dev_base_lock);
  EXPORT_SYMBOL(dev_base_lock);
  
@@ -82139,7 +81005,7 @@
  /* Device list insertion */
  static int list_netdevice(struct net_device *dev)
  {
-@@ -922,15 +911,10 @@ int dev_change_name(struct net_device *dev, const char *newname)
+@@ -922,15 +911,10 @@ int dev_change_name(struct net_device *d
  		strlcpy(dev->name, newname, IFNAMSIZ);
  
  rollback:
@@ -82159,7 +81025,7 @@
  	}
  
  	write_lock_bh(&dev_base_lock);
-@@ -1697,6 +1681,24 @@ static int dev_gso_segment(struct sk_buff *skb)
+@@ -1701,6 +1685,24 @@ static int dev_gso_segment(struct sk_buf
  	return 0;
  }
  
@@ -82184,7 +81050,7 @@
  int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
  			struct netdev_queue *txq)
  {
-@@ -1721,6 +1723,8 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
+@@ -1725,6 +1727,8 @@ int dev_hard_start_xmit(struct sk_buff *
  		if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
  			skb_dst_drop(skb);
  
@@ -82193,7 +81059,7 @@
  		rc = ops->ndo_start_xmit(skb, dev);
  		if (rc == NETDEV_TX_OK)
  			txq_trans_update(txq);
-@@ -1755,6 +1759,8 @@ gso:
+@@ -1759,6 +1763,8 @@ gso:
  		if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
  			skb_dst_drop(nskb);
  
@@ -82202,7 +81068,7 @@
  		rc = ops->ndo_start_xmit(nskb, dev);
  		if (unlikely(rc != NETDEV_TX_OK)) {
  			nskb->next = skb->next;
-@@ -2296,6 +2302,7 @@ int netif_receive_skb(struct sk_buff *skb)
+@@ -2300,6 +2306,7 @@ int netif_receive_skb(struct sk_buff *sk
  	struct net_device *null_or_orig;
  	int ret = NET_RX_DROP;
  	__be16 type;
@@ -82210,7 +81076,7 @@
  
  	if (!skb->tstamp.tv64)
  		net_timestamp(skb);
-@@ -2325,6 +2332,16 @@ int netif_receive_skb(struct sk_buff *skb)
+@@ -2329,6 +2336,16 @@ int netif_receive_skb(struct sk_buff *sk
  	skb_reset_transport_header(skb);
  	skb->mac_len = skb->network_header - skb->mac_header;
  
@@ -82227,7 +81093,7 @@
  	pt_prev = NULL;
  
  	rcu_read_lock();
-@@ -2383,6 +2400,7 @@ ncls:
+@@ -2387,6 +2404,7 @@ ncls:
  
  out:
  	rcu_read_unlock();
@@ -82235,7 +81101,7 @@
  	return ret;
  }
  EXPORT_SYMBOL(netif_receive_skb);
-@@ -3402,8 +3420,13 @@ static int __dev_set_promiscuity(struct net_device *dev, int inc)
+@@ -3413,8 +3431,13 @@ static int __dev_set_promiscuity(struct
  			return -EOVERFLOW;
  		}
  	}
@@ -82251,7 +81117,7 @@
  		       dev->name, (dev->flags & IFF_PROMISC) ? "entered" :
  							       "left");
  		if (audit_enabled) {
-@@ -4555,16 +4578,25 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -4567,16 +4590,25 @@ int dev_ioctl(struct net *net, unsigned
  	 *	- require strict serialization.
  	 *	- do not return a value
  	 */
@@ -82280,7 +81146,7 @@
  	case SIOCSMIIREG:
  	case SIOCBONDENSLAVE:
  	case SIOCBONDRELEASE:
-@@ -4627,12 +4659,11 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -4639,12 +4671,11 @@ int dev_ioctl(struct net *net, unsigned
   */
  static int dev_new_index(struct net *net)
  {
@@ -82297,7 +81163,7 @@
  	}
  }
  
-@@ -4787,6 +4818,10 @@ int register_netdevice(struct net_device *dev)
+@@ -4799,6 +4830,10 @@ int register_netdevice(struct net_device
  	BUG_ON(dev->reg_state != NETREG_UNINITIALIZED);
  	BUG_ON(!net);
  
@@ -82308,7 +81174,7 @@
  	spin_lock_init(&dev->addr_list_lock);
  	netdev_set_addr_lockdep_class(dev);
  	netdev_init_queue_locks(dev);
-@@ -4857,6 +4892,10 @@ int register_netdevice(struct net_device *dev)
+@@ -4869,6 +4904,10 @@ int register_netdevice(struct net_device
  
  	set_bit(__LINK_STATE_PRESENT, &dev->state);
  
@@ -82319,7 +81185,7 @@
  	dev_init_scheduler(dev);
  	dev_hold(dev);
  	list_netdevice(dev);
-@@ -5037,12 +5076,14 @@ static void netdev_wait_allrefs(struct net_device *dev)
+@@ -5050,12 +5089,14 @@ static void netdev_wait_allrefs(struct n
  void netdev_run_todo(void)
  {
  	struct list_head list;
@@ -82334,7 +81200,7 @@
  	while (!list_empty(&list)) {
  		struct net_device *dev
  			= list_entry(list.next, struct net_device, todo_list);
-@@ -5055,6 +5096,7 @@ void netdev_run_todo(void)
+@@ -5068,6 +5109,7 @@ void netdev_run_todo(void)
  			continue;
  		}
  
@@ -82342,7 +81208,7 @@
  		dev->reg_state = NETREG_UNREGISTERED;
  
  		on_each_cpu(flush_backlog, dev, 1);
-@@ -5067,12 +5109,21 @@ void netdev_run_todo(void)
+@@ -5080,12 +5122,21 @@ void netdev_run_todo(void)
  		WARN_ON(dev->ip6_ptr);
  		WARN_ON(dev->dn_ptr);
  
@@ -82364,7 +81230,7 @@
  }
  
  /**
-@@ -5155,13 +5206,13 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name,
+@@ -5168,13 +5219,13 @@ struct net_device *alloc_netdev_mq(int s
  	/* ensure 32-byte alignment of whole construct */
  	alloc_size += NETDEV_ALIGN - 1;
  
@@ -82380,7 +81246,7 @@
  	if (!tx) {
  		printk(KERN_ERR "alloc_netdev: Unable to allocate "
  		       "tx qdiscs.\n");
-@@ -5304,11 +5355,18 @@ EXPORT_SYMBOL(unregister_netdev);
+@@ -5317,11 +5368,18 @@ EXPORT_SYMBOL(unregister_netdev);
   *	Callers must hold the rtnl semaphore.
   */
  
@@ -82400,7 +81266,7 @@
  
  	ASSERT_RTNL();
  
-@@ -5317,15 +5375,6 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
+@@ -5330,15 +5388,6 @@ int dev_change_net_namespace(struct net_
  	if (dev->features & NETIF_F_NETNS_LOCAL)
  		goto out;
  
@@ -82416,7 +81282,7 @@
  	/* Ensure the device has been registrered */
  	err = -EINVAL;
  	if (dev->reg_state != NETREG_REGISTERED)
-@@ -5368,6 +5417,11 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
+@@ -5381,6 +5430,11 @@ int dev_change_net_namespace(struct net_
  	err = -ENODEV;
  	unlist_netdevice(dev);
  
@@ -82428,7 +81294,7 @@
  	synchronize_net();
  
  	/* Shutdown queueing discipline. */
-@@ -5376,7 +5430,9 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
+@@ -5389,7 +5443,9 @@ int dev_change_net_namespace(struct net_
  	/* Notify protocols, that we are about to destroy
  	   this device. They should clean all the things.
  	*/
@@ -82438,7 +81304,7 @@
  
  	/*
  	 *	Flush the unicast and multicast chains
-@@ -5384,7 +5440,9 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
+@@ -5397,7 +5453,9 @@ int dev_change_net_namespace(struct net_
  	dev_unicast_flush(dev);
  	dev_addr_discard(dev);
  
@@ -82448,7 +81314,7 @@
  
  	/* Actually switch the network namespace */
  	dev_net_set(dev, net);
-@@ -5402,14 +5460,18 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
+@@ -5415,14 +5473,18 @@ int dev_change_net_namespace(struct net_
  	}
  
  	/* Fixup kobjects */
@@ -82467,7 +81333,7 @@
  
  	/*
  	 *	Prevent userspace races by waiting until the network
-@@ -5424,6 +5486,14 @@ out:
+@@ -5437,6 +5499,14 @@ out:
  }
  EXPORT_SYMBOL_GPL(dev_change_net_namespace);
  
@@ -82482,7 +81348,7 @@
  static int dev_cpu_callback(struct notifier_block *nfb,
  			    unsigned long action,
  			    void *ocpu)
-@@ -5515,7 +5585,7 @@ static struct hlist_head *netdev_create_hash(void)
+@@ -5528,7 +5598,7 @@ static struct hlist_head *netdev_create_
  	int i;
  	struct hlist_head *hash;
  
@@ -82491,7 +81357,7 @@
  	if (hash != NULL)
  		for (i = 0; i < NETDEV_HASHENTRIES; i++)
  			INIT_HLIST_HEAD(&hash[i]);
-@@ -5709,3 +5779,32 @@ static int __init initialize_hashrnd(void)
+@@ -5722,3 +5792,32 @@ static int __init initialize_hashrnd(voi
  
  late_initcall_sync(initialize_hashrnd);
  
@@ -82524,11 +81390,9 @@
 +	return NULL;
 +}
 +EXPORT_SYMBOL(netdev_find_rst);
-diff --git a/net/core/dst.c b/net/core/dst.c
-index cb1b348..696ecd8 100644
 --- a/net/core/dst.c
 +++ b/net/core/dst.c
-@@ -313,6 +313,7 @@ static int dst_dev_event(struct notifier_block *this, unsigned long event, void
+@@ -313,6 +313,7 @@ static int dst_dev_event(struct notifier
  	switch (event) {
  	case NETDEV_UNREGISTER:
  	case NETDEV_DOWN:
@@ -82536,11 +81400,9 @@
  		mutex_lock(&dst_gc_mutex);
  		for (dst = dst_busy_list; dst; dst = dst->next) {
  			last = dst;
-diff --git a/net/core/ethtool.c b/net/core/ethtool.c
-index abbe8fa..4519d60 100644
 --- a/net/core/ethtool.c
 +++ b/net/core/ethtool.c
-@@ -975,7 +975,7 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
+@@ -1010,7 +1010,7 @@ int dev_ethtool(struct net *net, struct
  	case ETHTOOL_GRXCLSRLALL:
  		break;
  	default:
@@ -82549,11 +81411,9 @@
  			return -EPERM;
  	}
  
-diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
-index bd30938..093b0c4 100644
 --- a/net/core/fib_rules.c
 +++ b/net/core/fib_rules.c
-@@ -20,7 +20,7 @@ int fib_default_rule_add(struct fib_rules_ops *ops,
+@@ -20,7 +20,7 @@ int fib_default_rule_add(struct fib_rule
  {
  	struct fib_rule *r;
  
@@ -82562,7 +81422,7 @@
  	if (r == NULL)
  		return -ENOMEM;
  
-@@ -238,7 +238,7 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
+@@ -238,7 +238,7 @@ static int fib_nl_newrule(struct sk_buff
  	if (err < 0)
  		goto errout;
  
@@ -82571,11 +81431,9 @@
  	if (rule == NULL) {
  		err = -ENOMEM;
  		goto errout;
-diff --git a/net/core/filter.c b/net/core/filter.c
-index d1d779c..d5a7f15 100644
 --- a/net/core/filter.c
 +++ b/net/core/filter.c
-@@ -497,7 +497,7 @@ int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk)
+@@ -511,7 +511,7 @@ int sk_attach_filter(struct sock_fprog *
  	if (fprog->filter == NULL)
  		return -EINVAL;
  
@@ -82584,8 +81442,6 @@
  	if (!fp)
  		return -ENOMEM;
  	if (copy_from_user(fp->insns, fprog->filter, fsize)) {
-diff --git a/net/core/neighbour.c b/net/core/neighbour.c
-index e696250..a2bc8f3 100644
 --- a/net/core/neighbour.c
 +++ b/net/core/neighbour.c
 @@ -21,6 +21,8 @@
@@ -82605,7 +81461,7 @@
  
  #define NEIGH_DEBUG 1
  
-@@ -264,6 +267,7 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
+@@ -264,6 +267,7 @@ static struct neighbour *neigh_alloc(str
  	int entries;
  
  	entries = atomic_inc_return(&tbl->entries) - 1;
@@ -82613,16 +81469,16 @@
  	if (entries >= tbl->gc_thresh3 ||
  	    (entries >= tbl->gc_thresh2 &&
  	     time_after(now, tbl->last_flush + 5 * HZ))) {
-@@ -274,7 +278,7 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
+@@ -274,7 +278,7 @@ static struct neighbour *neigh_alloc(str
  
  	n = kmem_cache_zalloc(tbl->kmem_cachep, GFP_ATOMIC);
  	if (!n)
 -		goto out_entries;
 +		goto out_nomem;
  
- 	skb_queue_head_init(&n->arp_queue);
+ 	__skb_queue_head_init(&n->arp_queue);
  	rwlock_init(&n->lock);
-@@ -291,6 +295,8 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
+@@ -291,6 +295,8 @@ static struct neighbour *neigh_alloc(str
  out:
  	return n;
  
@@ -82631,7 +81487,7 @@
  out_entries:
  	atomic_dec(&tbl->entries);
  	goto out;
-@@ -409,12 +415,11 @@ struct neighbour *neigh_create(struct neigh_table *tbl, const void *pkey,
+@@ -409,12 +415,11 @@ struct neighbour *neigh_create(struct ne
  	u32 hash_val;
  	int key_len = tbl->key_len;
  	int error;
@@ -82647,7 +81503,7 @@
  
  	memcpy(n->primary_key, pkey, key_len);
  	n->dev = dev;
-@@ -734,10 +739,21 @@ static void neigh_periodic_work(struct work_struct *work)
+@@ -736,10 +741,21 @@ static void neigh_periodic_work(struct w
  			if (atomic_read(&n->refcnt) == 1 &&
  			    (state == NUD_FAILED ||
  			     time_after(jiffies, n->used + n->parms->gc_staletime))) {
@@ -82669,7 +81525,7 @@
  				continue;
  			}
  			write_unlock(&n->lock);
-@@ -800,6 +816,11 @@ static void neigh_timer_handler(unsigned long arg)
+@@ -802,6 +818,11 @@ static void neigh_timer_handler(unsigned
  	struct neighbour *neigh = (struct neighbour *)arg;
  	unsigned state;
  	int notify = 0;
@@ -82681,7 +81537,7 @@
  
  	write_lock(&neigh->lock);
  
-@@ -885,6 +906,8 @@ out:
+@@ -887,6 +908,8 @@ out:
  		neigh_update_notify(neigh);
  
  	neigh_release(neigh);
@@ -82690,7 +81546,7 @@
  }
  
  int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
-@@ -1276,9 +1299,16 @@ static void neigh_proxy_process(unsigned long arg)
+@@ -1278,9 +1301,16 @@ static void neigh_proxy_process(unsigned
  		if (tdif <= 0) {
  			struct net_device *dev = skb->dev;
  			__skb_unlink(skb, &tbl->proxy_queue);
@@ -82709,11 +81565,9 @@
  				kfree_skb(skb);
  
  			dev_put(dev);
-diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
-index d5617d4..abbb0db 100644
 --- a/net/core/net-sysfs.c
 +++ b/net/core/net-sysfs.c
-@@ -268,6 +268,27 @@ static struct device_attribute net_class_attributes[] = {
+@@ -312,6 +312,27 @@ static struct device_attribute net_class
  	{}
  };
  
@@ -82741,7 +81595,7 @@
  /* Show a given an attribute in the statistics group */
  static ssize_t netstat_show(const struct device *d,
  			    struct device_attribute *attr, char *buf,
-@@ -430,9 +451,6 @@ static int netdev_uevent(struct device *d, struct kobj_uevent_env *env)
+@@ -474,9 +495,6 @@ static int netdev_uevent(struct device *
  	struct net_device *dev = to_net_dev(d);
  	int retval;
  
@@ -82751,7 +81605,7 @@
  	/* pass interface to uevent. */
  	retval = add_uevent_var(env, "INTERFACE=%s", dev->name);
  	if (retval)
-@@ -462,7 +480,7 @@ static void netdev_release(struct device *d)
+@@ -506,7 +524,7 @@ static void netdev_release(struct device
  	kfree((char *)dev - dev->padded);
  }
  
@@ -82760,7 +81614,7 @@
  	.name = "net",
  	.dev_release = netdev_release,
  #ifdef CONFIG_SYSFS
-@@ -472,6 +490,13 @@ static struct class net_class = {
+@@ -516,6 +534,13 @@ static struct class net_class = {
  	.dev_uevent = netdev_uevent,
  #endif
  };
@@ -82774,7 +81628,7 @@
  
  /* Delete sysfs entries but hold kobject reference until after all
   * netdev references are gone.
-@@ -482,9 +507,6 @@ void netdev_unregister_kobject(struct net_device * net)
+@@ -526,9 +551,6 @@ void netdev_unregister_kobject(struct ne
  
  	kobject_get(&dev->kobj);
  
@@ -82784,7 +81638,7 @@
  	device_del(dev);
  }
  
-@@ -494,7 +516,7 @@ int netdev_register_kobject(struct net_device *net)
+@@ -538,7 +560,7 @@ int netdev_register_kobject(struct net_d
  	struct device *dev = &(net->dev);
  	const struct attribute_group **groups = net->sysfs_groups;
  
@@ -82793,7 +81647,7 @@
  	dev->platform_data = net;
  	dev->groups = groups;
  
-@@ -509,9 +531,6 @@ int netdev_register_kobject(struct net_device *net)
+@@ -553,9 +575,6 @@ int netdev_register_kobject(struct net_d
  #endif
  #endif /* CONFIG_SYSFS */
  
@@ -82803,7 +81657,7 @@
  	return device_add(dev);
  }
  
-@@ -534,7 +553,15 @@ void netdev_initialize_kobject(struct net_device *net)
+@@ -578,7 +597,15 @@ void netdev_initialize_kobject(struct ne
  	device_initialize(device);
  }
  
@@ -82819,8 +81673,6 @@
 +	prepare_sysfs_netdev();
  	return class_register(&net_class);
  }
-diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
-index 1c1af27..39d8c2e 100644
 --- a/net/core/net_namespace.c
 +++ b/net/core/net_namespace.c
 @@ -1,6 +1,7 @@
@@ -82831,7 +81683,7 @@
  #include <linux/slab.h>
  #include <linux/list.h>
  #include <linux/delay.h>
-@@ -36,6 +37,10 @@ static __net_init int setup_net(struct net *net)
+@@ -36,6 +37,10 @@ static __net_init int setup_net(struct n
  	struct pernet_operations *ops;
  	int error = 0;
  
@@ -82863,7 +81715,7 @@
  }
  
  static struct net *net_create(void)
-@@ -151,6 +161,7 @@ static void cleanup_net(struct work_struct *work)
+@@ -151,6 +161,7 @@ static void cleanup_net(struct work_stru
  {
  	struct pernet_operations *ops;
  	struct net *net;
@@ -82871,7 +81723,7 @@
  
  	net = container_of(work, struct net, work);
  
-@@ -168,11 +179,13 @@ static void cleanup_net(struct work_struct *work)
+@@ -168,11 +179,13 @@ static void cleanup_net(struct work_stru
  	 */
  	synchronize_rcu();
  
@@ -82902,7 +81754,7 @@
  static int register_pernet_operations(struct list_head *list,
  				      struct pernet_operations *ops)
  {
-@@ -268,7 +291,9 @@ static int register_pernet_operations(struct list_head *list,
+@@ -268,7 +291,9 @@ static int register_pernet_operations(st
  	list_add_tail(&ops->list, list);
  	if (ops->init) {
  		for_each_net(net) {
@@ -82923,7 +81775,7 @@
  		}
  	}
  undone:
-@@ -295,8 +323,11 @@ static void unregister_pernet_operations(struct pernet_operations *ops)
+@@ -295,8 +323,11 @@ static void unregister_pernet_operations
  
  	list_del(&ops->list);
  	if (ops->exit)
@@ -82936,11 +81788,9 @@
  }
  
  #else
-diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index d4fd895..1c96da6 100644
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
-@@ -1206,6 +1206,8 @@ static int rtnl_dump_all(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -1207,6 +1207,8 @@ static int rtnl_dump_all(struct sk_buff
  		if (rtnl_msg_handlers[idx] == NULL ||
  		    rtnl_msg_handlers[idx][type].dumpit == NULL)
  			continue;
@@ -82949,7 +81799,7 @@
  		if (idx > s_idx)
  			memset(&cb->args[0], 0, sizeof(cb->args));
  		if (rtnl_msg_handlers[idx][type].dumpit(skb, cb))
-@@ -1267,13 +1269,13 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -1268,13 +1270,13 @@ static int rtnetlink_rcv_msg(struct sk_b
  		return 0;
  
  	family = ((struct rtgenmsg*)NLMSG_DATA(nlh))->rtgen_family;
@@ -82965,8 +81815,6 @@
  		return -EPERM;
  
  	if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) {
-diff --git a/net/core/scm.c b/net/core/scm.c
-index 9b26463..944126f 100644
 --- a/net/core/scm.c
 +++ b/net/core/scm.c
 @@ -36,6 +36,7 @@
@@ -82977,7 +81825,7 @@
  
  /*
   *	Only allow a user to send credentials, that they could set with
-@@ -46,7 +47,9 @@ static __inline__ int scm_check_creds(struct ucred *creds)
+@@ -46,7 +47,9 @@ static __inline__ int scm_check_creds(st
  {
  	const struct cred *cred = current_cred();
  
@@ -82988,7 +81836,7 @@
  	    ((creds->uid == cred->uid   || creds->uid == cred->euid ||
  	      creds->uid == cred->suid) || capable(CAP_SETUID)) &&
  	    ((creds->gid == cred->gid   || creds->gid == cred->egid ||
-@@ -73,7 +76,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)
+@@ -73,7 +76,7 @@ static int scm_fp_copy(struct cmsghdr *c
  
  	if (!fpl)
  	{
@@ -82997,7 +81845,7 @@
  		if (!fpl)
  			return -ENOMEM;
  		*fplp = fpl;
-@@ -302,7 +305,7 @@ struct scm_fp_list *scm_fp_dup(struct scm_fp_list *fpl)
+@@ -304,7 +307,7 @@ struct scm_fp_list *scm_fp_dup(struct sc
  		return NULL;
  
  	new_fpl = kmemdup(fpl, offsetof(struct scm_fp_list, fp[fpl->count]),
@@ -83006,8 +81854,6 @@
  	if (new_fpl) {
  		for (i = 0; i < fpl->count; i++)
  			get_file(fpl->fp[i]);
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 283f441..c680a7f 100644
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
 @@ -67,6 +67,7 @@
@@ -83018,7 +81864,7 @@
  
  #include "kmap_skb.h"
  
-@@ -184,6 +185,10 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
+@@ -184,6 +185,10 @@ struct sk_buff *__alloc_skb(unsigned int
  	if (!skb)
  		goto out;
  
@@ -83029,7 +81875,7 @@
  	size = SKB_DATA_ALIGN(size);
  	data = kmalloc_node_track_caller(size + sizeof(struct skb_shared_info),
  			gfp_mask, node);
-@@ -202,6 +207,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
+@@ -202,6 +207,7 @@ struct sk_buff *__alloc_skb(unsigned int
  	skb->data = data;
  	skb_reset_tail_pointer(skb);
  	skb->end = skb->tail + size;
@@ -83037,7 +81883,7 @@
  	kmemcheck_annotate_bitfield(skb, flags1);
  	kmemcheck_annotate_bitfield(skb, flags2);
  #ifdef NET_SKBUFF_DATA_USES_OFFSET
-@@ -234,6 +240,8 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
+@@ -234,6 +240,8 @@ struct sk_buff *__alloc_skb(unsigned int
  out:
  	return skb;
  nodata:
@@ -83046,7 +81892,7 @@
  	kmem_cache_free(cache, skb);
  	skb = NULL;
  	goto out;
-@@ -362,6 +370,7 @@ static void kfree_skbmem(struct sk_buff *skb)
+@@ -362,6 +370,7 @@ static void kfree_skbmem(struct sk_buff
  	struct sk_buff *other;
  	atomic_t *fclone_ref;
  
@@ -83054,7 +81900,7 @@
  	switch (skb->fclone) {
  	case SKB_FCLONE_UNAVAILABLE:
  		kmem_cache_free(skbuff_head_cache, skb);
-@@ -394,6 +403,7 @@ static void skb_release_head_state(struct sk_buff *skb)
+@@ -394,6 +403,7 @@ static void skb_release_head_state(struc
  #ifdef CONFIG_XFRM
  	secpath_put(skb->sp);
  #endif
@@ -83062,7 +81908,7 @@
  	if (skb->destructor) {
  		WARN_ON(in_irq());
  		skb->destructor(skb);
-@@ -560,6 +570,11 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
+@@ -560,6 +570,11 @@ static void __copy_skb_header(struct sk_
  #endif
  	new->vlan_tci		= old->vlan_tci;
  
@@ -83074,7 +81920,7 @@
  	skb_copy_secmark(new, old);
  }
  
-@@ -581,6 +596,10 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb)
+@@ -581,6 +596,10 @@ static struct sk_buff *__skb_clone(struc
  	n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len;
  	n->cloned = 1;
  	n->nohdr = 0;
@@ -83085,7 +81931,7 @@
  	n->destructor = NULL;
  	C(tail);
  	C(end);
-@@ -589,6 +608,11 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb)
+@@ -589,6 +608,11 @@ static struct sk_buff *__skb_clone(struc
  	C(truesize);
  	atomic_set(&n->users, 1);
  
@@ -83097,7 +81943,7 @@
  	atomic_inc(&(skb_shinfo(skb)->dataref));
  	skb->cloned = 1;
  
-@@ -647,6 +671,10 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
+@@ -647,6 +671,10 @@ struct sk_buff *skb_clone(struct sk_buff
  		n->fclone = SKB_FCLONE_UNAVAILABLE;
  	}
  
@@ -83108,8 +81954,6 @@
  	return __skb_clone(n, skb);
  }
  EXPORT_SYMBOL(skb_clone);
-diff --git a/net/core/sock.c b/net/core/sock.c
-index 6605e75..b236993 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
 @@ -124,6 +124,9 @@
@@ -83122,7 +81966,7 @@
  #include <linux/filter.h>
  
  #ifdef CONFIG_INET
-@@ -254,7 +257,7 @@ static void sock_warn_obsolete_bsdism(const char *name)
+@@ -254,7 +257,7 @@ static void sock_warn_obsolete_bsdism(co
  	static char warncomm[TASK_COMM_LEN];
  	if (strcmp(warncomm, current->comm) && warned < 5) {
  		strcpy(warncomm,  current->comm);
@@ -83131,7 +81975,7 @@
  		       "%s SO_BSDCOMPAT\n", warncomm, name);
  		warned++;
  	}
-@@ -290,7 +293,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -290,7 +293,7 @@ int sock_queue_rcv_skb(struct sock *sk,
  	if (err)
  		goto out;
  
@@ -83140,7 +81984,7 @@
  		err = -ENOBUFS;
  		goto out;
  	}
-@@ -1006,6 +1009,7 @@ static void sk_prot_free(struct proto *prot, struct sock *sk)
+@@ -1015,6 +1018,7 @@ static void sk_prot_free(struct proto *p
  	slab = prot->slab;
  
  	security_sk_free(sk);
@@ -83148,7 +81992,7 @@
  	if (slab != NULL)
  		kmem_cache_free(slab, sk);
  	else
-@@ -1034,6 +1038,7 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
+@@ -1043,6 +1047,7 @@ struct sock *sk_alloc(struct net *net, i
  		 */
  		sk->sk_prot = sk->sk_prot_creator = prot;
  		sock_lock_init(sk);
@@ -83156,7 +82000,7 @@
  		sock_net_set(sk, get_net(net));
  		atomic_set(&sk->sk_wmem_alloc, 1);
  	}
-@@ -1146,14 +1151,11 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority)
+@@ -1156,14 +1161,11 @@ struct sock *sk_clone(const struct sock
  		if (filter != NULL)
  			sk_filter_charge(newsk, filter);
  
@@ -83176,7 +82020,7 @@
  
  		newsk->sk_err	   = 0;
  		newsk->sk_priority = 0;
-@@ -1186,13 +1188,22 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority)
+@@ -1196,13 +1198,22 @@ struct sock *sk_clone(const struct sock
  		    sock_flag(newsk, SOCK_TIMESTAMPING_RX_SOFTWARE))
  			net_enable_timestamp();
  	}
@@ -83200,7 +82044,7 @@
  	__sk_dst_set(sk, dst);
  	sk->sk_route_caps = dst->dev->features;
  	if (sk->sk_route_caps & NETIF_F_GSO)
-@@ -1205,6 +1216,8 @@ void sk_setup_caps(struct sock *sk, struct dst_entry *dst)
+@@ -1215,6 +1226,8 @@ void sk_setup_caps(struct sock *sk, stru
  			sk->sk_gso_max_size = dst->dev->gso_max_size;
  		}
  	}
@@ -83209,7 +82053,7 @@
  }
  EXPORT_SYMBOL_GPL(sk_setup_caps);
  
-@@ -1382,9 +1395,8 @@ static long sock_wait_for_wmem(struct sock *sk, long timeo)
+@@ -1392,9 +1405,8 @@ static long sock_wait_for_wmem(struct so
  /*
   *	Generic send/receive buffer handlers
   */
@@ -83221,7 +82065,7 @@
  				     int *errcode)
  {
  	struct sk_buff *skb;
-@@ -1406,46 +1418,35 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
+@@ -1416,46 +1428,35 @@ struct sk_buff *sock_alloc_send_pskb(str
  		if (sk->sk_shutdown & SEND_SHUTDOWN)
  			goto failure;
  
@@ -83291,7 +82135,7 @@
  		set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags);
  		set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
  		err = -EAGAIN;
-@@ -1456,6 +1457,7 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
+@@ -1466,6 +1467,7 @@ struct sk_buff *sock_alloc_send_pskb(str
  		timeo = sock_wait_for_wmem(sk, timeo);
  	}
  
@@ -83299,7 +82143,7 @@
  	skb_set_owner_w(skb, sk);
  	return skb;
  
-@@ -1465,12 +1467,12 @@ failure:
+@@ -1475,12 +1477,12 @@ failure:
  	*errcode = err;
  	return NULL;
  }
@@ -83314,7 +82158,7 @@
  }
  EXPORT_SYMBOL(sock_alloc_send_skb);
  
-@@ -1904,21 +1906,24 @@ void lock_sock_nested(struct sock *sk, int subclass)
+@@ -1920,21 +1922,24 @@ void lock_sock_nested(struct sock *sk, i
  		__lock_sock(sk);
  	sk->sk_lock.owned = 1;
  	spin_unlock(&sk->sk_lock.slock);
@@ -83340,7 +82184,7 @@
  	spin_lock_bh(&sk->sk_lock.slock);
  	if (sk->sk_backlog.tail)
  		__release_sock(sk);
-@@ -2194,7 +2199,7 @@ int proto_register(struct proto *prot, int alloc_slab)
+@@ -2210,7 +2215,7 @@ int proto_register(struct proto *prot, i
  {
  	if (alloc_slab) {
  		prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0,
@@ -83349,7 +82193,7 @@
  					NULL);
  
  		if (prot->slab == NULL) {
-@@ -2213,7 +2218,7 @@ int proto_register(struct proto *prot, int alloc_slab)
+@@ -2229,7 +2234,7 @@ int proto_register(struct proto *prot, i
  			sprintf(prot->rsk_prot->slab_name, mask, prot->name);
  			prot->rsk_prot->slab = kmem_cache_create(prot->rsk_prot->slab_name,
  								 prot->rsk_prot->obj_size, 0,
@@ -83358,7 +82202,7 @@
  
  			if (prot->rsk_prot->slab == NULL) {
  				printk(KERN_CRIT "%s: Can't create request sock SLAB cache!\n",
-@@ -2235,7 +2240,7 @@ int proto_register(struct proto *prot, int alloc_slab)
+@@ -2251,7 +2256,7 @@ int proto_register(struct proto *prot, i
  				kmem_cache_create(prot->twsk_prot->twsk_slab_name,
  						  prot->twsk_prot->twsk_obj_size,
  						  0,
@@ -83367,8 +82211,6 @@
  							prot->slab_flags,
  						  NULL);
  			if (prot->twsk_prot->twsk_slab == NULL)
-diff --git a/net/core/stream.c b/net/core/stream.c
-index e48c85f..dfdded0 100644
 --- a/net/core/stream.c
 +++ b/net/core/stream.c
 @@ -112,8 +112,10 @@ EXPORT_SYMBOL(sk_stream_wait_close);
@@ -83383,7 +82225,7 @@
  {
  	int err = 0;
  	long vm_wait = 0;
-@@ -135,7 +137,10 @@ int sk_stream_wait_memory(struct sock *sk, long *timeo_p)
+@@ -135,7 +137,10 @@ int sk_stream_wait_memory(struct sock *s
  		if (signal_pending(current))
  			goto do_interrupted;
  		clear_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags);
@@ -83395,7 +82237,7 @@
  			break;
  
  		set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
-@@ -145,6 +150,8 @@ int sk_stream_wait_memory(struct sock *sk, long *timeo_p)
+@@ -145,6 +150,8 @@ int sk_stream_wait_memory(struct sock *s
  						  (sk_stream_memory_free(sk) &&
  						  !vm_wait));
  		sk->sk_write_pending--;
@@ -83415,11 +82257,9 @@
  EXPORT_SYMBOL(sk_stream_wait_memory);
  
  int sk_stream_error(struct sock *sk, int flags, int err)
-diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
-index e48ca5d..3b3cbec 100644
 --- a/net/dccp/ipv6.c
 +++ b/net/dccp/ipv6.c
-@@ -588,6 +588,8 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,
+@@ -583,6 +583,8 @@ static struct sock *dccp_v6_request_recv
  	__ip6_dst_store(newsk, dst, NULL, NULL);
  	newsk->sk_route_caps = dst->dev->features & ~(NETIF_F_IP_CSUM |
  						      NETIF_F_TSO);
@@ -83428,8 +82268,6 @@
  	newdp6 = (struct dccp6_sock *)newsk;
  	newinet = inet_sk(newsk);
  	newinet->pinet6 = &newdp6->inet6;
-diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c
-index 5ca49ce..e12a0d1 100644
 --- a/net/dccp/minisocks.c
 +++ b/net/dccp/minisocks.c
 @@ -19,6 +19,8 @@
@@ -83441,7 +82279,7 @@
  #include "ackvec.h"
  #include "ccid.h"
  #include "dccp.h"
-@@ -46,7 +48,8 @@ void dccp_time_wait(struct sock *sk, int state, int timeo)
+@@ -46,7 +48,8 @@ void dccp_time_wait(struct sock *sk, int
  {
  	struct inet_timewait_sock *tw = NULL;
  
@@ -83451,11 +82289,9 @@
  		tw = inet_twsk_alloc(sk, state);
  
  	if (tw != NULL) {
-diff --git a/net/decnet/netfilter/dn_rtmsg.c b/net/decnet/netfilter/dn_rtmsg.c
-index 6d2bd32..45567e3 100644
 --- a/net/decnet/netfilter/dn_rtmsg.c
 +++ b/net/decnet/netfilter/dn_rtmsg.c
-@@ -107,7 +107,7 @@ static inline void dnrmg_receive_user_skb(struct sk_buff *skb)
+@@ -107,7 +107,7 @@ static inline void dnrmg_receive_user_sk
  	if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
  		return;
  
@@ -83464,8 +82300,6 @@
  		RCV_SKB_FAIL(-EPERM);
  
  	/* Eventually we might send routing messages too */
-diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
-index 57737b8..3559d3b 100644
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
 @@ -115,6 +115,7 @@
@@ -83530,11 +82364,9 @@
  	}
  	return 0;
  }
-diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
-index 4e80f33..01deb6a 100644
 --- a/net/ipv4/arp.c
 +++ b/net/ipv4/arp.c
-@@ -1136,7 +1136,8 @@ int arp_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -1136,7 +1136,8 @@ int arp_ioctl(struct net *net, unsigned
  	switch (cmd) {
  		case SIOCDARP:
  		case SIOCSARP:
@@ -83544,11 +82376,9 @@
  				return -EPERM;
  		case SIOCGARP:
  			err = copy_from_user(&r, arg, sizeof(struct arpreq));
-diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
-index f84f6dd..d297fd9 100644
 --- a/net/ipv4/devinet.c
 +++ b/net/ipv4/devinet.c
-@@ -110,10 +110,11 @@ static inline void devinet_sysctl_unregister(struct in_device *idev)
+@@ -110,10 +110,11 @@ static inline void devinet_sysctl_unregi
  
  /* Locks all the inet devices. */
  
@@ -83562,7 +82392,7 @@
  
  static void inet_rcu_free_ifa(struct rcu_head *head)
  {
-@@ -146,7 +147,7 @@ void in_dev_finish_destroy(struct in_device *idev)
+@@ -146,7 +147,7 @@ void in_dev_finish_destroy(struct in_dev
  	}
  }
  
@@ -83579,7 +82409,7 @@
  
  static void in_dev_rcu_put(struct rcu_head *head)
  {
-@@ -375,7 +377,7 @@ static int __inet_insert_ifa(struct in_ifaddr *ifa, struct nlmsghdr *nlh,
+@@ -375,7 +377,7 @@ static int __inet_insert_ifa(struct in_i
  	return 0;
  }
  
@@ -83588,7 +82418,7 @@
  {
  	return __inet_insert_ifa(ifa, NULL, 0);
  }
-@@ -426,6 +428,7 @@ struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
+@@ -426,6 +428,7 @@ struct in_ifaddr *inet_ifa_byprefix(stru
  	} endfor_ifa(in_dev);
  	return NULL;
  }
@@ -83596,7 +82426,7 @@
  
  static int inet_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
  {
-@@ -624,7 +627,7 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -624,7 +627,7 @@ int devinet_ioctl(struct net *net, unsig
  
  	case SIOCSIFFLAGS:
  		ret = -EACCES;
@@ -83605,7 +82435,7 @@
  			goto out;
  		break;
  	case SIOCSIFADDR:	/* Set interface address (and family) */
-@@ -632,7 +635,7 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -632,7 +635,7 @@ int devinet_ioctl(struct net *net, unsig
  	case SIOCSIFDSTADDR:	/* Set the destination address */
  	case SIOCSIFNETMASK: 	/* Set the netmask for the interface */
  		ret = -EACCES;
@@ -83614,11 +82444,9 @@
  			goto out;
  		ret = -EINVAL;
  		if (sin->sin_family != AF_INET)
-diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
-index 29391ee..87bedd4 100644
 --- a/net/ipv4/fib_frontend.c
 +++ b/net/ipv4/fib_frontend.c
-@@ -262,7 +262,8 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif,
+@@ -262,7 +262,8 @@ int fib_validate_source(__be32 src, __be
  	net = dev_net(dev);
  	if (fib_lookup(net, &fl, &res))
  		goto last_resort;
@@ -83628,7 +82456,7 @@
  		goto e_inval_res;
  	*spec_dst = FIB_RES_PREFSRC(res);
  	fib_combine_itag(itag, &res);
-@@ -464,7 +465,7 @@ int ip_rt_ioctl(struct net *net, unsigned int cmd, void __user *arg)
+@@ -464,7 +465,7 @@ int ip_rt_ioctl(struct net *net, unsigne
  	switch (cmd) {
  	case SIOCADDRT:		/* Add a route */
  	case SIOCDELRT:		/* Delete a route */
@@ -83637,11 +82465,9 @@
  			return -EPERM;
  
  		if (copy_from_user(&rt, arg, sizeof(rt)))
-diff --git a/net/ipv4/fib_hash.c b/net/ipv4/fib_hash.c
-index ecd3945..baf9314 100644
 --- a/net/ipv4/fib_hash.c
 +++ b/net/ipv4/fib_hash.c
-@@ -769,10 +769,10 @@ static int fn_hash_dump(struct fib_table *tb, struct sk_buff *skb, struct netlin
+@@ -769,10 +769,10 @@ static int fn_hash_dump(struct fib_table
  void __init fib_hash_init(void)
  {
  	fn_hash_kmem = kmem_cache_create("ip_fib_hash", sizeof(struct fib_node),
@@ -83654,8 +82480,6 @@
  
  }
  
-diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
-index 537731b..5a90bdd 100644
 --- a/net/ipv4/inet_connection_sock.c
 +++ b/net/ipv4/inet_connection_sock.c
 @@ -24,6 +24,9 @@
@@ -83677,7 +82501,7 @@
  		if (tb->fastreuse > 0 &&
  		    sk->sk_reuse && sk->sk_state != TCP_LISTEN &&
  		    smallest_size == -1) {
-@@ -618,7 +623,7 @@ void inet_csk_destroy_sock(struct sock *sk)
+@@ -618,7 +623,7 @@ void inet_csk_destroy_sock(struct sock *
  
  	sk_refcnt_debug_release(sk);
  
@@ -83686,7 +82510,7 @@
  	sock_put(sk);
  }
  
-@@ -698,7 +703,7 @@ void inet_csk_listen_stop(struct sock *sk)
+@@ -698,7 +703,7 @@ void inet_csk_listen_stop(struct sock *s
  
  		sock_orphan(child);
  
@@ -83695,11 +82519,9 @@
  
  		inet_csk_destroy_sock(child);
  
-diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
-index a706a47..f707cea 100644
 --- a/net/ipv4/inet_diag.c
 +++ b/net/ipv4/inet_diag.c
-@@ -702,6 +702,7 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -705,6 +705,7 @@ static int inet_diag_dump(struct sk_buff
  	struct inet_diag_req *r = NLMSG_DATA(cb->nlh);
  	const struct inet_diag_handler *handler;
  	struct inet_hashinfo *hashinfo;
@@ -83707,7 +82529,7 @@
  
  	handler = inet_diag_lock_handler(cb->nlh->nlmsg_type);
  	if (IS_ERR(handler))
-@@ -727,6 +728,8 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -730,6 +731,8 @@ static int inet_diag_dump(struct sk_buff
  			sk_nulls_for_each(sk, node, &ilb->head) {
  				struct inet_sock *inet = inet_sk(sk);
  
@@ -83716,7 +82538,7 @@
  				if (num < s_num) {
  					num++;
  					continue;
-@@ -793,6 +796,8 @@ skip_listen_ht:
+@@ -796,6 +799,8 @@ skip_listen_ht:
  		sk_nulls_for_each(sk, node, &head->chain) {
  			struct inet_sock *inet = inet_sk(sk);
  
@@ -83725,7 +82547,7 @@
  			if (num < s_num)
  				goto next_normal;
  			if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -817,6 +822,8 @@ next_normal:
+@@ -820,6 +825,8 @@ next_normal:
  			inet_twsk_for_each(tw, node,
  				    &head->twchain) {
  
@@ -83733,9 +82555,7 @@
 +					continue;
  				if (num < s_num)
  					goto next_dying;
- 				if (r->id.idiag_sport != tw->tw_sport &&
-diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
-index eaf3e2c..27b45e4 100644
+ 				if (!(r->idiag_states & (1 << tw->tw_substate)))
 --- a/net/ipv4/inet_fragment.c
 +++ b/net/ipv4/inet_fragment.c
 @@ -19,6 +19,7 @@
@@ -83746,7 +82566,7 @@
  
  #include <net/inet_frag.h>
  
-@@ -249,6 +250,9 @@ static struct inet_frag_queue *inet_frag_alloc(struct netns_frags *nf,
+@@ -249,6 +250,9 @@ static struct inet_frag_queue *inet_frag
  	spin_lock_init(&q->lock);
  	atomic_set(&q->refcnt, 1);
  	q->net = nf;
@@ -83756,8 +82576,6 @@
  
  	return q;
  }
-diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
-index 13f0781..374bc0d 100644
 --- a/net/ipv4/inet_timewait_sock.c
 +++ b/net/ipv4/inet_timewait_sock.c
 @@ -14,6 +14,8 @@
@@ -83769,7 +82587,7 @@
  /* Must be called with locally disabled BHs. */
  static void __inet_twsk_kill(struct inet_timewait_sock *tw,
  			     struct inet_hashinfo *hashinfo)
-@@ -115,9 +117,14 @@ EXPORT_SYMBOL_GPL(__inet_twsk_hashdance);
+@@ -115,9 +117,14 @@ EXPORT_SYMBOL_GPL(__inet_twsk_hashdance)
  
  struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk, const int state)
  {
@@ -83787,7 +82605,7 @@
  	if (tw != NULL) {
  		const struct inet_sock *inet = inet_sk(sk);
  
-@@ -169,6 +176,7 @@ static int inet_twdr_do_twkill_work(struct inet_timewait_death_row *twdr,
+@@ -169,6 +176,7 @@ static int inet_twdr_do_twkill_work(stru
  rescan:
  	inet_twsk_for_each_inmate(tw, node, &twdr->cells[slot]) {
  		__inet_twsk_del_dead_node(tw);
@@ -83795,7 +82613,7 @@
  		spin_unlock(&twdr->death_lock);
  		__inet_twsk_kill(tw, twdr->hashinfo);
  #ifdef CONFIG_NET_NS
-@@ -269,6 +277,7 @@ void inet_twsk_deschedule(struct inet_timewait_sock *tw,
+@@ -269,6 +277,7 @@ void inet_twsk_deschedule(struct inet_ti
  {
  	spin_lock(&twdr->death_lock);
  	if (inet_twsk_del_dead_node(tw)) {
@@ -83803,7 +82621,7 @@
  		inet_twsk_put(tw);
  		if (--twdr->tw_count == 0)
  			del_timer(&twdr->tw_timer);
-@@ -315,9 +324,10 @@ void inet_twsk_schedule(struct inet_timewait_sock *tw,
+@@ -315,9 +324,10 @@ void inet_twsk_schedule(struct inet_time
  	spin_lock(&twdr->death_lock);
  
  	/* Unlink it, if it was scheduled */
@@ -83816,7 +82634,7 @@
  		atomic_inc(&tw->tw_refcnt);
  
  	if (slot >= INET_TWDR_RECYCLE_SLOTS) {
-@@ -353,6 +363,7 @@ void inet_twsk_schedule(struct inet_timewait_sock *tw,
+@@ -353,6 +363,7 @@ void inet_twsk_schedule(struct inet_time
  
  	hlist_add_head(&tw->tw_death_node, list);
  
@@ -83824,7 +82642,7 @@
  	if (twdr->tw_count++ == 0)
  		mod_timer(&twdr->tw_timer, jiffies + twdr->period);
  	spin_unlock(&twdr->death_lock);
-@@ -387,6 +398,7 @@ void inet_twdr_twcal_tick(unsigned long data)
+@@ -387,6 +398,7 @@ void inet_twdr_twcal_tick(unsigned long
  						       &twdr->twcal_row[slot]) {
  				__inet_twsk_del_dead_node(tw);
  				__inet_twsk_kill(tw, twdr->hashinfo);
@@ -83832,8 +82650,6 @@
  #ifdef CONFIG_NET_NS
  				NET_INC_STATS_BH(twsk_net(tw), LINUX_MIB_TIMEWAITKILLED);
  #endif
-diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c
-index a2991bc..e9b5916 100644
 --- a/net/ipv4/ip_forward.c
 +++ b/net/ipv4/ip_forward.c
 @@ -94,6 +94,24 @@ int ip_forward(struct sk_buff *skb)
@@ -83870,8 +82686,6 @@
  	/*
  	 *	We now generate an ICMP HOST REDIRECT giving the route
  	 *	we calculated.
-diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
-index d3fe10b..fa1c137 100644
 --- a/net/ipv4/ip_fragment.c
 +++ b/net/ipv4/ip_fragment.c
 @@ -186,10 +186,13 @@ static void ip_evictor(struct net *net)
@@ -83898,7 +82712,7 @@
  }
  
  /* Find the correct entry in the "incomplete datagrams" queue for
-@@ -525,6 +530,7 @@ static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev,
+@@ -525,6 +530,7 @@ static int ip_frag_reasm(struct ipq *qp,
  		clone->csum = 0;
  		clone->ip_summed = head->ip_summed;
  		atomic_add(clone->truesize, &qp->q.net->mem);
@@ -83906,8 +82720,6 @@
  	}
  
  	skb_shinfo(head)->frag_list = head->next;
-diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
-index 1433338..6efea1a 100644
 --- a/net/ipv4/ip_gre.c
 +++ b/net/ipv4/ip_gre.c
 @@ -50,6 +50,9 @@
@@ -83920,7 +82732,7 @@
  /*
     Problems & solutions
     --------------------
-@@ -1202,6 +1205,8 @@ static int ipgre_close(struct net_device *dev)
+@@ -1202,6 +1205,8 @@ static int ipgre_close(struct net_device
  
  #endif
  
@@ -83929,7 +82741,7 @@
  static const struct net_device_ops ipgre_netdev_ops = {
  	.ndo_init		= ipgre_tunnel_init,
  	.ndo_uninit		= ipgre_tunnel_uninit,
-@@ -1212,6 +1217,7 @@ static const struct net_device_ops ipgre_netdev_ops = {
+@@ -1212,6 +1217,7 @@ static const struct net_device_ops ipgre
  	.ndo_start_xmit		= ipgre_tunnel_xmit,
  	.ndo_do_ioctl		= ipgre_tunnel_ioctl,
  	.ndo_change_mtu		= ipgre_tunnel_change_mtu,
@@ -83937,7 +82749,7 @@
  };
  
  static void ipgre_tunnel_setup(struct net_device *dev)
-@@ -1297,6 +1303,112 @@ static void ipgre_destroy_tunnels(struct ipgre_net *ign)
+@@ -1297,6 +1303,112 @@ static void ipgre_destroy_tunnels(struct
  	}
  }
  
@@ -84050,7 +82862,7 @@
  static int ipgre_init_net(struct net *net)
  {
  	int err;
-@@ -1682,6 +1794,7 @@ static int __init ipgre_init(void)
+@@ -1683,6 +1795,7 @@ static int __init ipgre_init(void)
  	if (err < 0)
  		goto tap_ops_failed;
  
@@ -84058,19 +82870,17 @@
  out:
  	return err;
  
-@@ -1696,6 +1809,7 @@ gen_device_failed:
+@@ -1697,6 +1810,7 @@ add_proto_failed:
  
  static void __exit ipgre_fini(void)
  {
 +	unregister_netdev_rst(&ipgre_netdev_rst);
  	rtnl_link_unregister(&ipgre_tap_ops);
  	rtnl_link_unregister(&ipgre_link_ops);
- 	unregister_pernet_gen_device(ipgre_net_id, &ipgre_net_ops);
-diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
-index 6c98b43..7e2f617 100644
+ 	if (inet_del_protocol(&ipgre_protocol, IPPROTO_GRE) < 0)
 --- a/net/ipv4/ip_input.c
 +++ b/net/ipv4/ip_input.c
-@@ -193,6 +193,8 @@ static int ip_local_deliver_finish(struct sk_buff *skb)
+@@ -193,6 +193,8 @@ static int ip_local_deliver_finish(struc
  {
  	struct net *net = dev_net(skb->dev);
  
@@ -84079,11 +82889,9 @@
  	__skb_pull(skb, ip_hdrlen(skb));
  
  	/* Point into the IP datagram, just past the header. */
-diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
-index 2ef9026..0c9b367 100644
 --- a/net/ipv4/ip_output.c
 +++ b/net/ipv4/ip_output.c
-@@ -1369,12 +1369,13 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *ar
+@@ -1374,12 +1374,13 @@ void ip_send_reply(struct sock *sk, stru
  	struct inet_sock *inet = inet_sk(sk);
  	struct ip_options_data replyopts;
  	struct ipcm_cookie ipc;
@@ -84098,7 +82906,7 @@
  	daddr = ipc.addr = rt->rt_src;
  	ipc.opt = NULL;
  	ipc.shtx.flags = 0;
-@@ -1390,7 +1391,7 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *ar
+@@ -1395,7 +1396,7 @@ void ip_send_reply(struct sock *sk, stru
  		struct flowi fl = { .oif = arg->bound_dev_if,
  				    .nl_u = { .ip4_u =
  					      { .daddr = daddr,
@@ -84107,11 +82915,9 @@
  						.tos = RT_TOS(ip_hdr(skb)->tos) } },
  				    /* Not quite clean, but right. */
  				    .uli_u = { .ports =
-diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
-index e982b5c..bf1a036 100644
 --- a/net/ipv4/ip_sockglue.c
 +++ b/net/ipv4/ip_sockglue.c
-@@ -921,7 +921,7 @@ mc_msf_out:
+@@ -930,7 +930,7 @@ mc_msf_out:
  	case IP_IPSEC_POLICY:
  	case IP_XFRM_POLICY:
  		err = -EPERM;
@@ -84120,8 +82926,6 @@
  			break;
  		err = xfrm_user_policy(sk, optname, optval, optlen);
  		break;
-diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
-index f8d04c2..e70ffc0 100644
 --- a/net/ipv4/ipconfig.c
 +++ b/net/ipv4/ipconfig.c
 @@ -192,19 +192,20 @@ static int __init ic_open_devs(void)
@@ -84147,7 +82951,7 @@
  		if (dev->flags & IFF_LOOPBACK)
  			continue;
  		if (user_dev_name[0] ? !strcmp(dev->name, user_dev_name) :
-@@ -459,9 +460,6 @@ ic_rarp_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
+@@ -459,9 +460,6 @@ ic_rarp_recv(struct sk_buff *skb, struct
  	unsigned char *sha, *tha;		/* s for "source", t for "target" */
  	struct ic_device *d;
  
@@ -84157,7 +82961,7 @@
  	if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
  		return NET_RX_DROP;
  
-@@ -885,9 +883,6 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str
+@@ -885,9 +883,6 @@ static int __init ic_bootp_recv(struct s
  	struct ic_device *d;
  	int len, ext_len;
  
@@ -84167,8 +82971,6 @@
  	/* Perform verifications before taking the lock.  */
  	if (skb->pkt_type == PACKET_OTHERHOST)
  		goto drop;
-diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
-index ae40ed1..b763d8a 100644
 --- a/net/ipv4/ipip.c
 +++ b/net/ipv4/ipip.c
 @@ -106,6 +106,7 @@
@@ -84189,7 +82991,7 @@
  #define HASH_SIZE  16
  #define HASH(addr) (((__force u32)addr^((__force u32)addr>>4))&0xF)
  
-@@ -144,6 +148,9 @@ static struct ip_tunnel * ipip_tunnel_lookup(struct net *net,
+@@ -144,6 +148,9 @@ static struct ip_tunnel * ipip_tunnel_lo
  	struct ip_tunnel *t;
  	struct ipip_net *ipn = net_generic(net, ipip_net_id);
  
@@ -84199,7 +83001,7 @@
  	for (t = ipn->tunnels_r_l[h0^h1]; t; t = t->next) {
  		if (local == t->parms.iph.saddr &&
  		    remote == t->parms.iph.daddr && (t->dev->flags&IFF_UP))
-@@ -686,11 +693,14 @@ static int ipip_tunnel_change_mtu(struct net_device *dev, int new_mtu)
+@@ -686,11 +693,14 @@ static int ipip_tunnel_change_mtu(struct
  	return 0;
  }
  
@@ -84214,7 +83016,7 @@
  
  };
  
-@@ -762,11 +772,116 @@ static void ipip_destroy_tunnels(struct ipip_net *ipn)
+@@ -762,11 +772,116 @@ static void ipip_destroy_tunnels(struct
  	}
  }
  
@@ -84331,7 +83133,7 @@
  	err = -ENOMEM;
  	ipn = kzalloc(sizeof(struct ipip_net), GFP_KERNEL);
  	if (ipn == NULL)
-@@ -812,6 +927,9 @@ static void ipip_exit_net(struct net *net)
+@@ -812,6 +927,9 @@ static void ipip_exit_net(struct net *ne
  	struct ipip_net *ipn;
  
  	ipn = net_generic(net, ipip_net_id);
@@ -84356,8 +83158,6 @@
  	if (xfrm4_tunnel_deregister(&ipip_handler, AF_INET))
  		printk(KERN_INFO "ipip close: can't deregister tunnel\n");
  
-diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c
-index c156db2..3d4e78f 100644
 --- a/net/ipv4/netfilter/ip_queue.c
 +++ b/net/ipv4/netfilter/ip_queue.c
 @@ -437,7 +437,7 @@ __ipq_rcv_skb(struct sk_buff *skb)
@@ -84382,7 +83182,7 @@
  	mutex_unlock(&ipqnl_mutex);
  }
  
-@@ -478,9 +482,6 @@ ipq_rcv_dev_event(struct notifier_block *this,
+@@ -478,9 +482,6 @@ ipq_rcv_dev_event(struct notifier_block
  {
  	struct net_device *dev = ptr;
  
@@ -84392,7 +83192,7 @@
  	/* Drop any packets associated with the downed device */
  	if (event == NETDEV_DOWN)
  		ipq_dev_drop(dev->ifindex);
-@@ -500,7 +501,7 @@ ipq_rcv_nl_event(struct notifier_block *this,
+@@ -500,7 +501,7 @@ ipq_rcv_nl_event(struct notifier_block *
  	if (event == NETLINK_URELEASE &&
  	    n->protocol == NETLINK_FIREWALL && n->pid) {
  		write_lock_bh(&queue_lock);
@@ -84401,8 +83201,6 @@
  			__ipq_reset();
  		write_unlock_bh(&queue_lock);
  	}
-diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
-index 62aff31..c135650 100644
 --- a/net/ipv4/netfilter/ip_tables.c
 +++ b/net/ipv4/netfilter/ip_tables.c
 @@ -321,6 +321,9 @@ ipt_do_table(struct sk_buff *skb,
@@ -84415,7 +83213,7 @@
  	/* Initialization */
  	ip = ip_hdr(skb);
  	indev = in ? in->name : nulldevname;
-@@ -466,8 +469,8 @@ mark_source_chains(struct xt_table_info *newinfo,
+@@ -466,8 +469,8 @@ mark_source_chains(struct xt_table_info
  			int visited = e->comefrom & (1 << hook);
  
  			if (e->comefrom & (1 << NF_INET_NUMHOOKS)) {
@@ -84426,7 +83224,7 @@
  				return 0;
  			}
  			e->comefrom |= ((1 << hook) | (1 << NF_INET_NUMHOOKS));
-@@ -950,7 +953,7 @@ static struct xt_counters * alloc_counters(struct xt_table *table)
+@@ -950,7 +953,7 @@ static struct xt_counters * alloc_counte
  	   (other than comefrom, which userspace doesn't care
  	   about). */
  	countersize = sizeof(struct xt_counters) * private->number;
@@ -84435,7 +83233,7 @@
  
  	if (counters == NULL)
  		return ERR_PTR(-ENOMEM);
-@@ -1217,7 +1220,7 @@ __do_replace(struct net *net, const char *name, unsigned int valid_hooks,
+@@ -1217,7 +1220,7 @@ __do_replace(struct net *net, const char
  	void *loc_cpu_old_entry;
  
  	ret = 0;
@@ -84444,7 +83242,7 @@
  	if (!counters) {
  		ret = -ENOMEM;
  		goto out;
-@@ -1381,7 +1384,7 @@ do_add_counters(struct net *net, void __user *user, unsigned int len, int compat
+@@ -1382,7 +1385,7 @@ do_add_counters(struct net *net, void __
  	if (len != size + num_counters * sizeof(struct xt_counters))
  		return -EINVAL;
  
@@ -84453,7 +83251,7 @@
  	if (!paddc)
  		return -ENOMEM;
  
-@@ -1855,13 +1858,15 @@ compat_do_replace(struct net *net, void __user *user, unsigned int len)
+@@ -1857,13 +1860,15 @@ compat_do_replace(struct net *net, void
  	return ret;
  }
  
@@ -84470,7 +83268,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -1874,8 +1879,7 @@ compat_do_ipt_set_ctl(struct sock *sk,	int cmd, void __user *user,
+@@ -1876,8 +1881,7 @@ compat_do_ipt_set_ctl(struct sock *sk,	i
  		break;
  
  	default:
@@ -84480,7 +83278,7 @@
  	}
  
  	return ret;
-@@ -1972,7 +1976,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -1974,7 +1978,7 @@ compat_do_ipt_get_ctl(struct sock *sk, i
  {
  	int ret;
  
@@ -84489,7 +83287,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -1994,7 +1998,7 @@ do_ipt_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len)
+@@ -1996,7 +2000,7 @@ do_ipt_set_ctl(struct sock *sk, int cmd,
  {
  	int ret;
  
@@ -84498,7 +83296,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2019,7 +2023,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -2021,7 +2025,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd,
  {
  	int ret;
  
@@ -84507,7 +83305,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2072,7 +2076,7 @@ struct xt_table *ipt_register_table(struct net *net,
+@@ -2075,7 +2079,7 @@ struct xt_table *ipt_register_table(stru
  	int ret;
  	struct xt_table_info *newinfo;
  	struct xt_table_info bootstrap
@@ -84516,7 +83314,7 @@
  	void *loc_cpu_entry;
  	struct xt_table *new_table;
  
-@@ -2218,11 +2222,22 @@ static struct xt_match icmp_matchstruct __read_mostly = {
+@@ -2221,11 +2225,22 @@ static struct xt_match icmp_matchstruct
  
  static int __net_init ip_tables_net_init(struct net *net)
  {
@@ -84540,8 +83338,6 @@
  	xt_proto_fini(net, NFPROTO_IPV4);
  }
  
-diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
-index 2e4f98b..a1619a1 100644
 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
 @@ -20,6 +20,7 @@
@@ -84552,7 +83348,7 @@
  #include <linux/netfilter_arp.h>
  #include <linux/netfilter/x_tables.h>
  #include <linux/netfilter_ipv4/ip_tables.h>
-@@ -383,7 +384,8 @@ static bool clusterip_tg_check(const struct xt_tgchk_param *par)
+@@ -383,7 +384,8 @@ static bool clusterip_tg_check(const str
  				return false;
  			}
  
@@ -84562,11 +83358,9 @@
  			if (!dev) {
  				printk(KERN_WARNING "CLUSTERIP: no such interface %s\n", e->ip.iniface);
  				return false;
-diff --git a/net/ipv4/netfilter/ipt_LOG.c b/net/ipv4/netfilter/ipt_LOG.c
-index acc44c6..5d5a8ab 100644
 --- a/net/ipv4/netfilter/ipt_LOG.c
 +++ b/net/ipv4/netfilter/ipt_LOG.c
-@@ -47,32 +47,32 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -47,32 +47,32 @@ static void dump_packet(const struct nf_
  
  	ih = skb_header_pointer(skb, iphoff, sizeof(_iph), &_iph);
  	if (ih == NULL) {
@@ -84606,7 +83400,7 @@
  
  	if ((logflags & IPT_LOG_IPOPT)
  	    && ih->ihl * 4 > sizeof(struct iphdr)) {
-@@ -84,15 +84,15 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -84,15 +84,15 @@ static void dump_packet(const struct nf_
  		op = skb_header_pointer(skb, iphoff+sizeof(_iph),
  					optsize, _opt);
  		if (op == NULL) {
@@ -84626,7 +83420,7 @@
  	}
  
  	switch (ih->protocol) {
-@@ -101,7 +101,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -101,7 +101,7 @@ static void dump_packet(const struct nf_
  		const struct tcphdr *th;
  
  		/* Max length: 10 "PROTO=TCP " */
@@ -84635,7 +83429,7 @@
  
  		if (ntohs(ih->frag_off) & IP_OFFSET)
  			break;
-@@ -110,41 +110,41 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -110,41 +110,41 @@ static void dump_packet(const struct nf_
  		th = skb_header_pointer(skb, iphoff + ih->ihl * 4,
  					sizeof(_tcph), &_tcph);
  		if (th == NULL) {
@@ -84691,7 +83485,7 @@
  
  		if ((logflags & IPT_LOG_TCPOPT)
  		    && th->doff * 4 > sizeof(struct tcphdr)) {
-@@ -157,15 +157,15 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -157,15 +157,15 @@ static void dump_packet(const struct nf_
  						iphoff+ih->ihl*4+sizeof(_tcph),
  						optsize, _opt);
  			if (op == NULL) {
@@ -84711,7 +83505,7 @@
  		}
  		break;
  	}
-@@ -176,9 +176,9 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -176,9 +176,9 @@ static void dump_packet(const struct nf_
  
  		if (ih->protocol == IPPROTO_UDP)
  			/* Max length: 10 "PROTO=UDP "     */
@@ -84723,7 +83517,7 @@
  
  		if (ntohs(ih->frag_off) & IP_OFFSET)
  			break;
-@@ -187,13 +187,13 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -187,13 +187,13 @@ static void dump_packet(const struct nf_
  		uh = skb_header_pointer(skb, iphoff+ih->ihl*4,
  					sizeof(_udph), &_udph);
  		if (uh == NULL) {
@@ -84739,7 +83533,7 @@
  		       ntohs(uh->source), ntohs(uh->dest),
  		       ntohs(uh->len));
  		break;
-@@ -220,7 +220,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -220,7 +220,7 @@ static void dump_packet(const struct nf_
  			    [ICMP_ADDRESSREPLY] = 12 };
  
  		/* Max length: 11 "PROTO=ICMP " */
@@ -84748,7 +83542,7 @@
  
  		if (ntohs(ih->frag_off) & IP_OFFSET)
  			break;
-@@ -229,19 +229,19 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -229,19 +229,19 @@ static void dump_packet(const struct nf_
  		ich = skb_header_pointer(skb, iphoff + ih->ihl * 4,
  					 sizeof(_icmph), &_icmph);
  		if (ich == NULL) {
@@ -84771,7 +83565,7 @@
  			       skb->len - iphoff - ih->ihl*4);
  			break;
  		}
-@@ -250,35 +250,35 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -250,35 +250,35 @@ static void dump_packet(const struct nf_
  		case ICMP_ECHOREPLY:
  		case ICMP_ECHO:
  			/* Max length: 19 "ID=65535 SEQ=65535 " */
@@ -84813,7 +83607,7 @@
  		}
  		break;
  	}
-@@ -291,19 +291,19 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -291,19 +291,19 @@ static void dump_packet(const struct nf_
  			break;
  
  		/* Max length: 9 "PROTO=AH " */
@@ -84836,7 +83630,7 @@
  		break;
  	}
  	case IPPROTO_ESP: {
-@@ -311,7 +311,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -311,7 +311,7 @@ static void dump_packet(const struct nf_
  		const struct ip_esp_hdr *eh;
  
  		/* Max length: 10 "PROTO=ESP " */
@@ -84845,7 +83639,7 @@
  
  		if (ntohs(ih->frag_off) & IP_OFFSET)
  			break;
-@@ -320,25 +320,25 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -320,25 +320,25 @@ static void dump_packet(const struct nf_
  		eh = skb_header_pointer(skb, iphoff+ih->ihl*4,
  					sizeof(_esph), &_esph);
  		if (eh == NULL) {
@@ -84875,7 +83669,7 @@
  				skb->sk->sk_socket->file->f_cred->fsuid,
  				skb->sk->sk_socket->file->f_cred->fsgid);
  		read_unlock_bh(&skb->sk->sk_callback_lock);
-@@ -346,7 +346,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -346,7 +346,7 @@ static void dump_packet(const struct nf_
  
  	/* Max length: 16 "MARK=0xFFFFFFFF " */
  	if (!iphoff && skb->mark)
@@ -84930,11 +83724,9 @@
  	spin_unlock_bh(&log_lock);
  }
  
-diff --git a/net/ipv4/netfilter/ipt_MASQUERADE.c b/net/ipv4/netfilter/ipt_MASQUERADE.c
-index dada086..00e6d49 100644
 --- a/net/ipv4/netfilter/ipt_MASQUERADE.c
 +++ b/net/ipv4/netfilter/ipt_MASQUERADE.c
-@@ -88,6 +88,7 @@ masquerade_tg(struct sk_buff *skb, const struct xt_target_param *par)
+@@ -88,6 +88,7 @@ masquerade_tg(struct sk_buff *skb, const
  	return nf_nat_setup_info(ct, &newrange, IP_NAT_MANIP_SRC);
  }
  
@@ -84942,7 +83734,7 @@
  static int
  device_cmp(struct nf_conn *i, void *ifindex)
  {
-@@ -134,6 +135,7 @@ static struct notifier_block masq_dev_notifier = {
+@@ -134,6 +135,7 @@ static struct notifier_block masq_dev_no
  static struct notifier_block masq_inet_notifier = {
  	.notifier_call	= masq_inet_event,
  };
@@ -84950,7 +83742,7 @@
  
  static struct xt_target masquerade_tg_reg __read_mostly = {
  	.name		= "MASQUERADE",
-@@ -152,12 +154,16 @@ static int __init masquerade_tg_init(void)
+@@ -152,12 +154,16 @@ static int __init masquerade_tg_init(voi
  
  	ret = xt_register_target(&masquerade_tg_reg);
  
@@ -84967,7 +83759,7 @@
  
  	return ret;
  }
-@@ -165,8 +171,8 @@ static int __init masquerade_tg_init(void)
+@@ -165,8 +171,8 @@ static int __init masquerade_tg_init(voi
  static void __exit masquerade_tg_exit(void)
  {
  	xt_unregister_target(&masquerade_tg_reg);
@@ -84978,11 +83770,9 @@
  }
  
  module_init(masquerade_tg_init);
-diff --git a/net/ipv4/netfilter/ipt_REDIRECT.c b/net/ipv4/netfilter/ipt_REDIRECT.c
-index 698e5e7..be6125e 100644
 --- a/net/ipv4/netfilter/ipt_REDIRECT.c
 +++ b/net/ipv4/netfilter/ipt_REDIRECT.c
-@@ -67,8 +67,13 @@ redirect_tg(struct sk_buff *skb, const struct xt_target_param *par)
+@@ -67,8 +67,13 @@ redirect_tg(struct sk_buff *skb, const s
  
  		rcu_read_lock();
  		indev = __in_dev_get_rcu(skb->dev);
@@ -84997,11 +83787,9 @@
  		rcu_read_unlock();
  
  		if (!newdst)
-diff --git a/net/ipv4/netfilter/ipt_REJECT.c b/net/ipv4/netfilter/ipt_REJECT.c
-index c93ae44..764a19c 100644
 --- a/net/ipv4/netfilter/ipt_REJECT.c
 +++ b/net/ipv4/netfilter/ipt_REJECT.c
-@@ -180,13 +180,13 @@ static bool reject_tg_check(const struct xt_tgchk_param *par)
+@@ -180,13 +180,13 @@ static bool reject_tg_check(const struct
  	const struct ipt_entry *e = par->entryinfo;
  
  	if (rejinfo->with == IPT_ICMP_ECHOREPLY) {
@@ -85017,8 +83805,6 @@
  			return false;
  		}
  	}
-diff --git a/net/ipv4/netfilter/iptable_filter.c b/net/ipv4/netfilter/iptable_filter.c
-index df566cb..b129326 100644
 --- a/net/ipv4/netfilter/iptable_filter.c
 +++ b/net/ipv4/netfilter/iptable_filter.c
 @@ -128,16 +128,24 @@ module_param(forward, bool, 0000);
@@ -85046,11 +83832,9 @@
  	ipt_unregister_table(net->ipv4.iptable_filter);
  }
  
-diff --git a/net/ipv4/netfilter/iptable_mangle.c b/net/ipv4/netfilter/iptable_mangle.c
-index 036047f..47730f3 100644
 --- a/net/ipv4/netfilter/iptable_mangle.c
 +++ b/net/ipv4/netfilter/iptable_mangle.c
-@@ -198,16 +198,24 @@ static struct nf_hook_ops ipt_ops[] __read_mostly = {
+@@ -198,16 +198,24 @@ static struct nf_hook_ops ipt_ops[] __re
  
  static int __net_init iptable_mangle_net_init(struct net *net)
  {
@@ -85075,8 +83859,6 @@
  	ipt_unregister_table(net->ipv4.iptable_mangle);
  }
  
-diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-index 1032a15..8765b1b 100644
 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 @@ -10,6 +10,7 @@
@@ -85087,7 +83869,7 @@
  #include <linux/module.h>
  #include <linux/skbuff.h>
  #include <linux/icmp.h>
-@@ -367,6 +368,30 @@ struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4 __read_mostly = {
+@@ -375,6 +376,30 @@ struct nf_conntrack_l3proto nf_conntrack
  	.me		 = THIS_MODULE,
  };
  
@@ -85118,7 +83900,7 @@
  module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint,
  		  &nf_conntrack_htable_size, 0600);
  
-@@ -381,6 +406,12 @@ static int __init nf_conntrack_l3proto_ipv4_init(void)
+@@ -389,6 +414,12 @@ static int __init nf_conntrack_l3proto_i
  	need_conntrack();
  	nf_defrag_ipv4_enable();
  
@@ -85131,7 +83913,7 @@
  	ret = nf_register_sockopt(&so_getorigdst);
  	if (ret < 0) {
  		printk(KERN_ERR "Unable to register netfilter socket option\n");
-@@ -452,6 +483,7 @@ static void __exit nf_conntrack_l3proto_ipv4_fini(void)
+@@ -460,6 +491,7 @@ static void __exit nf_conntrack_l3proto_
  	nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_udp4);
  	nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_tcp4);
  	nf_unregister_sockopt(&so_getorigdst);
@@ -85139,8 +83921,6 @@
  }
  
  module_init(nf_conntrack_l3proto_ipv4_init);
-diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c
-index 26066a2..96f07a4 100644
 --- a/net/ipv4/netfilter/nf_nat_core.c
 +++ b/net/ipv4/netfilter/nf_nat_core.c
 @@ -275,6 +275,22 @@ out:
@@ -85187,7 +83967,7 @@
  
  	/* It's done. */
  	if (maniptype == IP_NAT_MANIP_DST)
-@@ -676,6 +682,9 @@ nfnetlink_parse_nat_setup(struct nf_conn *ct,
+@@ -676,6 +682,9 @@ nfnetlink_parse_nat_setup(struct nf_conn
  
  static int __net_init nf_nat_net_init(struct net *net)
  {
@@ -85197,11 +83977,9 @@
  	/* Leave them the same for the moment. */
  	net->ipv4.nat_htable_size = net->ct.htable_size;
  	net->ipv4.nat_bysource = nf_ct_alloc_hashtable(&net->ipv4.nat_htable_size,
-diff --git a/net/ipv4/netfilter/nf_nat_rule.c b/net/ipv4/netfilter/nf_nat_rule.c
-index 9e81e0d..e6798d6 100644
 --- a/net/ipv4/netfilter/nf_nat_rule.c
 +++ b/net/ipv4/netfilter/nf_nat_rule.c
-@@ -186,15 +186,24 @@ static struct xt_target ipt_dnat_reg __read_mostly = {
+@@ -186,15 +186,24 @@ static struct xt_target ipt_dnat_reg __r
  
  static int __net_init nf_nat_rule_net_init(struct net *net)
  {
@@ -85226,11 +84004,9 @@
  	ipt_unregister_table(net->ipv4.nat_table);
  }
  
-diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
-index f25542c..879462c 100644
 --- a/net/ipv4/proc.c
 +++ b/net/ipv4/proc.c
-@@ -54,7 +54,7 @@ static int sockstat_seq_show(struct seq_file *seq, void *v)
+@@ -54,7 +54,7 @@ static int sockstat_seq_show(struct seq_
  	int orphans, sockets;
  
  	local_bh_disable();
@@ -85239,8 +84015,6 @@
  	sockets = percpu_counter_sum_positive(&tcp_sockets_allocated);
  	local_bh_enable();
  
-diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index 6c8f6c9..ddbd93e 100644
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
 @@ -69,6 +69,7 @@
@@ -85251,7 +84025,7 @@
  #include <linux/bootmem.h>
  #include <linux/string.h>
  #include <linux/socket.h>
-@@ -115,6 +116,7 @@
+@@ -116,6 +117,7 @@
  
  #define RT_GC_TIMEOUT (300*HZ)
  
@@ -85259,7 +84033,7 @@
  static int ip_rt_max_size;
  static int ip_rt_gc_timeout __read_mostly	= RT_GC_TIMEOUT;
  static int ip_rt_gc_interval __read_mostly	= 60 * HZ;
-@@ -1420,6 +1422,9 @@ void ip_rt_redirect(__be32 old_gw, __be32 daddr, __be32 new_gw,
+@@ -1447,6 +1449,9 @@ void ip_rt_redirect(__be32 old_gw, __be3
  				rt->u.dst.xfrm		= NULL;
  #endif
  				rt->rt_genid		= rt_genid(net);
@@ -85269,7 +84043,7 @@
  				rt->rt_flags		|= RTCF_REDIRECTED;
  
  				/* Gateway is different ... */
-@@ -1876,9 +1881,12 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
+@@ -1906,9 +1911,12 @@ static int ip_route_input_mc(struct sk_b
  #ifdef CONFIG_NET_CLS_ROUTE
  	rth->u.dst.tclassid = itag;
  #endif
@@ -85283,7 +84057,7 @@
  	dev_hold(rth->u.dst.dev);
  	rth->idev	= in_dev_get(rth->u.dst.dev);
  	rth->fl.oif	= 0;
-@@ -2014,6 +2022,9 @@ static int __mkroute_input(struct sk_buff *skb,
+@@ -2044,6 +2052,9 @@ static int __mkroute_input(struct sk_buf
  	rth->fl.fl4_src	= saddr;
  	rth->rt_src	= saddr;
  	rth->rt_gateway	= daddr;
@@ -85293,7 +84067,7 @@
  	rth->rt_iif 	=
  		rth->fl.iif	= in_dev->dev->ifindex;
  	rth->u.dst.dev	= (out_dev)->dev;
-@@ -2208,6 +2219,9 @@ local_input:
+@@ -2240,6 +2251,9 @@ local_input:
  	rth->idev	= in_dev_get(rth->u.dst.dev);
  	rth->rt_gateway	= daddr;
  	rth->rt_spec_dst= spec_dst;
@@ -85303,7 +84077,7 @@
  	rth->u.dst.input= ip_local_deliver;
  	rth->rt_flags 	= flags|RTCF_LOCAL;
  	if (res.type == RTN_UNREACHABLE) {
-@@ -2401,6 +2415,9 @@ static int __mkroute_output(struct rtable **result,
+@@ -2433,6 +2447,9 @@ static int __mkroute_output(struct rtabl
  	rth->fl.mark    = oldflp->mark;
  	rth->rt_dst	= fl->fl4_dst;
  	rth->rt_src	= fl->fl4_src;
@@ -85313,7 +84087,7 @@
  	rth->rt_iif	= oldflp->oif ? : dev_out->ifindex;
  	/* get references to the devices that are to be hold by the routing
  	   cache entry */
-@@ -2541,7 +2558,7 @@ static int ip_route_output_slow(struct net *net, struct rtable **rp,
+@@ -2574,7 +2591,7 @@ static int ip_route_output_slow(struct n
  			goto make_route;
  		}
  
@@ -85322,11 +84096,9 @@
  			/* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
  			dev_out = ip_dev_find(net, oldflp->fl4_src);
  			if (dev_out == NULL)
-diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
-index 2dcf04d..e739067 100644
 --- a/net/ipv4/sysctl_net_ipv4.c
 +++ b/net/ipv4/sysctl_net_ipv4.c
-@@ -26,6 +26,9 @@ static int tcp_retr1_max = 255;
+@@ -28,6 +28,9 @@ static int tcp_syn_retries_max = MAX_TCP
  static int ip_local_port_range_min[] = { 1, 1 };
  static int ip_local_port_range_max[] = { 65535, 65535 };
  
@@ -85336,7 +84108,7 @@
  /* Update system visible IP port range */
  static void set_local_port_range(int range[2])
  {
-@@ -796,6 +799,27 @@ static struct ctl_table ipv4_net_table[] = {
+@@ -801,6 +804,27 @@ static struct ctl_table ipv4_net_table[]
  		.proc_handler	= proc_dointvec
  	},
  	{
@@ -85364,8 +84136,6 @@
  		.ctl_name	= CTL_UNNUMBERED,
  		.procname	= "rt_cache_rebuild_count",
  		.data		= &init_net.ipv4.sysctl_rt_cache_rebuild_count,
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 734fe94..5c60596 100644
 --- a/net/ipv4/tcp.c
 +++ b/net/ipv4/tcp.c
 @@ -272,6 +272,10 @@
@@ -85379,7 +84149,7 @@
  #include <asm/uaccess.h>
  #include <asm/ioctls.h>
  
-@@ -375,6 +379,7 @@ unsigned int tcp_poll(struct file *file, struct socket *sock, poll_table *wait)
+@@ -375,6 +379,7 @@ unsigned int tcp_poll(struct file *file,
  	unsigned int mask;
  	struct sock *sk = sock->sk;
  	struct tcp_sock *tp = tcp_sk(sk);
@@ -85387,7 +84157,7 @@
  
  	sock_poll_wait(file, sk->sk_sleep, wait);
  	if (sk->sk_state == TCP_LISTEN)
-@@ -387,6 +392,21 @@ unsigned int tcp_poll(struct file *file, struct socket *sock, poll_table *wait)
+@@ -387,6 +392,21 @@ unsigned int tcp_poll(struct file *file,
  
  	mask = 0;
  
@@ -85409,7 +84179,7 @@
  	/*
  	 * POLLHUP is certainly not done right. But poll() doesn't
  	 * have a notion of HUP in just one direction, and for a
-@@ -434,7 +454,7 @@ unsigned int tcp_poll(struct file *file, struct socket *sock, poll_table *wait)
+@@ -434,7 +454,7 @@ unsigned int tcp_poll(struct file *file,
  		if (tp->rcv_nxt - tp->copied_seq >= target)
  			mask |= POLLIN | POLLRDNORM;
  
@@ -85418,7 +84188,7 @@
  			if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk)) {
  				mask |= POLLOUT | POLLWRNORM;
  			} else {  /* send SIGIO later */
-@@ -688,7 +708,7 @@ struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp)
+@@ -688,7 +708,7 @@ struct sk_buff *sk_stream_alloc_skb(stru
  
  	skb = alloc_skb_fclone(size + sk->sk_prot->max_header, gfp);
  	if (skb) {
@@ -85427,7 +84197,7 @@
  			/*
  			 * Make sure that we have exactly size bytes
  			 * available to the caller, no more, no less.
-@@ -774,15 +794,23 @@ static ssize_t do_tcp_sendpages(struct sock *sk, struct page **pages, int poffse
+@@ -774,15 +794,23 @@ static ssize_t do_tcp_sendpages(struct s
  		int copy, i, can_coalesce;
  		int offset = poffset % PAGE_SIZE;
  		int size = min_t(size_t, psize, PAGE_SIZE - offset);
@@ -85476,7 +84246,7 @@
  			goto do_error;
  
  		mss_now = tcp_send_mss(sk, &size_goal, flags);
-@@ -877,12 +910,8 @@ ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset,
+@@ -876,12 +909,8 @@ ssize_t tcp_sendpage(struct socket *sock
  	return res;
  }
  
@@ -85490,7 +84260,7 @@
  	int tmp = tp->mss_cache;
  
  	if (sk->sk_route_caps & NETIF_F_SG) {
-@@ -940,6 +969,7 @@ int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
+@@ -939,6 +968,7 @@ int tcp_sendmsg(struct kiocb *iocb, stru
  	while (--iovlen >= 0) {
  		size_t seglen = iov->iov_len;
  		unsigned char __user *from = iov->iov_base;
@@ -85498,7 +84268,7 @@
  
  		iov++;
  
-@@ -955,17 +985,27 @@ int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
+@@ -954,17 +984,27 @@ int tcp_sendmsg(struct kiocb *iocb, stru
  			}
  
  			if (copy <= 0) {
@@ -85527,7 +84297,7 @@
  
  				/*
  				 * Check whether we can use HW checksum.
-@@ -1012,6 +1052,7 @@ new_segment:
+@@ -1011,6 +1051,7 @@ new_segment:
  				} else if (page) {
  					if (off == PAGE_SIZE) {
  						put_page(page);
@@ -85535,7 +84305,7 @@
  						TCP_PAGE(sk) = page = NULL;
  						off = 0;
  					}
-@@ -1021,10 +1062,13 @@ new_segment:
+@@ -1020,10 +1061,13 @@ new_segment:
  				if (copy > PAGE_SIZE - off)
  					copy = PAGE_SIZE - off;
  
@@ -85550,7 +84320,7 @@
  					/* Allocate new cache page. */
  					if (!(page = sk_stream_alloc_page(sk)))
  						goto wait_for_memory;
-@@ -1056,7 +1100,8 @@ new_segment:
+@@ -1055,7 +1099,8 @@ new_segment:
  					} else if (off + copy < PAGE_SIZE) {
  						get_page(page);
  						TCP_PAGE(sk) = page;
@@ -85560,7 +84330,7 @@
  				}
  
  				TCP_OFF(sk) = off + copy;
-@@ -1087,10 +1132,15 @@ new_segment:
+@@ -1086,10 +1131,15 @@ new_segment:
  wait_for_sndbuf:
  			set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
  wait_for_memory:
@@ -85577,7 +84347,7 @@
  				goto do_error;
  
  			mss_now = tcp_send_mss(sk, &size_goal, flags);
-@@ -1188,8 +1238,10 @@ void tcp_cleanup_rbuf(struct sock *sk, int copied)
+@@ -1187,8 +1237,10 @@ void tcp_cleanup_rbuf(struct sock *sk, i
  	struct sk_buff *skb = skb_peek(&sk->sk_receive_queue);
  
  	WARN(skb && !before(tp->copied_seq, TCP_SKB_CB(skb)->end_seq),
@@ -85590,7 +84360,7 @@
  #endif
  
  	if (inet_csk_ack_scheduled(sk)) {
-@@ -1451,8 +1503,9 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
+@@ -1450,8 +1502,9 @@ int tcp_recvmsg(struct kiocb *iocb, stru
  				goto found_ok_skb;
  			if (tcp_hdr(skb)->fin)
  				goto found_fin_ok;
@@ -85601,7 +84371,7 @@
  					*seq, TCP_SKB_CB(skb)->seq,
  					tp->rcv_nxt, flags);
  		}
-@@ -1515,8 +1568,19 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
+@@ -1514,8 +1567,19 @@ int tcp_recvmsg(struct kiocb *iocb, stru
  
  			tp->ucopy.len = len;
  
@@ -85623,7 +84393,7 @@
  
  			/* Ugly... If prequeue is not empty, we have to
  			 * process it before releasing socket, otherwise
-@@ -1940,7 +2004,7 @@ adjudge_to_death:
+@@ -1939,7 +2003,7 @@ adjudge_to_death:
  	bh_lock_sock(sk);
  	WARN_ON(sock_owned_by_user(sk));
  
@@ -85632,7 +84402,7 @@
  
  	/* Have we already been destroyed by a softirq or backlog? */
  	if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE)
-@@ -1981,10 +2045,12 @@ adjudge_to_death:
+@@ -1980,10 +2044,12 @@ adjudge_to_death:
  	}
  	if (sk->sk_state != TCP_CLOSE) {
  		sk_mem_reclaim(sk);
@@ -85647,7 +84417,7 @@
  			tcp_set_state(sk, TCP_CLOSE);
  			tcp_send_active_reset(sk, GFP_ATOMIC);
  			NET_INC_STATS_BH(sock_net(sk),
-@@ -2061,6 +2127,7 @@ int tcp_disconnect(struct sock *sk, int flags)
+@@ -2060,6 +2126,7 @@ int tcp_disconnect(struct sock *sk, int
  	tp->snd_ssthresh = TCP_INFINITE_SSTHRESH;
  	tp->snd_cwnd_cnt = 0;
  	tp->bytes_acked = 0;
@@ -85655,7 +84425,7 @@
  	tcp_set_ca_state(sk, TCP_CA_Open);
  	tcp_clear_retrans(tp);
  	inet_csk_delack_init(sk);
-@@ -2888,10 +2955,11 @@ void __init tcp_init(void)
+@@ -2891,10 +2958,11 @@ void __init tcp_init(void)
  
  	percpu_counter_init(&tcp_sockets_allocated, 0);
  	percpu_counter_init(&tcp_orphan_count, 0);
@@ -85668,7 +84438,7 @@
  
  	/* Size and allocate the main established and bind bucket
  	 * hash tables.
-@@ -2952,6 +3020,11 @@ void __init tcp_init(void)
+@@ -2955,6 +3023,11 @@ void __init tcp_init(void)
  	sysctl_tcp_mem[1] = limit;
  	sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2;
  
@@ -85680,8 +84450,6 @@
  	/* Set per-socket limits to no more than 1/128 the pressure threshold */
  	limit = ((unsigned long)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7);
  	max_share = min(4UL*1024*1024, limit);
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index ce1ce82..506d87f 100644
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
 @@ -72,6 +72,8 @@
@@ -85693,7 +84461,7 @@
  int sysctl_tcp_timestamps __read_mostly = 1;
  int sysctl_tcp_window_scaling __read_mostly = 1;
  int sysctl_tcp_sack __read_mostly = 1;
-@@ -307,7 +309,7 @@ static void tcp_grow_window(struct sock *sk, struct sk_buff *skb)
+@@ -307,7 +309,7 @@ static void tcp_grow_window(struct sock
  	/* Check #1 */
  	if (tp->rcv_ssthresh < tp->window_clamp &&
  	    (int)tp->rcv_ssthresh < tcp_space(sk) &&
@@ -85702,7 +84470,7 @@
  		int incr;
  
  		/* Check #2. Increase window, if skb with such overhead
-@@ -377,6 +379,8 @@ static void tcp_init_buffer_space(struct sock *sk)
+@@ -377,6 +379,8 @@ static void tcp_init_buffer_space(struct
  
  	tp->rcv_ssthresh = min(tp->rcv_ssthresh, tp->window_clamp);
  	tp->snd_cwnd_stamp = tcp_time_stamp;
@@ -85711,7 +84479,7 @@
  }
  
  /* 5. Recalculate window clamp after socket hit its memory bounds. */
-@@ -389,7 +393,7 @@ static void tcp_clamp_window(struct sock *sk)
+@@ -389,7 +393,7 @@ static void tcp_clamp_window(struct sock
  
  	if (sk->sk_rcvbuf < sysctl_tcp_rmem[2] &&
  	    !(sk->sk_userlocks & SOCK_RCVBUF_LOCK) &&
@@ -85720,7 +84488,7 @@
  	    atomic_read(&tcp_memory_allocated) < sysctl_tcp_mem[0]) {
  		sk->sk_rcvbuf = min(atomic_read(&sk->sk_rmem_alloc),
  				    sysctl_tcp_rmem[2]);
-@@ -4270,19 +4274,19 @@ static void tcp_ofo_queue(struct sock *sk)
+@@ -4270,19 +4274,19 @@ static void tcp_ofo_queue(struct sock *s
  static int tcp_prune_ofo_queue(struct sock *sk);
  static int tcp_prune_queue(struct sock *sk);
  
@@ -85744,7 +84512,7 @@
  				return -1;
  		}
  	}
-@@ -4334,8 +4338,8 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
+@@ -4334,8 +4338,8 @@ static void tcp_data_queue(struct sock *
  		if (eaten <= 0) {
  queue_and_out:
  			if (eaten < 0 &&
@@ -85788,7 +84556,7 @@
  
  		skb_set_mac_header(nskb, skb_mac_header(skb) - skb->head);
  		skb_set_network_header(nskb, (skb_network_header(skb) -
-@@ -4719,7 +4733,7 @@ static int tcp_prune_queue(struct sock *sk)
+@@ -4719,7 +4733,7 @@ static int tcp_prune_queue(struct sock *
  
  	if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf)
  		tcp_clamp_window(sk);
@@ -85797,7 +84565,7 @@
  		tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U * tp->advmss);
  
  	tcp_collapse_ofo_queue(sk);
-@@ -4785,7 +4799,7 @@ static int tcp_should_expand_sndbuf(struct sock *sk)
+@@ -4785,7 +4799,7 @@ static int tcp_should_expand_sndbuf(stru
  		return 0;
  
  	/* If we are under global TCP memory pressure, do not expand.  */
@@ -85806,7 +84574,7 @@
  		return 0;
  
  	/* If we are under soft global TCP memory pressure, do not expand.  */
-@@ -5288,6 +5302,10 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb,
+@@ -5290,6 +5304,10 @@ int tcp_rcv_established(struct sock *sk,
  
  				if ((int)skb->truesize > sk->sk_forward_alloc)
  					goto step5;
@@ -85817,8 +84585,6 @@
  
  				NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPHPHITS);
  
-diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index 7cda24b..e360965 100644
 --- a/net/ipv4/tcp_ipv4.c
 +++ b/net/ipv4/tcp_ipv4.c
 @@ -73,6 +73,8 @@
@@ -85830,7 +84596,7 @@
  #include <linux/inet.h>
  #include <linux/ipv6.h>
  #include <linux/stddef.h>
-@@ -715,7 +717,8 @@ static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb)
+@@ -716,7 +718,8 @@ static void tcp_v4_timewait_ack(struct s
  	struct tcp_timewait_sock *tcptw = tcp_twsk(sk);
  
  	tcp_v4_send_ack(skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,
@@ -85840,7 +84606,7 @@
  			tcptw->tw_ts_recent,
  			tw->tw_bound_dev_if,
  			tcp_twsk_md5_key(tcptw),
-@@ -1194,6 +1197,7 @@ struct request_sock_ops tcp_request_sock_ops __read_mostly = {
+@@ -1196,6 +1199,7 @@ struct request_sock_ops tcp_request_sock
  	.destructor	=	tcp_v4_reqsk_destructor,
  	.send_reset	=	tcp_v4_send_reset,
  };
@@ -85848,7 +84614,7 @@
  
  #ifdef CONFIG_TCP_MD5SIG
  static const struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = {
-@@ -1495,6 +1499,10 @@ static __sum16 tcp_v4_checksum_init(struct sk_buff *skb)
+@@ -1499,6 +1503,10 @@ static __sum16 tcp_v4_checksum_init(stru
  int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
  {
  	struct sock *rsk;
@@ -85859,7 +84625,7 @@
  #ifdef CONFIG_TCP_MD5SIG
  	/*
  	 * We really want to reject the packet as early as possible
-@@ -1513,7 +1521,7 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1517,7 +1525,7 @@ int tcp_v4_do_rcv(struct sock *sk, struc
  			goto reset;
  		}
  		TCP_CHECK_TIMER(sk);
@@ -85868,7 +84634,7 @@
  	}
  
  	if (skb->len < tcp_hdrlen(skb) || tcp_checksum_complete(skb))
-@@ -1529,7 +1537,7 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1533,7 +1541,7 @@ int tcp_v4_do_rcv(struct sock *sk, struc
  				rsk = nsk;
  				goto reset;
  			}
@@ -85877,7 +84643,7 @@
  		}
  	}
  
-@@ -1539,6 +1547,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1543,6 +1551,9 @@ int tcp_v4_do_rcv(struct sock *sk, struc
  		goto reset;
  	}
  	TCP_CHECK_TIMER(sk);
@@ -85887,7 +84653,7 @@
  	return 0;
  
  reset:
-@@ -1550,7 +1561,7 @@ discard:
+@@ -1554,7 +1565,7 @@ discard:
  	 * might be destroyed here. This current version compiles correctly,
  	 * but you have been warned.
  	 */
@@ -85896,7 +84662,7 @@
  
  csum_err:
  	TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_INERRS);
-@@ -1812,6 +1823,8 @@ static int tcp_v4_init_sock(struct sock *sk)
+@@ -1818,6 +1829,8 @@ static int tcp_v4_init_sock(struct sock
  	tp->snd_cwnd_clamp = ~0;
  	tp->mss_cache = 536;
  
@@ -85905,7 +84671,7 @@
  	tp->reordering = sysctl_tcp_reordering;
  	icsk->icsk_ca_ops = &tcp_init_congestion_ops;
  
-@@ -1875,6 +1888,8 @@ void tcp_v4_destroy_sock(struct sock *sk)
+@@ -1881,6 +1894,8 @@ void tcp_v4_destroy_sock(struct sock *sk
  	 * If sendmsg cached page exists, toss it.
  	 */
  	if (sk->sk_sndmsg_page) {
@@ -85914,7 +84680,7 @@
  		__free_page(sk->sk_sndmsg_page);
  		sk->sk_sndmsg_page = NULL;
  	}
-@@ -1949,7 +1964,9 @@ get_req:
+@@ -1955,7 +1970,9 @@ get_req:
  	}
  get_sk:
  	sk_nulls_for_each_from(sk, node) {
@@ -85925,7 +84691,7 @@
  			cur = sk;
  			goto out;
  		}
-@@ -2478,6 +2495,93 @@ void __init tcp_v4_init(void)
+@@ -2484,6 +2501,93 @@ void __init tcp_v4_init(void)
  		panic("Failed to create the TCP control socket.\n");
  }
  
@@ -86019,8 +84785,6 @@
  EXPORT_SYMBOL(ipv4_specific);
  EXPORT_SYMBOL(tcp_hashinfo);
  EXPORT_SYMBOL(tcp_prot);
-diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
-index 4c03598..fecf8f0 100644
 --- a/net/ipv4/tcp_minisocks.c
 +++ b/net/ipv4/tcp_minisocks.c
 @@ -26,6 +26,9 @@
@@ -86033,7 +84797,7 @@
  #ifdef CONFIG_SYSCTL
  #define SYNC_INIT 0 /* let the user enable it */
  #else
-@@ -36,6 +39,11 @@ int sysctl_tcp_syncookies __read_mostly = SYNC_INIT;
+@@ -36,6 +39,11 @@ int sysctl_tcp_syncookies __read_mostly
  EXPORT_SYMBOL(sysctl_tcp_syncookies);
  
  int sysctl_tcp_abort_on_overflow __read_mostly;
@@ -86045,7 +84809,7 @@
  
  struct inet_timewait_death_row tcp_death_row = {
  	.sysctl_max_tw_buckets = NR_FILE * 2,
-@@ -51,6 +59,7 @@ struct inet_timewait_death_row tcp_death_row = {
+@@ -51,6 +59,7 @@ struct inet_timewait_death_row tcp_death
  	.twcal_hand	= -1,
  	.twcal_timer	= TIMER_INITIALIZER(inet_twdr_twcal_tick, 0,
  					    (unsigned long)&tcp_death_row),
@@ -86053,7 +84817,7 @@
  };
  
  EXPORT_SYMBOL_GPL(tcp_death_row);
-@@ -280,7 +289,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
+@@ -280,7 +289,8 @@ void tcp_time_wait(struct sock *sk, int
  	if (tcp_death_row.sysctl_tw_recycle && tp->rx_opt.ts_recent_stamp)
  		recycle_ok = icsk->icsk_af_ops->remember_stamp(sk);
  
@@ -86063,7 +84827,7 @@
  		tw = inet_twsk_alloc(sk, state);
  
  	if (tw != NULL) {
-@@ -293,6 +303,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
+@@ -293,6 +303,8 @@ void tcp_time_wait(struct sock *sk, int
  		tcptw->tw_rcv_wnd	= tcp_receive_window(tp);
  		tcptw->tw_ts_recent	= tp->rx_opt.ts_recent;
  		tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
@@ -86072,7 +84836,7 @@
  
  #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
  		if (tw->tw_family == PF_INET6) {
-@@ -327,6 +339,7 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
+@@ -327,6 +339,7 @@ void tcp_time_wait(struct sock *sk, int
  			}
  		} while (0);
  #endif
@@ -86080,7 +84844,7 @@
  
  		/* Linkage updates. */
  		__inet_twsk_hashdance(tw, sk, &tcp_hashinfo);
-@@ -347,11 +360,16 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
+@@ -347,11 +360,16 @@ void tcp_time_wait(struct sock *sk, int
  				   TCP_TIMEWAIT_LEN);
  		inet_twsk_put(tw);
  	} else {
@@ -86098,7 +84862,7 @@
  	}
  
  	tcp_update_metrics(sk);
-@@ -392,6 +410,8 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req,
+@@ -392,6 +410,8 @@ struct sock *tcp_create_openreq_child(st
  		struct tcp_sock *newtp;
  
  		/* Now setup tcp_sock */
@@ -86107,8 +84871,6 @@
  		newtp = tcp_sk(newsk);
  		newtp->pred_flags = 0;
  		newtp->rcv_wup = newtp->copied_seq = newtp->rcv_nxt = treq->rcv_isn + 1;
-diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index af83bdf..01b704f 100644
 --- a/net/ipv4/tcp_output.c
 +++ b/net/ipv4/tcp_output.c
 @@ -39,6 +39,9 @@
@@ -86121,7 +84883,7 @@
  /* People can turn this off for buggy TCP's found in printers etc. */
  int sysctl_tcp_retrans_collapse __read_mostly = 1;
  
-@@ -353,11 +356,6 @@ static void tcp_init_nondata_skb(struct sk_buff *skb, u32 seq, u8 flags)
+@@ -353,11 +356,6 @@ static void tcp_init_nondata_skb(struct
  	TCP_SKB_CB(skb)->end_seq = seq;
  }
  
@@ -86133,7 +84895,7 @@
  #define OPTION_SACK_ADVERTISE	(1 << 0)
  #define OPTION_TS		(1 << 1)
  #define OPTION_MD5		(1 << 2)
-@@ -598,6 +596,13 @@ static unsigned tcp_established_options(struct sock *sk, struct sk_buff *skb,
+@@ -598,6 +596,13 @@ static unsigned tcp_established_options(
  	return size;
  }
  
@@ -86147,7 +84909,7 @@
  /* This routine actually transmits TCP packets queued in by
   * tcp_do_sendmsg().  This is used by both the initial
   * transmission and possible later retransmissions.
-@@ -622,6 +627,7 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
+@@ -622,6 +627,7 @@ static int tcp_transmit_skb(struct sock
  	__u8 *md5_hash_location;
  	struct tcphdr *th;
  	int err;
@@ -86155,7 +84917,7 @@
  
  	BUG_ON(!skb || !tcp_skb_pcount(skb));
  
-@@ -652,6 +658,20 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
+@@ -652,6 +658,20 @@ static int tcp_transmit_skb(struct sock
  							   &md5);
  	tcp_header_size = tcp_options_size + sizeof(struct tcphdr);
  
@@ -86176,33 +84938,30 @@
  	if (tcp_packets_in_flight(tp) == 0)
  		tcp_ca_event(sk, CA_EVENT_TX_START);
  
-@@ -824,15 +844,21 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
- 	if (nsize < 0)
- 		nsize = 0;
- 
--	if (skb_cloned(skb) &&
--	    skb_is_nonlinear(skb) &&
--	    pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
--		return -ENOMEM;
-+	if (skb_cloned(skb) && skb_is_nonlinear(skb)) {
-+		if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
-+			return -ENOMEM;
-+		ub_skb_uncharge(skb);
-+		ub_tcpsndbuf_charge_forced(sk, skb);
-+	}
+@@ -829,11 +849,22 @@ int tcp_fragment(struct sock *sk, struct
+ 
+ 	if (skb_unclone(skb, GFP_ATOMIC))
+ 		return -ENOMEM;
++	/* XXX: OPENVZ patch used to do this in the case where the skb was
++	 * cloned:
++	 * ub_skb_uncharge(skb);
++	 * ub_tcpsndbuf_charge_forced(sk, skb);
++	 *
++	 * I assume it's no longer needed. -- Raphaël Hertzog
++	 */
  
  	/* Get a new skb... force flag on. */
  	buff = sk_stream_alloc_skb(sk, nsize, GFP_ATOMIC);
  	if (buff == NULL)
  		return -ENOMEM; /* We'll just try again later. */
 +	if (ub_tcpsndbuf_charge(sk, buff) < 0) {
-+		kfree_skb(buff);
-+		return -ENOMEM;
++	    kfree_skb(buff);
++	    return -ENOMEM;
 +	}
  
  	sk->sk_wmem_queued += buff->truesize;
  	sk_mem_charge(sk, buff->truesize);
-@@ -1299,6 +1325,11 @@ static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,
+@@ -1298,6 +1329,11 @@ static int tso_fragment(struct sock *sk,
  	if (unlikely(buff == NULL))
  		return -ENOMEM;
  
@@ -86214,7 +84973,7 @@
  	sk->sk_wmem_queued += buff->truesize;
  	sk_mem_charge(sk, buff->truesize);
  	buff->truesize += nlen;
-@@ -1728,7 +1759,7 @@ u32 __tcp_select_window(struct sock *sk)
+@@ -1730,7 +1766,7 @@ u32 __tcp_select_window(struct sock *sk)
  	if (free_space < (full_space >> 1)) {
  		icsk->icsk_ack.quick = 0;
  
@@ -86223,7 +84982,7 @@
  			tp->rcv_ssthresh = min(tp->rcv_ssthresh,
  					       4U * tp->advmss);
  
-@@ -2145,6 +2176,7 @@ void tcp_send_fin(struct sock *sk)
+@@ -2149,6 +2185,7 @@ void tcp_send_fin(struct sock *sk)
  				break;
  			yield();
  		}
@@ -86231,7 +84990,7 @@
  
  		/* Reserve space for headers and prepare control bits. */
  		skb_reserve(skb, MAX_TCP_HEADER);
-@@ -2204,6 +2236,10 @@ int tcp_send_synack(struct sock *sk)
+@@ -2208,6 +2245,10 @@ int tcp_send_synack(struct sock *sk)
  			struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC);
  			if (nskb == NULL)
  				return -ENOMEM;
@@ -86242,7 +85001,7 @@
  			tcp_unlink_write_queue(skb, sk);
  			skb_header_release(nskb);
  			__tcp_add_write_queue_head(sk, nskb);
-@@ -2313,6 +2349,7 @@ static void tcp_connect_init(struct sock *sk)
+@@ -2317,6 +2358,7 @@ static void tcp_connect_init(struct sock
  	struct dst_entry *dst = __sk_dst_get(sk);
  	struct tcp_sock *tp = tcp_sk(sk);
  	__u8 rcv_wscale;
@@ -86250,7 +85009,7 @@
  
  	/* We'll fix this up when we get a response from the other end.
  	 * See tcp_input.c:tcp_rcv_state_process case TCP_SYN_SENT.
-@@ -2332,11 +2369,25 @@ static void tcp_connect_init(struct sock *sk)
+@@ -2336,11 +2378,25 @@ static void tcp_connect_init(struct sock
  	tcp_mtup_init(sk);
  	tcp_sync_mss(sk, dst_mtu(dst));
  
@@ -86276,7 +85035,7 @@
  
  	tcp_initialize_rcv_mss(sk);
  
-@@ -2377,6 +2428,10 @@ int tcp_connect(struct sock *sk)
+@@ -2381,6 +2437,10 @@ int tcp_connect(struct sock *sk)
  	buff = alloc_skb_fclone(MAX_TCP_HEADER + 15, sk->sk_allocation);
  	if (unlikely(buff == NULL))
  		return -ENOBUFS;
@@ -86287,8 +85046,6 @@
  
  	/* Reserve space for headers. */
  	skb_reserve(buff, MAX_TCP_HEADER);
-diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
-index 57d5501..896f0f4 100644
 --- a/net/ipv4/tcp_timer.c
 +++ b/net/ipv4/tcp_timer.c
 @@ -20,6 +20,8 @@
@@ -86300,7 +85057,7 @@
  
  int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
  int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
-@@ -76,7 +78,7 @@ static int tcp_out_of_resources(struct sock *sk, int do_reset)
+@@ -76,7 +78,7 @@ static int tcp_out_of_resources(struct s
  	if (sk->sk_err_soft)
  		shift++;
  
@@ -86309,7 +85066,7 @@
  		if (net_ratelimit())
  			printk(KERN_INFO "Out of socket memory\n");
  
-@@ -177,6 +179,9 @@ static void tcp_delack_timer(unsigned long data)
+@@ -177,6 +179,9 @@ static void tcp_delack_timer(unsigned lo
  	struct sock *sk = (struct sock *)data;
  	struct tcp_sock *tp = tcp_sk(sk);
  	struct inet_connection_sock *icsk = inet_csk(sk);
@@ -86328,7 +85085,7 @@
  }
  
  static void tcp_probe_timer(struct sock *sk)
-@@ -238,10 +245,13 @@ static void tcp_probe_timer(struct sock *sk)
+@@ -238,10 +245,13 @@ static void tcp_probe_timer(struct sock
  	struct inet_connection_sock *icsk = inet_csk(sk);
  	struct tcp_sock *tp = tcp_sk(sk);
  	int max_probes;
@@ -86343,7 +85100,7 @@
  	}
  
  	/* *WARNING* RFC 1122 forbids this
-@@ -267,7 +277,7 @@ static void tcp_probe_timer(struct sock *sk)
+@@ -267,7 +277,7 @@ static void tcp_probe_timer(struct sock
  		max_probes = tcp_orphan_retries(sk, alive);
  
  		if (tcp_out_of_resources(sk, alive || icsk->icsk_probes_out <= max_probes))
@@ -86352,7 +85109,7 @@
  	}
  
  	if (icsk->icsk_probes_out > max_probes) {
-@@ -276,6 +286,9 @@ static void tcp_probe_timer(struct sock *sk)
+@@ -276,6 +286,9 @@ static void tcp_probe_timer(struct sock
  		/* Only send another probe if we didn't close things up. */
  		tcp_send_probe0(sk);
  	}
@@ -86362,7 +85119,7 @@
  }
  
  /*
-@@ -286,6 +299,9 @@ void tcp_retransmit_timer(struct sock *sk)
+@@ -286,6 +299,9 @@ void tcp_retransmit_timer(struct sock *s
  {
  	struct tcp_sock *tp = tcp_sk(sk);
  	struct inet_connection_sock *icsk = inet_csk(sk);
@@ -86382,7 +85139,7 @@
  }
  
  static void tcp_write_timer(unsigned long data)
-@@ -399,6 +416,9 @@ static void tcp_write_timer(unsigned long data)
+@@ -399,6 +416,9 @@ static void tcp_write_timer(unsigned lon
  	struct sock *sk = (struct sock *)data;
  	struct inet_connection_sock *icsk = inet_csk(sk);
  	int event;
@@ -86401,7 +85158,7 @@
  }
  
  /*
-@@ -463,6 +485,9 @@ static void tcp_keepalive_timer (unsigned long data)
+@@ -463,6 +485,9 @@ static void tcp_keepalive_timer (unsigne
  	struct inet_connection_sock *icsk = inet_csk(sk);
  	struct tcp_sock *tp = tcp_sk(sk);
  	__u32 elapsed;
@@ -86417,11 +85174,9 @@
  	sock_put(sk);
 +	(void)set_exec_env(ve);
  }
-diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
-index 31db78c..39c9bba 100644
 --- a/net/ipv4/udp.c
 +++ b/net/ipv4/udp.c
-@@ -138,6 +138,7 @@ static int udp_lib_lport_inuse(struct net *net, __u16 num,
+@@ -138,6 +138,7 @@ static int udp_lib_lport_inuse(struct ne
  		    sk2 != sk					&&
  		    (bitmap || sk2->sk_hash == num)		&&
  		    (!sk2->sk_reuse || !sk->sk_reuse)		&&
@@ -86429,11 +85184,9 @@
  		    (!sk2->sk_bound_dev_if || !sk->sk_bound_dev_if
  			|| sk2->sk_bound_dev_if == sk->sk_bound_dev_if) &&
  		    (*saddr_comp)(sk, sk2)) {
-diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index d1f77cc..7fc4efd 100644
 --- a/net/ipv6/addrconf.c
 +++ b/net/ipv6/addrconf.c
-@@ -626,7 +625,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,
+@@ -621,7 +621,7 @@ ipv6_add_addr(struct inet6_dev *idev, co
  		goto out;
  	}
  
@@ -86442,7 +85195,7 @@
  
  	if (ifa == NULL) {
  		ADBG(("ipv6_add_addr: malloc failed\n"));
-@@ -2085,7 +2084,7 @@ err_exit:
+@@ -2080,7 +2080,7 @@ err_exit:
  /*
   *	Manual configuration of address on an interface
   */
@@ -86451,7 +85204,7 @@
  			  unsigned int plen, __u8 ifa_flags, __u32 prefered_lft,
  			  __u32 valid_lft)
  {
-@@ -2157,6 +2156,7 @@ static int inet6_addr_add(struct net *net, int ifindex, struct in6_addr *pfx,
+@@ -2152,6 +2152,7 @@ static int inet6_addr_add(struct net *ne
  
  	return PTR_ERR(ifp);
  }
@@ -86459,7 +85212,7 @@
  
  static int inet6_addr_del(struct net *net, int ifindex, struct in6_addr *pfx,
  			  unsigned int plen)
-@@ -2188,7 +2188,8 @@ static int inet6_addr_del(struct net *net, int ifindex, struct in6_addr *pfx,
+@@ -2183,7 +2184,8 @@ static int inet6_addr_del(struct net *ne
  			   disable IPv6 on this interface.
  			 */
  			if (idev->addr_list == NULL)
@@ -86469,7 +85222,7 @@
  			return 0;
  		}
  	}
-@@ -2202,7 +2203,7 @@ int addrconf_add_ifaddr(struct net *net, void __user *arg)
+@@ -2197,7 +2199,7 @@ int addrconf_add_ifaddr(struct net *net,
  	struct in6_ifreq ireq;
  	int err;
  
@@ -86478,7 +85231,7 @@
  		return -EPERM;
  
  	if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq)))
-@@ -2221,7 +2222,7 @@ int addrconf_del_ifaddr(struct net *net, void __user *arg)
+@@ -2216,7 +2218,7 @@ int addrconf_del_ifaddr(struct net *net,
  	struct in6_ifreq ireq;
  	int err;
  
@@ -86487,7 +85240,7 @@
  		return -EPERM;
  
  	if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq)))
-@@ -2731,6 +2732,9 @@ static int addrconf_ifdown(struct net_device *dev, int how)
+@@ -2726,6 +2728,9 @@ static int addrconf_ifdown(struct net_de
  static void addrconf_rs_timer(unsigned long data)
  {
  	struct inet6_ifaddr *ifp = (struct inet6_ifaddr *) data;
@@ -86497,7 +85250,7 @@
  
  	if (ifp->idev->cnf.forwarding)
  		goto out;
-@@ -2765,6 +2769,7 @@ static void addrconf_rs_timer(unsigned long data)
+@@ -2760,6 +2765,7 @@ static void addrconf_rs_timer(unsigned l
  
  out:
  	in6_ifa_put(ifp);
@@ -86505,7 +85258,7 @@
  }
  
  /*
-@@ -2801,6 +2806,7 @@ static void addrconf_dad_start(struct inet6_ifaddr *ifp, u32 flags)
+@@ -2796,6 +2802,7 @@ static void addrconf_dad_start(struct in
  	if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) ||
  	    idev->cnf.accept_dad < 1 ||
  	    !(ifp->flags&IFA_F_TENTATIVE) ||
@@ -86513,7 +85266,7 @@
  	    ifp->flags & IFA_F_NODAD) {
  		ifp->flags &= ~(IFA_F_TENTATIVE|IFA_F_OPTIMISTIC|IFA_F_DADFAILED);
  		spin_unlock_bh(&ifp->lock);
-@@ -2841,7 +2847,9 @@ static void addrconf_dad_timer(unsigned long data)
+@@ -2836,7 +2843,9 @@ static void addrconf_dad_timer(unsigned
  	struct inet6_ifaddr *ifp = (struct inet6_ifaddr *) data;
  	struct inet6_dev *idev = ifp->idev;
  	struct in6_addr mcaddr;
@@ -86523,7 +85276,7 @@
  	read_lock_bh(&idev->lock);
  	if (idev->dead) {
  		read_unlock_bh(&idev->lock);
-@@ -2872,6 +2880,7 @@ static void addrconf_dad_timer(unsigned long data)
+@@ -2867,6 +2876,7 @@ static void addrconf_dad_timer(unsigned
  	ndisc_send_ns(ifp->idev->dev, NULL, &ifp->addr, &mcaddr, &in6addr_any);
  out:
  	in6_ifa_put(ifp);
@@ -86531,7 +85284,7 @@
  }
  
  static void addrconf_dad_completed(struct inet6_ifaddr *ifp)
-@@ -3093,6 +3102,7 @@ static void addrconf_verify(unsigned long foo)
+@@ -3088,6 +3098,7 @@ static void addrconf_verify(unsigned lon
  	struct inet6_ifaddr *ifp;
  	unsigned long now, next;
  	int i;
@@ -86539,7 +85292,7 @@
  
  	spin_lock_bh(&addrconf_verify_lock);
  	now = jiffies;
-@@ -3113,6 +3123,8 @@ restart:
+@@ -3108,6 +3119,8 @@ restart:
  			if (ifp->flags & IFA_F_PERMANENT)
  				continue;
  
@@ -86548,7 +85301,7 @@
  			spin_lock(&ifp->lock);
  			age = (now - ifp->tstamp) / HZ;
  
-@@ -3128,9 +3140,11 @@ restart:
+@@ -3123,9 +3136,11 @@ restart:
  				in6_ifa_hold(ifp);
  				read_unlock(&addrconf_hash_lock);
  				ipv6_del_addr(ifp);
@@ -86560,7 +85313,7 @@
  				continue;
  			} else if (age >= ifp->prefered_lft) {
  				/* jiffies - ifp->tstamp > age >= ifp->prefered_lft */
-@@ -3152,6 +3166,7 @@ restart:
+@@ -3147,6 +3162,7 @@ restart:
  
  					ipv6_ifa_notify(0, ifp);
  					in6_ifa_put(ifp);
@@ -86568,7 +85321,7 @@
  					goto restart;
  				}
  #ifdef CONFIG_IPV6_PRIVACY
-@@ -3173,6 +3188,7 @@ restart:
+@@ -3168,6 +3184,7 @@ restart:
  						ipv6_create_tempaddr(ifpub, ifp);
  						in6_ifa_put(ifpub);
  						in6_ifa_put(ifp);
@@ -86576,7 +85329,7 @@
  						goto restart;
  					}
  				} else if (time_before(ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ, next))
-@@ -3185,6 +3201,7 @@ restart:
+@@ -3180,6 +3197,7 @@ restart:
  					next = ifp->tstamp + ifp->prefered_lft * HZ;
  				spin_unlock(&ifp->lock);
  			}
@@ -86584,8 +85337,6 @@
  		}
  		read_unlock(&addrconf_hash_lock);
  	}
-diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
-index e127a32..6a7d270 100644
 --- a/net/ipv6/af_inet6.c
 +++ b/net/ipv6/af_inet6.c
 @@ -57,6 +57,10 @@
@@ -86634,11 +85385,9 @@
  }
  
  
-diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
-index 0e93ca5..faa5d81 100644
 --- a/net/ipv6/ip6_fib.c
 +++ b/net/ipv6/ip6_fib.c
-@@ -176,11 +176,9 @@ static void fib6_link_table(struct net *net, struct fib6_table *tb)
+@@ -176,11 +176,9 @@ static void fib6_link_table(struct net *
  
  	h = tb->tb6_id & (FIB6_TABLE_HASHSZ - 1);
  
@@ -86652,7 +85401,7 @@
  }
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
-@@ -1365,10 +1363,14 @@ void fib6_clean_all(struct net *net, int (*func)(struct rt6_info *, void *arg),
+@@ -1373,10 +1371,14 @@ void fib6_clean_all(struct net *net, int
  	for (h = 0; h < FIB6_TABLE_HASHSZ; h++) {
  		head = &net->ipv6.fib_table_hash[h];
  		hlist_for_each_entry_rcu(table, node, head, tb6_hlist) {
@@ -86667,7 +85416,7 @@
  		}
  	}
  	rcu_read_unlock();
-@@ -1488,6 +1490,9 @@ static int fib6_net_init(struct net *net)
+@@ -1496,6 +1498,9 @@ static int fib6_net_init(struct net *net
  	if (!net->ipv6.fib6_main_tbl)
  		goto out_fib_table_hash;
  
@@ -86677,7 +85426,7 @@
  	net->ipv6.fib6_main_tbl->tb6_id = RT6_TABLE_MAIN;
  	net->ipv6.fib6_main_tbl->tb6_root.leaf = net->ipv6.ip6_null_entry;
  	net->ipv6.fib6_main_tbl->tb6_root.fn_flags =
-@@ -1498,6 +1503,10 @@ static int fib6_net_init(struct net *net)
+@@ -1506,6 +1511,10 @@ static int fib6_net_init(struct net *net
  					   GFP_KERNEL);
  	if (!net->ipv6.fib6_local_tbl)
  		goto out_fib6_main_tbl;
@@ -86688,7 +85437,7 @@
  	net->ipv6.fib6_local_tbl->tb6_id = RT6_TABLE_LOCAL;
  	net->ipv6.fib6_local_tbl->tb6_root.leaf = net->ipv6.ip6_null_entry;
  	net->ipv6.fib6_local_tbl->tb6_root.fn_flags =
-@@ -1543,7 +1552,7 @@ int __init fib6_init(void)
+@@ -1551,7 +1560,7 @@ int __init fib6_init(void)
  
  	fib6_node_kmem = kmem_cache_create("fib6_nodes",
  					   sizeof(struct fib6_node),
@@ -86697,8 +85446,6 @@
  					   NULL);
  	if (!fib6_node_kmem)
  		goto out;
-diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
-index eca3ef7..7cc246d 100644
 --- a/net/ipv6/ip6_output.c
 +++ b/net/ipv6/ip6_output.c
 @@ -522,6 +522,20 @@ int ip6_forward(struct sk_buff *skb)
@@ -86730,11 +85477,9 @@
  	IP6_INC_STATS_BH(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS);
  	return NF_HOOK(PF_INET6, NF_INET_FORWARD, skb, skb->dev, dst->dev,
  		       ip6_forward_finish);
-diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
-index f9fcf69..dfea20f 100644
 --- a/net/ipv6/mcast.c
 +++ b/net/ipv6/mcast.c
-@@ -243,6 +243,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
+@@ -243,6 +243,7 @@ int ipv6_sock_mc_join(struct sock *sk, i
  
  	return 0;
  }
@@ -86742,7 +85487,7 @@
  
  /*
   *	socket leave on multicast group
-@@ -2205,15 +2206,18 @@ static void igmp6_leave_group(struct ifmcaddr6 *ma)
+@@ -2205,15 +2206,18 @@ static void igmp6_leave_group(struct ifm
  static void mld_gq_timer_expire(unsigned long data)
  {
  	struct inet6_dev *idev = (struct inet6_dev *)data;
@@ -86750,7 +85495,7 @@
  
  	idev->mc_gq_running = 0;
  	mld_send_report(idev, NULL);
- 	__in6_dev_put(idev);
+ 	in6_dev_put(idev);
 +	set_exec_env(old_env);
  }
  
@@ -86761,15 +85506,15 @@
  
  	mld_send_cr(idev);
  	if (idev->mc_ifc_count) {
-@@ -2222,6 +2226,7 @@ static void mld_ifc_timer_expire(unsigned long data)
+@@ -2222,6 +2226,7 @@ static void mld_ifc_timer_expire(unsigne
  			mld_ifc_start_timer(idev, idev->mc_maxdelay);
  	}
- 	__in6_dev_put(idev);
+ 	in6_dev_put(idev);
 +	set_exec_env(old_env);
  }
  
  static void mld_ifc_event(struct inet6_dev *idev)
-@@ -2236,6 +2241,7 @@ static void mld_ifc_event(struct inet6_dev *idev)
+@@ -2236,6 +2241,7 @@ static void mld_ifc_event(struct inet6_d
  static void igmp6_timer_handler(unsigned long data)
  {
  	struct ifmcaddr6 *ma = (struct ifmcaddr6 *) data;
@@ -86777,7 +85522,7 @@
  
  	if (MLD_V1_SEEN(ma->idev))
  		igmp6_send(&ma->mca_addr, ma->idev->dev, ICMPV6_MGM_REPORT);
-@@ -2247,6 +2253,7 @@ static void igmp6_timer_handler(unsigned long data)
+@@ -2247,6 +2253,7 @@ static void igmp6_timer_handler(unsigned
  	ma->mca_flags &= ~MAF_TIMER_RUNNING;
  	spin_unlock(&ma->mca_lock);
  	ma_put(ma);
@@ -86785,8 +85530,6 @@
  }
  
  /* Device changing type */
-diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c
-index 1cf3f0c..791bc00 100644
 --- a/net/ipv6/netfilter/ip6_queue.c
 +++ b/net/ipv6/netfilter/ip6_queue.c
 @@ -439,7 +439,7 @@ __ipq_rcv_skb(struct sk_buff *skb)
@@ -86811,7 +85554,7 @@
  	mutex_unlock(&ipqnl_mutex);
  }
  
-@@ -480,9 +484,6 @@ ipq_rcv_dev_event(struct notifier_block *this,
+@@ -480,9 +484,6 @@ ipq_rcv_dev_event(struct notifier_block
  {
  	struct net_device *dev = ptr;
  
@@ -86821,7 +85564,7 @@
  	/* Drop any packets associated with the downed device */
  	if (event == NETDEV_DOWN)
  		ipq_dev_drop(dev->ifindex);
-@@ -502,7 +503,7 @@ ipq_rcv_nl_event(struct notifier_block *this,
+@@ -502,7 +503,7 @@ ipq_rcv_nl_event(struct notifier_block *
  	if (event == NETLINK_URELEASE &&
  	    n->protocol == NETLINK_IP6_FW && n->pid) {
  		write_lock_bh(&queue_lock);
@@ -86830,8 +85573,6 @@
  			__ipq_reset();
  		write_unlock_bh(&queue_lock);
  	}
-diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
-index 1de56fd..9355bb8 100644
 --- a/net/ipv6/netfilter/ip6_tables.c
 +++ b/net/ipv6/netfilter/ip6_tables.c
 @@ -351,6 +351,9 @@ ip6t_do_table(struct sk_buff *skb,
@@ -86844,7 +85585,7 @@
  	/* Initialization */
  	indev = in ? in->name : nulldevname;
  	outdev = out ? out->name : nulldevname;
-@@ -1896,7 +1899,7 @@ compat_do_ip6t_set_ctl(struct sock *sk, int cmd, void __user *user,
+@@ -1898,7 +1901,7 @@ compat_do_ip6t_set_ctl(struct sock *sk,
  {
  	int ret;
  
@@ -86853,7 +85594,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2007,7 +2010,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -2009,7 +2012,7 @@ compat_do_ip6t_get_ctl(struct sock *sk,
  {
  	int ret;
  
@@ -86862,7 +85603,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2029,7 +2032,7 @@ do_ip6t_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len)
+@@ -2031,7 +2034,7 @@ do_ip6t_set_ctl(struct sock *sk, int cmd
  {
  	int ret;
  
@@ -86871,7 +85612,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2054,7 +2057,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -2056,7 +2059,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd
  {
  	int ret;
  
@@ -86880,7 +85621,7 @@
  		return -EPERM;
  
  	switch (cmd) {
-@@ -2107,7 +2110,7 @@ struct xt_table *ip6t_register_table(struct net *net,
+@@ -2110,7 +2113,7 @@ struct xt_table *ip6t_register_table(str
  	int ret;
  	struct xt_table_info *newinfo;
  	struct xt_table_info bootstrap
@@ -86889,7 +85630,7 @@
  	void *loc_cpu_entry;
  	struct xt_table *new_table;
  
-@@ -2252,11 +2255,22 @@ static struct xt_match icmp6_matchstruct __read_mostly = {
+@@ -2255,11 +2258,22 @@ static struct xt_match icmp6_matchstruct
  
  static int __net_init ip6_tables_net_init(struct net *net)
  {
@@ -86913,11 +85654,9 @@
  	xt_proto_fini(net, NFPROTO_IPV6);
  }
  
-diff --git a/net/ipv6/netfilter/ip6t_LOG.c b/net/ipv6/netfilter/ip6t_LOG.c
-index 7018cac..8624c50 100644
 --- a/net/ipv6/netfilter/ip6t_LOG.c
 +++ b/net/ipv6/netfilter/ip6t_LOG.c
-@@ -56,15 +56,15 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -56,15 +56,15 @@ static void dump_packet(const struct nf_
  
  	ih = skb_header_pointer(skb, ip6hoff, sizeof(_ip6h), &_ip6h);
  	if (ih == NULL) {
@@ -86936,7 +85675,7 @@
  	       ntohs(ih->payload_len) + sizeof(struct ipv6hdr),
  	       (ntohl(*(__be32 *)ih) & 0x0ff00000) >> 20,
  	       ih->hop_limit,
-@@ -79,35 +79,35 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -79,35 +79,35 @@ static void dump_packet(const struct nf_
  
  		hp = skb_header_pointer(skb, ptr, sizeof(_hdr), &_hdr);
  		if (hp == NULL) {
@@ -86979,7 +85718,7 @@
  
  			if (ntohs(fh->frag_off) & 0xFFF8)
  				fragment = 1;
-@@ -121,7 +121,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -121,7 +121,7 @@ static void dump_packet(const struct nf_
  		case IPPROTO_HOPOPTS:
  			if (fragment) {
  				if (logflags & IP6T_LOG_IPOPT)
@@ -86988,7 +85727,7 @@
  				return;
  			}
  			hdrlen = ipv6_optlen(hp);
-@@ -133,10 +133,10 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -133,10 +133,10 @@ static void dump_packet(const struct nf_
  				const struct ip_auth_hdr *ah;
  
  				/* Max length: 3 "AH " */
@@ -87001,7 +85740,7 @@
  					return;
  				}
  
-@@ -147,13 +147,13 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -147,13 +147,13 @@ static void dump_packet(const struct nf_
  					 * Max length: 26 "INCOMPLETE [65535
  					 *  bytes] )"
  					 */
@@ -87017,7 +85756,7 @@
  
  			}
  
-@@ -165,10 +165,10 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -165,10 +165,10 @@ static void dump_packet(const struct nf_
  				const struct ip_esp_hdr *eh;
  
  				/* Max length: 4 "ESP " */
@@ -87030,7 +85769,7 @@
  					return;
  				}
  
-@@ -178,23 +178,23 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -178,23 +178,23 @@ static void dump_packet(const struct nf_
  				eh = skb_header_pointer(skb, ptr, sizeof(_esph),
  							&_esph);
  				if (eh == NULL) {
@@ -87058,7 +85797,7 @@
  
  		currenthdr = hp->nexthdr;
  		ptr += hdrlen;
-@@ -206,7 +206,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -206,7 +206,7 @@ static void dump_packet(const struct nf_
  		const struct tcphdr *th;
  
  		/* Max length: 10 "PROTO=TCP " */
@@ -87067,7 +85806,7 @@
  
  		if (fragment)
  			break;
-@@ -214,40 +214,40 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -214,40 +214,40 @@ static void dump_packet(const struct nf_
  		/* Max length: 25 "INCOMPLETE [65535 bytes] " */
  		th = skb_header_pointer(skb, ptr, sizeof(_tcph), &_tcph);
  		if (th == NULL) {
@@ -87122,7 +85861,7 @@
  
  		if ((logflags & IP6T_LOG_TCPOPT)
  		    && th->doff * 4 > sizeof(struct tcphdr)) {
-@@ -261,15 +261,15 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -261,15 +261,15 @@ static void dump_packet(const struct nf_
  						ptr + sizeof(struct tcphdr),
  						optsize, _opt);
  			if (op == NULL) {
@@ -87142,7 +85881,7 @@
  		}
  		break;
  	}
-@@ -280,9 +280,9 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -280,9 +280,9 @@ static void dump_packet(const struct nf_
  
  		if (currenthdr == IPPROTO_UDP)
  			/* Max length: 10 "PROTO=UDP "     */
@@ -87154,7 +85893,7 @@
  
  		if (fragment)
  			break;
-@@ -290,12 +290,12 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -290,12 +290,12 @@ static void dump_packet(const struct nf_
  		/* Max length: 25 "INCOMPLETE [65535 bytes] " */
  		uh = skb_header_pointer(skb, ptr, sizeof(_udph), &_udph);
  		if (uh == NULL) {
@@ -87169,7 +85908,7 @@
  		       ntohs(uh->source), ntohs(uh->dest),
  		       ntohs(uh->len));
  		break;
-@@ -305,7 +305,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -305,7 +305,7 @@ static void dump_packet(const struct nf_
  		const struct icmp6hdr *ic;
  
  		/* Max length: 13 "PROTO=ICMPv6 " */
@@ -87178,7 +85917,7 @@
  
  		if (fragment)
  			break;
-@@ -313,18 +313,18 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -313,18 +313,18 @@ static void dump_packet(const struct nf_
  		/* Max length: 25 "INCOMPLETE [65535 bytes] " */
  		ic = skb_header_pointer(skb, ptr, sizeof(_icmp6h), &_icmp6h);
  		if (ic == NULL) {
@@ -87200,7 +85939,7 @@
  				ntohs(ic->icmp6_identifier),
  				ntohs(ic->icmp6_sequence));
  			break;
-@@ -335,35 +335,35 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -335,35 +335,35 @@ static void dump_packet(const struct nf_
  
  		case ICMPV6_PARAMPROB:
  			/* Max length: 17 "POINTER=ffffffff " */
@@ -87242,7 +85981,7 @@
  				skb->sk->sk_socket->file->f_cred->fsuid,
  				skb->sk->sk_socket->file->f_cred->fsgid);
  		read_unlock_bh(&skb->sk->sk_callback_lock);
-@@ -371,7 +371,7 @@ static void dump_packet(const struct nf_loginfo *info,
+@@ -371,7 +371,7 @@ static void dump_packet(const struct nf_
  
  	/* Max length: 16 "MARK=0xFFFFFFFF " */
  	if (!recurse && skb->mark)
@@ -87297,8 +86036,6 @@
  	spin_unlock_bh(&log_lock);
  }
  
-diff --git a/net/ipv6/netfilter/ip6table_filter.c b/net/ipv6/netfilter/ip6table_filter.c
-index 6f4383a..6b9dc0b 100644
 --- a/net/ipv6/netfilter/ip6table_filter.c
 +++ b/net/ipv6/netfilter/ip6table_filter.c
 @@ -121,16 +121,24 @@ module_param(forward, bool, 0000);
@@ -87326,11 +86063,9 @@
  	ip6t_unregister_table(net->ipv6.ip6table_filter);
  }
  
-diff --git a/net/ipv6/netfilter/ip6table_mangle.c b/net/ipv6/netfilter/ip6table_mangle.c
-index 0ad9143..7960d5e 100644
 --- a/net/ipv6/netfilter/ip6table_mangle.c
 +++ b/net/ipv6/netfilter/ip6table_mangle.c
-@@ -172,16 +172,24 @@ static struct nf_hook_ops ip6t_ops[] __read_mostly = {
+@@ -172,16 +172,24 @@ static struct nf_hook_ops ip6t_ops[] __r
  
  static int __net_init ip6table_mangle_net_init(struct net *net)
  {
@@ -87355,11 +86090,9 @@
  	ip6t_unregister_table(net->ipv6.ip6table_mangle);
  }
  
-diff --git a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
-index 0956eba..3690afe 100644
 --- a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
 +++ b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
-@@ -210,12 +210,13 @@ static unsigned int ipv6_defrag(unsigned int hooknum,
+@@ -210,12 +210,13 @@ static unsigned int ipv6_defrag(unsigned
  				int (*okfn)(struct sk_buff *))
  {
  	struct sk_buff *reasm;
@@ -87374,11 +86107,9 @@
  	/* queued */
  	if (reasm == NULL)
  		return NF_STOLEN;
-diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
-index bfc8737..3ce6b2c 100644
 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
-@@ -118,11 +118,12 @@ static void nf_skb_free(struct sk_buff *skb)
+@@ -118,11 +118,12 @@ static void nf_skb_free(struct sk_buff *
  }
  
  /* Memory Tracking Functions. */
@@ -87393,7 +86124,7 @@
  	nf_skb_free(skb);
  	kfree_skb(skb);
  }
-@@ -142,10 +143,10 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq)
+@@ -142,10 +143,10 @@ static __inline__ void fq_kill(struct nf
  	inet_frag_kill(&fq->q, &nf_frags);
  }
  
@@ -87415,7 +86146,7 @@
  {
  	struct inet_frag_queue *q;
  	struct ip6_create_arg arg;
-@@ -185,7 +186,7 @@ fq_find(__be32 id, u32 user, struct in6_addr *src, struct in6_addr *dst)
+@@ -185,7 +186,7 @@ fq_find(__be32 id, u32 user, struct in6_
  	read_lock_bh(&nf_frags.lock);
  	hash = inet6_hash_frag(id, src, dst, nf_frags.rnd);
  
@@ -87434,7 +86165,7 @@
  			     const struct frag_hdr *fhdr, int nhoff)
  {
  	struct sk_buff *prev, *next;
-@@ -339,7 +341,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
+@@ -339,7 +341,7 @@ static int nf_ct_frag6_queue(struct nf_c
  				fq->q.fragments = next;
  
  			fq->q.meat -= free_it->len;
@@ -87443,7 +86174,7 @@
  		}
  	}
  
-@@ -355,7 +357,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
+@@ -355,7 +357,7 @@ static int nf_ct_frag6_queue(struct nf_c
  	skb->dev = NULL;
  	fq->q.stamp = skb->tstamp;
  	fq->q.meat += skb->len;
@@ -87452,7 +86183,7 @@
  
  	/* The first fragment.
  	 * nhoffset is obtained from the first fragment, of course.
-@@ -365,7 +367,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
+@@ -365,7 +367,7 @@ static int nf_ct_frag6_queue(struct nf_c
  		fq->q.last_in |= INET_FRAG_FIRST_IN;
  	}
  	write_lock(&nf_frags.lock);
@@ -87471,7 +86202,7 @@
  {
  	struct sk_buff *fp, *op, *head = fq->q.fragments;
  	int    payload_len;
-@@ -432,7 +435,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)
+@@ -432,7 +435,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_que
  		clone->ip_summed = head->ip_summed;
  
  		NFCT_FRAG6_CB(clone)->orig = NULL;
@@ -87480,7 +86211,7 @@
  	}
  
  	/* We have to remove fragment header from datagram and to relocate
-@@ -446,7 +449,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)
+@@ -446,7 +449,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_que
  	skb_shinfo(head)->frag_list = head->next;
  	skb_reset_transport_header(head);
  	skb_push(head, head->data - skb_network_header(head));
@@ -87489,7 +86220,7 @@
  
  	for (fp=head->next; fp; fp = fp->next) {
  		head->data_len += fp->len;
-@@ -456,7 +459,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)
+@@ -456,7 +459,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_que
  		else if (head->ip_summed == CHECKSUM_COMPLETE)
  			head->csum = csum_add(head->csum, fp->csum);
  		head->truesize += fp->truesize;
@@ -87498,7 +86229,7 @@
  	}
  
  	head->next = NULL;
-@@ -563,7 +566,7 @@ find_prev_fhdr(struct sk_buff *skb, u8 *prevhdrp, int *prevhoff, int *fhoff)
+@@ -563,7 +566,7 @@ find_prev_fhdr(struct sk_buff *skb, u8 *
  	return 0;
  }
  
@@ -87507,7 +86238,7 @@
  {
  	struct sk_buff *clone;
  	struct net_device *dev = skb->dev;
-@@ -606,10 +609,11 @@ struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user)
+@@ -600,10 +603,11 @@ struct sk_buff *nf_ct_frag6_gather(struc
  	hdr = ipv6_hdr(clone);
  	fhdr = (struct frag_hdr *)skb_transport_header(clone);
  
@@ -87522,7 +86253,7 @@
  	if (fq == NULL) {
  		pr_debug("Can't find and can't create new queue\n");
  		goto ret_orig;
-@@ -617,7 +621,7 @@ struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user)
+@@ -611,7 +615,7 @@ struct sk_buff *nf_ct_frag6_gather(struc
  
  	spin_lock_bh(&fq->q.lock);
  
@@ -87531,7 +86262,7 @@
  		spin_unlock_bh(&fq->q.lock);
  		pr_debug("Can't insert skb to queue\n");
  		fq_put(fq);
-@@ -626,7 +630,7 @@ struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user)
+@@ -620,7 +624,7 @@ struct sk_buff *nf_ct_frag6_gather(struc
  
  	if (fq->q.last_in == (INET_FRAG_FIRST_IN | INET_FRAG_LAST_IN) &&
  	    fq->q.meat == fq->q.len) {
@@ -87540,7 +86271,7 @@
  		if (ret_skb == NULL)
  			pr_debug("Can't reassemble fragmented packets\n");
  	}
-@@ -661,8 +665,32 @@ void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
+@@ -655,8 +659,32 @@ void nf_ct_frag6_output(unsigned int hoo
  	nf_conntrack_put_reasm(skb);
  }
  
@@ -87573,7 +86304,7 @@
  	nf_frags.hashfn = nf_hashfn;
  	nf_frags.constructor = ip6_frag_init;
  	nf_frags.destructor = NULL;
-@@ -671,10 +699,6 @@ int nf_ct_frag6_init(void)
+@@ -665,10 +693,6 @@ int nf_ct_frag6_init(void)
  	nf_frags.match = ip6_frag_match;
  	nf_frags.frag_expire = nf_ct_frag6_expire;
  	nf_frags.secret_interval = 10 * 60 * HZ;
@@ -87584,7 +86315,7 @@
  	inet_frags_init(&nf_frags);
  
  	return 0;
-@@ -683,7 +707,5 @@ int nf_ct_frag6_init(void)
+@@ -677,7 +701,5 @@ int nf_ct_frag6_init(void)
  void nf_ct_frag6_cleanup(void)
  {
  	inet_frags_fini(&nf_frags);
@@ -87593,11 +86324,9 @@
 -	nf_ct_frag6_evictor();
 +	unregister_pernet_subsys(&nf_ct_frag6_ops);
  }
-diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
-index 4d18699..de5e2ec 100644
 --- a/net/ipv6/reassembly.c
 +++ b/net/ipv6/reassembly.c
-@@ -199,8 +199,10 @@ static void ip6_frag_expire(unsigned long data)
+@@ -189,8 +189,10 @@ static void ip6_frag_expire(unsigned lon
  	struct frag_queue *fq;
  	struct net_device *dev = NULL;
  	struct net *net;
@@ -87608,7 +86337,7 @@
  
  	spin_lock(&fq->q.lock);
  
-@@ -235,6 +237,8 @@ out:
+@@ -225,6 +227,8 @@ out:
  		dev_put(dev);
  	spin_unlock(&fq->q.lock);
  	fq_put(fq);
@@ -87617,7 +86346,7 @@
  }
  
  static __inline__ struct frag_queue *
-@@ -515,6 +519,7 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct sk_buff *prev,
+@@ -471,6 +475,7 @@ static int ip6_frag_reasm(struct frag_qu
  		clone->csum = 0;
  		clone->ip_summed = head->ip_summed;
  		atomic_add(clone->truesize, &fq->q.net->mem);
@@ -87625,8 +86354,6 @@
  	}
  
  	/* We have to remove fragment header from datagram and to relocate
-diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
-index dbd19a7..9fb663a 100644
 --- a/net/ipv6/sit.c
 +++ b/net/ipv6/sit.c
 @@ -32,6 +32,7 @@
@@ -87647,7 +86374,7 @@
  /*
     This version of net/ipv6/sit.c is cloned of net/ipv4/ip_gre.c
  
-@@ -87,6 +91,9 @@ static struct ip_tunnel * ipip6_tunnel_lookup(struct net *net,
+@@ -87,6 +91,9 @@ static struct ip_tunnel * ipip6_tunnel_l
  	struct ip_tunnel *t;
  	struct sit_net *sitn = net_generic(net, sit_net_id);
  
@@ -87657,7 +86384,7 @@
  	for (t = sitn->tunnels_r_l[h0^h1]; t; t = t->next) {
  		if (local == t->parms.iph.saddr &&
  		    remote == t->parms.iph.daddr &&
-@@ -937,11 +944,14 @@ static int ipip6_tunnel_change_mtu(struct net_device *dev, int new_mtu)
+@@ -937,11 +944,14 @@ static int ipip6_tunnel_change_mtu(struc
  	return 0;
  }
  
@@ -87672,7 +86399,7 @@
  };
  
  static void ipip6_tunnel_setup(struct net_device *dev)
-@@ -1011,11 +1021,116 @@ static void sit_destroy_tunnels(struct sit_net *sitn)
+@@ -1011,11 +1021,116 @@ static void sit_destroy_tunnels(struct s
  	}
  }
  
@@ -87789,7 +86516,7 @@
  	err = -ENOMEM;
  	sitn = kzalloc(sizeof(struct sit_net), GFP_KERNEL);
  	if (sitn == NULL)
-@@ -1061,6 +1176,9 @@ static void sit_exit_net(struct net *net)
+@@ -1061,6 +1176,9 @@ static void sit_exit_net(struct net *net
  	struct sit_net *sitn;
  
  	sitn = net_generic(net, sit_net_id);
@@ -87799,7 +86526,7 @@
  	rtnl_lock();
  	sit_destroy_tunnels(sitn);
  	unregister_netdevice(sitn->fb_tunnel_dev);
-@@ -1075,6 +1193,7 @@ static struct pernet_operations sit_net_ops = {
+@@ -1075,6 +1193,7 @@ static struct pernet_operations sit_net_
  
  static void __exit sit_cleanup(void)
  {
@@ -87816,8 +86543,6 @@
  	return err;
  }
  
-diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
-index 21d100b..1c534b7 100644
 --- a/net/ipv6/tcp_ipv6.c
 +++ b/net/ipv6/tcp_ipv6.c
 @@ -62,6 +62,8 @@
@@ -87829,7 +86554,7 @@
  #include <asm/uaccess.h>
  
  #include <linux/proc_fs.h>
-@@ -75,7 +77,7 @@ static void	tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
+@@ -76,7 +78,7 @@ static void	tcp_v6_reqsk_send_ack(struct
  
  static int	tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb);
  
@@ -87838,7 +86563,7 @@
  static const struct inet_connection_sock_af_ops ipv6_specific;
  #ifdef CONFIG_TCP_MD5SIG
  static const struct tcp_sock_af_ops tcp_sock_ipv6_specific;
-@@ -892,6 +894,7 @@ struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
+@@ -893,6 +895,7 @@ struct request_sock_ops tcp6_request_soc
  	.destructor	=	tcp_v6_reqsk_destructor,
  	.send_reset	=	tcp_v6_send_reset
  };
@@ -87846,7 +86571,7 @@
  
  #ifdef CONFIG_TCP_MD5SIG
  static const struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = {
-@@ -1496,6 +1499,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1497,6 +1500,7 @@ static int tcp_v6_do_rcv(struct sock *sk
  	struct ipv6_pinfo *np = inet6_sk(sk);
  	struct tcp_sock *tp;
  	struct sk_buff *opt_skb = NULL;
@@ -87854,7 +86579,7 @@
  
  	/* Imagine: socket is IPv6. IPv4 packet arrives,
  	   goes to IPv4 receive handler and backlogged.
-@@ -1508,6 +1512,8 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1509,6 +1513,8 @@ static int tcp_v6_do_rcv(struct sock *sk
  	if (skb->protocol == htons(ETH_P_IP))
  		return tcp_v4_do_rcv(sk, skb);
  
@@ -87863,7 +86588,7 @@
  #ifdef CONFIG_TCP_MD5SIG
  	if (tcp_v6_inbound_md5_hash (sk, skb))
  		goto discard;
-@@ -1544,7 +1550,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1545,7 +1551,7 @@ static int tcp_v6_do_rcv(struct sock *sk
  		TCP_CHECK_TIMER(sk);
  		if (opt_skb)
  			goto ipv6_pktoptions;
@@ -87872,7 +86597,7 @@
  	}
  
  	if (skb->len < tcp_hdrlen(skb) || tcp_checksum_complete(skb))
-@@ -1565,7 +1571,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1566,7 +1572,7 @@ static int tcp_v6_do_rcv(struct sock *sk
  				goto reset;
  			if (opt_skb)
  				__kfree_skb(opt_skb);
@@ -87881,7 +86606,7 @@
  		}
  	}
  
-@@ -1575,6 +1581,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1576,6 +1582,9 @@ static int tcp_v6_do_rcv(struct sock *sk
  	TCP_CHECK_TIMER(sk);
  	if (opt_skb)
  		goto ipv6_pktoptions;
@@ -87891,7 +86616,7 @@
  	return 0;
  
  reset:
-@@ -1583,7 +1592,7 @@ discard:
+@@ -1584,7 +1593,7 @@ discard:
  	if (opt_skb)
  		__kfree_skb(opt_skb);
  	kfree_skb(skb);
@@ -87900,7 +86625,7 @@
  csum_err:
  	TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_INERRS);
  	goto discard;
-@@ -1614,7 +1623,7 @@ ipv6_pktoptions:
+@@ -1615,7 +1624,7 @@ ipv6_pktoptions:
  	}
  
  	kfree_skb(opt_skb);
@@ -87909,7 +86634,7 @@
  }
  
  static int tcp_v6_rcv(struct sk_buff *skb)
-@@ -1793,7 +1802,7 @@ static const struct tcp_sock_af_ops tcp_sock_ipv6_specific = {
+@@ -1796,7 +1805,7 @@ static const struct tcp_sock_af_ops tcp_
   *	TCP over IPv4 via INET6 API
   */
  
@@ -87918,7 +86643,7 @@
  	.queue_xmit	   = ip_queue_xmit,
  	.send_check	   = tcp_v4_send_check,
  	.rebuild_header	   = inet_sk_rebuild_header,
-@@ -1812,6 +1821,8 @@ static const struct inet_connection_sock_af_ops ipv6_mapped = {
+@@ -1815,6 +1824,8 @@ static const struct inet_connection_sock
  #endif
  };
  
@@ -87927,11 +86652,9 @@
  #ifdef CONFIG_TCP_MD5SIG
  static const struct tcp_sock_af_ops tcp_sock_ipv6_mapped_specific = {
  	.md5_lookup	=	tcp_v4_md5_lookup,
-diff --git a/net/key/af_key.c b/net/key/af_key.c
-index 4e98193..723beee 100644
 --- a/net/key/af_key.c
 +++ b/net/key/af_key.c
-@@ -183,7 +183,7 @@ static int pfkey_create(struct net *net, struct socket *sock, int protocol)
+@@ -183,7 +183,7 @@ static int pfkey_create(struct net *net,
  	struct sock *sk;
  	int err;
  
@@ -87940,11 +86663,9 @@
  		return -EPERM;
  	if (sock->type != SOCK_RAW)
  		return -ESOCKTNOSUPPORT;
-diff --git a/net/netfilter/core.c b/net/netfilter/core.c
-index 5bb3473..30a2739 100644
 --- a/net/netfilter/core.c
 +++ b/net/netfilter/core.c
-@@ -60,6 +60,8 @@ int nf_register_hook(struct nf_hook_ops *reg)
+@@ -60,6 +60,8 @@ int nf_register_hook(struct nf_hook_ops
  	struct nf_hook_ops *elem;
  	int err;
  
@@ -87962,8 +86683,6 @@
  	mutex_lock(&nf_hook_mutex);
  	list_del_rcu(&reg->list);
  	mutex_unlock(&nf_hook_mutex);
-diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
-index 95682e5..50e0994 100644
 --- a/net/netfilter/ipvs/ip_vs_conn.c
 +++ b/net/netfilter/ipvs/ip_vs_conn.c
 @@ -1074,7 +1074,7 @@ int __init ip_vs_conn_init(void)
@@ -87975,8 +86694,6 @@
  	if (!ip_vs_conn_cachep) {
  		vfree(ip_vs_conn_tab);
  		return -ENOMEM;
-diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
-index e177f0d..1b301df 100644
 --- a/net/netfilter/ipvs/ip_vs_sync.c
 +++ b/net/netfilter/ipvs/ip_vs_sync.c
 @@ -24,6 +24,7 @@
@@ -87987,7 +86704,7 @@
  #include <linux/completion.h>
  #include <linux/delay.h>
  #include <linux/skbuff.h>
-@@ -490,7 +491,8 @@ static int set_mcast_if(struct sock *sk, char *ifname)
+@@ -490,7 +491,8 @@ static int set_mcast_if(struct sock *sk,
  	struct net_device *dev;
  	struct inet_sock *inet = inet_sk(sk);
  
@@ -87997,7 +86714,7 @@
  		return -ENODEV;
  
  	if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if)
-@@ -511,11 +513,12 @@ static int set_mcast_if(struct sock *sk, char *ifname)
+@@ -511,11 +513,12 @@ static int set_mcast_if(struct sock *sk,
   */
  static int set_sync_mesg_maxlen(int sync_state)
  {
@@ -88011,7 +86728,7 @@
  			return -ENODEV;
  
  		num = (dev->mtu - sizeof(struct iphdr) -
-@@ -526,7 +529,7 @@ static int set_sync_mesg_maxlen(int sync_state)
+@@ -526,7 +529,7 @@ static int set_sync_mesg_maxlen(int sync
  		IP_VS_DBG(7, "setting the maximum length of sync sending "
  			  "message %d.\n", sync_send_mesg_maxlen);
  	} else if (sync_state == IP_VS_STATE_BACKUP) {
@@ -88020,7 +86737,7 @@
  			return -ENODEV;
  
  		sync_recv_mesg_maxlen = dev->mtu -
-@@ -554,7 +557,8 @@ join_mcast_group(struct sock *sk, struct in_addr *addr, char *ifname)
+@@ -554,7 +557,8 @@ join_mcast_group(struct sock *sk, struct
  	memset(&mreq, 0, sizeof(mreq));
  	memcpy(&mreq.imr_multiaddr, addr, sizeof(struct in_addr));
  
@@ -88030,7 +86747,7 @@
  		return -ENODEV;
  	if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if)
  		return -EINVAL;
-@@ -575,7 +579,8 @@ static int bind_mcastif_addr(struct socket *sock, char *ifname)
+@@ -575,7 +579,8 @@ static int bind_mcastif_addr(struct sock
  	__be32 addr;
  	struct sockaddr_in sin;
  
@@ -88040,8 +86757,6 @@
  		return -ENODEV;
  
  	addr = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE);
-diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
-index 8df3477..927823e 100644
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
 @@ -45,6 +45,9 @@
@@ -88054,7 +86769,7 @@
  #define NF_CONNTRACK_VERSION	"0.5.0"
  
  int (*nfnetlink_parse_nat_setup_hook)(struct nf_conn *ct,
-@@ -179,6 +182,11 @@ destroy_conntrack(struct nf_conntrack *nfct)
+@@ -179,6 +182,11 @@ destroy_conntrack(struct nf_conntrack *n
  	struct nf_conn *ct = (struct nf_conn *)nfct;
  	struct net *net = nf_ct_net(ct);
  	struct nf_conntrack_l4proto *l4proto;
@@ -88066,7 +86781,7 @@
  
  	pr_debug("destroy_conntrack(%p)\n", ct);
  	NF_CT_ASSERT(atomic_read(&nfct->use) == 0);
-@@ -215,6 +223,9 @@ destroy_conntrack(struct nf_conntrack *nfct)
+@@ -215,6 +223,9 @@ destroy_conntrack(struct nf_conntrack *n
  
  	pr_debug("destroy_conntrack: returning ct=%p to slab\n", ct);
  	nf_conntrack_free(ct);
@@ -88076,7 +86791,7 @@
  }
  
  void nf_ct_delete_from_lists(struct nf_conn *ct)
-@@ -538,9 +549,11 @@ static noinline int early_drop(struct net *net, unsigned int hash)
+@@ -538,9 +549,11 @@ static noinline int early_drop(struct ne
  struct nf_conn *nf_conntrack_alloc(struct net *net,
  				   const struct nf_conntrack_tuple *orig,
  				   const struct nf_conntrack_tuple *repl,
@@ -88088,7 +86803,7 @@
  
  	if (unlikely(!nf_conntrack_hash_rnd_initted)) {
  		get_random_bytes(&nf_conntrack_hash_rnd,
-@@ -568,7 +581,9 @@ struct nf_conn *nf_conntrack_alloc(struct net *net,
+@@ -568,7 +581,9 @@ struct nf_conn *nf_conntrack_alloc(struc
  	 * Do not use kmem_cache_zalloc(), as this cache uses
  	 * SLAB_DESTROY_BY_RCU.
  	 */
@@ -88129,7 +86844,7 @@
  		h = init_conntrack(net, &tuple, l3proto, l4proto, skb, dataoff);
  		if (!h)
  			return NULL;
-@@ -1168,12 +1192,12 @@ void *nf_ct_alloc_hashtable(unsigned int *sizep, int *vmalloced, int nulls)
+@@ -1168,12 +1192,12 @@ void *nf_ct_alloc_hashtable(unsigned int
  	BUILD_BUG_ON(sizeof(struct hlist_nulls_head) != sizeof(struct hlist_head));
  	nr_slots = *sizep = roundup(*sizep, PAGE_SIZE / sizeof(struct hlist_nulls_head));
  	sz = nr_slots * sizeof(struct hlist_nulls_head);
@@ -88144,11 +86859,9 @@
  				 PAGE_KERNEL);
  	}
  
-diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c
-index e73eb04..bb6f3c4 100644
 --- a/net/netfilter/nf_conntrack_expect.c
 +++ b/net/netfilter/nf_conntrack_expect.c
-@@ -305,7 +305,7 @@ void nf_ct_expect_put(struct nf_conntrack_expect *exp)
+@@ -305,7 +305,7 @@ void nf_ct_expect_put(struct nf_conntrac
  }
  EXPORT_SYMBOL_GPL(nf_ct_expect_put);
  
@@ -88157,7 +86870,7 @@
  {
  	struct nf_conn_help *master_help = nfct_help(exp->master);
  	struct net *net = nf_ct_exp_net(exp);
-@@ -329,6 +329,7 @@ static void nf_ct_expect_insert(struct nf_conntrack_expect *exp)
+@@ -329,6 +329,7 @@ static void nf_ct_expect_insert(struct n
  	atomic_inc(&exp->use);
  	NF_CT_STAT_INC(net, expect_create);
  }
@@ -88165,8 +86878,6 @@
  
  /* Race with expectations being used means we could have none to find; OK. */
  static void evict_oldest_expect(struct nf_conn *master,
-diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
-index d521718..c4b213a 100644
 --- a/net/netfilter/nf_conntrack_netlink.c
 +++ b/net/netfilter/nf_conntrack_netlink.c
 @@ -46,6 +46,10 @@
@@ -88197,7 +86908,7 @@
  	if (IS_ERR(ct))
  		return ERR_PTR(-ENOMEM);
  
-@@ -1342,9 +1347,14 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
+@@ -1342,9 +1347,14 @@ ctnetlink_new_conntrack(struct sock *ctn
  		if (nlh->nlmsg_flags & NLM_F_CREATE) {
  			struct nf_conn *ct;
  			enum ip_conntrack_events events;
@@ -88213,8 +86924,6 @@
  			if (IS_ERR(ct)) {
  				err = PTR_ERR(ct);
  				goto out_unlock;
-diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
-index 1a84bf6..5d530dc 100644
 --- a/net/netfilter/nf_conntrack_standalone.c
 +++ b/net/netfilter/nf_conntrack_standalone.c
 @@ -29,6 +29,10 @@
@@ -88228,11 +86937,9 @@
  #ifdef CONFIG_PROC_FS
  int
  print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple,
-diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
-index eedc0c1..8756766 100644
 --- a/net/netfilter/nfnetlink.c
 +++ b/net/netfilter/nfnetlink.c
-@@ -133,7 +133,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -133,7 +133,7 @@ static int nfnetlink_rcv_msg(struct sk_b
  	const struct nfnetlink_subsystem *ss;
  	int type, err;
  
@@ -88241,11 +86948,9 @@
  		return -EPERM;
  
  	/* All the messages must at least contain nfgenmsg */
-diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
-index 7a9dec9..2640c21 100644
 --- a/net/netfilter/nfnetlink_queue.c
 +++ b/net/netfilter/nfnetlink_queue.c
-@@ -555,9 +555,6 @@ nfqnl_rcv_dev_event(struct notifier_block *this,
+@@ -555,9 +555,6 @@ nfqnl_rcv_dev_event(struct notifier_bloc
  {
  	struct net_device *dev = ptr;
  
@@ -88255,7 +86960,7 @@
  	/* Drop any packets associated with the downed device */
  	if (event == NETDEV_DOWN)
  		nfqnl_dev_drop(dev->ifindex);
-@@ -586,8 +583,7 @@ nfqnl_rcv_nl_event(struct notifier_block *this,
+@@ -586,8 +583,7 @@ nfqnl_rcv_nl_event(struct notifier_block
  			struct hlist_head *head = &instance_table[i];
  
  			hlist_for_each_entry_safe(inst, tmp, t2, head, hlist) {
@@ -88265,8 +86970,6 @@
  					__instance_destroy(inst);
  			}
  		}
-diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
-index f01955c..40f7121 100644
 --- a/net/netfilter/x_tables.c
 +++ b/net/netfilter/x_tables.c
 @@ -24,6 +24,8 @@
@@ -88278,7 +86981,7 @@
  #include <linux/netfilter/x_tables.h>
  #include <linux/netfilter_arp.h>
  
-@@ -66,6 +68,46 @@ static const char *const xt_prefix[NFPROTO_NUMPROTO] = {
+@@ -66,6 +68,46 @@ static const char *const xt_prefix[NFPRO
  	[NFPROTO_IPV6]   = "ip6",
  };
  
@@ -88325,7 +87028,7 @@
  /* Registration hooks for targets. */
  int
  xt_register_target(struct xt_target *target)
-@@ -364,14 +406,14 @@ int xt_check_match(struct xt_mtchk_param *par,
+@@ -364,14 +406,14 @@ int xt_check_match(struct xt_mtchk_param
  		 * ebt_among is exempt from centralized matchsize checking
  		 * because it uses a dynamic-size data set.
  		 */
@@ -88342,7 +87045,7 @@
  		       xt_prefix[par->family], par->match->name,
  		       par->match->table, par->table);
  		return -EINVAL;
-@@ -379,7 +421,7 @@ int xt_check_match(struct xt_mtchk_param *par,
+@@ -379,7 +421,7 @@ int xt_check_match(struct xt_mtchk_param
  	if (par->match->hooks && (par->hook_mask & ~par->match->hooks) != 0) {
  		char used[64], allow[64];
  
@@ -88351,7 +87054,7 @@
  		       "valid from %s\n",
  		       xt_prefix[par->family], par->match->name,
  		       textify_hooks(used, sizeof(used), par->hook_mask),
-@@ -387,7 +429,7 @@ int xt_check_match(struct xt_mtchk_param *par,
+@@ -387,7 +429,7 @@ int xt_check_match(struct xt_mtchk_param
  		return -EINVAL;
  	}
  	if (par->match->proto && (par->match->proto != proto || inv_proto)) {
@@ -88360,7 +87063,7 @@
  		       xt_prefix[par->family], par->match->name,
  		       par->match->proto);
  		return -EINVAL;
-@@ -620,19 +662,19 @@ struct xt_table_info *xt_alloc_table_info(unsigned int size)
+@@ -620,19 +662,19 @@ struct xt_table_info *xt_alloc_table_inf
  	if ((SMP_ALIGN(size) >> PAGE_SHIFT) + 2 > totalram_pages)
  		return NULL;
  
@@ -88384,7 +87087,7 @@
  							cpu_to_node(cpu));
  
  		if (newinfo->entries[cpu] == NULL) {
-@@ -650,7 +692,7 @@ void xt_free_table_info(struct xt_table_info *info)
+@@ -650,7 +692,7 @@ void xt_free_table_info(struct xt_table_
  	int cpu;
  
  	for_each_possible_cpu(cpu) {
@@ -88406,7 +87109,7 @@
  	table->private = newinfo;
  	newinfo->initial_entries = private->initial_entries;
  
-@@ -798,6 +846,7 @@ void *xt_unregister_table(struct xt_table *table)
+@@ -798,6 +846,7 @@ void *xt_unregister_table(struct xt_tabl
  	list_del(&table->list);
  	mutex_unlock(&xt[table->af].mutex);
  	kfree(table);
@@ -88414,8 +87117,6 @@
  
  	return private;
  }
-diff --git a/net/netfilter/xt_CONNMARK.c b/net/netfilter/xt_CONNMARK.c
-index 5934570..d6e5ab4 100644
 --- a/net/netfilter/xt_CONNMARK.c
 +++ b/net/netfilter/xt_CONNMARK.c
 @@ -36,6 +36,45 @@ MODULE_ALIAS("ip6t_CONNMARK");
@@ -88464,7 +87165,7 @@
  connmark_tg(struct sk_buff *skb, const struct xt_target_param *par)
  {
  	const struct xt_connmark_tginfo1 *info = par->targinfo;
-@@ -73,6 +112,30 @@ connmark_tg(struct sk_buff *skb, const struct xt_target_param *par)
+@@ -73,6 +112,30 @@ connmark_tg(struct sk_buff *skb, const s
  	return XT_CONTINUE;
  }
  
@@ -88495,7 +87196,7 @@
  static bool connmark_tg_check(const struct xt_tgchk_param *par)
  {
  	if (nf_ct_l3proto_try_module_get(par->family) < 0) {
-@@ -88,25 +151,74 @@ static void connmark_tg_destroy(const struct xt_tgdtor_param *par)
+@@ -88,25 +151,74 @@ static void connmark_tg_destroy(const st
  	nf_ct_l3proto_module_put(par->family);
  }
  
@@ -88581,8 +87282,6 @@
  }
  
  module_init(connmark_tg_init);
-diff --git a/net/netfilter/xt_DSCP.c b/net/netfilter/xt_DSCP.c
-index 74ce892..72b469b 100644
 --- a/net/netfilter/xt_DSCP.c
 +++ b/net/netfilter/xt_DSCP.c
 @@ -18,6 +18,7 @@
@@ -88593,7 +87292,7 @@
  
  MODULE_AUTHOR("Harald Welte <laforge at netfilter.org>");
  MODULE_DESCRIPTION("Xtables: DSCP/TOS field modification");
-@@ -65,13 +66,48 @@ static bool dscp_tg_check(const struct xt_tgchk_param *par)
+@@ -65,13 +66,48 @@ static bool dscp_tg_check(const struct x
  	const struct xt_DSCP_info *info = par->targinfo;
  
  	if (info->dscp > XT_DSCP_MAX) {
@@ -88643,10 +87342,11 @@
  tos_tg(struct sk_buff *skb, const struct xt_target_param *par)
  {
  	const struct xt_tos_target_info *info = par->targinfo;
-@@ -132,6 +168,16 @@ static struct xt_target dscp_tg_reg[] __read_mostly = {
+@@ -131,6 +167,16 @@ static struct xt_target dscp_tg_reg[] __
+ 		.me		= THIS_MODULE,
  	},
  	{
- 		.name		= "TOS",
++		.name		= "TOS",
 +		.revision	= 0,
 +		.family		= NFPROTO_IPV4,
 +		.table		= "mangle",
@@ -88656,12 +87356,9 @@
 +		.me		= THIS_MODULE,
 +	},
 +	{
-+		.name		= "TOS",
+ 		.name		= "TOS",
  		.revision	= 1,
  		.family		= NFPROTO_IPV4,
- 		.table		= "mangle",
-diff --git a/net/netfilter/xt_MARK.c b/net/netfilter/xt_MARK.c
-index 225f8d1..67574bc 100644
 --- a/net/netfilter/xt_MARK.c
 +++ b/net/netfilter/xt_MARK.c
 @@ -25,6 +25,39 @@ MODULE_ALIAS("ipt_MARK");
@@ -88704,7 +87401,7 @@
  mark_tg(struct sk_buff *skb, const struct xt_target_param *par)
  {
  	const struct xt_mark_tginfo2 *info = par->targinfo;
-@@ -33,23 +66,135 @@ mark_tg(struct sk_buff *skb, const struct xt_target_param *par)
+@@ -33,23 +66,135 @@ mark_tg(struct sk_buff *skb, const struc
  	return XT_CONTINUE;
  }
  
@@ -88849,11 +87546,9 @@
  }
  
  module_init(mark_tg_init);
-diff --git a/net/netfilter/xt_TCPMSS.c b/net/netfilter/xt_TCPMSS.c
-index eda64c1..48d49da 100644
 --- a/net/netfilter/xt_TCPMSS.c
 +++ b/net/netfilter/xt_TCPMSS.c
-@@ -67,7 +67,7 @@ tcpmss_mangle_packet(struct sk_buff *skb,
+@@ -67,7 +67,7 @@ tcpmss_mangle_packet(struct sk_buff *skb
  	   badly. --RR */
  	if (tcplen != tcph->doff*4) {
  		if (net_ratelimit())
@@ -88862,7 +87557,7 @@
  			       skb->len);
  		return -1;
  	}
-@@ -75,14 +75,14 @@ tcpmss_mangle_packet(struct sk_buff *skb,
+@@ -75,14 +75,14 @@ tcpmss_mangle_packet(struct sk_buff *skb
  	if (info->mss == XT_TCPMSS_CLAMP_PMTU) {
  		if (dst_mtu(skb_dst(skb)) <= minlen) {
  			if (net_ratelimit())
@@ -88879,7 +87574,7 @@
  				       "invalid path-MTU (%u)\n", in_mtu);
  			return -1;
  		}
-@@ -246,13 +246,13 @@ static bool tcpmss_tg4_check(const struct xt_tgchk_param *par)
+@@ -246,13 +246,13 @@ static bool tcpmss_tg4_check(const struc
  	    (par->hook_mask & ~((1 << NF_INET_FORWARD) |
  			   (1 << NF_INET_LOCAL_OUT) |
  			   (1 << NF_INET_POST_ROUTING))) != 0) {
@@ -88895,7 +87590,7 @@
  	return false;
  }
  
-@@ -266,13 +266,13 @@ static bool tcpmss_tg6_check(const struct xt_tgchk_param *par)
+@@ -266,13 +266,13 @@ static bool tcpmss_tg6_check(const struc
  	    (par->hook_mask & ~((1 << NF_INET_FORWARD) |
  			   (1 << NF_INET_LOCAL_OUT) |
  			   (1 << NF_INET_POST_ROUTING))) != 0) {
@@ -88911,11 +87606,9 @@
  	return false;
  }
  #endif
-diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c
-index 122aa8b..86cacab 100644
 --- a/net/netfilter/xt_connmark.c
 +++ b/net/netfilter/xt_connmark.c
-@@ -47,6 +47,36 @@ connmark_mt(const struct sk_buff *skb, const struct xt_match_param *par)
+@@ -47,6 +47,36 @@ connmark_mt(const struct sk_buff *skb, c
  	return ((ct->mark & info->mask) == info->mark) ^ info->invert;
  }
  
@@ -88952,7 +87645,7 @@
  static bool connmark_mt_check(const struct xt_mtchk_param *par)
  {
  	if (nf_ct_l3proto_try_module_get(par->family) < 0) {
-@@ -62,25 +92,74 @@ static void connmark_mt_destroy(const struct xt_mtdtor_param *par)
+@@ -62,25 +92,74 @@ static void connmark_mt_destroy(const st
  	nf_ct_l3proto_module_put(par->family);
  }
  
@@ -89038,8 +87731,6 @@
  }
  
  module_init(connmark_mt_init);
-diff --git a/net/netfilter/xt_conntrack.c b/net/netfilter/xt_conntrack.c
-index ae66305..30ca13c 100644
 --- a/net/netfilter/xt_conntrack.c
 +++ b/net/netfilter/xt_conntrack.c
 @@ -25,6 +25,95 @@ MODULE_ALIAS("ipt_conntrack");
@@ -89138,7 +87829,7 @@
  conntrack_addrcmp(const union nf_inet_addr *kaddr,
                    const union nf_inet_addr *uaddr,
                    const union nf_inet_addr *umask, unsigned int l3proto)
-@@ -112,6 +201,55 @@ ct_proto_port_check(const struct xt_conntrack_mtinfo2 *info,
+@@ -112,6 +201,55 @@ ct_proto_port_check(const struct xt_conn
  	return true;
  }
  
@@ -89194,7 +87885,7 @@
  static bool
  conntrack_mt(const struct sk_buff *skb, const struct xt_match_param *par,
               u16 state_mask, u16 status_mask)
-@@ -224,6 +362,21 @@ static void conntrack_mt_destroy(const struct xt_mtdtor_param *par)
+@@ -224,6 +362,21 @@ static void conntrack_mt_destroy(const s
  static struct xt_match conntrack_mt_reg[] __read_mostly = {
  	{
  		.name       = "conntrack",
@@ -89216,8 +87907,6 @@
  		.revision   = 1,
  		.family     = NFPROTO_UNSPEC,
  		.matchsize  = sizeof(struct xt_conntrack_mtinfo1),
-diff --git a/net/netfilter/xt_dscp.c b/net/netfilter/xt_dscp.c
-index 0280d3a..c3f8085 100644
 --- a/net/netfilter/xt_dscp.c
 +++ b/net/netfilter/xt_dscp.c
 @@ -15,6 +15,7 @@
@@ -89228,7 +87917,7 @@
  
  MODULE_AUTHOR("Harald Welte <laforge at netfilter.org>");
  MODULE_DESCRIPTION("Xtables: DSCP/TOS field match");
-@@ -54,6 +55,14 @@ static bool dscp_mt_check(const struct xt_mtchk_param *par)
+@@ -54,6 +55,14 @@ static bool dscp_mt_check(const struct x
  	return true;
  }
  
@@ -89243,10 +87932,11 @@
  static bool tos_mt(const struct sk_buff *skb, const struct xt_match_param *par)
  {
  	const struct xt_tos_match_info *info = par->matchinfo;
-@@ -85,6 +94,14 @@ static struct xt_match dscp_mt_reg[] __read_mostly = {
+@@ -84,6 +93,14 @@ static struct xt_match dscp_mt_reg[] __r
+ 		.me		= THIS_MODULE,
  	},
  	{
- 		.name		= "tos",
++		.name		= "tos",
 +		.revision	= 0,
 +		.family		= NFPROTO_IPV4,
 +		.match		= tos_mt_v0,
@@ -89254,12 +87944,9 @@
 +		.me		= THIS_MODULE,
 +	},
 +	{
-+		.name		= "tos",
+ 		.name		= "tos",
  		.revision	= 1,
  		.family		= NFPROTO_IPV4,
- 		.match		= tos_mt,
-diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
-index dd16e40..72e297b 100644
 --- a/net/netfilter/xt_hashlimit.c
 +++ b/net/netfilter/xt_hashlimit.c
 @@ -15,6 +15,7 @@
@@ -89301,7 +87988,7 @@
  static inline bool dst_cmp(const struct dsthash_ent *ent,
  			   const struct dsthash_dst *b)
  {
-@@ -687,6 +700,9 @@ static bool hashlimit_mt_check_v0(const struct xt_mtchk_param *par)
+@@ -687,6 +700,9 @@ static bool hashlimit_mt_check_v0(const
  	if (r->name[sizeof(r->name) - 1] != '\0')
  		return false;
  
@@ -89311,7 +87998,7 @@
  	/* This is the best we've got: We cannot release and re-grab lock,
  	 * since checkentry() is called before x_tables.c grabs xt_mutex.
  	 * We also cannot grab the hashtable spinlock, since htable_create will
-@@ -728,6 +744,9 @@ static bool hashlimit_mt_check(const struct xt_mtchk_param *par)
+@@ -728,6 +744,9 @@ static bool hashlimit_mt_check(const str
  			return false;
  	}
  
@@ -89321,7 +88008,7 @@
  	/* This is the best we've got: We cannot release and re-grab lock,
  	 * since checkentry() is called before x_tables.c grabs xt_mutex.
  	 * We also cannot grab the hashtable spinlock, since htable_create will
-@@ -750,6 +769,8 @@ hashlimit_mt_destroy_v0(const struct xt_mtdtor_param *par)
+@@ -750,6 +769,8 @@ hashlimit_mt_destroy_v0(const struct xt_
  	const struct xt_hashlimit_info *r = par->matchinfo;
  
  	htable_put(r->hinfo);
@@ -89330,7 +88017,7 @@
  }
  
  static void hashlimit_mt_destroy(const struct xt_mtdtor_param *par)
-@@ -757,6 +778,8 @@ static void hashlimit_mt_destroy(const struct xt_mtdtor_param *par)
+@@ -757,6 +778,8 @@ static void hashlimit_mt_destroy(const s
  	const struct xt_hashlimit_mtinfo1 *info = par->matchinfo;
  
  	htable_put(info->hinfo);
@@ -89339,7 +88026,7 @@
  }
  
  #ifdef CONFIG_COMPAT
-@@ -957,6 +980,78 @@ static const struct file_operations dl_file_ops = {
+@@ -957,6 +980,78 @@ static const struct file_operations dl_f
  	.release = seq_release
  };
  
@@ -89418,7 +88105,7 @@
  static int __init hashlimit_mt_init(void)
  {
  	int err;
-@@ -974,24 +1069,11 @@ static int __init hashlimit_mt_init(void)
+@@ -974,24 +1069,11 @@ static int __init hashlimit_mt_init(void
  		printk(KERN_ERR "xt_hashlimit: unable to create slab cache\n");
  		goto err2;
  	}
@@ -89457,8 +88144,6 @@
  	kmem_cache_destroy(hashlimit_cachep);
  	xt_unregister_matches(hashlimit_mt_reg, ARRAY_SIZE(hashlimit_mt_reg));
  }
-diff --git a/net/netfilter/xt_iprange.c b/net/netfilter/xt_iprange.c
-index ffc9638..5450cda 100644
 --- a/net/netfilter/xt_iprange.c
 +++ b/net/netfilter/xt_iprange.c
 @@ -14,6 +14,40 @@
@@ -89502,7 +88187,7 @@
  
  static bool
  iprange_mt4(const struct sk_buff *skb, const struct xt_match_param *par)
-@@ -93,6 +127,14 @@ iprange_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
+@@ -93,6 +127,14 @@ iprange_mt6(const struct sk_buff *skb, c
  static struct xt_match iprange_mt_reg[] __read_mostly = {
  	{
  		.name      = "iprange",
@@ -89517,11 +88202,9 @@
  		.revision  = 1,
  		.family    = NFPROTO_IPV4,
  		.match     = iprange_mt4,
-diff --git a/net/netfilter/xt_limit.c b/net/netfilter/xt_limit.c
-index 2773be6..847f081 100644
 --- a/net/netfilter/xt_limit.c
 +++ b/net/netfilter/xt_limit.c
-@@ -105,7 +105,7 @@ static bool limit_mt_check(const struct xt_mtchk_param *par)
+@@ -105,7 +105,7 @@ static bool limit_mt_check(const struct
  	/* Check for overflow. */
  	if (r->burst == 0
  	    || user2credits(r->avg * r->burst) < user2credits(r->avg)) {
@@ -89530,8 +88213,6 @@
  		       r->avg, r->burst);
  		return false;
  	}
-diff --git a/net/netfilter/xt_mark.c b/net/netfilter/xt_mark.c
-index 1db07d8..0c17eca 100644
 --- a/net/netfilter/xt_mark.c
 +++ b/net/netfilter/xt_mark.c
 @@ -23,6 +23,14 @@ MODULE_ALIAS("ipt_mark");
@@ -89549,7 +88230,7 @@
  mark_mt(const struct sk_buff *skb, const struct xt_match_param *par)
  {
  	const struct xt_mark_mtinfo1 *info = par->matchinfo;
-@@ -30,23 +38,81 @@ mark_mt(const struct sk_buff *skb, const struct xt_match_param *par)
+@@ -30,23 +38,81 @@ mark_mt(const struct sk_buff *skb, const
  	return ((skb->mark & info->mask) == info->mark) ^ info->invert;
  }
  
@@ -89640,8 +88321,6 @@
  }
  
  module_init(mark_mt_init);
-diff --git a/net/netfilter/xt_owner.c b/net/netfilter/xt_owner.c
-index d24c76d..79d6a0b 100644
 --- a/net/netfilter/xt_owner.c
 +++ b/net/netfilter/xt_owner.c
 @@ -16,6 +16,60 @@
@@ -89705,7 +88384,7 @@
  
  static bool
  owner_mt(const struct sk_buff *skb, const struct xt_match_param *par)
-@@ -52,25 +106,76 @@ owner_mt(const struct sk_buff *skb, const struct xt_match_param *par)
+@@ -52,25 +106,76 @@ owner_mt(const struct sk_buff *skb, cons
  	return true;
  }
  
@@ -89793,8 +88472,6 @@
  }
  
  module_init(owner_mt_init);
-diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
-index 2f181aa..3499fb2 100644
 --- a/net/netfilter/xt_recent.c
 +++ b/net/netfilter/xt_recent.c
 @@ -17,6 +17,8 @@
@@ -89806,7 +88483,7 @@
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
  #include <linux/string.h>
-@@ -58,6 +60,9 @@ MODULE_PARM_DESC(ip_list_perms, "permissions on /proc/net/xt_recent/* files");
+@@ -58,6 +60,9 @@ MODULE_PARM_DESC(ip_list_perms, "permiss
  MODULE_PARM_DESC(ip_list_uid,"owner of /proc/net/xt_recent/* files");
  MODULE_PARM_DESC(ip_list_gid,"owning group of /proc/net/xt_recent/* files");
  
@@ -89844,7 +88521,7 @@
  static const struct file_operations recent_old_fops, recent_mt_fops;
  #endif
  
-@@ -300,6 +317,9 @@ static bool recent_mt_check(const struct xt_mtchk_param *par)
+@@ -300,6 +317,9 @@ static bool recent_mt_check(const struct
  	    strnlen(info->name, XT_RECENT_NAME_LEN) == XT_RECENT_NAME_LEN)
  		return false;
  
@@ -89854,7 +88531,7 @@
  	mutex_lock(&recent_mutex);
  	t = recent_table_lookup(info->name);
  	if (t != NULL) {
-@@ -351,6 +371,13 @@ static void recent_mt_destroy(const struct xt_mtdtor_param *par)
+@@ -351,6 +371,13 @@ static void recent_mt_destroy(const stru
  {
  	const struct xt_recent_mtinfo *info = par->matchinfo;
  	struct recent_table *t;
@@ -89868,7 +88545,7 @@
  
  	mutex_lock(&recent_mutex);
  	t = recent_table_lookup(info->name);
-@@ -368,6 +395,8 @@ static void recent_mt_destroy(const struct xt_mtdtor_param *par)
+@@ -368,6 +395,8 @@ static void recent_mt_destroy(const stru
  		kfree(t);
  	}
  	mutex_unlock(&recent_mutex);
@@ -89877,7 +88554,7 @@
  }
  
  #ifdef CONFIG_PROC_FS
-@@ -637,19 +666,26 @@ static struct xt_match recent_mt_reg[] __read_mostly = {
+@@ -637,19 +666,26 @@ static struct xt_match recent_mt_reg[] _
  	},
  };
  
@@ -89978,8 +88655,6 @@
 +
  module_init(recent_mt_init);
  module_exit(recent_mt_exit);
-diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index 5a7dcdf..03dd3c1 100644
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
 @@ -60,29 +60,14 @@
@@ -90016,7 +88691,7 @@
  struct listeners_rcu_head {
  	struct rcu_head rcu_head;
  	void *ptr;
-@@ -411,6 +396,8 @@ static int __netlink_create(struct net *net, struct socket *sock,
+@@ -411,6 +396,8 @@ static int __netlink_create(struct net *
  	sk = sk_alloc(net, PF_NETLINK, GFP_KERNEL, &netlink_proto);
  	if (!sk)
  		return -ENOMEM;
@@ -90025,7 +88700,7 @@
  
  	sock_init_data(sock, sk);
  
-@@ -426,6 +413,10 @@ static int __netlink_create(struct net *net, struct socket *sock,
+@@ -426,6 +413,10 @@ static int __netlink_create(struct net *
  	sk->sk_destruct = netlink_sock_destruct;
  	sk->sk_protocol = protocol;
  	return 0;
@@ -90036,7 +88711,7 @@
  }
  
  static int netlink_create(struct net *net, struct socket *sock, int protocol)
-@@ -539,7 +530,7 @@ static int netlink_autobind(struct socket *sock)
+@@ -539,7 +530,7 @@ static int netlink_autobind(struct socke
  	struct hlist_head *head;
  	struct sock *osk;
  	struct hlist_node *node;
@@ -90054,7 +88729,7 @@
  }
  
  static void
-@@ -785,12 +776,20 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
+@@ -785,12 +776,20 @@ int netlink_attachskb(struct sock *sk, s
  		      long *timeo, struct sock *ssk)
  {
  	struct netlink_sock *nlk;
@@ -90076,7 +88751,7 @@
  		if (!*timeo) {
  			if (!ssk || netlink_is_kernel(ssk))
  				netlink_overrun(sk);
-@@ -802,13 +801,20 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
+@@ -802,13 +801,20 @@ int netlink_attachskb(struct sock *sk, s
  		__set_current_state(TASK_INTERRUPTIBLE);
  		add_wait_queue(&nlk->wait, &wait);
  
@@ -90098,7 +88773,7 @@
  		sock_put(sk);
  
  		if (signal_pending(current)) {
-@@ -818,6 +824,7 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
+@@ -818,6 +824,7 @@ int netlink_attachskb(struct sock *sk, s
  		return 1;
  	}
  	skb_set_owner_r(skb, sk);
@@ -90106,7 +88781,7 @@
  	return 0;
  }
  
-@@ -984,8 +991,13 @@ static inline int do_one_broadcast(struct sock *sk,
+@@ -990,8 +997,13 @@ static inline int do_one_broadcast(struc
  	    !test_bit(p->group - 1, nlk->groups))
  		goto out;
  
@@ -90120,7 +88795,7 @@
  
  	if (p->failure) {
  		netlink_overrun(sk);
-@@ -1649,6 +1661,10 @@ static int netlink_dump(struct sock *sk)
+@@ -1653,6 +1665,10 @@ static int netlink_dump(struct sock *sk)
  	skb = sock_rmalloc(sk, NLMSG_GOODSIZE, 0, GFP_KERNEL);
  	if (!skb)
  		goto errout;
@@ -90131,11 +88806,9 @@
  
  	mutex_lock(nlk->cb_mutex);
  
-diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
-index 44ff3f3..ea6f5cb 100644
 --- a/net/netlink/genetlink.c
 +++ b/net/netlink/genetlink.c
-@@ -519,7 +519,7 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -519,7 +519,7 @@ static int genl_rcv_msg(struct sk_buff *
  		return -EOPNOTSUPP;
  
  	if ((ops->flags & GENL_ADMIN_PERM) &&
@@ -90144,8 +88817,6 @@
  		return -EPERM;
  
  	if (nlh->nlmsg_flags & NLM_F_DUMP) {
-diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index 41866eb..9dd7d18 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
 @@ -80,6 +80,8 @@
@@ -90157,7 +88828,7 @@
  #ifdef CONFIG_INET
  #include <net/inet_common.h>
  #endif
-@@ -554,6 +556,8 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -554,6 +556,8 @@ static int packet_rcv(struct sk_buff *sk
  	if (dev_net(dev) != sock_net(sk))
  		goto drop;
  
@@ -90166,7 +88837,7 @@
  	skb->dev = dev;
  
  	if (dev->header_ops) {
-@@ -617,6 +621,9 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -617,6 +621,9 @@ static int packet_rcv(struct sk_buff *sk
  	if (pskb_trim(skb, snaplen))
  		goto drop_n_acct;
  
@@ -90176,7 +88847,7 @@
  	skb_set_owner_r(skb, sk);
  	skb->dev = NULL;
  	skb_dst_drop(skb);
-@@ -676,6 +683,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -676,6 +683,8 @@ static int tpacket_rcv(struct sk_buff *s
  	if (dev_net(dev) != sock_net(sk))
  		goto drop;
  
@@ -90185,7 +88856,7 @@
  	if (dev->header_ops) {
  		if (sk->sk_type != SOCK_DGRAM)
  			skb_push(skb, skb->data - skb_mac_header(skb));
-@@ -725,6 +734,12 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -725,6 +734,12 @@ static int tpacket_rcv(struct sk_buff *s
  			snaplen = 0;
  	}
  
@@ -90198,7 +88869,7 @@
  	spin_lock(&sk->sk_receive_queue.lock);
  	h.raw = packet_current_frame(po, &po->rx_ring, TP_STATUS_KERNEL);
  	if (!h.raw)
-@@ -1369,6 +1384,8 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
+@@ -1369,6 +1384,8 @@ static int packet_create(struct net *net
  	sk = sk_alloc(net, PF_PACKET, GFP_KERNEL, &packet_proto);
  	if (sk == NULL)
  		goto out;
@@ -90207,7 +88878,7 @@
  
  	sock->ops = &packet_ops;
  	if (sock->type == SOCK_PACKET)
-@@ -1408,6 +1425,9 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
+@@ -1408,6 +1425,9 @@ static int packet_create(struct net *net
  	sock_prot_inuse_add(net, &packet_proto, 1);
  	write_unlock_bh(&net->packet.sklist_lock);
  	return 0;
@@ -90217,8 +88888,6 @@
  out:
  	return err;
  }
-diff --git a/net/sched/act_api.c b/net/sched/act_api.c
-index 2dfb3e7..592d77a 100644
 --- a/net/sched/act_api.c
 +++ b/net/sched/act_api.c
 @@ -666,7 +666,8 @@ nlmsg_failure:
@@ -90231,7 +88900,7 @@
  {
  	struct sk_buff *skb;
  
-@@ -678,7 +679,7 @@ act_get_notify(u32 pid, struct nlmsghdr *n, struct tc_action *a, int event)
+@@ -678,7 +679,7 @@ act_get_notify(u32 pid, struct nlmsghdr
  		return -EINVAL;
  	}
  
@@ -90250,7 +88919,7 @@
  {
  	struct sk_buff *skb;
  	unsigned char *b;
-@@ -807,7 +809,7 @@ static int tca_action_flush(struct nlattr *nla, struct nlmsghdr *n, u32 pid)
+@@ -807,7 +809,7 @@ static int tca_action_flush(struct nlatt
  	nlh->nlmsg_flags |= NLM_F_ROOT;
  	module_put(a->ops->owner);
  	kfree(a);
@@ -90269,7 +88938,7 @@
  {
  	int i, ret;
  	struct nlattr *tb[TCA_ACT_MAX_PRIO+1];
-@@ -836,7 +839,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
+@@ -836,7 +839,7 @@ tca_action_gd(struct nlattr *nla, struct
  
  	if (event == RTM_DELACTION && n->nlmsg_flags&NLM_F_ROOT) {
  		if (tb[1] != NULL)
@@ -90278,7 +88947,7 @@
  		else
  			return -EINVAL;
  	}
-@@ -857,7 +860,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
+@@ -857,7 +860,7 @@ tca_action_gd(struct nlattr *nla, struct
  	}
  
  	if (event == RTM_GETACTION)
@@ -90287,7 +88956,7 @@
  	else { /* delete */
  		struct sk_buff *skb;
  
-@@ -876,7 +879,7 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
+@@ -876,7 +879,7 @@ tca_action_gd(struct nlattr *nla, struct
  
  		/* now do the delete */
  		tcf_action_destroy(head, 0);
@@ -90307,7 +88976,7 @@
  {
  	struct tcamsg *t;
  	struct nlmsghdr *nlh;
-@@ -921,7 +924,7 @@ static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event,
+@@ -921,7 +924,7 @@ static int tcf_add_notify(struct tc_acti
  	nlh->nlmsg_len = skb_tail_pointer(skb) - b;
  	NETLINK_CB(skb).dst_group = RTNLGRP_TC;
  
@@ -90326,7 +88995,7 @@
  {
  	int ret = 0;
  	struct tc_action *act;
-@@ -952,7 +956,7 @@ tcf_action_add(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int ovr)
+@@ -952,7 +956,7 @@ tcf_action_add(struct nlattr *nla, struc
  	/* dump then free all the actions after update; inserted policy
  	 * stays intact
  	 * */
@@ -90335,7 +89004,7 @@
  	for (a = act; a; a = act) {
  		act = a->next;
  		kfree(a);
-@@ -968,9 +972,6 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -968,9 +972,6 @@ static int tc_ctl_action(struct sk_buff
  	u32 pid = skb ? NETLINK_CB(skb).pid : 0;
  	int ret = 0, ovr = 0;
  
@@ -90345,7 +89014,7 @@
  	ret = nlmsg_parse(n, sizeof(struct tcamsg), tca, TCA_ACT_MAX, NULL);
  	if (ret < 0)
  		return ret;
-@@ -993,15 +994,17 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -993,15 +994,17 @@ static int tc_ctl_action(struct sk_buff
  		if (n->nlmsg_flags&NLM_F_REPLACE)
  			ovr = 1;
  replay:
@@ -90374,7 +89043,7 @@
  	struct nlmsghdr *nlh;
  	unsigned char *b = skb_tail_pointer(skb);
  	struct nlattr *nest;
-@@ -1051,9 +1053,6 @@ tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -1051,9 +1053,6 @@ tc_dump_action(struct sk_buff *skb, stru
  	struct tcamsg *t = (struct tcamsg *) NLMSG_DATA(cb->nlh);
  	struct nlattr *kind = find_dump_kind(cb->nlh);
  
@@ -90384,8 +89053,6 @@
  	if (kind == NULL) {
  		printk("tc_dump_action: action bad kind\n");
  		return 0;
-diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
-index 7cf6c0f..08f42b2 100644
 --- a/net/sched/cls_api.c
 +++ b/net/sched/cls_api.c
 @@ -98,8 +98,9 @@ out:
@@ -90400,7 +89067,7 @@
  
  
  /* Select new prio value from the range, managed by kernel. */
-@@ -137,9 +138,6 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -137,9 +138,6 @@ static int tc_ctl_tfilter(struct sk_buff
  	int err;
  	int tp_created = 0;
  
@@ -90462,7 +89129,7 @@
  {
  	struct sk_buff *skb;
  	u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
-@@ -385,7 +384,7 @@ static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n,
+@@ -385,7 +384,7 @@ static int tfilter_notify(struct sk_buff
  		return -EINVAL;
  	}
  
@@ -90471,7 +89138,7 @@
  			      n->nlmsg_flags & NLM_F_ECHO);
  }
  
-@@ -417,12 +416,9 @@ static int tc_dump_tfilter(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -417,12 +416,9 @@ static int tc_dump_tfilter(struct sk_buf
  	const struct Qdisc_class_ops *cops;
  	struct tcf_dump_args arg;
  
@@ -90485,11 +89152,9 @@
  		return skb->len;
  
  	if (!tcm->tcm_parent)
-diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c
-index 9402a7f..d3ef7f1 100644
 --- a/net/sched/cls_flow.c
 +++ b/net/sched/cls_flow.c
-@@ -601,7 +601,6 @@ static unsigned long flow_get(struct tcf_proto *tp, u32 handle)
+@@ -601,7 +601,6 @@ static unsigned long flow_get(struct tcf
  
  static void flow_put(struct tcf_proto *tp, unsigned long f)
  {
@@ -90497,8 +89162,6 @@
  }
  
  static int flow_dump(struct tcf_proto *tp, unsigned long fh,
-diff --git a/net/sched/em_meta.c b/net/sched/em_meta.c
-index 18d85d2..e348b6d 100644
 --- a/net/sched/em_meta.c
 +++ b/net/sched/em_meta.c
 @@ -309,7 +309,7 @@ META_COLLECTOR(var_sk_bound_if)
@@ -90510,8 +89173,6 @@
  		*err = var_dev(dev, dst);
  		if (dev)
  			dev_put(dev);
-diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
-index 903e418..53ac33a 100644
 --- a/net/sched/sch_api.c
 +++ b/net/sched/sch_api.c
 @@ -34,10 +34,12 @@
@@ -90530,7 +89191,7 @@
  
  /*
  
-@@ -638,11 +640,12 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
+@@ -638,11 +640,12 @@ void qdisc_tree_decrease_qlen(struct Qdi
  }
  EXPORT_SYMBOL(qdisc_tree_decrease_qlen);
  
@@ -90545,7 +89206,7 @@
  
  	if (old)
  		qdisc_destroy(old);
-@@ -662,6 +665,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
+@@ -662,6 +665,7 @@ static int qdisc_graft(struct net_device
  		       struct Qdisc *new, struct Qdisc *old)
  {
  	struct Qdisc *q = old;
@@ -90553,7 +89214,7 @@
  	int err = 0;
  
  	if (parent == NULL) {
-@@ -698,12 +702,13 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
+@@ -698,12 +702,13 @@ static int qdisc_graft(struct net_device
  		}
  
  		if (!ingress) {
@@ -90569,7 +89230,7 @@
  		}
  
  		if (dev->flags & IFF_UP)
-@@ -721,7 +726,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
+@@ -721,7 +726,7 @@ static int qdisc_graft(struct net_device
  				err = -ENOENT;
  		}
  		if (!err)
@@ -90578,7 +89239,7 @@
  	}
  	return err;
  }
-@@ -947,10 +952,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -947,10 +952,7 @@ static int tc_get_qdisc(struct sk_buff *
  	struct Qdisc *p = NULL;
  	int err;
  
@@ -90590,7 +89251,7 @@
  		return -ENODEV;
  
  	err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
-@@ -990,7 +992,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -990,7 +992,7 @@ static int tc_get_qdisc(struct sk_buff *
  		if ((err = qdisc_graft(dev, p, skb, n, clid, NULL, q)) != 0)
  			return err;
  	} else {
@@ -90599,7 +89260,7 @@
  	}
  	return 0;
  }
-@@ -1009,16 +1011,13 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -1009,16 +1011,13 @@ static int tc_modify_qdisc(struct sk_buf
  	struct Qdisc *q, *p;
  	int err;
  
@@ -90626,8 +89287,8 @@
  	return err;
  
  create_n_graft:
-@@ -1195,8 +1194,9 @@ nla_put_failure:
- 	return -1;
+@@ -1200,8 +1199,9 @@ static bool tc_qdisc_dump_ignore(struct
+ 	return (q->flags & TCQ_F_BUILTIN) ? true : false;
  }
  
 -static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n,
@@ -90638,7 +89299,7 @@
  {
  	struct sk_buff *skb;
  	u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
-@@ -1215,7 +1215,7 @@ static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n,
+@@ -1220,7 +1220,7 @@ static int qdisc_notify(struct sk_buff *
  	}
  
  	if (skb->len)
@@ -90647,7 +89308,7 @@
  
  err_out:
  	kfree_skb(skb);
-@@ -1274,14 +1274,11 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -1274,14 +1274,11 @@ static int tc_dump_qdisc(struct sk_buff
  	int s_idx, s_q_idx;
  	struct net_device *dev;
  
@@ -90663,7 +89324,7 @@
  		struct netdev_queue *dev_queue;
  
  		if (idx < s_idx)
-@@ -1333,10 +1330,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -1333,10 +1330,7 @@ static int tc_ctl_tclass(struct sk_buff
  	u32 qid = TC_H_MAJ(clid);
  	int err;
  
@@ -90675,7 +89336,7 @@
  		return -ENODEV;
  
  	err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
-@@ -1417,10 +1411,10 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -1417,10 +1411,10 @@ static int tc_ctl_tclass(struct sk_buff
  			if (cops->delete)
  				err = cops->delete(q, cl);
  			if (err == 0)
@@ -90688,7 +89349,7 @@
  			goto out;
  		default:
  			err = -EINVAL;
-@@ -1433,7 +1427,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
+@@ -1433,7 +1427,7 @@ static int tc_ctl_tclass(struct sk_buff
  	if (cops->change)
  		err = cops->change(q, clid, pid, tca, &new_cl);
  	if (err == 0)
@@ -90709,7 +89370,7 @@
  {
  	struct sk_buff *skb;
  	u32 pid = oskb ? NETLINK_CB(oskb).pid : 0;
-@@ -1500,7 +1495,7 @@ static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n,
+@@ -1500,7 +1495,7 @@ static int tclass_notify(struct sk_buff
  		return -EINVAL;
  	}
  
@@ -90718,7 +89379,7 @@
  }
  
  struct qdisc_dump_args
-@@ -1575,12 +1570,9 @@ static int tc_dump_tclass(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -1575,12 +1570,9 @@ static int tc_dump_tclass(struct sk_buff
  	struct net_device *dev;
  	int t, s_t;
  
@@ -90732,7 +89393,7 @@
  		return 0;
  
  	s_t = cb->args[0];
-@@ -1690,7 +1682,7 @@ static int psched_show(struct seq_file *seq, void *v)
+@@ -1690,7 +1682,7 @@ static int psched_show(struct seq_file *
  
  static int psched_open(struct inode *inode, struct file *file)
  {
@@ -90741,7 +89402,7 @@
  }
  
  static const struct file_operations psched_fops = {
-@@ -1700,14 +1692,52 @@ static const struct file_operations psched_fops = {
+@@ -1700,14 +1692,52 @@ static const struct file_operations psch
  	.llseek = seq_lseek,
  	.release = single_release,
  };
@@ -90795,11 +89456,9 @@
  
  	rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL);
  	rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL);
-diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
-index 5b132c4..6a88cab 100644
 --- a/net/sched/sch_cbq.c
 +++ b/net/sched/sch_cbq.c
-@@ -873,8 +873,8 @@ cbq_dequeue_prio(struct Qdisc *sch, int prio)
+@@ -873,8 +873,8 @@ cbq_dequeue_prio(struct Qdisc *sch, int
  
  			if (cl->deficit <= 0) {
  				q->active[prio] = cl;
@@ -90809,7 +89468,7 @@
  			}
  			return skb;
  
-@@ -1047,17 +1047,19 @@ static void cbq_normalize_quanta(struct cbq_sched_data *q, int prio)
+@@ -1047,17 +1047,19 @@ static void cbq_normalize_quanta(struct
  
  	for (h = 0; h < q->clhash.hashsize; h++) {
  		hlist_for_each_entry(cl, n, &q->clhash.hash[h], common.hnode) {
@@ -90835,11 +89494,9 @@
  		}
  	}
  }
-diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
-index 3028001..6a926d8 100644
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -179,17 +179,23 @@ static inline int qdisc_restart(struct Qdisc *q)
+@@ -179,17 +179,23 @@ static inline int qdisc_restart(struct Q
  	struct net_device *dev;
  	spinlock_t *root_lock;
  	struct sk_buff *skb;
@@ -90864,11 +89521,9 @@
  }
  
  void __qdisc_run(struct Qdisc *q)
-diff --git a/net/sched/sch_ingress.c b/net/sched/sch_ingress.c
-index a9e646b..f10e34a 100644
 --- a/net/sched/sch_ingress.c
 +++ b/net/sched/sch_ingress.c
-@@ -44,7 +44,6 @@ static void ingress_put(struct Qdisc *sch, unsigned long cl)
+@@ -44,7 +44,6 @@ static void ingress_put(struct Qdisc *sc
  
  static void ingress_walk(struct Qdisc *sch, struct qdisc_walker *walker)
  {
@@ -90876,11 +89531,9 @@
  }
  
  static struct tcf_proto **ingress_find_tcf(struct Qdisc *sch, unsigned long cl)
-diff --git a/net/sched/sch_mq.c b/net/sched/sch_mq.c
-index d1dea3d..d87a6dd 100644
 --- a/net/sched/sch_mq.c
 +++ b/net/sched/sch_mq.c
-@@ -173,7 +173,6 @@ static unsigned long mq_get(struct Qdisc *sch, u32 classid)
+@@ -173,7 +173,6 @@ static unsigned long mq_get(struct Qdisc
  
  static void mq_put(struct Qdisc *sch, unsigned long cl)
  {
@@ -90888,11 +89541,9 @@
  }
  
  static int mq_dump_class(struct Qdisc *sch, unsigned long cl,
-diff --git a/net/sched/sch_multiq.c b/net/sched/sch_multiq.c
-index 7db2c88..f172ed5 100644
 --- a/net/sched/sch_multiq.c
 +++ b/net/sched/sch_multiq.c
-@@ -339,7 +339,6 @@ static unsigned long multiq_bind(struct Qdisc *sch, unsigned long parent,
+@@ -339,7 +339,6 @@ static unsigned long multiq_bind(struct
  
  static void multiq_put(struct Qdisc *q, unsigned long cl)
  {
@@ -90900,11 +89551,9 @@
  }
  
  static int multiq_dump_class(struct Qdisc *sch, unsigned long cl,
-diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c
-index 93285ce..8888c34 100644
 --- a/net/sched/sch_prio.c
 +++ b/net/sched/sch_prio.c
-@@ -302,7 +302,6 @@ static unsigned long prio_bind(struct Qdisc *sch, unsigned long parent, u32 clas
+@@ -302,7 +302,6 @@ static unsigned long prio_bind(struct Qd
  
  static void prio_put(struct Qdisc *q, unsigned long cl)
  {
@@ -90912,11 +89561,9 @@
  }
  
  static int prio_dump_class(struct Qdisc *sch, unsigned long cl, struct sk_buff *skb,
-diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c
-index 072cdf4..8d42bb3 100644
 --- a/net/sched/sch_red.c
 +++ b/net/sched/sch_red.c
-@@ -303,7 +303,6 @@ static unsigned long red_get(struct Qdisc *sch, u32 classid)
+@@ -303,7 +303,6 @@ static unsigned long red_get(struct Qdis
  
  static void red_put(struct Qdisc *sch, unsigned long arg)
  {
@@ -90924,11 +89571,9 @@
  }
  
  static void red_walk(struct Qdisc *sch, struct qdisc_walker *walker)
-diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
-index 5a002c2..7917369 100644
 --- a/net/sched/sch_teql.c
 +++ b/net/sched/sch_teql.c
-@@ -178,6 +178,9 @@ static int teql_qdisc_init(struct Qdisc *sch, struct nlattr *opt)
+@@ -178,6 +178,9 @@ static int teql_qdisc_init(struct Qdisc
  	struct teql_master *m = (struct teql_master*)sch->ops;
  	struct teql_sched_data *q = qdisc_priv(sch);
  
@@ -90938,11 +89583,9 @@
  	if (dev->hard_header_len > m->dev->hard_header_len)
  		return -EINVAL;
  
-diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
-index 8b3560f..0c46d61 100644
 --- a/net/sctp/ulpevent.c
 +++ b/net/sctp/ulpevent.c
-@@ -701,7 +701,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
+@@ -660,7 +660,7 @@ struct sctp_ulpevent *sctp_ulpevent_make
  	if (rx_count >= asoc->base.sk->sk_rcvbuf) {
  
  		if ((asoc->base.sk->sk_userlocks & SOCK_RCVBUF_LOCK) ||
@@ -90951,8 +89594,6 @@
  			goto fail;
  	}
  
-diff --git a/net/socket.c b/net/socket.c
-index d449812..60053d9 100644
 --- a/net/socket.c
 +++ b/net/socket.c
 @@ -85,6 +85,7 @@
@@ -90963,7 +89604,7 @@
  #include <linux/nsproxy.h>
  #include <linux/magic.h>
  
-@@ -162,15 +163,6 @@ static DEFINE_PER_CPU(int, sockets_in_use) = 0;
+@@ -162,15 +163,6 @@ static DEFINE_PER_CPU(int, sockets_in_us
   * divide and look after the messy bits.
   */
  
@@ -90979,7 +89620,7 @@
  /**
   *	move_addr_to_kernel	-	copy a socket address into kernel space
   *	@uaddr: Address in user space
-@@ -192,6 +184,7 @@ int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr)
+@@ -192,6 +184,7 @@ int move_addr_to_kernel(void __user *uad
  		return -EFAULT;
  	return audit_sockaddr(ulen, kaddr);
  }
@@ -90987,7 +89628,7 @@
  
  /**
   *	move_addr_to_user	-	copy an address to user space
-@@ -497,6 +490,8 @@ static struct socket *sock_alloc(void)
+@@ -498,6 +491,8 @@ static struct socket *sock_alloc(void)
  	return sock;
  }
  
@@ -90996,7 +89637,7 @@
  /*
   *	In theory you can't get an open on this inode, but /proc provides
   *	a back door. Remember to keep it shut otherwise you'll let the
-@@ -524,6 +519,9 @@ const struct file_operations bad_sock_fops = {
+@@ -525,6 +520,9 @@ const struct file_operations bad_sock_fo
  
  void sock_release(struct socket *sock)
  {
@@ -91006,7 +89647,7 @@
  	if (sock->ops) {
  		struct module *owner = sock->ops->owner;
  
-@@ -1140,6 +1138,54 @@ call_kill:
+@@ -1141,6 +1139,54 @@ call_kill:
  	return 0;
  }
  
@@ -91061,7 +89702,7 @@
  static int __sock_create(struct net *net, int family, int type, int protocol,
  			 struct socket **res, int kern)
  {
-@@ -1170,6 +1216,11 @@ static int __sock_create(struct net *net, int family, int type, int protocol,
+@@ -1171,6 +1217,11 @@ static int __sock_create(struct net *net
  		family = PF_PACKET;
  	}
  
@@ -91073,7 +89714,7 @@
  	err = security_socket_create(family, type, protocol, kern);
  	if (err)
  		return err;
-@@ -2423,9 +2474,12 @@ int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg)
+@@ -2447,9 +2498,12 @@ int kernel_sock_ioctl(struct socket *soc
  {
  	mm_segment_t oldfs = get_fs();
  	int err;
@@ -91086,8 +89727,6 @@
  	set_fs(oldfs);
  
  	return err;
-diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
-index 38829e2..fad3e2b 100644
 --- a/net/sunrpc/clnt.c
 +++ b/net/sunrpc/clnt.c
 @@ -33,6 +33,7 @@
@@ -91098,7 +89737,7 @@
  
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/rpc_pipe_fs.h>
-@@ -95,6 +96,35 @@ static void rpc_unregister_client(struct rpc_clnt *clnt)
+@@ -95,6 +96,35 @@ static void rpc_unregister_client(struct
  	spin_unlock(&rpc_client_lock);
  }
  
@@ -91134,7 +89773,7 @@
  static int
  rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
  {
-@@ -200,6 +230,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, stru
+@@ -200,6 +230,7 @@ static struct rpc_clnt * rpc_new_client(
  	clnt->cl_vers     = version->number;
  	clnt->cl_stats    = program->stats;
  	clnt->cl_metrics  = rpc_alloc_iostats(clnt);
@@ -91142,7 +89781,7 @@
  	err = -ENOMEM;
  	if (clnt->cl_metrics == NULL)
  		goto out_no_stats;
-@@ -336,8 +367,10 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
+@@ -336,8 +367,10 @@ struct rpc_clnt *rpc_create(struct rpc_c
  		xprt->resvport = 0;
  
  	clnt = rpc_new_client(args, xprt);
@@ -91154,7 +89793,7 @@
  
  	if (!(args->flags & RPC_CLNT_CREATE_NOPING)) {
  		int err = rpc_ping(clnt, RPC_TASK_SOFT);
-@@ -558,6 +591,9 @@ struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data)
+@@ -558,6 +591,9 @@ struct rpc_task *rpc_run_task(const stru
  {
  	struct rpc_task *task, *ret;
  
@@ -91172,7 +89811,7 @@
  		task->tk_status = 0;
  		task->tk_action = call_connect;
  		return;
-@@ -1057,6 +1094,10 @@ call_bind_status(struct rpc_task *task)
+@@ -1060,6 +1097,10 @@ call_bind_status(struct rpc_task *task)
  	case -ETIMEDOUT:
  		dprintk("RPC: %5u rpcbind request timed out\n",
  				task->tk_pid);
@@ -91183,7 +89822,7 @@
  		goto retry_timeout;
  	case -EPFNOSUPPORT:
  		/* server doesn't support any rpcbind version we know of */
-@@ -1114,7 +1155,8 @@ call_connect_status(struct rpc_task *task)
+@@ -1117,7 +1158,8 @@ call_connect_status(struct rpc_task *tas
  	dprint_status(task);
  
  	task->tk_status = 0;
@@ -91193,7 +89832,7 @@
  		clnt->cl_stats->netreconn++;
  		task->tk_action = call_transmit;
  		return;
-@@ -1346,7 +1388,7 @@ call_timeout(struct rpc_task *task)
+@@ -1349,7 +1391,7 @@ call_timeout(struct rpc_task *task)
  	dprintk("RPC: %5u call_timeout (major)\n", task->tk_pid);
  	task->tk_timeouts++;
  
@@ -91202,7 +89841,7 @@
  		if (clnt->cl_chatty)
  			printk(KERN_NOTICE "%s: server %s not responding, timed out\n",
  				clnt->cl_protname, clnt->cl_server);
-@@ -1394,6 +1436,7 @@ call_decode(struct rpc_task *task)
+@@ -1397,6 +1439,7 @@ call_decode(struct rpc_task *task)
  		task->tk_flags &= ~RPC_CALL_MAJORSEEN;
  	}
  
@@ -91210,7 +89849,7 @@
  	/*
  	 * Ensure that we see all writes made by xprt_complete_rqst()
  	 * before it changed req->rq_reply_bytes_recvd.
-@@ -1406,7 +1449,7 @@ call_decode(struct rpc_task *task)
+@@ -1409,7 +1452,7 @@ call_decode(struct rpc_task *task)
  				sizeof(req->rq_rcv_buf)) != 0);
  
  	if (req->rq_rcv_buf.len < 12) {
@@ -91219,7 +89858,7 @@
  			task->tk_action = call_bind;
  			clnt->cl_stats->rpcretrans++;
  			goto out_retry;
-@@ -1754,3 +1797,67 @@ void rpc_show_tasks(void)
+@@ -1757,3 +1800,67 @@ void rpc_show_tasks(void)
  	spin_unlock(&rpc_client_lock);
  }
  #endif
@@ -91287,11 +89926,9 @@
 +{
 +}
 +#endif
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index ea1e6de..e83dd73 100644
 --- a/net/sunrpc/rpc_pipe.c
 +++ b/net/sunrpc/rpc_pipe.c
-@@ -1028,6 +1028,7 @@ static struct file_system_type rpc_pipe_fs_type = {
+@@ -1028,6 +1028,7 @@ static struct file_system_type rpc_pipe_
  	.name		= "rpc_pipefs",
  	.get_sb		= rpc_get_sb,
  	.kill_sb	= kill_litter_super,
@@ -91299,11 +89936,9 @@
  };
  
  static void
-diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
-index cef74ba..fba30fe 100644
 --- a/net/sunrpc/sched.c
 +++ b/net/sunrpc/sched.c
-@@ -606,7 +606,9 @@ static void __rpc_execute(struct rpc_task *task)
+@@ -613,7 +613,9 @@ static void __rpc_execute(struct rpc_tas
  	struct rpc_wait_queue *queue;
  	int task_is_async = RPC_IS_ASYNC(task);
  	int status = 0;
@@ -91313,7 +89948,7 @@
  	dprintk("RPC: %5u __rpc_execute flags=0x%x\n",
  			task->tk_pid, task->tk_flags);
  
-@@ -662,8 +664,10 @@ static void __rpc_execute(struct rpc_task *task)
+@@ -662,8 +664,10 @@ static void __rpc_execute(struct rpc_tas
  		}
  		rpc_clear_running(task);
  		spin_unlock_bh(&queue->lock);
@@ -91325,7 +89960,7 @@
  
  		/* sync task: sleep here */
  		dprintk("RPC: %5u sync task going to sleep\n", task->tk_pid);
-@@ -690,6 +694,7 @@ static void __rpc_execute(struct rpc_task *task)
+@@ -690,6 +694,7 @@ static void __rpc_execute(struct rpc_tas
  			task->tk_status);
  	/* Release all resources associated with the task */
  	rpc_release_task(task);
@@ -91333,8 +89968,6 @@
  }
  
  /*
-diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
-index 8cce921..9685220 100644
 --- a/net/sunrpc/sunrpc_syms.c
 +++ b/net/sunrpc/sunrpc_syms.c
 @@ -24,6 +24,9 @@
@@ -91363,11 +89996,9 @@
  	rpcauth_remove_module();
  	cleanup_socket_xprt();
  	svc_cleanup_xprt_sock();
-diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
-index 70b0a22..f66b225 100644
 --- a/net/sunrpc/svcsock.c
 +++ b/net/sunrpc/svcsock.c
-@@ -229,6 +229,9 @@ static int svc_sendto(struct svc_rqst *rqstp, struct xdr_buf *xdr)
+@@ -229,6 +229,9 @@ static int svc_sendto(struct svc_rqst *r
  	unsigned long tailoff;
  	unsigned long headoff;
  	RPC_IFDEBUG(char buf[RPC_MAX_ADDRBUFLEN]);
@@ -91386,7 +90017,7 @@
  	return len;
  }
  
-@@ -1437,8 +1442,9 @@ static struct svc_xprt *svc_create_socket(struct svc_serv *serv,
+@@ -1437,8 +1442,9 @@ static struct svc_xprt *svc_create_socke
  
  	error = sock_create_kern(family, type, protocol, &sock);
  	if (error < 0)
@@ -91397,7 +90028,7 @@
  	svc_reclassify_socket(sock);
  
  	/*
-@@ -1489,6 +1495,8 @@ static void svc_sock_detach(struct svc_xprt *xprt)
+@@ -1489,6 +1495,8 @@ static void svc_sock_detach(struct svc_x
  
  	dprintk("svc: svc_sock_detach(%p)\n", svsk);
  
@@ -91406,11 +90037,9 @@
  	/* put back the old socket callbacks */
  	sk->sk_state_change = svsk->sk_ostate;
  	sk->sk_data_ready = svsk->sk_odata;
-diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
-index fd46d42..48d4f3e 100644
 --- a/net/sunrpc/xprt.c
 +++ b/net/sunrpc/xprt.c
-@@ -598,10 +598,13 @@ static void xprt_autoclose(struct work_struct *work)
+@@ -598,10 +598,13 @@ static void xprt_autoclose(struct work_s
  {
  	struct rpc_xprt *xprt =
  		container_of(work, struct rpc_xprt, task_cleanup);
@@ -91434,7 +90063,7 @@
  	spin_lock(&xprt->transport_lock);
  	if (!list_empty(&xprt->recv) || xprt->shutdown)
  		goto out_abort;
-@@ -677,9 +682,11 @@ xprt_init_autodisconnect(unsigned long data)
+@@ -677,9 +682,11 @@ xprt_init_autodisconnect(unsigned long d
  	spin_unlock(&xprt->transport_lock);
  	set_bit(XPRT_CONNECTION_CLOSE, &xprt->state);
  	queue_work(rpciod_workqueue, &xprt->task_cleanup);
@@ -91454,8 +90083,6 @@
  
  	rpc_init_wait_queue(&xprt->binding, "xprt_binding");
  	rpc_init_wait_queue(&xprt->pending, "xprt_pending");
-diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
-index 9a63f66..eac6b16 100644
 --- a/net/sunrpc/xprtrdma/transport.c
 +++ b/net/sunrpc/xprtrdma/transport.c
 @@ -269,6 +269,7 @@ xprt_rdma_destroy(struct rpc_xprt *xprt)
@@ -91466,11 +90093,9 @@
  	kfree(xprt);
  
  	dprintk("RPC:       %s: returning\n", __func__);
-diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
-index b6fcf68..8907690 100644
 --- a/net/sunrpc/xprtsock.c
 +++ b/net/sunrpc/xprtsock.c
-@@ -72,6 +72,8 @@ static unsigned int min_slot_table_size = RPC_MIN_SLOT_TABLE;
+@@ -72,6 +72,8 @@ static unsigned int min_slot_table_size
  static unsigned int max_slot_table_size = RPC_MAX_SLOT_TABLE;
  static unsigned int xprt_min_resvport_limit = RPC_MIN_RESVPORT;
  static unsigned int xprt_max_resvport_limit = RPC_MAX_RESVPORT;
@@ -91496,7 +90121,7 @@
  		.procname	= "tcp_fin_timeout",
  		.data		= &xs_tcp_fin_timeout,
  		.maxlen		= sizeof(xs_tcp_fin_timeout),
-@@ -737,18 +749,24 @@ static void xs_restore_old_callbacks(struct sock_xprt *transport, struct sock *s
+@@ -732,18 +744,24 @@ static void xs_restore_old_callbacks(str
  
  static void xs_reset_transport(struct sock_xprt *transport)
  {
@@ -91526,7 +90151,7 @@
  	sk->sk_user_data = NULL;
  
  	xs_restore_old_callbacks(transport, sk);
-@@ -808,6 +826,7 @@ static void xs_destroy(struct rpc_xprt *xprt)
+@@ -805,6 +823,7 @@ static void xs_destroy(struct rpc_xprt *
  	xs_close(xprt);
  	xs_free_peer_addresses(xprt);
  	kfree(xprt->slot);
@@ -91534,7 +90159,7 @@
  	kfree(xprt);
  	module_put(THIS_MODULE);
  }
-@@ -1709,7 +1728,12 @@ static void xs_udp_connect_worker4(struct work_struct *work)
+@@ -1706,7 +1725,12 @@ static void xs_udp_connect_worker4(struc
  	struct rpc_xprt *xprt = &transport->xprt;
  	struct socket *sock = transport->sock;
  	int err, status = -EIO;
@@ -91547,7 +90172,7 @@
  	if (xprt->shutdown)
  		goto out;
  
-@@ -1721,6 +1745,7 @@ static void xs_udp_connect_worker4(struct work_struct *work)
+@@ -1718,6 +1742,7 @@ static void xs_udp_connect_worker4(struc
  		dprintk("RPC:       can't create UDP transport socket (%d).\n", -err);
  		goto out;
  	}
@@ -91555,7 +90180,7 @@
  	xs_reclassify_socket4(sock);
  
  	if (xs_bind4(transport, sock)) {
-@@ -1739,6 +1764,8 @@ static void xs_udp_connect_worker4(struct work_struct *work)
+@@ -1736,6 +1761,8 @@ static void xs_udp_connect_worker4(struc
  out:
  	xprt_clear_connecting(xprt);
  	xprt_wake_pending_tasks(xprt, status);
@@ -91564,7 +90189,7 @@
  }
  
  /**
-@@ -1754,7 +1781,12 @@ static void xs_udp_connect_worker6(struct work_struct *work)
+@@ -1751,7 +1778,12 @@ static void xs_udp_connect_worker6(struc
  	struct rpc_xprt *xprt = &transport->xprt;
  	struct socket *sock = transport->sock;
  	int err, status = -EIO;
@@ -91577,7 +90202,7 @@
  	if (xprt->shutdown)
  		goto out;
  
-@@ -1766,6 +1798,7 @@ static void xs_udp_connect_worker6(struct work_struct *work)
+@@ -1763,6 +1795,7 @@ static void xs_udp_connect_worker6(struc
  		dprintk("RPC:       can't create UDP transport socket (%d).\n", -err);
  		goto out;
  	}
@@ -91585,7 +90210,7 @@
  	xs_reclassify_socket6(sock);
  
  	if (xs_bind6(transport, sock) < 0) {
-@@ -1784,6 +1817,8 @@ static void xs_udp_connect_worker6(struct work_struct *work)
+@@ -1781,6 +1814,8 @@ static void xs_udp_connect_worker6(struc
  out:
  	xprt_clear_connecting(xprt);
  	xprt_wake_pending_tasks(xprt, status);
@@ -91594,7 +90219,7 @@
  }
  
  /*
-@@ -1879,7 +1914,12 @@ static void xs_tcp_setup_socket(struct rpc_xprt *xprt,
+@@ -1902,7 +1937,12 @@ static void xs_tcp_setup_socket(struct r
  {
  	struct socket *sock = transport->sock;
  	int status = -EIO;
@@ -91607,7 +90232,7 @@
  	if (xprt->shutdown)
  		goto out;
  
-@@ -1943,6 +1983,8 @@ out_eagain:
+@@ -1966,6 +2006,8 @@ out_eagain:
  out:
  	xprt_clear_connecting(xprt);
  	xprt_wake_pending_tasks(xprt, status);
@@ -91616,7 +90241,7 @@
  }
  
  static struct socket *xs_create_tcp_sock4(struct rpc_xprt *xprt,
-@@ -1958,6 +2000,7 @@ static struct socket *xs_create_tcp_sock4(struct rpc_xprt *xprt,
+@@ -1981,6 +2023,7 @@ static struct socket *xs_create_tcp_sock
  				-err);
  		goto out_err;
  	}
@@ -91624,7 +90249,7 @@
  	xs_reclassify_socket4(sock);
  
  	if (xs_bind4(transport, sock) < 0) {
-@@ -1997,6 +2040,7 @@ static struct socket *xs_create_tcp_sock6(struct rpc_xprt *xprt,
+@@ -2020,6 +2063,7 @@ static struct socket *xs_create_tcp_sock
  				-err);
  		goto out_err;
  	}
@@ -91632,8 +90257,6 @@
  	xs_reclassify_socket6(sock);
  
  	if (xs_bind6(transport, sock) < 0) {
-diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index 065dc66..db6ef80 100644
 --- a/net/unix/af_unix.c
 +++ b/net/unix/af_unix.c
 @@ -115,6 +115,9 @@
@@ -91646,7 +90269,7 @@
  static struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
  static DEFINE_SPINLOCK(unix_table_lock);
  static atomic_t unix_nr_socks = ATOMIC_INIT(0);
-@@ -292,9 +295,6 @@ static struct sock *unix_find_socket_byinode(struct net *net, struct inode *i)
+@@ -292,9 +295,6 @@ static struct sock *unix_find_socket_byi
  		    &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) {
  		struct dentry *dentry = unix_sk(s)->dentry;
  
@@ -91656,7 +90279,7 @@
  		if (dentry && dentry->d_inode == i) {
  			sock_hold(s);
  			goto found;
-@@ -593,6 +593,8 @@ static struct sock *unix_create1(struct net *net, struct socket *sock)
+@@ -593,6 +593,8 @@ static struct sock *unix_create1(struct
  	sk = sk_alloc(net, PF_UNIX, GFP_KERNEL, &unix_proto);
  	if (!sk)
  		goto out;
@@ -91675,7 +90298,7 @@
  }
  
  static int unix_create(struct net *net, struct socket *sock, int protocol)
-@@ -1035,6 +1040,7 @@ static int unix_stream_connect(struct socket *sock, struct sockaddr *uaddr,
+@@ -1040,6 +1045,7 @@ static int unix_stream_connect(struct so
  	int st;
  	int err;
  	long timeo;
@@ -91683,7 +90306,7 @@
  
  	err = unix_mkname(sunaddr, addr_len, &hash);
  	if (err < 0)
-@@ -1063,6 +1069,10 @@ static int unix_stream_connect(struct socket *sock, struct sockaddr *uaddr,
+@@ -1068,6 +1074,10 @@ static int unix_stream_connect(struct so
  	skb = sock_wmalloc(newsk, 1, 0, GFP_KERNEL);
  	if (skb == NULL)
  		goto out;
@@ -91694,7 +90317,7 @@
  
  restart:
  	/*  Find listening sock. */
-@@ -1311,7 +1321,7 @@ static void unix_detach_fds(struct scm_cookie *scm, struct sk_buff *skb)
+@@ -1316,7 +1326,7 @@ static void unix_detach_fds(struct scm_c
  		unix_notinflight(scm->fp->fp[i]);
  }
  
@@ -91703,73 +90326,14 @@
  {
  	struct scm_cookie scm;
  	memset(&scm, 0, sizeof(scm));
-@@ -1322,5 +1332,6 @@ static void unix_destruct_fds(struct sk_buff *skb)
+@@ -1327,6 +1337,7 @@ static void unix_destruct_fds(struct sk_
  	scm_destroy(&scm);
  	sock_wfree(skb);
  }
 +EXPORT_SYMBOL_GPL(unix_destruct_fds);
  
  #define MAX_RECURSION_LEVEL 4
-
-@@ -1547,6 +1558,16 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
- 
- 		size = len-sent;
- 
-+		if (msg->msg_flags & MSG_DONTWAIT)
-+			ub_sock_makewres_other(sk, skb_charge_size(size));
-+		if (sock_bc(sk) != NULL && 
-+				sock_bc(sk)->poll_reserv >= 
-+					SOCK_MIN_UBCSPACE &&
-+				skb_charge_size(size) >
-+					sock_bc(sk)->poll_reserv)
-+			size = skb_charge_datalen(sock_bc(sk)->poll_reserv);
-+				
-+
- 		/* Keep two messages in the pipe so it schedules better */
- 		if (size > ((sk->sk_sndbuf >> 1) - 64))
- 			size = (sk->sk_sndbuf >> 1) - 64;
-@@ -1558,8 +1579,9 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
- 		 *	Grab a buffer
- 		 */
- 
--		skb = sock_alloc_send_skb(sk, size, msg->msg_flags&MSG_DONTWAIT,
--					  &err);
-+
-+		skb = sock_alloc_send_skb2(sk, size, SOCK_MIN_UBCSPACE,
-+				msg->msg_flags&MSG_DONTWAIT, &err);
- 
- 		if (skb == NULL)
- 			goto out_err;
-@@ -1998,6 +2020,7 @@ static unsigned int unix_poll(struct file *file, struct socket *sock, poll_table
- {
- 	struct sock *sk = sock->sk;
- 	unsigned int mask;
-+	int no_ub_res;
- 
- 	sock_poll_wait(file, sk->sk_sleep, wait);
- 	mask = 0;
-@@ -2010,6 +2033,10 @@ static unsigned int unix_poll(struct file *file, struct socket *sock, poll_table
- 	if (sk->sk_shutdown & RCV_SHUTDOWN)
- 		mask |= POLLRDHUP;
- 
-+	no_ub_res = ub_sock_makewres_other(sk, SOCK_MIN_UBCSPACE_CH);
-+	if (no_ub_res)
-+		ub_sock_sndqueueadd_other(sk, SOCK_MIN_UBCSPACE_CH);
-+
- 	/* readable? */
- 	if (!skb_queue_empty(&sk->sk_receive_queue) ||
- 	    (sk->sk_shutdown & RCV_SHUTDOWN))
-@@ -2024,7 +2051,7 @@ static unsigned int unix_poll(struct file *file, struct socket *sock, poll_table
- 	 * we set writable also when the other side has shut down the
- 	 * connection. This prevents stuck sockets.
- 	 */
--	if (unix_writable(sk))
-+	if (!no_ub_res && unix_writable(sk))
- 		mask |= POLLOUT | POLLWRNORM | POLLWRBAND;
  
- 	return mask;
-diff --git a/net/unix/garbage.c b/net/unix/garbage.c
-index 19c17e4..686d373 100644
 --- a/net/unix/garbage.c
 +++ b/net/unix/garbage.c
 @@ -81,6 +81,7 @@
@@ -91788,11 +90352,9 @@
  
  static inline struct sk_buff *sock_queue_head(struct sock *sk)
  {
-diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
-index b95a2d6..ab7d01d 100644
 --- a/net/xfrm/xfrm_user.c
 +++ b/net/xfrm/xfrm_user.c
-@@ -2005,7 +2005,7 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -2012,7 +2012,7 @@ static int xfrm_user_rcv_msg(struct sk_b
  	link = &xfrm_dispatch[type];
  
  	/* All operations require privileges, even GET */
@@ -91801,8 +90363,6 @@
  		return -EPERM;
  
  	if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) ||
-diff --git a/security/Kconfig b/security/Kconfig
-index fb363cd..dbfa601 100644
 --- a/security/Kconfig
 +++ b/security/Kconfig
 @@ -41,7 +41,7 @@ config KEYS_DEBUG_PROC_KEYS
@@ -91814,11 +90374,9 @@
  	help
  	  This allows you to choose different security modules to be
  	  configured into your kernel.
-diff --git a/security/commoncap.c b/security/commoncap.c
-index fe30751..3579774 100644
 --- a/security/commoncap.c
 +++ b/security/commoncap.c
-@@ -58,6 +58,10 @@ int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
+@@ -61,6 +61,10 @@ int cap_netlink_send(struct sock *sk, st
  
  int cap_netlink_recv(struct sk_buff *skb, int cap)
  {
@@ -91829,7 +90387,7 @@
  	if (!cap_raised(NETLINK_CB(skb).eff_cap, cap))
  		return -EPERM;
  	return 0;
-@@ -618,7 +622,7 @@ int cap_inode_setxattr(struct dentry *dentry, const char *name,
+@@ -626,7 +630,7 @@ int cap_inode_setxattr(struct dentry *de
  
  	if (!strncmp(name, XATTR_SECURITY_PREFIX,
  		     sizeof(XATTR_SECURITY_PREFIX) - 1)  &&
@@ -91838,7 +90396,7 @@
  		return -EPERM;
  	return 0;
  }
-@@ -644,7 +648,7 @@ int cap_inode_removexattr(struct dentry *dentry, const char *name)
+@@ -652,7 +656,7 @@ int cap_inode_removexattr(struct dentry
  
  	if (!strncmp(name, XATTR_SECURITY_PREFIX,
  		     sizeof(XATTR_SECURITY_PREFIX) - 1)  &&
@@ -91847,7 +90405,7 @@
  		return -EPERM;
  	return 0;
  }
-@@ -962,8 +966,9 @@ error:
+@@ -970,8 +974,9 @@ error:
   */
  int cap_syslog(int type)
  {
@@ -91859,8 +90417,6 @@
  	return 0;
  }
  
-diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index 6cf8fd2..02aeae6 100644
 --- a/security/device_cgroup.c
 +++ b/security/device_cgroup.c
 @@ -12,11 +12,23 @@
@@ -91888,7 +90444,7 @@
  
  #define DEV_BLOCK 1
  #define DEV_CHAR  2
-@@ -73,6 +85,38 @@ static int devcgroup_can_attach(struct cgroup_subsys *ss,
+@@ -73,6 +85,38 @@ static int devcgroup_can_attach(struct c
  /*
   * called under devcgroup_mutex
   */
@@ -91927,7 +90483,7 @@
  static int dev_whitelist_copy(struct list_head *dest, struct list_head *orig)
  {
  	struct dev_whitelist_item *wh, *tmp, *new;
-@@ -187,11 +231,13 @@ static struct cgroup_subsys_state *devcgroup_create(struct cgroup_subsys *ss,
+@@ -187,11 +231,13 @@ static struct cgroup_subsys_state *devcg
  		wh->type = DEV_ALL;
  		wh->access = ACC_MASK;
  		list_add(&wh->list, &dev_cgroup->whitelist);
@@ -91942,7 +90498,7 @@
  		mutex_unlock(&devcgroup_mutex);
  		if (ret) {
  			kfree(dev_cgroup);
-@@ -266,8 +312,15 @@ static int devcgroup_seq_read(struct cgroup *cgroup, struct cftype *cft,
+@@ -266,8 +312,15 @@ static int devcgroup_seq_read(struct cgr
  		set_access(acc, wh->access);
  		set_majmin(maj, wh->major);
  		set_majmin(min, wh->minor);
@@ -92007,7 +90563,7 @@
  		rcu_read_unlock();
  		return 0;
  	}
-@@ -515,6 +565,15 @@ found:
+@@ -516,6 +566,15 @@ found:
  }
  EXPORT_SYMBOL_GPL(devcgroup_inode_permission);
  
@@ -92023,7 +90579,7 @@
  int devcgroup_inode_mknod(int mode, dev_t dev)
  {
  	struct dev_cgroup *dev_cgroup;
-@@ -538,10 +597,9 @@ int devcgroup_inode_mknod(int mode, dev_t dev)
+@@ -539,10 +598,9 @@ int devcgroup_inode_mknod(int mode, dev_
  			continue;
  		if (wh->minor != ~0 && wh->minor != MINOR(dev))
  			continue;
@@ -92035,7 +90591,7 @@
  		rcu_read_unlock();
  		return 0;
  	}
-@@ -550,3 +608,75 @@ found:
+@@ -551,3 +609,75 @@ found:
  
  	return -EPERM;
  }
@@ -92111,8 +90667,6 @@
 +EXPORT_SYMBOL(devperms_seq_show);
 +#endif
 +#endif
-diff --git a/security/selinux/Kconfig b/security/selinux/Kconfig
-index bca1b74..00bbeea 100644
 --- a/security/selinux/Kconfig
 +++ b/security/selinux/Kconfig
 @@ -1,6 +1,6 @@



More information about the Kernel-svn-changes mailing list